Vector3から方向成分を排除する

[csharp]
Vector3 forceDirection;
forceDirection = new Vector3(forceDirection.x, 0, forceDirection.z);
[/csharp]
Vector3オブジェクトから、その1方向の構成要素を排除したい場合がある。
そんな場合にはつい下記のように書きたくなるが、これは間違いだ。
[csharp]
Vector3 forceDirection;
forceDirection.y = 0;
[/csharp]
Vector3オブジェクトはVector3オブジェクトなので、その構成要素に代入式で直接値を入れることは誤りなのだ。
よって最初の例のように必要な要素のみを持った新しいVector3オブジェクトを作成して、それを元のVector3オブジェクトに代入してやれば良い。

 

みっちょ

SALON Doluce 代表。ハッカーでカウンセラー、占い師でカメラマン、その他あらゆる顔を持つ変な人。キッズプログラミング講師、パソコン修理、カウンセリングなど喜んで承ります。お気軽にお声掛けください!