无效 Start() 函数 (C# Unity3D) 中的延迟



所以我想要的是我的角色根据倒计时改变位置和跳跃,但是我如何在start((函数中做到这一点,我知道Update((函数,但他会飞得很远。检查代码,这就是我尝试过的,有什么想法吗?谢谢。

private Rigidbody2D rb2de;
public float enemyJump;
float transformTime = 15.0f;

void Start()
{
    rb2de = GetComponent<Rigidbody2D>();
    rb2de.AddForce(new Vector2(rb2de.velocity.x, enemyJump));
    transformTime -= Time.deltaTime;
    if (Mathf.Round(transformTime) == 12) ;
    transform.position = new Vector3(4, transform.position.y, transform.position.z);
    rb2de.AddForce(new Vector2(rb2de.velocity.x, enemyJump / 12));

}

您所需要的只是使用协程

。 例如。
void Start()
{
   rb2de = GetComponent<Rigidbody2D>();
   rb2de.AddForce(new Vector2(rb2de.velocity.x, enemyJump));
   StartCoroutine($yourname());
}
IEnumerator $yourname()
{
   yield return new WaitForSeconds($waitingTime)
   transform.position = new Vector3(4, transform.position.y, transform.position.z);
   rb2de.AddForce(new Vector2(rb2de.velocity.x, enemyJump / 12));
}

函数开始可以是协程,试试这个

IEnumerator Start(({ ...收益率回报新等待秒( 12f (; ...}

相关内容

  • 没有找到相关文章

最新更新