[英]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.