我的统一 IEnumerator 方法似乎不起作用
My unity IEnumerator method not seems to be work
我有一些代码:
为什么 IEnumerator 方法中的 Debug.Log 不显示任何内容?
为什么我的方法不起作用?
void Update()
{
if (Input.GetKeyDown(KeyCode.G))
{
Debug.Log(true);
MoveInsideTheShape(speedy);
}
}
public IEnumerator MoveInsideTheShape(float speed)
{
speed = 1 / speed;
float totalLenght = cam.orthographicSize * 2;
float iterationLenght = totalLenght / speed;
Debug.Log(cam.orthographicSize); // does not work
}
即使您在 MoveInsideTheShape
方法中缺少 return 语句,添加它仍然无法解决您的问题。
IEnumerator 方法必须使用 StartCoroutine
辅助方法进行迭代。
这是经过测试的工作代码。
void Update()
{
if (Input.GetKeyDown(KeyCode.G))
{
Debug.Log(true);
StartCoroutine(MoveInsideTheShape(speedy));
}
}
public IEnumerator MoveInsideTheShape(float speed)
{
speed = 1 / speed;
float totalLenght = cam.orthographicSize * 2;
float iterationLenght = totalLenght / speed;
Debug.Log(cam.orthographicSize);
yield return null;
}
有用的链接:
我有一些代码: 为什么 IEnumerator 方法中的 Debug.Log 不显示任何内容? 为什么我的方法不起作用?
void Update()
{
if (Input.GetKeyDown(KeyCode.G))
{
Debug.Log(true);
MoveInsideTheShape(speedy);
}
}
public IEnumerator MoveInsideTheShape(float speed)
{
speed = 1 / speed;
float totalLenght = cam.orthographicSize * 2;
float iterationLenght = totalLenght / speed;
Debug.Log(cam.orthographicSize); // does not work
}
即使您在 MoveInsideTheShape
方法中缺少 return 语句,添加它仍然无法解决您的问题。
IEnumerator 方法必须使用 StartCoroutine
辅助方法进行迭代。
这是经过测试的工作代码。
void Update()
{
if (Input.GetKeyDown(KeyCode.G))
{
Debug.Log(true);
StartCoroutine(MoveInsideTheShape(speedy));
}
}
public IEnumerator MoveInsideTheShape(float speed)
{
speed = 1 / speed;
float totalLenght = cam.orthographicSize * 2;
float iterationLenght = totalLenght / speed;
Debug.Log(cam.orthographicSize);
yield return null;
}
有用的链接: