//public void DoUpdate() // decide what to do based on state and vars // update fsm state // //} private void Update() { //if (stopFrames-- > 0) { // moverController.MoveSpeed = 0; //} if (trackTarget && stopFrames-- <= 0) { moverController.Speed = moveSpeed; moverController.Direction = Vector2.zero; if (followTarget != null) { var followVector = (followTarget.transform.position - transform.position); if (followVector.magnitude <= proximityStop) { moverController.Speed = 0f; //Face(moverController.MoveDirection); //moverController.MoveDirection = Vector2.zero; moverController.Direction = followVector; } else { moverController.Direction = followVector; } } Face(moverController.Direction); } else { moverController.Speed = 0; moverController.Direction = Vector2.zero; } moverController.UpdateVelocity(); if (moverController.Speed > 0) { fsm.SetBool(AnimParams.ISMOVING, true); } else { fsm.SetBool(AnimParams.ISMOVING, false); } fsm.SetFloat(AnimParams.FACEDIRX, faceDir.x); fsm.SetFloat(AnimParams.FACEDIRY, faceDir.y); //enemy.DoUpdate(state, c, ref frameInfo); enemyAnimator.DoUpdate(enemy, ref frameInfo); enemyAudio.DoUpdate(enemy, ref frameInfo); frameInfo.Reset(); }