質問編集履歴

4

誤字

2023/03/10 01:50

投稿

matsutake1111
matsutake1111

スコア1

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,10 @@
8
8
  TPSカメラでキャラクター周りを回転します。
9
9
  キャラクター自身の移動方向は、カメラの正面方向に合わせて前進し、横に移動するときはキャラクターのみ横向きに回転します。
10
10
 
11
- カメラはキャラクターの子オブジェクトにしています。
11
+ キャラクターの構成
12
+  ・プレイヤー
13
+    ・モデル(子)
14
+    ・カメラ(子)
12
15
 
13
16
 
14
17
  上記を実装したところ、カメラを左右に回転させたときにキャラクターの移動が速くなっているように見えました。
@@ -23,22 +26,22 @@
23
26
  ```c#
24
27
  /// 移動入力
25
28
  private void MoveInput()
26
- {
29
+ {
27
- var horizontal = Input.GetAxis("Horizontal");
30
+  var horizontal = Input.GetAxis("Horizontal");
28
- var vertical = Input.GetAxis("Vertical");
31
+  var vertical = Input.GetAxis("Vertical");
29
32
 
30
33
 
31
- if (Mathf.Abs(horizontal) > 0 || Mathf.Abs(vertical) > 0)
34
+ if (Mathf.Abs(horizontal) > 0 || Mathf.Abs(vertical) > 0)
32
- {
35
+ {
33
36
  animator.SetBool("IsRun", true);
34
37
  moveVector = new Vector3(horizontal, 0, vertical);
35
- }
38
+ }
36
- else
39
+ else
37
- {
40
+ {
38
- animator.SetBool("IsRun", false);
41
+ animator.SetBool("IsRun", false);
39
- moveVector = Vector2.zero;
42
+ moveVector = Vector2.zero;
40
- }
41
43
  }
44
+ }
42
45
 
43
46
 
44
47
  /// 移動処理

3

コード修正

2023/03/10 01:41

投稿

matsutake1111
matsutake1111

スコア1

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  ### 該当のソースコード
22
22
 
23
- ```ここに言語名を入力
23
+ ```c#
24
24
  /// 移動入力
25
25
  private void MoveInput()
26
26
  {

2

コード追加

2023/03/10 01:40

投稿

matsutake1111
matsutake1111

スコア1

test CHANGED
File without changes
test CHANGED
@@ -21,6 +21,27 @@
21
21
  ### 該当のソースコード
22
22
 
23
23
  ```ここに言語名を入力
24
+ /// 移動入力
25
+ private void MoveInput()
26
+ {
27
+ var horizontal = Input.GetAxis("Horizontal");
28
+ var vertical = Input.GetAxis("Vertical");
29
+
30
+
31
+ if (Mathf.Abs(horizontal) > 0 || Mathf.Abs(vertical) > 0)
32
+ {
33
+ animator.SetBool("IsRun", true);
34
+ moveVector = new Vector3(horizontal, 0, vertical);
35
+ }
36
+ else
37
+ {
38
+ animator.SetBool("IsRun", false);
39
+ moveVector = Vector2.zero;
40
+ }
41
+ }
42
+
43
+
44
+ /// 移動処理
24
45
  private void MoveUpdate(Vector3 vec)
25
46
  {
26
47
  var cameraForward = Vector3.Scale(cameraTransform.forward, new Vector3(1, 0, 1)).normalized;
@@ -40,6 +61,50 @@
40
61
  characterController.Move(playerForward * moveSpeed);
41
62
  }
42
63
 
64
+ /// カメラ入力
65
+ private void MouseCameraInput()
66
+ {
67
+ IsTap = false;
68
+
69
+ if (Input.GetMouseButtonUp(0))
70
+ {
71
+ mousePos = Vector2.zero;
72
+
73
+ if (isDraging)
74
+ {
75
+ isDraging = false;
76
+ }
77
+ else
78
+ {
79
+ IsTap = true;
80
+ return;
81
+ }
82
+ }
83
+
84
+ if (Input.GetMouseButtonDown(0))
85
+ {
86
+ downMousePos = Input.mousePosition;
87
+ downDistance = 0.0f;
88
+ }
89
+
90
+ if (Input.GetMouseButton(0))
91
+ {
92
+ mousePos = Input.mousePosition;
93
+ downDistance = (mousePos - downMousePos).magnitude;
94
+
95
+ if (downDistance >= dragingDistance)
96
+ {
97
+ if (!isDraging)
98
+ {
99
+ OnCameraBegin(mousePos);
100
+ isDraging = true;
101
+ }
102
+
103
+ OnCameraMove(mousePos);
104
+ }
105
+ }
106
+
107
+ /// カメラ処理
43
108
  private void OnCameraMove(Vector2 pos)
44
109
  {
45
110
  var currLookPos = pos;

1

補足

2023/03/10 01:36

投稿

matsutake1111
matsutake1111

スコア1

test CHANGED
File without changes
test CHANGED
@@ -8,9 +8,13 @@
8
8
  TPSカメラでキャラクター周りを回転します。
9
9
  キャラクター自身の移動方向は、カメラの正面方向に合わせて前進し、横に移動するときはキャラクターのみ横向きに回転します。
10
10
 
11
+ カメラはキャラクターの子オブジェクトにしています。
12
+
13
+
11
14
  上記を実装したところ、カメラを左右に回転させたときにキャラクターの移動が速くなっているように見えました。
15
+
16
+ どこの処理が間違っているのか
12
17
  原因がわからず、今回質問をさせて頂きました。
13
-
14
18
  何卒、よろしくお願いいたします。
15
19
 
16
20