天天看點

Unity:GameObject 的旋轉和移動

1、旋轉

Point3 targetRotation:移動到的對象旋轉值

GameObject target :要移動的目标對象的transform

Vector3 targetRotationPoint = transform.TransformPoint(targetRotation);
Vector3 rotationDistance = targetRotationPoint - target.transform.localEulerAngles;
target.transform.Rotate(rotationDistance * Time.deltaTime);
           

2、移動

Point3 targetPosition:移動到的對象位置值

GameObject target :要移動的目标對象的transform

Vector3 targetPoint = transform.TransformPoint(targetPosition);
Vector3 distance = targetPoint - target.transform.position;
target.transform.Translate(distance * Time.deltaTime, Space.World);
           

3、合并

通過distance.magnitude 距離判斷移動到某個值,進行合并設定子父關系

if (target != null)
{
    target.transform.SetParent(transform);
	target.transform.localPosition = targetPosition;
	target.transform.localEulerAngles = targetRotation;
}