查看: 2081|回复: 0

[经验分享] 用Unity自带API 求射线与平面的交点坐标

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53456
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

发表于 2018-12-29 22:17:59 |显示全部楼层
来自:决晴谷

Unity的API中封装了平面算法的相关接口。如果想快点实现求一条射线和平面是否存在交点,可以这样写。
代码很简单,注释在代码里,现在直接提供了:
  1. ///按下鼠标左键
  2.         if (Input.GetMouseButtonDown(0))
  3.         {
  4.             ///创建一个以世界坐标的原点的平面
  5.             Plane plane = new Plane(Vector3.up, Vector3.zero);
  6.             ///创建一个从鼠标处发出的射线
  7.             Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  8.             float enter;
  9.             ///使用这个函数检测平面和射线是否存在交点,并计算出射线与平面交点的距离。
  10.             ///注意,射线可能与平面不存在交点
  11.             if (plane.Raycast(ray, out enter))
  12.             {
  13.                 if (MoveAction != null)
  14.                 {
  15.                     ///获取这个交点的坐标
  16.                     MoveAction(ray.GetPoint(enter));
  17.                 }
  18.             }
  19.         }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-4-18 10:51 , Processed in 0.084692 second(s), 30 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部