FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム » Unity »【Unity】activeInHierarchy, activeSelf, isActiveAndEnabled の結果の違い

【Unity】activeInHierarchy, activeSelf, isActiveAndEnabled の結果の違い  


 基本的なものではあるが、「あれ?どれ使うんだっけ…?」と少し思ったので、メモ。

 特にヒエラルキー上で親が非アクティブのとき、子での値が気になったので簡単なテスト。

GameObject.activeInHierarchy
GameObject.activeSelf
Behaviour.isActiveAndEnabled

(※) Unity 2018.4.6f1 / Windows10(x64) で確認



 例として、子 GameObject(child)に Hoge コンポーネントをアタッチし(アクティブ)、parent を非アクティブにして、その状態を調べてみる。






●アタッチするコンポーネント:Hoge
using UnityEngine;

public class Hoge : MonoBehaviour
{
void Start()
{
//※ただのテストなので空で良い
}
}

●アクティブ状態を調べるテスト
using UnityEngine;

public class HierarchyActiveTest : MonoBehaviour //※名前は任意
{
public Hoge hoge; //インスペクタでセットする

void Start()
{
Debug.Log("hoge.gameObject.activeInHierarchy = " + hoge.gameObject.activeInHierarchy);
Debug.Log("hoge.gameObject.activeSelf = " + hoge.gameObject.activeSelf);
Debug.Log("hoge.isActiveAndEnabled = " + hoge.isActiveAndEnabled);
}
}

hoge.gameObject.activeInHierarchy = False
hoge.gameObject.activeSelf = True
hoge.isActiveAndEnabled = False

 親が非アクティブでも「hoge.gameObject.activeSelf = True」になっている所が着眼点だろうか。親をアクティブにすると、全てが true となる。以下の資料がわかりやすいだろう。

【Unity】「Behaviour.isActiveAndEnabled」 でコンポーネントの状態を確認する
 
 また、parent に Hoge をアタッチ・セットした場合は、そのまま parent のアクティブ/非アクティブで全てが true/false になる。







関連記事
スポンサーサイト



category: Unity

thread: ゲーム開発

janre: コンピュータ

tag: Unityリファレンス 
tb: 0   cm: --


トラックバック

トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/333-88cea4f7
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR

▲ Pagetop