Rayを飛ばすのはもう古い?!簡単にオブジェクトのクリックを検知だ!
はじめに
オブジェクトのクリックを検知する際にどうやっていますか?
ググったサイト見て、Ray飛ばすコード書いて...ってやってるあなたに朗報です!もっと簡単に実装できますよ!
さっそく実装
- まず動かしたいオブジェクト(今回はCube)を用意します。
- CubeにEvent Triggerを取り付けてAdd New Event Typeからイベントを選びます。今回はPointerDown(マウスボタンが押仕込まれた時に呼ばれるやつ)を選びました。
- UIのButtonと同じようにスクリプト内の関数を呼び出し設定をします。今回はCubeオブジェクトにCubeスクリプトをつけています。
- CameraにPhysics Raycasterコンポーネントを取り付けます。
- Event Systemがシーン状に存在しなければヒエラルキーウィンドウのCreateから作成します。 設定はデフォルトのままで構いません。
これだけです!簡単だと思いませんか?
以下が実行した時の動画です。
注意!
二つほど注意点があります。
- Colliderは必須
- 2Dの場合はColliderとPhysics Raycasterを2Dのものにする。
おわり
どうでしたか?私自身、この前開催されたunity1weekの作品を開発中に知りました...。かれこれ半年ほどunityでRay飛ばし続けてきたんです...笑
PointerDown以外のイベントを駆使するとUIのボタンよりも便利なものになりそうですねー(`・ω・´)
ではでは。(┐「ε:)