Unity点投影到平面

阅读: 评论:0

Unity点投影到平面

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 = ansform.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;}

本文发布于:2024-03-10 05:06:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/1710347141137890.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:平面   Unity
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23