Unity解説 指定したオブジェクトの表示・非表示切替
今回は、Unityで配置したImageやButtonなどのオブジェクトを非表示にする方法を説明します。
実際にどうやるか思いつかないもんね。
教えて~

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

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

この名前変更は必須ではないのですが、ここで定めた名前で、非表示を操作するということを明確にしたい意図がありました。
まず「TestImage」を非表示にしてみましょう。コードは下のとおりです。
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が消えてるね✨

ええ、それでは次に特定のキーボードを押したら、特定のオブジェクトを非表示にするようにしてみます。
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」を押した時に、オブジェクトが表示状態であった時は、非表示にして、非表示状態だったら表示するスクリプトです。
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);
}
}
}
}

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

お名前
