随笔 - 36, 评论 - 12, 访问 - 224167

导航


  • 访问:224167次
  • 积分:378分
  • 排名:第38名
  • 随笔:36篇
  • 评论:12条

随笔分类

随笔档案

相册

最新评论

阅读排行榜

评论排行榜

unity3d 阅读(112) 评论(0)

鼠标事件处理代码(待调试)

 

public void OnMouseEvent() {
		if (Input.GetMouseButtonDown(0))
		{
			bool IsPointerOver = false;
			if (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer) {  
				IsPointerOver = EventSystem.current.IsPointerOverGameObject (Input.GetTouch (0).fingerId);
			} else {
				IsPointerOver = EventSystem.current.IsPointerOverGameObject ();
			}
			/*
			#if UNITY_ANDROID || UNITY_IPHONE
			//移动端判断如下
			if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
			#else
			//PC端判断如下
			if (EventSystem.current.IsPointerOverGameObject())
			#endif
			*/
			if(IsPointerOver)
			{
				Debug.Log("当前点击在UI上" + EventSystem.current.currentSelectedGameObject);
			}
			else
			{
				//从摄像机发出一条射线,到点击的坐标
				Ray CustomRay = Camera.main.ScreenPointToRay(Input.mousePosition);
				RaycastHit ObjHit;
				if (Physics.Raycast(CustomRay, out ObjHit, 100))
				{
					if (ObjHit.collider.gameObject != null)
					{
						Debug.Log("Click Object:" + ObjHit.collider.gameObject);
					}
				}
				else
				{
					Debug.Log("Click Null");
				}

				//显示一条射线,只有在scene视图中才能看到
				Debug.DrawLine(CustomRay.origin, ObjHit.point, Color.red, 2);
			}
		}
	}

发表评论
切换编辑模式