'Implicit downcast from object to int' 返回数组时发出警告
'Implicit downcast from object to int' warning when returning an Array
所以我在GameMain.js中有一个函数:
function getTarget( ... ){
...
return [targetX, targetY, objectBehaviour, moveX, moveY];
}
如您所见,我 return 一个数组。数组中的变量及其类型在函数中声明。然后我想在另一个脚本中使用数组:
var targetInfo = gameMain.getTarget( ... );
target = new Vector2(targetInfo[0], targetInfo[1]);
objectBehaviour = targetInfo[2];
moveX = targetInfo[3];
moveY = targetInfo[4];
这里使用的变量也是之前声明过类型的。
一切正常,但最后 3 行发出警告:
"从 'Object' 到 'int'
的隐式向下转换
我想知道为什么我会收到此警告,因为所有内容都被声明为 int 而没有任何内容应该是 Object。请注意,带有 vector2 的倒数第 4 行没有给出警告。
好的,所以我终于找到了 as int[]
的解决方案,感谢 Venkats 的评论。
事实上,我撒谎 objectBehaviour
来简化问题。它不是 int
,而是 ObjectBehaviour
(我创建的枚举)。
我制作了两个数组,转换它们的类型并将它们放在一个锯齿状的数组中,如下所示:
return [[targetX, targetY, moveX, moveY], [objectBehaviour]];
在 GameMain.js 中,在另一个脚本中:
var targetInfo = gameMain.getTarget( ... );
var targetInfo1 = targetInfo[0] as int[];
var targetInfo2 = targetInfo[1] as ObjectBehaviour[];
target = new Vector2(targetInfo1[0], targetInfo1[1]);
moveX = targetInfo1[2];
moveY = targetInfo1[3];
objectBehaviour = targetInfo2[0];
Ty Umair 和 Venkat 提供信息!
所以我在GameMain.js中有一个函数:
function getTarget( ... ){
...
return [targetX, targetY, objectBehaviour, moveX, moveY];
}
如您所见,我 return 一个数组。数组中的变量及其类型在函数中声明。然后我想在另一个脚本中使用数组:
var targetInfo = gameMain.getTarget( ... );
target = new Vector2(targetInfo[0], targetInfo[1]);
objectBehaviour = targetInfo[2];
moveX = targetInfo[3];
moveY = targetInfo[4];
这里使用的变量也是之前声明过类型的。 一切正常,但最后 3 行发出警告: "从 'Object' 到 'int'
的隐式向下转换我想知道为什么我会收到此警告,因为所有内容都被声明为 int 而没有任何内容应该是 Object。请注意,带有 vector2 的倒数第 4 行没有给出警告。
好的,所以我终于找到了 as int[]
的解决方案,感谢 Venkats 的评论。
事实上,我撒谎 objectBehaviour
来简化问题。它不是 int
,而是 ObjectBehaviour
(我创建的枚举)。
我制作了两个数组,转换它们的类型并将它们放在一个锯齿状的数组中,如下所示:
return [[targetX, targetY, moveX, moveY], [objectBehaviour]];
在 GameMain.js 中,在另一个脚本中:
var targetInfo = gameMain.getTarget( ... );
var targetInfo1 = targetInfo[0] as int[];
var targetInfo2 = targetInfo[1] as ObjectBehaviour[];
target = new Vector2(targetInfo1[0], targetInfo1[1]);
moveX = targetInfo1[2];
moveY = targetInfo1[3];
objectBehaviour = targetInfo2[0];
Ty Umair 和 Venkat 提供信息!