Unity点投影到平面

编程入门 行业动态 更新时间:2024-10-21 17:45:52

Unity点投影到<a href=https://www.elefans.com/category/jswz/34/1754219.html style=平面"/>

Unity点投影到平面

点投影到平面

1

 public Transform targetPlane;//目标平面public Transform projectPoint;//投影点public Vector3 normal = Vector3.up;void Update()   {// Vector3 normal = targetPlane.up;// 上面是错误的!Vector3.up才是平面的法向量;(因为用的是相对位置;把平面当成(0,0,0)原点坐标系算的)Debug.Log(normal);var Worldpos = transform.position;var Localpos = targetPlane.InverseTransformPoint(Worldpos);//世界坐标转局部坐标(点到平面的相对位置)var dis = Vector3.Dot(Localpos, normal);//A与B点乘:A在B上的投影长度*B的长度; var vecN = normal * dis;    var planepos = Localpos - vecN;   projectPoint.position = targetPlane.TransformPoint(planepos);   }

2

 public Transform targetPlane;//目标平面public Transform projectPoint;//投影点void Update(){var worldpos = transform.position;var targetPlanePos = targetPlane.position;var normal = targetPlane.transform.up;var pos = PointToPlane(worldpos, targetPlanePos, normal);projectPoint.position = pos;}Vector3 PointToPlane(Vector3 worldpos, Vector3 targetPlanePos, Vector3 planeNormal){var localpos = worldpos - targetPlanePos;var dis = Vector3.Dot(localpos, planeNormal);var vecN = planeNormal * dis;       return worldpos -vecN;}

更多推荐

Unity点投影到平面

本文发布于:2024-03-10 05:06:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1727074.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:平面   Unity

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!