Beispiel #1
0
 // Update is called once per frame
 void LateUpdate()
 {
     if (mActive && !particleSystem.IsAlive())
     {
         PoolController.ReleaseAuto(transform);
     }
 }
    IEnumerator DoRelease()
    {
        bool kinematic = false;

        if (rigidbody)
        {
            kinematic                 = rigidbody.isKinematic;
            rigidbody.velocity        = Vector3.zero;
            rigidbody.angularVelocity = Vector3.zero;
            rigidbody.isKinematic     = true;
        }

        if (releaseDelay > 0)
        {
            yield return(new WaitForSeconds(releaseDelay));
        }
        else
        {
            yield return(new WaitForFixedUpdate());
        }

        transform.position = Vector3.zero;
        transform.rotation = Quaternion.identity;

        if (rigidbody)
        {
            rigidbody.isKinematic = kinematic;
        }

        PoolController.ReleaseAuto(transform);
    }
 // Update is called once per frame
 void Update()
 {
     if (mSpawned && mActive)
     {
         if (!mAnimDat.isPlaying)
         {
             PoolController.ReleaseAuto(transform);
         }
     }
 }
Beispiel #4
0
        // Code that runs on entering the state.
        public override void OnEnter()
        {
#if POOLMANAGER
            Debug.LogError("Not implemented!");
#else
            if (!group.IsNone)
            {
                PoolController.ReleaseByGroup(group.Value, gameObject.Value.transform);
            }
            else
            {
                PoolController.ReleaseAuto(gameObject.Value.transform);
            }
#endif
            Finish();
        }