NinaLabo

個人ゲーム開発者の技術メモ

C#で Vector3 を Vector2 に変換するには

 
こういうVector3があるとして、
Vector3 three = new Vector3 (123);
 
zを無視してVector2に変換する場合、もちろんこう書けばできるけど、
Vector2 two = new Vector2 (three.xthree.y);
 
暗黙的にキャストしてくれるので、これで大丈夫です。
Vector2 two = three;
 
ちなみに、Vector2からVector3への変換も暗黙的にキャストしてくれます。
Vector3 three = new Vector2 (12);
 
でも、これはエラーになります。Vector3とVector2の加算はできないようです。
Vector2 offset = new Vector2 (11);
Vector3 result = new Vector3 (222) + offset;

 

こう書けばうまくいきます。
Vector3 result = new Vector3 (222) + (Vector3)offset;
 

参考文献 

スクリプトリファレンス - Vector2
http://docs.unity3d.com/ja/current/ScriptReference/Vector2.html