Exemplo n.º 1
0
    protected virtual void OnEnable()
    {
        if (debris == null)
        {
            debris = GetComponent <SgtDebris>();
        }
        if (body == null)
        {
            body = GetComponent <Rigidbody>();
        }

        debris.OnSpawn += Spawn;

        Spawn();
    }
Exemplo n.º 2
0
    private void Despawn(SgtDebris debris)
    {
        if (debris.OnDespawn != null)
        {
            debris.OnDespawn();
        }

        if (debris.Pool == true)
        {
            SgtComponentPool <SgtDebris> .Add(debris);
        }
        else
        {
            SgtHelper.Destroy(debris.gameObject);
        }
    }
Exemplo n.º 3
0
    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));
    }
Exemplo n.º 4
0
 private bool DebrisMatch(SgtDebris debris)
 {
     return(debris != null && debris.Prefab == targetPrefab);
 }
Exemplo n.º 5
0
    private void Despawn(SgtDebris debris, int index)
    {
        Despawn(debris);

        Debris.RemoveAt(index);
    }