【Unity】Aキーを押す度に特定のゲームオブジェクトの有効無効を切り替える

Unityにおいて、Aキーを押す度に特定のゲームオブジェクトの有効無効を切り替えるには、以下の手順を実行します。

スクリプトの作成

まず、スクリプトを作成します。以下のようなスクリプトを作成すると、Aキーが押された時に、指定したGameObjectのSetActive関数を呼び出して、有効無効を切り替えることができます。

using UnityEngine;

public class ToggleObject : MonoBehaviour
{
    public GameObject targetObject;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            targetObject.SetActive(!targetObject.activeSelf);
        }
    }
}

説明

targetObject.SetActive(!targetObject.activeSelf);

targetObject.SetActive()は、指定されたGameObjectのアクティブ状態を設定するメソッドです。引数には、trueを渡すとGameObjectをアクティブに、falseを渡すとGameObjectを非アクティブにすることができます。

targetObject.activeSelfは、指定されたGameObjectが現在アクティブかどうかを示すプロパティです。activeSelfがtrueであればGameObjectはアクティブ状態、falseであれば非アクティブ状態です。

!targetObject.activeSelfは、targetObject.activeSelfの真偽値を反転させた値を示します。つまり、GameObjectが現在アクティブであればfalse、非アクティブであればtrueを返します。

したがって、targetObject.SetActive(!targetObject.activeSelf)は、targetObjectのアクティブ状態を反転させることを示しています。つまり、Aキーが押された度に、targetObjectの有効無効が切り替わるということです。

ゲームオブジェクトにスクリプトをアタッチする

次に、切り替えたいGameObjectにスクリプトをアタッチします。GameObjectを選択し、[Add Component] -> [New Script]を選択して、上で作成したスクリプトを追加します。その後、[targetObject]の欄に、有効無効を切り替えたいGameObjectをドラッグ&ドロップして設定します。

ゲームを実行する

最後に、Unity Editorでゲームを実行し、Aキーを押す度に、指定したGameObjectの有効無効が切り替わることを確認します。

以上が、UnityでAキーを押す度に特定のゲームオブジェクトの有効無効を切り替える方法です。

Unity

Posted by hidepon