根据时间进行转换(Unity和C#)

时间:2019-05-09 20:33:59

标签: c# unity3d

我希望我的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);

}

1 个答案:

答案 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);
    }
}