我有一个球,它需要在时间上加速,但是给一个很小的力。我试着用Time.deltatime加速,但是它不起作用。
这是我的代码示例(要开始游戏,您需要一个点击和球是以恒定的速度移动),我的问题是如何能够自动加速一个球在时间。
void Start ()
{
Application.targetFrameRate = 60;
gameStart = false;
}
void Update ()
{
if (!gameStart)
{
if (Input.touchCount >= 1)
{
gameStart = true;
GetComponent<Rigidbody2D> ().AddForce (new Vector2 (1f, 0.5f) * force);
}
}
}
发布于 2016-02-06 10:58:14
您可以尝试这样做,我没有更改任何变量名来保持对原始代码的熟悉。
Rigidbody2D myRigidbody
void Awake(){ myRigidbody = GetComponent<Rigidbody2D>(); }
void Start ()
{
Application.targetFrameRate = 60;
gameStart = false;
// Invokes the method setGameStartToFalse in 2 seconds, then repeatedly every 1 seconds.
InvokeRepeating("setGameStartToFalse", 2f, 1.0F);
}
void FixedUpdate ()
{
if (!gameStart)
{
if (Input.touchCount >= 1)
{
gameStart = true;
myRigidbody.AddForce(new Vector2 (1f, 0.5f) * force);
}
}
}
void setGameStartToFalse()
{
gameStart = false;
}
发布于 2016-02-06 10:49:39
在Update()
方法中,您设置了gamestart to true
,以便应用程序在再次设置gamestart to false
之前不会在第一个if
中执行代码。您还必须检查是否启用了MonoBehaviour,否则更新将不执行
https://stackoverflow.com/questions/35239775
复制相似问题