首先上传代码:
1if (Input.GetMouseButtonUp (0)) {
2 if (EventSystem.current.IsPointerOverGameObject ()) {
3 Debug.Log ("touch area is UI");
4 }
5 else{
6 Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
7 RaycastHit hit;
8 if (Physics.Raycast (ray, out hit)) {
9 Debug.Log (hit.point);
10 GameObject point= GameObject.Instantiate (pointPrefab, hit.point, transform.rotation)as GameObject;
11 }
12 }
13 }实现的功能是在鼠标单击的位置在场景中生成对象。
这里有几个坑:

1.由于我的场景中有UI空间,因此当用户单击按钮时,不应生成对象,因此请添加判断代码:
if(EventSystem.current.IsPointerOverGameObject());
2.判断鼠标单击的最早判断语句是Input.GetMouseButton(0),因此,每次单击都会生成多个对象,但是如果按下鼠标,它将连续生成,因此将其更改为Input。.GetMouseButtonUp(0),仅当释放鼠标左键时才会生成对象。
3.如果直接在mousePosition中生成对象,则该对象实际上是点在屏幕上的。所获得的坐标是相机显示屏的坐标,当左下角为(0,0)时,右上角为(1,1)。)因此,使用发射光线的方法,将点击点投影到场景,并获得他的世界坐标。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-367819-1.html
只要进入12海里
首先得有
象是给美国出一出气