こんちは!新入社員のタケです!
昨日の続きで内観バージョンのIt's My Houseを作っていきたいと思います!
プログラムからボタンやトグルのイベントを付けていきます…!
手動よりもプログラムから付けると良いことがあります。
新しくトグルやボタンを置いても自動的にイベントを付けられたり、大量のボタンやトグルに一瞬でイベントを付けることができます。
手動でつけると対象のオブジェクトが消えてしまったりするとイベントも解除されて動作しなくなっちゃうのでなぜ動かないか…ということもなくなります。
ミスが減るということですね!(ちゃんとプログラムがかけていれば)
まあ…とりあえず昨日作ったボタンたちにイベントをつけるプログラムを見ていきましょうか。
ドーン!
めちゃめちゃ長すぎて画像二枚になっちゃいました。
ぜーんぶ見ていくと大変なのでイベントやイベントトリガーを付けているところを見ていきましょう。
イベントトリガーはボタンよりも複雑で、どのイベントで、どのスクリプトを呼び出すか…というのを設定しなければなりません。
↑こんなかんじです。
EventTriggerを使うにはまずEntryというものを作ります。
var Entermouse = new EventTrigger.Entry();
のところですね。
この一行でEntermouseという名前のEventTrigerのEntryを作りました。
Entryを作ったらEventIDというものを指定します。
Entermouse.eventID = EventTriggerType.PointerEnter;
の一行でEventTriggerコンポーネントのコレを作ったと思ってください。
マウスが中に入ったら、というイベントですね。
最後にはAddListenerで実際に何が起こるかイベントを指定します。
ここまできてやっとイベントを付けるんですね…!
Entermouse.callback.AddListener((data) => EnterMouseCursor(true));
この一行でEnterMouseCursor関数をTrueにします。
これはEnterMouseというあらかじめ用意しておいたBool型をTrueにするものです。
マウスが入ったよ!という判定を付ける準備ができました!
実際にイベントを付けてみましょう!
イベントをオブジェクトにつけるときは簡単です。
SelectedCubeはあの赤枠のことです。
SelectedCube.gameObject.GetComponent<EventTrigger>().triggers.Add(Entermouse);
同じようにExitmouseもそのあとにつけていますね。
これで出たり入ったりする判定がプログラムから付けることができました。
…
プログラミングってコードを見つける検索力と使い方を理解する力があれば何だかなんだやっていける気がしますね。
みんながみんなこのやり方かどうかはわからないけれど、今のところはこれでどうにかなってます…!
コメント
コメントを投稿