About
Contents
STL
Android
Eigen
enchant.js
Firefox OS
OpenGL
OpenGL ES 2.0
pukiwiki
UE4
Unity
Windows Phone
Xamarin
Materials Link
その他
PR
STL
Android
Eigen
enchant.js
Firefox OS
OpenGL
OpenGL ES 2.0
pukiwiki
UE4
Unity
Windows Phone
Xamarin
以前のリビジョンの文書です
uGUIのボタンにSpriteなど他のGameObject重なっている時、両方のタッチ処理に反応してしまうのは都合が悪いので、 uGUIのUIオブジェクトが何かしら重なっている時は、その他のタッチ処理を無効にして通らない様にしてみます。 基本的には、EventSystem.current.IsPointerOverGameObject()を使えば良いです。
using UnityEngine.EventSystems; //------------------------------------------------------------- // EventSystemのGameObjectにマウスオーバーしているか? //------------------------------------------------------------- public bool IsPointerOverGameObject() { EventSystem current = EventSystem.current; if (current != null) { if (current.IsPointerOverGameObject()) { return true; } foreach (Touch t in Input.touches) { if (current.IsPointerOverGameObject(t.fingerId)) { return true; } } } return false; }
使い方はシンプルに
//------------------------------------------------------------- //! タッチしたか. //------------------------------------------------------------- public bool IsTouchPress() { if (Input.GetMouseButtonDown(0)) { if (!IsPointerOverGameObject()) { return true; } } return false; }
こんな感じでタッチ処理をラップしてIsTouchPressを使う様にしてあげれば良いです。