我正在使用Unity3D 4.2,并有一个按钮可以触发此操作:
function SubmitMove()
{
p1cube = new Array ();
p2cube = new Array ();
var allCubeList = GameObject.FindGameObjectsWithTag("cube");
for(var allCube: GameObject in allCubeList)
{
if(allCube.GetComponent(CubeARDP).cubeState == "1")
{
p1cube.Push(allCube.name);
}
else if(allCube.GetComponent(CubeARDP).cubeState == "2")
{
p2cube.Push(allCube.name);
}
}
}
那么如何p1cube.Push(allCube.name);
给我一些错误:
MissingMethodException: System.String[].Push
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)
Boo.Lang.Runtime.RuntimeServices+<Invoke>c__AnonStorey15.<>m__9 ()
Boo.Lang.Runtime.DynamicDispatching.DispatcherCache.Get (Boo.Lang.Runtime.DynamicDispatching.DispatcherKey key, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.Invoke (System.Object target, System.String name, System.Object[] args)
UnityScript.Lang.UnityRuntimeServices.Invoke (System.Object target, System.String name, System.Object[] args, System.Type scriptBaseType)
axisrotateDynamicParenting.SubmitMove () (at Assets/component_tested/axisrotateDynamicParenting.js:468)
axisrotateDynamicParenting.OnGUI () (at Assets/component_tested/axisrotateDynamicParenting.js:285)
知道发生了什么吗?我检查了Unity脚本参考,发现我所做的一切似乎都还可以。任何帮助都会很棒。谢谢!
好像p1cube
那里没有常规的JS数组;不知何故,您有一个本机.NET数组。那些不能调整大小,因此没有Push
方法(因为按定义“推”会使数组变长)。
我现在正在解析文档,请原谅我。但是看来,如果将该数组声明为String[]
,那么它将是一个固定大小的本机.NET数组。为了执行您想要的操作,您可以将两个数组声明为Array
,或者让函数创建自己的本地JS数组,String[]
添加完内容后就变成它们。
至于如何/为什么您可以将an走私Array
到声明为的变量中String[]
?我没头绪 但是JS的类型系统介于“非常动态”和“我改变了Object
含义”之间。也许在起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句