如何制作飞机到"外观"只在一个轴上旋转,在相机上?
例如,我有一架来自管道的烟雾质地的飞机。如果我在管道周围走动,飞机应始终面向摄像机,沿y轴旋转。但是烟雾的方向不应该改变,因此,与x和z轴一起,平面不应该旋转。
以下是一个有助于在所有轴上旋转平面的代码示例:
void Update()
{
transform.LookAt(Camera.main.transform.position, -Vector3.up);
}
如何仅在一个轴上旋转?
答案 0 :(得分:2)
一种方法是使用transform.eulerAngles将对象的原始旋转存储在Vector3中。然后,您可以在LookAt函数完成后创建另一个Vector3来存储对象的旋转。然后,您可以仅使用第二个变量中的y值并使用原始x和y值将对象的旋转设置为新的Vector3。它看起来像这样:
void Update()
{
Vector3 originalRotation = transform.eulerAngles;
transform.LookAt(Camera.main.transform.position, -Vector3.up);
Vector3 newRotation = transform.eulerAngles;
transform.eulerAngles = new Vector3(originalRotation.x, newRotation.y, originalRotation.z);
}