これまでの作業で、
■A.DrawerPnelで引き出しがクリックされたら電球画像を表示し、
ItemBoxに電球を取得する処理を作成した
1.DrawerPnelで引き出しがクリックされたら、電球画像を表示する
脱出ゲームの作り方 2
◇TriggerButtonを押したら電球パネルとテキストを表示
public void OnClickTrigger()
{
LightBulbSetActive(true);
}
2.上記1.と同時に、ItemBoxに電球の画像を表示する
脱出ゲームの作り方 4
◇itemに電球のデータが取得されたら、電球の画像を表示する
public void OnClickTrigger()
{
LightBulbSetActive(true);
itemBoxManager.SetItem(ITEM.LIGHT_BULB);
}
■B.LightstandPanelで、ItemBoxの1つ目と2つ目をクリックして電球をON/OFFするテストをした
脱出ゲームの作り方 5
テスト
Unityエディタで
1つ目のItemBoxの On Click() にLightSwitch()をtrueで設定 :電球が点灯
2つ目のItemBoxの On Click() にLightSwitch()をfalseで設定 :電球が消灯
※設定を解除するときは、On Click()のマイナス(-)ボタンで削除する
###アイテムボックスに取得した電球を使うと、電球が点灯する処理を作成する
◇ItemBoxManagerに処理を追加する
アイテムを使用する関数UseItem()に、
アイテムボックスに電球があったら、電球を使用してライトスタンドを点灯する処理
LightStandManagerスクリプトを使えるようにする
LightStandManager(型)、 lightStandManager(変数)
この場合の LightStandManager は自分で作ったデータ型
※エディタでItemBoxPnel(オブジェクト)を選択すると、InspecterのItemBoxManagerスクリプトに
LightStandManagerが出る
スクリプトはコンポーネントなので、他のスクリプトでこのように取得して使える
[SerializeField] LightStandManager lightStandManager;
アイテムが電球だったら、
lightstandManagerスクリプトのLightSwitch()関数をtrueで実行する
それ以外は何もしない
public void UseItem(int index)
{
switch (itemList[index]) //アイテムが電球だったら、
{
case ITEM.LIGHT_BULB:
lightstandManager.LightSwitch(true); //LightSwitch()をtrue
break;
default: //それ以外は何もしない
break;
}
itemList[index] = ITEM.NONE; // index番目のアイテムを使用したので空にする;
itemBoxImages[index].sprite = null; //index番目に何も表示しない
}
※UseItem(int index)の引数は、itemBoxの番号に対応している
◇Unityエディタで
ItemBoxPnel(オブジェクト)を選択し、InspecterでのItemBoxManagerスクリプトに
LightStandManager
が出ているので、LightstandPanel(オブジェクト)をセットする
その下の、4つのItemBoxを全部選択し、
InspectorでItemBoxのButtonコンポーネントの On Click() にItemBoxPanel(オブジェクト)をセットして、
ItemBoxManagerに表示される関数をからUseItem(int)を設定する。
4つの各ItemBoxについて、UseItem(int)の引数(0,1,2,3)を設定して、
ItemBoxと使うアイテムを対応させる
Inspecterで、コンポーネントに設定された値をクリックすると、元のオブジェクトが反転して表示されるので、関連を確認できる
(設定に意図しない書き換えが起こらないように気を付ける)
課題
構成の整理(どのファイルがどの機能を持っているのか)
各オブジェクト
オブジェクトにアタッチしたスクリプト
スクリプトで作成した変数、関数
Inspectorで変数や関数を設定する
これらのつながりを整理する
##教材
Unityゲームスタジオ スタジオしまづ
【Unity】初心者からの脱出!? 脱出ゲームの作り方 その6 アイテム使用による電球のONOFF
https://youtu.be/Z4uJWBRvGhk