예제 #1
0
    void SetPhysicsActive(bool aActive, bool excludeCollision)
    {
        if (rigidbody)
        {
            if (!mSpawnRigidBodyKinematic)
            {
                rigidbody.isKinematic = !aActive;
            }

            if (aActive || !excludeCollision)
            {
                rigidbody.detectCollisions = aActive;
            }
        }

        if (collider && (aActive || !excludeCollision))
        {
            collider.enabled = aActive;
        }

        if (mGravCtrl)
        {
            mGravCtrl.enabled = aActive;
        }

        if (animator)
        {
            if (aActive)
            {
                if (animator.isPaused)
                {
                    animator.Resume();
                }
            }
            else
            {
                if (animator.isPlaying)
                {
                    animator.Pause();
                }
            }
        }

        if (mBodyCtrl)
        {
            mBodyCtrl.enabled = aActive;
        }

        for (int i = 0, max = mDamageTriggers.Length; i < max; i++)
        {
            mDamageTriggers[i].gameObject.SetActive(aActive);
        }
    }
예제 #2
0
    protected void SetPhysicsActive(bool aActive, bool excludeCollision)
    {
        if (rigidbody)
        {
            if (!mSpawnRigidBodyKinematic)
            {
                rigidbody.isKinematic = !aActive;
            }

            if (aActive || !excludeCollision)
            {
                rigidbody.detectCollisions = aActive;
            }
        }

        if (collider && (aActive || !excludeCollision))
        {
            collider.enabled = aActive;
        }

        if (mGravCtrl)
        {
            mGravCtrl.enabled = aActive;
        }

        if (animator)
        {
            if (aActive)
            {
                if (animator.isPaused)
                {
                    animator.Resume();
                }
            }
            else
            {
                if (animator.isPlaying)
                {
                    animator.Pause();
                }
            }
        }

        if (mBodyCtrl)
        {
            mBodyCtrl.enabled = aActive;
        }

        SetDamageTriggerActive(aActive);
    }