Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class NetRotateSide : StateMachineBehaviour
- {
- [Header("State settings")]
- public string onExitDeactivate = "isHolding";
- private Quaternion qDir;
- private Transform transform = null;
- private SpaceShip ship = null;
- public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
- {
- //кешируем классы
- if (transform == null)
- {
- transform = animator.transform;
- ship = animator.GetComponent<SpaceShip>();
- }
- //выбираем случайно левую или правую сторону корабля
- qDir = Quaternion.LookRotation(ship.target.position - transform.position);
- if (Random.value < 0.5f)
- qDir *= Quaternion.Euler(0f, 90f, 0f);
- else
- qDir *= Quaternion.Euler(0f, -90f, 0f);
- ship.IsShooting = true;
- }
- public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
- {
- ship.RotateToDirection(qDir);
- //перезаряжаемся и атакуем
- ship.ReloadAndShoot();
- //это конечное состояние, поэтому переходов дальше нет
- }
- override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
- {
- animator.SetBool(onExitDeactivate, false);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement