我希望我的gameObject每0.5秒在x轴上变换0.5个单位,为此我创建了协程,请检查脚本,这是什么问题?
private Rigidbody2D rb2d;
public float Speed;
// Start is called before the first frame update
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
StartCoroutine(Movement());
}
IEnumerator Movement()
{
yield return new WaitForSeconds(0.5f);
transform.position = new Vector3(transform.position.x - 0.5f, transform.position.y, transform.position.z);
}
答案 0 :(得分:0)
您必须使用循环。如果要无限循环,可以使用“ while(true)”或“ for(;;)”
示例
private Rigidbody2D rb2d;
public float Speed;
int k;
// Start is called before the first frame update
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
StartCoroutine(Movement());
}
IEnumerator Movement()
{
for (k = 1; k <= 100; k++)
{
yield return new WaitForSeconds(2f);
transform.position = new Vector3(transform.position.x - 0.5f, transform.position.y, transform.position.z);
}
}