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]); }
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;; } }