存在的方法没有方法异常

No Method Exception on a method that exists

我试图在数组中定位一个变量,因为它最初是从数组中获取的,但在 UnityScript 中,这并不像我希望的那样简单。

这是我查找索引的代码:

function nextArea() {
    var tmp = Array.IndexOf(areas, currentArea);
    tmp++;
    currentArea = areas[tmp];
    initNewArea();
}

然而,每当我在 Unity 中 运行 它时,我都会收到此错误:

MissingMethodException: UnityScript.Lang.Array.IndexOf
Boo.Lang.Runtime.DynamicDispatching.MethodDispatcherFactory.ProduceExtensionDispatcher ()
Boo.Lang.Runtime.DynamicDispatching.MethodDispatcherFactory.Create ()
Boo.Lang.Runtime.RuntimeServices.DoCreateMethodDispatcher(System.Object target, System.Type targetType, System.String name, System.Object[] args)
Boo.Lang.Runtime.RuntimeServices.CreateMethodDispatcher (System.Object target, System.String name, System.Object[] args) 

如果你能修复它并拥有一个 github 帐户,我已经在这里打开了一个问题:GitHub

可能你想要这样:

var arr = new System.Collections.ArrayList ();

// Add elements
arr.Add ("Hello");
arr.Add("World");

Debug.Log(arr.IndexOf("World"));

您也可以尝试 System.Collections.Generic.List<T>, it also contains IndexOf 功能。