次の項目は別ページに分割しました。
ゲームオブジェクト
Unity のシーンで用いられる全ての「エンティティ」 (実体/存在) の基本クラス
公式サイト:
UnityEngine.GameObject | Unity スクリプトリファレンス [公式]
使い方
参考:
ゲームオブジェクトの基礎 (生成/削除/非表示など) から公式リファレンスまで解説決定版! | XR-Hub
コンポーネント
ゲームオブジェクトに付与される全てのインスタンス実装の基本クラス
ドキュメント:
UnityEngine.Component | Unity スクリプトリファレンス [公式]
表示/非表示を切り替える
オブジェクトを非表示にするには次のいずれかを用いる。
- SetActive
- Renderer.enabled
- マテリアルを変更してシェーダー上で非表示にする
参考:
SetActive と enabled の違い – Qiita
ゲームオブジェクトを画面から表示されないようにする – teratail
オブジェクトの有効/無効を切り替える
Alt
+ Shift
+ A
:選択したオブジェクトの有効/無効を切り替える
参考:
Is there a keyboard shortcut for setting an object active / inactive? – Unity Answers
複製する
参考:
How to copy object to paste at same position? – Stack Overflow
SetActive
ドキュメント:
GameObject.SetActive | Unity スクリプトリファレンス [公式]
参考:
SetActive を使ってゲームオブジェクトを表示/非表示にする方法 | FREE SWORDER
オブジェクトを SetActive を使って表示/非表示にする | Unishar
オブジェクトを隠す、再表示する方法/gameObject.SetActive の使い方 | すなぎつ
How do I de/activate a gameobject of the hierarchy ingame? – Unity Forum
gameObject.SetActive not working? – Unity Forum
gameObject.SetActive(true); Not working – Unity Answers
activeSelf / activeInHierarchy
activeSelf
:自身が有効かどうかを表すactiveInHierarchy
:自身と自身が属する上位のオブジェクト全てが有効な場合に有効となる
参考:
GameObject の active 状態を取得するときの注意点 | TECH Projin
ゲームオブジェクトを非アクティブにする | Unity マニュアル [公式]
コンポーネントを追加する
ドキュメント:
GameObject.AddComponent | Unity スクリプトリファレンス [公式]
参考:
AddComponent について調べてみた – Qiita
AddComponent に気をつけろ! | テラシュールブログ
スクリプトでゲームオブジェクトを作成する
var ob = new GameObject("MyObject_001");
ob.transform.parent = parent.transform;
Code language: C# (cs)
参考:
How do you create an empty gameobject in code and add it to the scene? – Unity Answers
スクリプトでオブジェクトの有効/無効を切り替える
参考:
Enable / Disable Gameobject on hierarchy when the scene start – Stack Overflow
Activating/Deactivating game objects in hierarchy based on their names – Stack Overflow
ヒエラルキーでオブジェクトの有効/無効を切り替える
参考:
nmxi/EDITOR_HierarchyTogles.cs – Hierarchy のオブジェクト名の左側にオブジェクトの有効化/無効化のボタンを表示 – GitHub Gist
オブジェクトを破壊する (Destroy)
- Destroy:ゲーム実行中にオブジェクトを破壊する
- DestroyImmediate:エディター (編集モード) でオブジェクトを破壊する
if (Application.isPlaying) {
Destroy(obj);
} else {
DestroyImmediate(obj);
}
Code language: C# (cs)
ドキュメント:
Object.Destroy | Unity スクリプトリファレンス [公式]
Object.DestroyImmediate | Unity スクリプトリファレンス [公式]
参考:
Destroy で不要なゲームオブジェクトを削除 | エクスプラボ
Destroy() doesn’t create NullReferenceExeption? – Unity Forum
object destruction and null links – Stack Overflow
インスタンス ID を取得する
ドキュメント:
Object.GetInstanceID | Unity スクリプトリファレンス [公式]
参考:
インスタンス ID から Object を探す | うにてぃブログ
インスタンス生成時に ID を与える | Unity トライアル G
null 合体演算子/null 条件演算子
Unity のゲームオブジェクトで使われる null
は C# のnull
ではないため、ゲームオブジェクトに対して「null 合体演算子」、及び「null 条件演算子」は使用できない。
null
であった場合に、C#の null
に変換するキャストを使用する。
public static T NullCast<T>(this T obj) where T : UnityEngine.Object
=> (obj != null) ? obj : (System.Object)null;
GetComponent<Rigidbody>().NullCast()?.AddForce(force, mode);
Code language: C# (cs)
参考:
GetCompornent() で null 条件演算子が使えない – Qiita
null 合体演算子と null 条件演算子についてかるくまとめてみた | はなちるのマイノート
GameObject が削除されて null になったかどうかは null 合体演算子では確認できない | コガネブログ
RectTransform をなるはやで取得したい – Qiita
SetActiveRecursively
参考:
GameObject の非表示2つの方法と削除 | ハマケン100%開発
GameObject.SetActiveRecursively (true) obsolete? – Stack Overflow
シーン
ドキュメント:
GameObject.scene | Unity スクリプトリファレンス [公式]
参考:
GameObject がどのシーンにあるのかがプロパティ経由で取得できることを今更ながら知ったんだ | 徳島ゲーム開発ごっこ 技術ブログ
シングルトン
動画:
参考:
シングルトンなゲーム管理オブジェクトの作り方 | Unity でゲームを作ろう!
シングルトンを使って1つしか存在しないことを保証すると良いことがあるらしい | KuroMikan Games
MonoBehaviour をシングルトンにする方法 | nobushiueshi
MonoBehaviour クラスをシングルトン化する | NegativeMind
破壊のタイミング
参考:
コンポーネントが Destroy されても、オブジェクトが GC で回収されないかもしれない話 – Qiita
Destory が実行されるタイミングは? | KuroMikan Games
破壊されているか判定したい
参考:
オブジェクトが消えた瞬間を察知してイベントを受け取る | わたぶろぐ
How to check if a GameObject is being destroyed? – Unity Forum
How to detect if a GameObject has been destroyed? – Unity Answers
Is there a way to check if a GameObject has been destroyed? – Stack Overflow
How to find the script that destroys my object? – Stack Overflow
Is there a way to check if a GameObject within a list of GameObjects is destroyed? – Stack Overflow
Neither null nor type check detecting destroyed object / component? – Stack Overflow
SetParent でエラーが発生する
参考:
GameObject を SetParent するとエラーになる件 | NinaLabo
Setting the parent of a transform which resides in a prefab – Unity Forum
Can’t change parent of transform that resides in an instance of a prefab at runtime – Unity Forum
まとめ
Scene Query
リポジトリ:
参考: