質問編集履歴
4
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -103,7 +103,20 @@
|
|
103
103
|
transform.position = target.position;
|
104
104
|
transform.position -= Vector3.forward * distance;
|
105
105
|
```
|
106
|
+
追記。
|
107
|
+
クォータニオンとベクトルの掛け算について考えました。
|
108
|
+
・質問2-1。
|
109
|
+
this.transform.rotationにベクトルdirを掛けたものは、
|
110
|
+
```C#
|
111
|
+
this.transform.rotation * dir
|
112
|
+
```
|
113
|
+
「thisのローカル軸を基準に伸びるベクトルdir」という認識で合っていますか?
|
114
|
+
そう考えると、
|
115
|
+
・質問2-2。
|
116
|
+
「『Rotation(クォータニオン) * dir(ベクトル)』は、『Rotationの回転軸を基準に伸びるベクトルdir』」
|
117
|
+
という認識で合っていますか?
|
106
118
|
|
119
|
+
|
107
120
|
・質問3。
|
108
121
|
質問2の時点のコードが理解できていないので、さらにその先もわからないのですが、
|
109
122
|
```C#
|
3
文章整形
title
CHANGED
File without changes
|
body
CHANGED
@@ -79,7 +79,7 @@
|
|
79
79
|
thisのY軸の角度から、targetのY軸の角度に変化していくものかと思います。
|
80
80
|
また、Heightに関する処理のコードも理解できていると思います。
|
81
81
|
|
82
|
-
### 質問
|
82
|
+
### 質問
|
83
83
|
|
84
84
|
・質問1。
|
85
85
|
理解しているつもりですが、念のため質問です。
|
2
文章整形
title
CHANGED
File without changes
|
body
CHANGED
@@ -75,7 +75,8 @@
|
|
75
75
|
```C#
|
76
76
|
var currentRotation = Quaternion.Euler(0, currentRotationAngle, 0);
|
77
77
|
```
|
78
|
+
currentRotationは、Y軸周りの角度に関して、
|
78
|
-
|
79
|
+
thisのY軸の角度から、targetのY軸の角度に変化していくものかと思います。
|
79
80
|
また、Heightに関する処理のコードも理解できていると思います。
|
80
81
|
|
81
82
|
### 質問。
|
@@ -93,8 +94,10 @@
|
|
93
94
|
transform.position -= currentRotation * Vector3.forward * distance;
|
94
95
|
```
|
95
96
|
まず、1行目は、thisをtargetの位置に持ってきているかと思いますが、
|
96
|
-
ここから、2行目で、「currentRotation * Vector3.forward * distance」の分だけ
|
97
|
+
ここから、2行目で、「currentRotation * Vector3.forward * distance」の分だけ
|
98
|
+
移動させているかと思うのですが、
|
97
|
-
Vector3.forward * distanceに、左からcurrentRotation * を掛けているのが、
|
99
|
+
Vector3.forward * distanceに、左からcurrentRotation * を掛けているのが、
|
100
|
+
どのようなベクトルになるかがわかりません。
|
98
101
|
仮にコードが下記であれば、イメージは付きます。
|
99
102
|
```C#
|
100
103
|
transform.position = target.position;
|
1
文章整形
title
CHANGED
File without changes
|
body
CHANGED
@@ -107,7 +107,8 @@
|
|
107
107
|
transform.LookAt(target);
|
108
108
|
```
|
109
109
|
これのコードをコメントアウトするのとしないのとでは、カメラの動きが大きく変わる理由がわかりません。
|
110
|
-
「transform.LookAt(target);」これ自体のコードは、
|
110
|
+
「transform.LookAt(target);」これ自体のコードは、
|
111
|
+
thisのZ方向の向きをtargetに向かせるだけの処理かと思うのですが、
|
111
112
|
これをコメントアウトするのとしないのとでは、なぜこんなにも処理が大きく変わってしまうのでしょうか?
|
112
113
|
|
113
114
|
・ゲーム実行前。
|
@@ -118,12 +119,13 @@
|
|
118
119
|
・LookAtをコメントアウトしてゲームを実行した場合。
|
119
120
|
その場で、targetの方向に向きました。
|
120
121
|
currentRotationでは、thisのZ軸の向きを、targetのZ軸の向きに合わせていたかと思うのですが、
|
121
|
-
thisのZ軸の向きがtargetのZ軸の向きと合っていないというのも、
|
122
|
+
thisのZ軸の向きがtargetのZ軸の向きと合っていないというのも、
|
123
|
+
質問2に関係することかと思いますが、わかりません。
|
122
124
|

|
123
125
|
|
124
126
|
・LookAtを有効にした場合。
|
125
127
|
図のオレンジ色の矢印の軌跡をゆっくり描いて最終的に図のようになりました。
|
126
128
|
今度はthisのZ軸の向きがtargetのZ軸の向きに合っているようです。
|
127
|
-
ただ、thisのZ方向の向きをtargetに向かせるだけの「transform.LookAt(target);」の処理を
|
129
|
+
ただ、thisのZ方向の向きをtargetに向かせるだけの「transform.LookAt(target);」の処理を
|
128
|
-
なぜ急にオレンジ色の矢印の軌跡移動をするようになったのかわかりません。
|
130
|
+
有効にしただけのはずなのに、なぜ急にオレンジ色の矢印の軌跡移動をするようになったのかわかりません。
|
129
131
|

|