こたつにっき

Unityで遊びつつメモとか書きます

EventSystemを使ったオブジェクトの選択

もう12月です(ヤベえ!)

 

11月の更新0でした。

申し訳ないです。

ゲームは1つ完成したので近々このブログで紹介します。

 

今はboard game(自動変換で英語になった)を作ってます。

そんな中で1つ自分では初めてのやり方をしたので紹介。

 

ボードゲームというかタダのすごろくなのですが、マス目の詳細(1回休み・2マス戻るetc...)を選択して知りたかったのでこんなのを作りました。↓

f:id:kotatu99:20151207113652g:plain

 

参考はこちら

acguychan.hateblo.jp

 

参考にしたものは、マウスの座標からRaycast飛ばして光らせるという感じだったんですが、それだとゲーム画面左上のルーレット画面も貫通して背景のパネルを光らせてしまうんですね。

 

レイヤーで指定してもよかったのですが、そういえばEventSystemでUIと同じようにオブジェクトを選択できるようになったとどこかで聞いたので調べました。

anz-note.tumblr.com

 

 ここを参考に

CameraにPhysics Raycasterを取り付け…

f:id:kotatu99:20151207115411p:plain

 

GameObject > UI >EventSystem をSceneに追加します。(何もいじらなくておk)

 

出来上がったものがこちらになります。

 

選択された時色を変えるタイル

 

 

 

 

 

 

IPointerEnterHandler, IPointerExitHandler,IPointerDownHandler

はそれぞれ

OnPointerEnter(PointerEventData eventData)

OnPointerExit(PointerEventData ped)

OnPointerDown(PointerEventData _data)

に対応してます。

EventDataの引数名がガバガバですね。 まあ今回使わないので…。

 

最初にmaterialの色(デフォルトの色)を取得し、

選択された時materialの色を青(cyan)に、オブジェクトから出たら元の色に戻す

といった処理をしてます。

ついでにクリックイベントもつけました。log出すだけ。

 

 

アドベンチャーゲームがこれ使うとばつ牛ンに作りやすくなりそうですね。

作りたくなってきた。。。

 

更新は定期的にします!(戒め)

 

 

 

 

 

 

 

おまけ

 

OnPointerExit部分を消すとスプラトゥーンごっこが出来る。

f:id:kotatu99:20151207120407g:plain