【发布时间】:2018-08-01 06:53:59
【问题描述】:
在我的项目中,我有一辆汽车,上面附有一个用于驾驶的脚本。在我的世界里是红绿灯,如果它是红色的,就会产生一个物体(不可见,命名为 stop),如果它在那里,它会使汽车停下来,如果它不在,它会以特定的变量(速度)继续行驶。如何编写减速和加速脚本? 尝试使用 Wait for Seconds 和外部协程来管理它,但没有任何效果。在更新无效:
Ray disray = new Ray(transform.position, transform.forward);
RaycastHit dishit;
if (Physics.Raycast(disray, out dishit, 8) && dishit.transform.tag == "stop")
{
if (dishit.distance < carrange)
{
transform.Translate(0, 0, 0);
}
}
else
{
transform.Translate(0, 0, speed * Time.deltaTime);
}
谢谢!
【问题讨论】:
-
您可能需要更改变量
speed... -
谢谢,但是怎么做?如果我让速度=速度/2;那么它会停止即时性,但我想要一个放慢速度的过程......
-
可能与
Time.deltaTime(speed = speed - X*Time.deltaTime) 成正比减速,直到它达到 0。或者speed = speed * (1-f(Time.deltaTime))与f(x)返回介于 0 和 1 之间的值
标签: c# unity3d acceleration