Пример #1
0
    public void ChangeAnimation(SlimeAniType aniType)
    {
        EndDieAnimation();
        Animation slimeAni  = _nowSelectedSlime.GetComponent <Animation>();
        int       clipCount = slimeAni.GetClipCount();

        if (aniType == SlimeAniType.ATTACK_02 && clipCount < (int)SlimeAniType.END)
        {
            return;
        }

        string[] aniNames = new string[clipCount];
        int      index    = 0;

        foreach (AnimationState state in slimeAni)
        {
            aniNames[index++] = state.clip.name;
        }
        int findIndex = FindNameInString(aniNames, "_Idle");

        if (findIndex == -1)
        {
            Debug.Log("Error : This Animation has no idle");
            return;
        }
        _nowSlimeIdleClipName = aniNames [findIndex];

        switch (aniType)
        {
        case SlimeAniType.WALK:
            findIndex = FindNameInString(aniNames, "_Walk");
            break;

        case SlimeAniType.DAMAGE:
            findIndex = FindNameInString(aniNames, "_Damage");
            break;

        case SlimeAniType.ATTACK_01:
            findIndex = FindNameInString(aniNames, "_Attack01");
            break;

        case SlimeAniType.ATTACK_02:
            findIndex = FindNameInString(aniNames, "_Attack02");
            break;
        }
        if (findIndex == -1)
        {
            Debug.Log("Error : This Animation has no clip");
            return;
        }
        slimeAni.CrossFade(aniNames[findIndex]);
    }
Пример #2
0
    void CheckButton()
    {
        switch (_buttonType)
        {
        case BUTTON_TYPE.NEXT:
        case BUTTON_TYPE.PREV:
            _manager.ChangeSlime(_buttonType);
            break;

        case BUTTON_TYPE.TYPE_A:
            _manager.ChangeType(SlimeType.TYPE_A);
            break;

        case BUTTON_TYPE.TYPE_B:
            _manager.ChangeType(SlimeType.TYPE_B);
            break;

        case BUTTON_TYPE.COLOR:
            _manager.ChangeColor();
            break;

        case BUTTON_TYPE.WALK:
        case BUTTON_TYPE.DAMAGE:
        case BUTTON_TYPE.ATTACK_01:
        case BUTTON_TYPE.ATTACK_02:
        {
            SlimeAniType type = (SlimeAniType)((int)_buttonType - (int)BUTTON_TYPE.WALK + 1);
            _manager.ChangeAnimation(type);
        }
        break;

        case BUTTON_TYPE.DIE:
            if (_manager.CheckDieAnimation())
            {
                _manager.DieAnimation();
            }
            break;;
        }
    }