ぱふの自由帳

週3更新(火・木・日)を目指すUnityブログ。良ければフォローお願いします(`・ω・´)

Rayを飛ばすのはもう古い?!簡単にオブジェクトのクリックを検知だ!

はじめに

オブジェクトのクリックを検知する際にどうやっていますか?
ググったサイト見て、Ray飛ばすコード書いて...ってやってるあなたに朗報です!もっと簡単に実装できますよ!

さっそく実装

  1. まず動かしたいオブジェクト(今回はCube)を用意します。
  2. CubeにEvent Triggerを取り付けてAdd New Event Typeからイベントを選びます。今回はPointerDown(マウスボタンが押仕込まれた時に呼ばれるやつ)を選びました。
    f:id:PafuOfDuck:20171120132045p:plain
  3. UIのButtonと同じようにスクリプト内の関数を呼び出し設定をします。今回はCubeオブジェクトにCubeスクリプトをつけています。
    f:id:PafuOfDuck:20171120132052p:plain
  4. CameraにPhysics Raycasterコンポーネントを取り付けます。
    f:id:PafuOfDuck:20171120132101p:plain
  5. Event Systemがシーン状に存在しなければヒエラルキーウィンドウのCreateから作成します。 設定はデフォルトのままで構いません。
    f:id:PafuOfDuck:20171120132106p:plain

これだけです!簡単だと思いませんか?
以下が実行した時の動画です。 f:id:PafuOfDuck:20171120141306g:plain

注意!

二つほど注意点があります。

  • Colliderは必須
  • 2Dの場合はColliderとPhysics Raycasterを2Dのものにする。

おわり

どうでしたか?私自身、この前開催されたunity1weekの作品を開発中に知りました...。かれこれ半年ほどunityでRay飛ばし続けてきたんです...笑

PointerDown以外のイベントを駆使するとUIのボタンよりも便利なものになりそうですねー(`・ω・´)

ではでは。(┐「ε:)