public void SetAnim(EnemyAnimState enemyState) { ReSetPlayerState(); if (enemyState == _lastState) { return; } _lastState = enemyState; ReSetAnim(); switch (enemyState) { case EnemyAnimState.Walk: _animator.SetBool("isWalk", true); break; case EnemyAnimState.Attack: _animator.SetBool("isAttack", true); break; case EnemyAnimState.Dead: _animator.SetBool("isDie", true); break; } }
private void RightOnTriggerEnter2D(Collider2D PlayerDetector) { enemyRenderer.flipX = false; animState = EnemyAnimState.ATTACK; enemyAnim.SetInteger("AnimState", (int)EnemyAnimState.ATTACK); Instantiate(ArrowRight, ArrowSpawnR.position, ArrowRight.transform.rotation); Destroy(ArrowLeft.gameObject); }
public void ReSetPlayerState() { switch (_lastState) { case EnemyAnimState.Attack: case EnemyAnimState.Dead: //假设动画已经播放完成 if (_animator.GetCurrentAnimatorStateInfo(0).normalizedTime > 0.99f) { _animator.Update(0); _enemyAnimState = EnemyAnimState.Null; } break; } }
// Start is called before the first frame update void Start() { enemyAnimState = EnemyAnimState.WALK; enemyState = EnemyState.PATROL; }
// For calculating the rate //private float counter = 0.0f; // Start is called before the first frame update void Start() { enemyRenderer.flipX = true; animState = EnemyAnimState.IDLE; }
// Start is called before the first frame update void Start() { enemyAnimState = EnemyAnimState.WALK; }