オブジェクト
UnityEngine.Object is the base class for all objects the Editor can reference from fields in the Inspector window.
読み終わるまでの所要時間 6 分最終更新 1ヶ月前
UnityEngine.ObjectUnityEngine.Object
Inspector ウィンドウのオブジェクトフィールドの例。オブジェクトピッカーは、フィールドの右側にある丸いアイコンです。
通常は、独自のカスタムクラスの から直接継承するよりも、目的に合わせて設計されたクラスから継承します。 例:
Object- 例えば、に追加して、
GameObjectの動作を制御したり関連する機能を提供したりするカスタムコンポーネントを記述したい場合は、GameObjectを継承します。MonoBehaviour - シリアル化されたデータを保存できるカスタムアセットを作成したい場合は、を継承します。
ScriptableObject
これらはどちらも を継承していますが、目的に合わせて追加の機能を提供します。
UnityEngine.Objectノート: は .NET の基本クラスである とは異なります。名前が競合しないようにデフォルトのスクリプトテンプレートには含まれていません。ただし、Inspector で割り当てる必要のないクラスを作成したい場合は、.NET の を継承できます。
UnityEngine.ObjectSystem.ObjectSystem.ObjectObjectUnityEngine.Object の特殊な動作
UnityEngine.Object
Unity は現在、 のインスタンスでの C# クラスの使用をサポートしていません。そのため、ロードされたアセットの参照に は使用しないでください。 クラスの詳細については、Microsoft の WeakReference に関するドキュメント を参照してください。
UnityEngine.ObjectWeakReferenceWeakReferenceWeakReferenceUnity C# と Unity C++ は UnityEngine オブジェクトを共有
Object.Destroy や Object.DestroyImmediate などのメソッドを使用して から派生したオブジェクトを破棄すると、Unity は C++ の対応するオブジェクトを破棄 (アンロード) します。ガベージコレクターがメモリを管理しているため、明示的な呼び出しで C# オブジェクトを破棄することはできません。マネージオブジェクトへの参照がなくなると、ガベージコレクターがオブジェクトを回収して破棄します。
UnityEngine.Object破棄された にアプリケーションが再びアクセスしようとする場合、Unity はほとんどの型のネイティブの対応するオブジェクトを再作成します。この再作成動作の 2 つの例外は、MonoBehaviour と ScriptableObjects です。これらは一度破棄されると、リロードできません。
UnityEngine.ObjectMonoBehaviourScriptableObjectMonoBehaviourScriptableObjectnull?? 演算子と ?. 演算子はオーバーロードできないため、 から派生したオブジェクトとは互換性がありません。マネージオブジェクトがまだ存在するときに、破棄された や に対してこれらの演算子を使用しても、等式演算子や不等式演算子と同じ結果は得られません。
UnityEngine.ObjectMonoBehaviourScriptableObject