如何在Unity中使用C#更改对象的枢轴点?

时间:2020-05-24 18:49:25

标签: c# unity3d

我正在尝试使用C#更改Unity 3D中对象的枢轴点。

我知道可以事先在设计软件中将对象编辑到所需的位置,但是,在我的特定情况下,需要在运行游戏时更改枢轴点。

这是我用来从左侧旋转对象的代码:

    verticalInputLeft = Input.GetAxis("VerticalLeft");       

    rotationLeftX += verticalInputLeft * verticalSensitivity * Time.deltaTime;
    rotationLeftX = Mathf.Clamp(rotationLeftX, minAngle, maxAngle);

    transform.localEulerAngles = new Vector3(rotationLeftX, transform.localEulerAngles.y, transform.localEulerAngles.z);

我想使用相同的方法从右侧进行旋转。为此,我需要在游戏运行时更改对象的枢轴点。

谢谢。

1 个答案:

答案 0 :(得分:4)

无法直接更改数据透视,

解决方法,在想要新支点的位置创建一个空的游戏对象,并将父变换设置为此游戏对象。

gameObject.transform.SetParent(pivotGameObject);

删除父项

gameObject.transform.SetParent(null);