回答編集履歴
2
コードの表記を微調整(thisを省略)
answer
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
void Update()
|
8
8
|
{
|
9
|
-
characterController.Move(
|
9
|
+
characterController.Move(Velocity);
|
10
10
|
|
11
11
|
// 入力状態を2Dベクトルで表現してみました
|
12
12
|
// もし相反する入力...たとえばWとSが同時押しされた場合は
|
@@ -62,14 +62,14 @@
|
|
62
62
|
|
63
63
|
// 直前のフレームでは入力がなく、現フレームで入力があったのなら
|
64
64
|
// 停止した状態から走り始めたと判断できるでしょうし...
|
65
|
-
if (inputState && !
|
65
|
+
if (inputState && !previousInputState)
|
66
66
|
{
|
67
67
|
animator.SetBool("Run", true);
|
68
68
|
}
|
69
69
|
|
70
70
|
// 逆に直前のフレームでは入力があり、現フレームで入力がないのなら
|
71
71
|
// 走っている状態から停止状態に移行したと判断できるでしょう
|
72
|
-
if (!inputState &&
|
72
|
+
if (!inputState && previousInputState)
|
73
73
|
{
|
74
74
|
animator.SetBool("Run", false);
|
75
75
|
}
|
1
回転方法の選択肢を追加
answer
CHANGED
@@ -53,6 +53,10 @@
|
|
53
53
|
// LookAtを使う手もあるでしょう
|
54
54
|
// transform.LookAt(transform.position + new Vector3(input.x, 0.0f, input.y));
|
55
55
|
|
56
|
+
// 他にも、transform.forwardに向きをセットしてやれば
|
57
|
+
// キャラクターがその方角を向くはずです
|
58
|
+
// transform.forward = new Vector3(input.x, 0.0f, input.y);
|
59
|
+
|
56
60
|
characterController.Move(transform.forward * MoveSpeed * Time.deltaTime);
|
57
61
|
}
|
58
62
|
|