【Unity】Vector2、Vector3のint版が追加されていた話
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したいので前者ですが、どちらでも好きな方を使って良いと思います。人によってコーディングスタイルは異なると思うので、そのプロジェクトにおいて統一感のあるルールになっていればどちらでも構わないと思います。