【Unity】イベントトリガーをスクリプトから付けてみた!手動よりも便利かも!?

こんちは!新入社員のタケです!


昨日の続きで内観バージョンの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もそのあとにつけていますね。

これで出たり入ったりする判定がプログラムから付けることができました。


プログラミングってコードを見つける検索力と使い方を理解する力があれば何だかなんだやっていける気がしますね。

みんながみんなこのやり方かどうかはわからないけれど、今のところはこれでどうにかなってます…!


--------------------------------------------------------------------------------

シェルパでは、3DCGや建築パースはもちろん
VRやARアプリの開発も行っています!
新しいことに興味のある方はきっと楽しめると思います!
新人研修も充実していて初心者でも3DCG経験者でも安心!

株式会社シェルパ
【福岡本社】
〒810-0042 福岡県福岡市中央区赤坂1丁目13-10赤坂有楽ビル7F 
【東京オフィス】
 〒101-0041 東京都千代田区神田須田町2丁目13-1YKS黒田ビル5F
TEL 092-717-6800 / FAX 092-717-6801

--------------------------------------------------------------------------------


コメント