Unity EventSystem.current.IsPointerOverGameObject()



Unity Eventsystem Current



//ブール値を返し、UnityEngine.EventSystemsを使用している場合、UIに入るときにtrueを返します

EventSystem.current.IsPointerOverGameObject()



オブジェクトを回転させる

using UnityEngine using UnityEngine.EventSystems using System.Collections using System.Linq public class TouchController : MonoBehaviour { public GameObject Cube public float Speed = 0.1f void Update() { #if ((UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR) //Touch int touchCount = Input.touchCount if (touchCount == 1) { Touch t = Input.GetTouch (0) if (EventSystem.current.IsPointerOverGameObject (t.fingerId)) return switch (t.phase) { case TouchPhase.Moved: float xAngle = t.deltaPosition.y * Speed float yAngle = -t.deltaPosition.x * Speed float zAngle = 0 Cube.transform.Rotate (xAngle, yAngle, zAngle, Space.World) break } } #else //Mouse if (Input.GetMouseButton(0)) { if (EventSystem.current.IsPointerOverGameObject()) return float xAngle = Input.GetAxis('Mouse Y') * Speed * 80 float yAngle = -Input.GetAxis('Mouse X') * Speed * 80 float zAngle = 0 Cube.transform.Rotate(xAngle, yAngle, zAngle, Space.World) } #endif } }