LoginSignup
1

More than 3 years have passed since last update.

脱出ゲームの作り方 7 特定の条件でアイテムを使用

Last updated at Posted at 2019-10-28

取得した電球を使うと電気が点灯する処理が作成されたが、
LightstandPanel以外の場所でも使えてしまうので、LightstandPanelの場面で電気を使うようにする

各パネルを表示するときに、現在のパネルが何かをチェックする

GameManagerで下記を追加する

◇変数currentPanelを列挙型で作成し、ROOMパネルで初期化する


public enum PANEL
{
    ROOM,
    LIGHT_STAND,
    DRAWER,
    PC
}

    // 現在表示しているパネル
    public PANEL currentPanel = PANEL.ROOM;

◇ボタンを押したら、現在のパネルをcurrentPanelに取得し、該当するパネルを表示する

バックボタンが押されたら、currentPanelをROOMに戻し、他のパネルを非表示にする


    // ボタンを押したら該当するパネルを表示
    public void OnClickLightStandTrigger()
    {
        currentPanel = PANEL.LIGHT_STAND;
        lightStandPanel.SetActive(true);
    }
    public void OnClickDrawerTrigger()
    {
        currentPanel = PANEL.DRAWER;
        drawerPanel.SetActive(true);
    }
    public void OnClickPCTrigger()
    {
        currentPanel = PANEL.PC;
        pcPanel.SetActive(true);
    }

    // ボタンを押したらパネルを全て非表示
    public void OnClickBackTrigger()
    {
        currentPanel = PANEL.ROOM;
        lightStandPanel.SetActive(false);
        drawerPanel.SetActive(false);
        pcPanel.SetActive(false);
    }


アイテムを電気スタンドが表示されている時だけ使用する

◇現在のパネルが電気スタンドのときに、アイテムを使う
ItemBoxManagerでGameManagerを取得し、UseItem()を書き換える


    [SerializeField] GameManager gameManager;   


 // アイテムの使用
    public void UseItem(int index)
    {
        if ( gameManager.currentPanel == PANEL.LIGHT_STAND
          && itemList[index] == ITEM.LIGHT_BULB)   //現在のパネルが電気スタンドで、かつ使用するアイテムが電球だったら
        {
            lightStandManager.LightSwitch(true);            //電気をつける
            itemList[index] = ITEM.NONE; // アイテムを使用したので空にする;
            itemBoxImages[index].sprite = null;
        }
    }

InspecterでItemBoxPnelオブジェクトのItemBoxManagerスクリプトにGameManagerが出ているので、GameManagerを設定する

:point_up:
関数名はUseItem()で、Inspecterの「OnClick()」で設定しているので、
クリックしたときに実行される。
OnClickImg.png

教材

Unityゲームスタジオ スタジオしまづ
【Unity】初心者からの脱出!? 脱出ゲームの作り方 その7 特定の条件でアイテムを使用
https://youtu.be/ualq_a3rnQc

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1