- 最后登录
- 2021-7-6
- 注册时间
- 2012-12-27
- 阅读权限
- 90
- 积分
- 76145
 
- 纳金币
- 53520
- 精华
- 316
|
来自:决晴谷
Unity的API中封装了平面算法的相关接口。如果想快点实现求一条射线和平面是否存在交点,可以这样写。
代码很简单,注释在代码里,现在直接提供了:- ///按下鼠标左键
- if (Input.GetMouseButtonDown(0))
- {
- ///创建一个以世界坐标的原点的平面
- Plane plane = new Plane(Vector3.up, Vector3.zero);
- ///创建一个从鼠标处发出的射线
- Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
- float enter;
- ///使用这个函数检测平面和射线是否存在交点,并计算出射线与平面交点的距离。
- ///注意,射线可能与平面不存在交点
- if (plane.Raycast(ray, out enter))
- {
- if (MoveAction != null)
- {
- ///获取这个交点的坐标
- MoveAction(ray.GetPoint(enter));
- }
- }
- }
复制代码 |
|