protected virtual void OnEnable() { if (debris == null) { debris = GetComponent <SgtDebris>(); } if (body == null) { body = GetComponent <Rigidbody>(); } debris.OnSpawn += Spawn; Spawn(); }
private void Despawn(SgtDebris debris) { if (debris.OnDespawn != null) { debris.OnDespawn(); } if (debris.Pool == true) { SgtComponentPool <SgtDebris> .Add(debris); } else { SgtHelper.Destroy(debris.gameObject); } }
private SgtDebris Spawn(SgtDebris prefab) { if (prefab.Pool == true) { targetPrefab = prefab; var debris = SgtComponentPool <SgtDebris> .Pop(DebrisMatch); if (debris != null) { debris.transform.SetParent(transform, false); return(debris); } } return(Instantiate(prefab, transform)); }
private bool DebrisMatch(SgtDebris debris) { return(debris != null && debris.Prefab == targetPrefab); }
private void Despawn(SgtDebris debris, int index) { Despawn(debris); Debris.RemoveAt(index); }