unity 在鼠标点击位置生成物体
2017-05-03 18:27
841 查看
先上代码吧:
if (Input.GetMouseButtonUp (0)) {
if (EventSystem.current.IsPointerOverGameObject ()) {
Debug.Log ("touch area is UI");
}
else{
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast (ray, out hit)) {
Debug.Log (hit.point);
GameObject point= GameObject.Instantiate (pointPrefab, hit.point, transform.rotation)as GameObject;
}
}
}
实现的功能是在鼠标点击的位置在场景中生成物体。
这里面有几个坑:
1.由于我的场景里面有UI空间,当用户点击button时,不应该生成物体,所以添加判断代码:
if (EventSystem.current.IsPointerOverGameObject ());
2.最早判断鼠标点击时用的判断语句是Input.GetMouseButton(0),结果每点击一次会生成好多个物体,是要鼠标按下就会一直生成,所以就改成了Input.GetMouseButtonUp(0),只有当鼠标左键松开时才会生成物体。
3.如果直接在mousePosition生成物体,则其实是在屏幕上打点,获取到的坐标是摄像机显示画面的坐标,左下时(0,0),右上是(1,1)。所以使用发射射线的方式,点击的点投射到场景中,获取到他的世界坐标。
if (Input.GetMouseButtonUp (0)) {
if (EventSystem.current.IsPointerOverGameObject ()) {
Debug.Log ("touch area is UI");
}
else{
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast (ray, out hit)) {
Debug.Log (hit.point);
GameObject point= GameObject.Instantiate (pointPrefab, hit.point, transform.rotation)as GameObject;
}
}
}
实现的功能是在鼠标点击的位置在场景中生成物体。
这里面有几个坑:
1.由于我的场景里面有UI空间,当用户点击button时,不应该生成物体,所以添加判断代码:
if (EventSystem.current.IsPointerOverGameObject ());
2.最早判断鼠标点击时用的判断语句是Input.GetMouseButton(0),结果每点击一次会生成好多个物体,是要鼠标按下就会一直生成,所以就改成了Input.GetMouseButtonUp(0),只有当鼠标左键松开时才会生成物体。
3.如果直接在mousePosition生成物体,则其实是在屏幕上打点,获取到的坐标是摄像机显示画面的坐标,左下时(0,0),右上是(1,1)。所以使用发射射线的方式,点击的点投射到场景中,获取到他的世界坐标。
相关文章推荐
- 我的Unity(1)一点一滴 鼠标点击任意位置,物体移动到该位置。
- Unity中物体如何移动到鼠标点击位置
- Unity获取鼠标点击位置,物体朝鼠标点击处移动
- Unity中UGUI中获取鼠标点击位置以及UI物体的屏幕坐标
- Unity移动物体到鼠标点击位置
- Unity中获取鼠标位置,且点击鼠标右键则在点击位置显示物体
- 场景中创建N(两个以上)个物体,鼠标可以选中任何物体,当鼠标选中为非地面时,选中的物体变为红色,之前选中的物体恢复为之前的颜色,鼠标点击到地面时,让之前选中的那个物体移动的当前点击的位置
- 鼠标点击物体互换位置
- Unity3d--根据鼠标点击的位置改变物体朝向
- unity鼠标点击获取目标物体的属性
- unity检测鼠标是点击在UI上还是物体上
- unity3D 实现NGUI物体朝鼠标点击位置移动
- Unity 鼠标点击屏幕创建物体
- 【Unity快速实现小功能】快速添加一个鼠标点击物体的识别功能
- 根据鼠标点击位置移动物体
- Unity物体跟随鼠标点的位置自动寻路
- unity 鼠标拖动 物体旋转 点击变色 拖动移动
- Unity 5.3 将物体转向鼠标所在位置
- Unity 鼠标点击位置转换成UI坐标
- unity实现鼠标点击位置小脚印标志