我有一个球需要在一段时间内加速,但是给力很小。我试图加速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);
}
}
}
答案 0 :(得分:1)
您可以试试这个,我没有更改任何变量名称以保持对原始代码的熟悉
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;
}
答案 1 :(得分:0)
在Update()
方法中设置gamestart to true
,以便应用程序不会在第一个if
内执行代码,直到您再次设置gamestart to false
为止。您还必须检查是否已启用MonoBehaviour或无法执行更新