我有一个游戏对象,它在z轴上倾斜x度,在x轴周围倾斜z度。我设法使用以下代码
public float xtilt, ztilt, ytilt;
//These virables are public float values for how much tilt or rotation I want.
//xtilt for how much rotation when moving on the x axis.
//ztilt for how much rotation when moving on the z axis.
//ytilt for how much rotation when moving on the y axis.
void FixedUpdate()
{
Rigidbody rb;
rb.rotation = Quaternion.Euler(rb.velocity.z * ztilt, 0.0f, rb.velocity.x * -xtilt);
}
上面的代码给了我以下
目的:
我想补充一点:围绕y轴旋转或倾斜游戏对象x度。
所以它会是这样的:
我试图绕过代码来实现这一点,但没有运气。
任何想法??
答案 0 :(得分:0)
假设ztilt * rb.velocity.z = z degrees
。
如果您想使用zdegrees围绕Y轴旋转对象,是否应该取代Y参数?像这样:
rb.rotation = Quaternion.Euler(0f, rb.velocity.z * ztilt, 0f);
从统一文档中,欧拉函数的声明是:
public static Quaternion Euler(float x, float y, float z);
答案 1 :(得分:0)
如果你想要z度,那么使用包含z值的变量:
替换
rb.velocity.y * ytilt
通过
rb.velocity.y * ztilt