
[英]How can I get x,y,z values of iTextSharp.text.pdf.parser.Vector object?
[英]How to set a vector child of an object so x , y and z are local
关键是,我必须创建一个跟随摄像机的光线投射系统。 由于屏幕上有特定的界面,因此无法使用Unity提供的ScreenPointToRay()方法。
但是这是我尝试做的事情:
但是由于某些原因,最终坐标似乎并不是真正的局部坐标,根据我所处的位置,其中一个坐标会遇到一些问题
我试图使用Unity提供的多种方式将向量设置为本地:
但徒劳
//Vector form mouse coordinates
aim = new Vector3(mousePosInGameScreen.x ,mousePosInGameScreen.y,0);
// Try to make it global first
aim = transform.TransformVector(aim);
//Tried to do a Cross multiplication with the camera.transform.forward vector
//Vector3 aim = Vector3.Cross(cam.transform.forward,new Vector3(mousePosInGameScreen.x,mousePosInGameScreen.y,1));
//Tried to set it to the local matrix using worldToLocalMatrix
//aim = cam.transform.worldToLocalMatrix.MultiplyVector(aim);
//Does pretty much the same but with simpler method
aim = cam.transform.InverseTransformVector(aim);
//Adding this to cam.transform.forward
Vector3 direction = aim /*/ coefDirection*/ + cam.transform.forward;
Ray forwardRay = new Ray(cam.transform.position, rotation);//forward
Ray aimRay = new Ray(cam.transform.position + rotation, aim/4);//aim
Ray finalRay = new Ray(cam.transform.position, direction);//Final Ray
Debug.DrawRay(finalRay.origin, finalRay.direction, Color.green);
Debug.DrawRay(forwardRay.origin, forwardRay.direction, Color.red);
Debug.DrawRay(aimRay.origin, aimRay.direction, Color.yellow);
我期望有一个漂亮的直角三角形,如下所示:
https://i.imgur.com/gOv6WnJ.png
从某些方向看时,有时我会产生怪异的角度。 当我向前看时总是很好,但是当我向后看时(例如),“ x”目标坐标将反转
所以,如果有人知道这里发生了什么,我会接受它,并预先感谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.