以前の記事では UI要素の Image をドラッグアンドドロップで動かす例を紹介しました。
こちら。UnityEngine.EventSystems に属するインターフェイスを実装しています。

UI 要素以外のオブジェクトを UnityEngine.EventSystems のインターフェイスの実装によって動かす場合、いくつかの手順が必要になります。
今回はその紹介です。

Spriteのクリックやドラッグを実装する

動画

動画はこちら。ハチの Sprite をクリックするとコンソールにメッセージが表示されます。また、ドラッグして動かすこともできます。



Unityエディターの設定

まずは Unityエディターの設定から。

Sprite オブジェクトの設定

まずは動かしたい Sprite オブジェクトの設定はこんな感じ。
スクリーンショット (647).png
  • Sprite のほかに、コライダーと、これから紹介するスクリプトをアタッチしています
  • コライダーの Is Trigger のチェックは入れても入れなくても動作するようです
  • また、EventSystem で扱うオブジェクトであることを明示するために Layer を設定しています(設定しなくても動作しますが、対象を明確にするために設定しています)

カメラオブジェクトの設定

カメラのオブジェクトの設定はこちら。
スクリーンショット (648).png
  • Physics 2D Raycaster コンポーネントをアタッチしています。Event Mask には動かしたいオブジェクトの Layer をセットします

EventSystem オブジェクトの追加

Hierarchyビューで右クリックし、UI > EventSystem を追加します。この EventSystem オブジェクトは、UI要素を作成している場合は自動的に追加されているものです。すでに存在している場合は追加不要です。
特に設定は必要ありません。

スクリーンショット (649).png

スクリプト

スクリプトはこちら。

SpriteControlByEventSystem

UI 要素を動かすのと同様です。


参考資料

この参考記事では、Spriteに 2D ではない BoxCollider をアタッチし、カメラにも 2D ではない Physics Raycaster コンポーネントをアタッチしています。このようにすれば 3D オブジェクトも同様にして動かせそうですね。


今回は以上です。感想・質問・要望等、お待ちしております (´▽`)
(この記事の使用環境: Unity2018.1.0f2 (.NET4.x Equivalent)、Windows10)
follow us in feedly


おすすめ Unity 入門書

Unity入門者の方は、まずは一冊だけでも入門書をやってみるのをおすすめします。