Skip to content

Commit 555374b

Browse files
committed
Add function RentPostprocess and RentPostprocessSync
1 parent ca88eb0 commit 555374b

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

Packages/ZBase.Foundation.Pooling/ZBase.Foundation.Pooling/UnityPools/Pools/UnityPool{T,TPrefab}.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,33 +67,56 @@ public void ReleaseInstances(int keep, Action<T> onReleased = null)
6767
public async UniTask<T> Rent()
6868
{
6969
if (_queue.TryDequeue(out var instance))
70+
{
71+
RentPostprocess(instance, default);
7072
return instance;
73+
}
7174
instance = await _prefab.InstantiateAsync();
7275
ProcessNewInstance(instance);
76+
RentPostprocess(instance, default);
7377
return instance;
7478
}
7579

7680
public T RentSync()
7781
{
7882
if (_queue.TryDequeue(out var instance))
83+
{
84+
RentPostprocessSync(instance, default);
7985
return instance;
86+
}
8087
instance = _prefab.Instantiate();
8188
ProcessNewInstance(instance);
89+
RentPostprocessSync(instance, default);
8290
return instance;
8391
}
8492

8593

8694
public async UniTask<T> Rent(CancellationToken cancelToken)
8795
{
8896
if (_queue.TryDequeue(out var instance))
97+
{
98+
RentPostprocess(instance, cancelToken);
8999
return instance;
100+
}
90101
instance = await _prefab.InstantiateAsync(cancelToken);
91102
ProcessNewInstance(instance);
103+
RentPostprocess(instance, cancelToken);
92104
return instance;
93105
}
94106

95107
protected virtual void ProcessNewInstance(T instance) { }
96108

109+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
110+
protected virtual UniTask RentPostprocess(T instance, CancellationToken cancelToken)
111+
{
112+
RentPostprocessSync(instance, cancelToken);
113+
114+
return UniTask.CompletedTask;
115+
}
116+
117+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
118+
protected virtual void RentPostprocessSync(T instance, CancellationToken cancelToken) {}
119+
97120
public void Return(T instance)
98121
{
99122
if (!instance)

Packages/ZBase.Foundation.Pooling/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "com.zbase.foundation.pooling",
33
"displayName": "ZBase.Foundation.Pooling",
4-
"version": "2.3.14",
4+
"version": "2.3.15",
55
"unity": "2021.3",
66
"documentationUrl": "https://github.com/WolffunGame/Unity.Pooling/blob/main/README.md",
77
"dependencies": {

0 commit comments

Comments
 (0)