回答編集履歴

1

dirをdir・forwardで割ることについて追記

2019/08/15 23:05

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -35,3 +35,41 @@
35
35
 
36
36
 
37
37
  ![図3](14e9457a850ced859d23982fc4ce776c.gif)
38
+
39
+
40
+
41
+ #追記
42
+
43
+
44
+
45
+ コメントで申し上げた`normalizedDir`をnDir、`Camera.main.transform.forward`をforward、2つのベクトルの間の角度をθとすると、これらは下図のような関係になります。
46
+
47
+
48
+
49
+ ![図4](6258ae7eab7ed8a45724045d28f417d1.png)
50
+
51
+
52
+
53
+ nDirとforwardの内積の値は |nDir||forward|cosθ ですが、nDirもforwardも長さが1なので値はcosθです。
54
+
55
+ 斜辺と隣辺の角度がθの直角三角形を作ると、cosθは「斜辺に対する隣辺の長さの比」と見ることもできますので、cosθは下図の部分の長さを表しているとも言えるでしょう。
56
+
57
+
58
+
59
+ ![図5](eacb48df1d787a85ee7629880cddf6f3.png)
60
+
61
+
62
+
63
+ ここでnDirをcosθで割ってみると、向きがnDirと同じで長さが1/cosθのベクトルができます。これを仮にvとすると、vとforwardの内積は |v||forward|cosθ であり、|v|は1/cosθ、|forward|は1なので内積の値は1になるはずです。つまり、forward方向の成分が1のベクトルを作ったと言えるでしょう。
64
+
65
+
66
+
67
+ ![図6](8de3e839882716ebc57a08f4fb2b4084.gif)
68
+
69
+
70
+
71
+ そしてオブジェクトをv * 3だけ移動させてみます。すると下図のように、forward方向へはちょうど3移動しているのがお分かりいただけるでしょうか?
72
+
73
+
74
+
75
+ ![図7](5f88979b94852e39dd2efc1571a4ac24.gif)