public void SwitchTo(SpiderAIState spiderAIState) { if (State == spiderAIState) { return; } PreviousState = State; State = spiderAIState; animation.SwitchAnimationTo(spiderAIState); switch (spiderAIState) { case SpiderAIState.Idle: OnSwitchToIdle(); break; case SpiderAIState.Moving: OnSwitchToMoving(); break; case SpiderAIState.Chasing: OnSwitchToChasing(); break; case SpiderAIState.Attacking: OnSwitchToAttacking(); break; } }
public void SwitchAnimationTo(SpiderAIState state) { switch (state) { case SpiderAIState.Idle: animator.SetBool("moving", false); animator.SetBool("attacking", false); animator.SetBool("chasing", false); animator.SetBool("idle", true); break; case SpiderAIState.Moving: animator.SetBool("moving", true); animator.SetBool("attacking", false); animator.SetBool("idle", false); animator.SetBool("chasing", false); break; case SpiderAIState.Chasing: animator.SetBool("chasing", true); animator.SetBool("idle", false); animator.SetBool("attacking", false); animator.SetBool("moving", false); break; case SpiderAIState.Attacking: animator.SetBool("moving", false); animator.SetBool("attacking", true); animator.SetBool("idle", false); animator.SetBool("chasing", false); break; } }
private void Start() { State = SpiderAIState.Moving; PreviousState = State; attackSpeed = 0.8F; player = GameObject.Find("Player"); spiderRigidbody = GetComponent <Rigidbody2D>(); webCollider = transform.parent.GetComponent <CircleCollider2D>(); spiderWebRadius = transform.parent.GetComponent <CircleCollider2D>().radius; animation = GetComponentInChildren <SpiderAnimation>(); startPosition = transform.position; NewRandomTarget(); RotateTowardsTarget(); }