[英]How would I rotate an object based on four vector3 points?
首先,我将使用您的计算来确定前臀部和左后臀部所需的 position。 然后,我会使用一些向量数学和Quaternion.LookRotation
来解决旋转问题:
Quaternion GetBodyRotation(Vector3 frontLeftLegWorldPosition,
Vector3 frontRightLegWorldPosition,
Vector3 rearLeftLegWorldPosition)
{
Vector3 localForward = frontLeftLegWorldPosition - rearLeftLegWorldPosition;
Vector3 localRight = frontRightLegWorldPosition - frontLeftLegWorldPosition;
Vector3 localUp = Vector3.Cross(localForward, localRight);
return Quaternion.LookRotation(localForward, localUp);
}
然后,我会使用bodyTransform.rotation = resultOfAboveMethod;
将该旋转应用于身体。 .
然后,假设左后髋和右前髋旋转对称定位,您可以设置身体的bodyTransform.position = 0.5f * (frontRightLegWorldPosition + rearLeftLegWorldPosition);
使其位于右前髋和左后髋之间bodyTransform.position = 0.5f * (frontRightLegWorldPosition + rearLeftLegWorldPosition);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.