コード例 #1
0
    void OnTriggerEnter(Collider other)
    {
        if (characterBehavior == null)
        {
            return;
        }
        if (state == states.ON_START_JUMPING)
        {
            return;
        }
        if (characterBehavior.state == CharacterBehavior.states.DEAD ||
            characterBehavior.state == CharacterBehavior.states.CRASH ||
            characterBehavior.state == CharacterBehavior.states.FALL)
        {
            return;
        }

        if (state == states.ON_FLY)
        {
            return;
        }

        if (other.tag == "destroyable")
        {
            if (other.GetComponent <CharacterAnimationForcer>())
            {
                switch (other.GetComponent <CharacterAnimationForcer>().characterAnimation)
                {
                case CharacterAnimationForcer.animate.SLIDE: characterBehavior.Slide(); break;
                }
            }
        }

        if (other.tag == "floor" && state != states.ON_FLOOR)
        {
            state = states.ON_FLOOR;
            characterBehavior.OnFloor();
        }
        else if (other.tag == "floor" && !other.GetComponent <SliderFloor>())
        {
            if (transform.parent.gameObject.GetComponent <SliderEffect>())
            {
                transform.parent.gameObject.GetComponent <SliderEffect>().speed = 0;
            }
        }
        else
        {
            if (other.tag == "enemy")
            {
                if (characterBehavior.state == CharacterBehavior.states.JUMP ||
                    characterBehavior.state == CharacterBehavior.states.DOUBLEJUMP ||
                    characterBehavior.state == CharacterBehavior.states.SHOOT)
                {
                    MmoCharacter mmoCharacter = other.GetComponent <MmoCharacter> ();
                    if (mmoCharacter != null)
                    {
                        other.GetComponent <MmoCharacter>().Die();
                    }
                    else
                    {
                        other.gameObject.SendMessage("breakOut", other.gameObject.transform.position, SendMessageOptions.DontRequireReceiver);
                    }

                    characterBehavior.SuperJumpByBumped(1200, 0.5f, false);
                }
            }
        }
    }