【发布时间】:2018-10-01 19:01:02
【问题描述】:
所以我正在创建一个非常简单的游戏,不打算说它是什么,因为它是一个秘密,但我有一个名为“rpm”的变量,并且每一帧,它都会以“rpm”旋转一个对象。但是每秒钟 rpm 将增加 0.1,我该怎么做非常感谢您的帮助
脚本 1
public class Rotate : MonoBehaviour
{
public float rpm = RPM.rpm;
// Update is called once per frame
void Update ()
{
transform.Rotate(0, rpm, 0);
}
}
脚本 2
public class RPM : MonoBehaviour
{
public static float rpm = 0.1f;
void Update()
{
System.Threading.Thread.Sleep(1000);
rpm = rpm + 0.1f;
}
}
所有这一切都是,不增加转速,所以它保持相同的旋转速度,但不是每帧旋转一次,而是每秒旋转一次,这是我不想要的。
再次感谢任何帮助,如果您需要任何额外信息,请告诉我 谢谢
【问题讨论】:
-
在您的
Rotate脚本中,您将变换旋转到一个点(0, 0.1, 0)。然后下一秒,(0, 0.2, 0) -
我试过了,然后它想出了这个错误代码'Transform'不包含'y'的定义,并且没有可访问的扩展方法'y'接受'Transform'类型的第一个参数可能是找到(您是否缺少 using 指令或程序集引用?)
-
@Dominic 该错误表明您正在尝试使用
transform.y,而不是transform.position.y。 -
@jakec 的答案似乎满足要求,但如果您真的想同时运行 2 个循环,请查看 coroutines
-
不要在主线程上调用
Thread.Sleep。 Unity 的主线程上有什么? 一切。