Unityでコーディングを行う際に、Vector3を使用するたびに「using System.Numerics;」が自動的に挿入され、その結果「UnityEngine.」から始める必要が出てきて面倒に感じることがあります。この問題を解決するための方法について解説します。
1. System.NumericsとUnityEngine.Vector3の違い
まず、なぜ「System.Numerics」と「UnityEngine.Vector3」が衝突するのか理解することが重要です。System.Numericsは、.NETで提供される数学ライブラリで、Vector3のクラスも含まれています。UnityでもVector3が使用されていますが、こちらは「UnityEngine」名前空間に属します。
通常、Vector3を使いたい場合は、UnityEngine名前空間を指定する必要がありますが、System.Numericsがインポートされていると、どちらのVector3が使われているのかが不明確になります。
2. 「using System.Numerics;」を削除する方法
自動で「using System.Numerics;」が追加されることがある場合、いくつかの方法でそれを防ぐことができます。
- 手動でusingを削除: コードの先頭で「using System.Numerics;」が追加されている場合、手動で削除します。その後、「UnityEngine.Vector3」を使用する際に「UnityEngine.」を付けることを確認します。
- Visual Studioやエディタの設定を確認: 使用しているコードエディタやIDE(例えばVisual Studio)の設定で、不要なusingの追加を防ぐ設定を行うことができます。
3. コーディング時に常にUnityEngine.Vector3を使用する方法
「using System.Numerics;」を無効にしても、コーディング時に常に「UnityEngine.Vector3」を使いたい場合、明示的に「UnityEngine.」を記述することを癖にすると良いでしょう。
また、コード内で「using UnityEngine;」を忘れないようにし、他の名前空間からのVector3のインポートを避けます。これにより、コードが明確になり、意図しない衝突を防ぐことができます。
4. エディタの設定で自動インポートを無効にする方法
Visual Studioや他のエディタでは、特定のusingディレクティブを自動的にインポートする機能があります。この機能を無効にすることで、不要なusing文が追加されることを防ぐことができます。
- Visual Studioの場合: 設定メニューから「エディタ設定」→「コード補完」→「自動インポートの無効化」を選択します。
- Riderなどの他のエディタ: 同様に、エディタ設定で「自動インポート」機能を無効にします。
まとめ
Unityで「using System.Numerics;」が自動で挿入される問題は、Vector3の衝突を避けるために、エディタの設定や手動での修正を行うことで解決できます。「UnityEngine.Vector3」を明示的に使うことや、不要なusingを削除することを意識することで、スムーズにコーディングができるようになります。


コメント