示例#1
0
    public override void Die(GameObject deadObject)
    {
        GameObject explosion = ObjectPoolsManager.GetInstance().GetObject(explosionPrefab);

        explosion.transform.position = deadObject.transform.position;
        explosion.transform.rotation = Quaternion.identity;
        isFinished = true;
    }
示例#2
0
 public bool TryPool()
 {
     if (!isPooled)
     {
         isPooled = ObjectPoolsManager.Instance().TryPool(gameObject);
     }
     gameObject.SetActive(!isPooled);
     return(isPooled);
 }
示例#3
0
    public GameObject Unpool(Vector3 position, Quaternion rotation)
    {
        GameObject obj = ObjectPoolsManager.Instance().Unpool(gameObject);

        obj.GetComponent <Poolable>().isPooled = false;
        obj.SetActive(true);
        obj.transform.position = position;
        obj.transform.rotation = rotation;
        return(obj);
    }
示例#4
0
    public GameObject Drop()
    {
        GameObject drop = dropTable.Drop();

        if (drop != null)
        {
            drop = ObjectPoolsManager.GetInstance().GetObject(drop);
            drop.transform.position = transform.position;
        }
        return(drop);
    }
示例#5
0
    public GameObject Spawn()
    {
        //Vector2 pos = GetRandomPositionInZone ();
        //if (pos == Vector2.zero)
        //return null;
        timer = 0f;
        GameObject instance = ObjectPoolsManager.GetInstance().GetObject(prefab);

        instance.transform.position = transform.position;
        return(instance);
    }
示例#6
0
    public virtual GameObject Spawn()
    {
        timer = 0f;
        //Jouer les sons .

        GameObject instance = ObjectPoolsManager.GetInstance().GetObject(prefab);

        instance.transform.position = transform.position;
        instance.layer = gameObject.layer;

        if (parentObject)
        {
            instance.transform.SetParent(parentObject.transform);
            if (useParentObjectLayer)
            {
                instance.layer = parentObject.layer;
            }
        }

        if (!instance.GetComponent <DirectionalMovement>())
        {
            instance.AddComponent <DirectionalMovement>();
        }
        if (!instance.GetComponent <PoolAfterXSeconds>())
        {
            instance.AddComponent <PoolAfterXSeconds>();
        }
        DirectionalMovement directionalMove = instance.GetComponent <DirectionalMovement>();
        PoolAfterXSeconds   dieAfter        = instance.GetComponent <PoolAfterXSeconds>();


        shootRay.origin    = transform.position;
        shootRay.direction = transform.forward;

        directionalMove.direction = shootRay.direction;
        directionalMove.speed     = speed;

        dieAfter.delay = range / (directionalMove.speed * 5);
        return(instance);
    }
示例#7
0
 public override void Execute(GameObject targetObject)
 {
     ObjectPoolsManager.GetInstance().PoolObject(targetObject);
 }
示例#8
0
 void Pool()
 {
     ObjectPoolsManager.GetInstance().PoolObject(eventsManager.gameObject);
 }
示例#9
0
 public override void Die(GameObject deadObject)
 {
     ObjectPoolsManager.GetInstance().PoolObject(deadObject);
     isFinished = true;
 }