public override void UpdateAction() { switch (state) { case StateType.TargetWalk: StellaMove.AdjustWalkResult res = StellaMove.AdjustWalk(targetX, StellaMove.MoveSpeed); if (res == StellaMove.AdjustWalkResult.Reach) { state = StateType.Action; StellaMove.myVelocity = Vector3.zero; ToAction(); } else if (res == StellaMove.AdjustWalkResult.Abort) { // 移動できなければ歩きに戻します StellaMove.myVelocity = Vector3.zero; StellaMove.instance.ChangeAction(StellaMove.ActionType.NaeWalk); } break; case StateType.Action: StellaMove.myVelocity.x = 0f; StellaMove.instance.Move(); break; } }
public override void UpdateAction() { if (state != StateType.BackOff) { base.UpdateAction(); } else { // 調整を終えて、苗を下す if (StellaMove.AdjustWalk(targetX, StellaMove.MoveSpeed) != StellaMove.AdjustWalkResult.Continue) { ToWalk(); } } }
public override void UpdateAction() { if (state != StateType.BackOff) { base.UpdateAction(); } else { // 調整を終えて、苗を下す if (StellaMove.AdjustWalk(targetX, StellaMove.MoveSpeed) != StellaMove.AdjustWalkResult.Continue) { StellaMove.myVelocity.x = 0; StellaMove.naeActable.SetCollider(true); StellaMove.naeActable = null; StellaMove.instance.ChangeAction(StellaMove.ActionType.Walk); } } }
/// <summary> /// 行動 /// </summary> public override void UpdateAction() { switch (state) { case StateType.Turn: if (StellaMove.chrController.isGrounded) { // 方向を確認 if (StellaMove.instance.Turn()) { state = afterTurnState; } } else { // 重力確認 StellaMove.instance.Gravity(); StellaMove.instance.Move(); } break; case StateType.ToTarget: // 移動 if (StellaMove.AdjustWalk(targetX, StellaMove.MoveSpeed) == StellaMove.AdjustWalkResult.Reach) { state = StateType.Wait; // 星が飛び去る方向と向きが逆の時、方向転換 if (StellaMove.forwardVector.x * Mathf.Sign(Goal.ClearFlyX) < 0f) { StellaMove.instance.StartTurn(-StellaMove.forwardVector.x); afterTurnState = StateType.Wait; state = StateType.Turn; } } break; } }
public override void UpdateAction() { switch (state) { case StateType.TargetWalk: StellaMove.AdjustWalkResult res = StellaMove.AdjustWalk(targetX, StellaMove.MoveSpeed); if ((res == StellaMove.AdjustWalkResult.Reach) || (res == StellaMove.AdjustWalkResult.Abort)) { state = StateType.Action; StellaMove.myVelocity = Vector3.zero; ToAction(); } /* * else if (res == StellaMove.AdjustWalkResult.Abort) * { * // 移動できなければ歩きに戻します * StellaMove.myVelocity = Vector3.zero; * * if (StellaMove.NowAction == StellaMove.ActionType.LiftUp) * { * ToWalk(); * } * else * { * StellaMove.instance.ChangeAction(StellaMove.ActionType.NaeWalk); * } * } */ break; case StateType.Action: StellaMove.myVelocity.x = 0f; StellaMove.instance.Move(); break; } }
/// <summary> /// 行動 /// </summary> public override void UpdateAction() { switch (state) { case StateType.Turn: if (StellaMove.ChrController.isGrounded) { // 方向を確認 if (StellaMove.instance.Turn()) { state = afterTurnState; } } else { // 重力確認 StellaMove.instance.Gravity(); StellaMove.instance.Move(); } break; case StateType.ToTarget: // 移動 if (StellaMove.AdjustWalk(targetX, StellaMove.MoveSpeed) == StellaMove.AdjustWalkResult.Reach) { state = StateType.Wait; // 星が飛び去る方向と向きが逆の時、方向転換 if (StellaMove.forwardVector.x * Mathf.Sign(Goal.ClearFlyX) < 0f) { StellaMove.instance.StartTurn(-StellaMove.forwardVector.x); afterTurnState = StateType.Wait; state = StateType.Turn; } } break; case StateType.ToTargetAir: if (isTurn) { isTurn = !StellaMove.instance.Turn(); } Vector3 targetPosition = Goal.StarPosition + StageManager.GoalToStellaOffset; targetPosition.x = Goal.StarPosition.x + Mathf.Sign(Goal.ClearFlyX) * StageManager.GoalToStellaOffset.x; targetPosition.z = 0f; startTime += Time.fixedDeltaTime; float t = Mathf.Clamp01(startTime / ToCatchAirSeconds); StellaMove.instance.transform.position = Vector3.Lerp( StellaMove.instance.transform.position, targetPosition, t ); if (t >= 1f) { OffsetFromStar = StellaMove.HoldPosition - Goal.StarPosition; state = StateType.WaitAir; } Log($" target={targetPosition} / StarPos={Goal.StarPosition} / goalToStellaOffset={StageManager.GoalToStellaOffset}"); break; } }