次の項目は別ページに分割しました。
ゲームオブジェクト
Unity のシーンで用いられる全ての「エンティティ」 (実体/存在) の基本クラス
公式サイト:
UnityEngine.GameObject | Unity スクリプトリファレンス [公式]
目次
- 1 使い方
- 2 コンポーネント
- 3 表示/非表示を切り替える
- 4 オブジェクトの有効/無効を切り替える
- 5 SetActive
- 6 activeSelf / activeInHierarchy
- 7 GameObject.AddComponent
- 8 スクリプトでゲームオブジェクトを作成する
- 9 スクリプトでオブジェクトの有効/無効を切り替える
- 10 ヒエラルキーでオブジェクトの有効/無効を切り替える
- 11 Destroy / DestroyImmediate
- 12 インスタンス ID を取得する
- 13 子オブジェクトを取得する
- 14 Find
- 15 null 合体演算子/null 条件演算子
- 16 SetActiveRecursively
使い方
参考:
ゲームオブジェクトの基礎 (生成/削除/非表示など) から公式リファレンスまで解説決定版! | 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
SetActive
参考:
SetActive を使ってゲームオブジェクトを表示/非表示にする方法 | FREE SWORDER
オブジェクトを SetActive を使って表示/非表示にする | Unishar
Unity でオブジェクトを隠す、再表示する方法/gameObject.SetActive の使い方 | すなぎつ
GameObject.SetActive | Unity スクリプトリファレンス [公式]
How do I de/activate a gameobject of the hierarchy ingame? – Unity Forum
activeSelf / activeInHierarchy
activeSelf
:自身が有効かどうかを表すactiveInHierarchy
:自身と自身が属する上位のオブジェクト全てが有効な場合に有効となる
参考:
GameObject の active 状態を取得するときの注意点 | TECH Projin
ゲームオブジェクトを非アクティブにする | Unity マニュアル [公式]
GameObject.AddComponent
参考:
Unity でスクリプトからコンポーネントを取り付ける | かめくめ
Unity の AddComponent について調べてみた – Qiita
AddComponent に気をつけろ! | テラシュールブログ
GameObject.AddComponent | Unity スクリプトリファレンス [公式]
スクリプトでゲームオブジェクトを作成する
参考:
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 / DestroyImmediate
参考:
Object.Destroy | Unity スクリプトリファレンス [公式]
Object.DestroyImmediate | Unity スクリプトリファレンス [公式]
Destroy() doesn’t create NullReferenceExeption? – Unity Forum
Object destruction and null links – Stack Overflow
インスタンス ID を取得する
参考:
インスタンス ID から Object を探す | うにてぃブログ
インスタンス生成時に ID を与える | Unity トライアル G
Object.GetInstanceID | Unity スクリプトリファレンス [公式]
子オブジェクトを取得する
参考:
GameObject.GetComponentsInChildren | Unity スクリプトリファレンス [公式]
コード:
子オブジェクトを取得する 4つの方法 (kurowassan1212) – GitHub Gist
Find
参考:
ゲームオブジェクトを検索して取得する方法 | Uinty 使い方ガイド
Find 関数の使い分け/オブジェクトを見つける時 | 徒然エンジニアブログ
世界一わかりやすく Find メソッドの説明/使い方を説明する/オブジェクトを取得できる | Unishar
GameObject.Find を具体例付きで解説 | TECH PROjin
GameObject.Find | Unity スクリプトリファレンス [公式]
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)
参考:
Unity の GetCompornent() で null 条件演算子が使えない – Qiita
null 合体演算子と null 条件演算子についてかるくまとめてみた | はなちるのマイノート
GameObject が削除されて null になったかどうかは null 合体演算子では確認できない | コガネブログ
RectTransform をなるはやで取得したい – Qiita
SetActiveRecursively
参考:
GameObject の非表示2つの方法と削除 | ハマケン100%開発
GameObject.SetActiveRecursively (true) obsolete? – Stack Overflow