Playground by Górka Mateusz
Goo.Tools.Pooling.ExtendedObjectPooler Class Reference

Component-based object pooler running on IPooled interface. More...

+ Inheritance diagram for Goo.Tools.Pooling.ExtendedObjectPooler:
+ Collaboration diagram for Goo.Tools.Pooling.ExtendedObjectPooler:

Classes

class  ListOfIPooled
 

Public Member Functions

GameObject GetObject ()
 
GameObject GetObject (Vector3 position, Quaternion rotation)
 
GameObject GetObject ()
 
GameObject GetObject (Vector3 position, Quaternion rotation)
 

Private Member Functions

IPooled CreateNewObject ()
 

Private Attributes

readonly ListOfIPooled _list = new ListOfIPooled()
 

Additional Inherited Members

- Static Public Attributes inherited from Goo.Tools.Pooling.ObjectPoolerBase
const string PREFIX_NAME = "[Pooling] "
 
- Protected Member Functions inherited from Goo.Tools.Pooling.ObjectPoolerBase
virtual void Awake ()
 
- Protected Attributes inherited from Goo.Tools.Pooling.ObjectPoolerBase
GameObject _prefab
 
Transform _parent
 

Detailed Description

Component-based object pooler running on IPooled interface.

Running IPooled.Recycled = false or IPooled.DeactivateAndFree() frees the object.

Member Function Documentation

◆ GetObject() [1/2]

GameObject Goo.Tools.Pooling.ExtendedObjectPooler.GetObject ( )
inline

Implements Goo.Tools.Pooling.IObjectPooler.

32 {
33 IPooled obj = _list.GetRecycled();
34 if (obj == null)
35 {
36 obj = CreateNewObject();
37 }
38
39 obj.ActivateAndLock();
40 return obj.gameObject;
41 }
IPooled CreateNewObject()
Definition: ExtendedObjectPooler.cs:43
readonly ListOfIPooled _list
Definition: ExtendedObjectPooler.cs:29
T GetRecycled()
Definition: PoolerList.cs:7

◆ CreateNewObject()

IPooled Goo.Tools.Pooling.ExtendedObjectPooler.CreateNewObject ( )
inlineprivate
44 {
45 GameObject go = Instantiate(_prefab, _parent);
46 IPooled obj = go.GetComponent<IPooled>();
47
48 if (obj == null)
49 {
50 obj = go.AddComponent<Pooled>();
51 }
52
53 _list.Add(obj);
54 return obj;
55 }
Transform _parent
Definition: ObjectPoolerBase.cs:12
GameObject _prefab
Definition: ObjectPoolerBase.cs:10

◆ GetObject() [2/2]

GameObject Goo.Tools.Pooling.ExtendedObjectPooler.GetObject ( Vector3  position,
Quaternion  rotation 
)
inline

Implements Goo.Tools.Pooling.IObjectPooler.

58 {
59 var go = GetObject();
60 go.transform.position = position;
61 go.transform.rotation = rotation;
62 return go;
63 }
GameObject GetObject()
Definition: ExtendedObjectPooler.cs:31

Member Data Documentation

◆ _list

readonly ListOfIPooled Goo.Tools.Pooling.ExtendedObjectPooler._list = new ListOfIPooled()
private

The documentation for this class was generated from the following file: