【发布时间】:2017-06-23 02:25:02
【问题描述】:
我想模拟一条随机滑行的蛇。这是在Update() 但是,旋转并不是我想要的。
我的游戏对象的 y 旋转从 270 度开始。起初它似乎工作,但它似乎总是最终指向大约。 360度。
float currentY = transform.rotation.y;
// the initial y rotation starts at 270
// seems like it rotates y to be between 350 and 10 degrees only.
// This is not what I want. I want it to randomly turn a little to the left or right,
// and then move forward
transform.rotation = Quaternion.Lerp(
transform.rotation,
Quaternion.Euler(0f, (Random.Range(-10.0f, 10.0f) + currentY), 0f),
(float)(Time.time * .01)
);
rbody.AddForce(transform.forward * speed * 2.5f);
【问题讨论】:
-
也许你可以尝试不添加 currentY,因为
transform.rotation已经使用其当前朝向的方向进行旋转,所以Quaternion.Euler(0f, (Random.Range(-10.0f, 10.0f)), 0f)已经告诉它从当前方向左转或右转。 -
她到底在做什么?前进直到发生什么? 我认为最好让她创建一个帐户并直接提出这个问题。
-
我相信您需要从等式中删除
+ currentY。Euler旋转x度 - 你要求它旋转x + currentY度 -
@Programmer 监护人代表某人发布问题是完全有效的。还;这个问题与前进没有任何关系,直到 - 他们只是询问轮换。他们所做的与这里无关。
-
是的,它是有效的。只是我不明白这个问题,我认为这对有问题的人发布帖子更有帮助,因为您可以轻松地使用评论部分向他们询问有关他们问题的问题。如果你知道他们在做什么,你可以很容易地发现代码中的问题。