public override void UpdateAction(AIStateController controller) { controller.SetFloat(TIMER_KEY, controller.getFloat(TIMER_KEY) + Time.deltaTime); if (controller.getFloat(TIMER_KEY) >= controller.getFloat(CUR_TIME_BEFORE_DIR_CHANGE_KEY)) { controller.SetFloat(STOP_TIMER_KEY, controller.getFloat(STOP_TIMER_KEY) + Time.deltaTime); if (controller.getFloat(STOP_TIMER_KEY) >= controller.getFloat(CUR_STOP_TIME_KEY)) { Resume(controller); } } else { DiscreteMovement.MoveDiscrete(controller.GetRigidbody(), GetCurMovingDirection(controller), speed); DiscreteMovement.RotateDiscrete(controller.GetRigidbody(), GetCurMovingDirection(controller)); } }
private void Collide(AIStateController controller) { controller.SetFloat(TIMER_KEY, controller.getFloat(CUR_TIME_BEFORE_DIR_CHANGE_KEY)); }