[英]Unity3d: Rotate a gameobject towards forward vector of another gameobject
BackCube.position = cameraEye.position - cameraEye.forward * 2;
float back = cameraEye.position.z - 2f;
BackCube.position = new Vector3(BackCube.position.x, BackCube.position.y, back);
var lookPosBack = cameraEye.position - BackCube.position;
lookPosBack.y = 0;
var rotationBack = Quaternion.LookRotation(lookPosBack);
BackCube.rotation = Quaternion.Slerp(BackCube.rotation, rotationBack, 1);
So, I want the my BackCube
to rotate towards the forward vector of cameraEye
. 所以,我想我的
BackCube
朝正向旋转矢量cameraEye
。 The code above looks at the cameraEye
, but not towards the forward vector of cameraEye
. 上面的代码看起来在
cameraEye
,但不是朝着正向矢量cameraEye
。 I want the forward vectors of both pointing at each other being 2 units apart from each other. 我希望彼此指向的正向向量彼此相距2个单位。 I have control only over the
BackCube
我只能控制
BackCube
This worked! 这工作了!
Vector3 direction = Vector3.ProjectOnPlane(cameraEye.forward, Vector3.up);
BackCube.transform.position = cameraEye.position - direction.normalized * 2;
var lookPosBack = cameraEye.position - BackCube.position;
lookPosBack.y = 0;
var rotationBack = Quaternion.LookRotation(lookPosBack);
BackCube.rotation = Quaternion.Slerp(BackCube.rotation, rotationBack, 1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.