The name IEnumerator does not exist in current context

我们两清 提交于 2019-12-12 01:38:08

问题


This is the most annoying error I've had in a while. I want to make a simple loop to move my camera to another point in Unity, using C#.

I'm "using System.Collections.Generic", and IEnumerator even shows up in the suggestions when I start typing it, but as soon as I'm done, it goes red and has an error that reads "Assets/Scripts/NerworkManager.cs(190,9): error CS0246: The type or namespace name `IEnumerator' could not be found. Are you missing a using directive or an assembly reference?" in the console, and "error CS0103: The name IEnumerator does not exist in the current context" in the editor.

Here's my code:

IEnumerator LerpCam(Camera c, Vector3 target, float length){
        float startTime = Time.time;
        while (Time.time < startTime + length) {
            c.transform.position = Vector3.Lerp (c.transform.position, target, Time.deltaTime);
        }
    yield return null;
}

I have no idea what the problem is, and am able to use other things from the Generic collection without problems. Any help would be greatly appreciated.


回答1:


IEnumerator is in System.Collections and IEnumerator<T> is in System.Collections.Generic. So make sure you have the correct matching pair.




回答2:


You have to put

using System.Collections;

at the top of your file.




回答3:


I added using System.Collections and I was still getting error "The name 'Enumerable' does not exist in the current context". I added using System.Linq and the error disappeared.




回答4:


The name 'Enumerable' does not exist because It requires Linq which is available at Framework 4.0

And don't forget to use the libraries:

using System.Collections;
using System.Linq;


来源:https://stackoverflow.com/questions/31416514/the-name-ienumerator-does-not-exist-in-current-context

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!