お知らせ

次の項目は別ページに分割しました。

ゲームオブジェクト

Unity のシーンで用いられる全ての「エンティティ」 (実体/存在) の基本クラス

公式サイト:

UnityEngine.GameObject | Unity スクリプトリファレンス [公式]

使い方

参考:

ゲームオブジェクトの基礎 (生成/削除/非表示など) から公式リファレンスまで解説決定版! | XR-Hub

コンポーネント

ゲームオブジェクトに付与される全てのインスタンス実装の基本クラス

ドキュメント:

UnityEngine.Component | Unity スクリプトリファレンス [公式]

表示/非表示を切り替える

オブジェクトを非表示にするには次のいずれかを用いる。

参考:

SetActive と enabled の違い – Qiita

オブジェクトを表示/非表示にする | 丸ノ内テックブログ

ゲームオブジェクトを画面から表示されないようにする – teratail

I want to disable the MeshRenderer of DetectedPlanes on a button click. I am using ARCore sample project – Stack Overflow

オブジェクトの有効/無効を切り替える

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 を探す | うにてぃブログ

実行時に使えるユニークな識別子を生成する | e.blog

インスタンス生成時に 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 を非表示にする | stepism

GameObject.SetActiveRecursively (true) obsolete? – Stack Overflow

シーン

ドキュメント:

GameObject.scene | Unity スクリプトリファレンス [公式]

参考:

GameObject がどのシーンにあるのかがプロパティ経由で取得できることを今更ながら知ったんだ | 徳島ゲーム開発ごっこ 技術ブログ

シングルトン

動画:

シングルトンとサービスロケータ

参考:

シングルトンの使い方を徹底解説 | よしゆきゲーム制作所

シングルトンを使ってみよう – Qiita

シングルトンを上手く活用しよう | はなちるのマイノート

もっと楽なシングルトンの実装 | テラシュールブログ

シングルトンなゲーム管理オブジェクトの作り方 | Unity でゲームを作ろう!

シングルトンを使って1つしか存在しないことを保証すると良いことがあるらしい | KuroMikan Games

Singleton っていう凄いやつを知った | 2357

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

Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption. Why??? – Unity Answers

まとめ

シーン上のデータを取得する方法 – Qiita

Scene Query

リポジトリ:

Real-Serious-Games/Unity-Scene-Query: A Library to Traverse and Query Scene to Find Particular Objects, Uses Something Similar to CSS Selectors to Identify GameObject – GitHub

参考:

Scene Query – オブジェクト検索用の関数がたくさん用意された | コガネブログ

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA