Unity解説 指定したオブジェクトの表示・非表示切替

 

 

今回は、Unityで配置したImageやButtonなどのオブジェクトを非表示にする方法を説明します。

 

 

実際にどうやるか思いつかないもんね。

教えて~

 

 

では、非表示操作をするためのImage、Text(TMP)、ButtonをSceneに配置します。

 

 

 

 

それぞれを「TestImage」、「TestText」、「TestButton」に名前を変更します。

 

 

 

 

この名前変更は必須ではないのですが、ここで定めた名前で、非表示を操作するということを明確にしたい意図がありました。

 

 

まず「TestImage」を非表示にしてみましょう。コードは下のとおりです。

 

 

Hihyouji001.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Hihyouji001 : MonoBehaviour
{
    GameObject TestImageObj;

    void Start()
    {
        TestImageObj = GameObject.Find("TestImage");
        TestImageObj.SetActive(false);
    }
}

 

 

それでは、このスクリプトを空のオブジェクトにアタッチして、ゲームを実行してみます。

 

 

 

 

 

ちゃんと指定したImageが消えてるね✨

 

 

ええ、それでは次に特定のキーボードを押したら、特定のオブジェクトを非表示にするようにしてみます。

 

 

Hihyouji002.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Hihyouji002 : MonoBehaviour
{
    GameObject TestImageObj;
    GameObject TestTextObj;
    GameObject TestButtonObj;

    void Start()
    {
        TestImageObj = GameObject.Find("TestImage");
        TestTextObj = GameObject.Find("TestText");
        TestButtonObj = GameObject.Find("TestButton");
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A)) 
        {
            TestImageObj.SetActive(false);
        }
        if (Input.GetKeyDown(KeyCode.S)) 
        {
            TestTextObj.SetActive(false);
        }
        if (Input.GetKeyDown(KeyCode.D)) 
        {
            TestButtonObj.SetActive(false);
        }
    }
}

 

 

これは、キーボードの「A」、「S」、「D」を押すと、それぞれ「Image」「Text」「Button」を非表示にするスクリプトです。

 

 

 

前のスクリプトを取り除いて、このスクリプトでゲームを実行してみましょう。

 

 

 

 

イイ感じに非表示にできてるね💨

 

 

それでは、今度は「A」を押した時に、オブジェクトが表示状態であった時は、非表示にして、非表示状態だったら表示するスクリプトです。

 

 

HyoujiOnOff001.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HyoujiOnOff001 : MonoBehaviour
{
    GameObject TestImageObj;

    void Start()
    {
        TestImageObj = GameObject.Find("TestImage");
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A)) 
        {
            if (TestImageObj.activeInHierarchy) 
            { 
                TestImageObj.SetActive(false);
            }
            else
            {
                TestImageObj.SetActive(true);
            }
        }
    }
}

 

 

 

 

うん!
これでバッチリだね💨

 

 

 

 

 

 

 

 

 

お名前


削除キー(必須)

コメント(必須)


サイト内検索

twiter

CONTENTS

 

 

 

くるくるサンプルコード

 

 

 

【↓広告↓】