【Unity】Vector2、Vector3のint版が追加されていた話

2019/10/19DEVELOP, Unity

Vector2/Vector3構造体のInt版が欲しくなり、オリジナルのInt版構造体を書かれていたりしませんか?Unityはバージョン4.3辺りからの利用者ですが、古くからUnityで開発をしている人であればきっと作成していたことでしょう。そんな中、Int好きな貴方をUnityは見捨てなかった。バージョン2017.2からこれらのInt系構造体が追加されました。独自実装からのお別れ、素晴らしい。これでオレオレ構造体を作らずに済みます。

公式リファレンス

実は長い間、自作クラスを使用していたので、Unityバージョン2018.3まで追加されたことに気づかずにました。同じものを作るのは無駄なので、これを機に置き換えようと思います。

Vector2 ⇔ Vectot2int 相互変換について

Newする場合

// int版からfloat版へ
var aa = new Vector2Int(0, 0);
var bb = new Vector2(aa);
// float版からint版へ
var aa = new Vector2(0, 0);
var bb = new Vector2Int(aa);

代入する場合

Vector2Intの実装を読んでみた感じ、代入でもいけますね。

// int版からfloat版へ
var aa = new Vector2Int(0, 0)
Vector2 bb = aa;
 
// float版からint版へ
var aa = new Vector2(0, 0);
Vector2Int bb = aa;

個人的にはnewしたいので前者ですが、どちらでも好きな方を使って良いと思います。人によってコーディングスタイルは異なると思うので、そのプロジェクトにおいて統一感のあるルールになっていればどちらでも構わないと思います。

Posted by kazupon