0

我是Unity的新手,并抓住了BootCamp 项目并将其Unity 4.1.5f1作为 Windows 构建运行,无需任何修改

然后我尝试构建到 Android 并遇到了一堆错误(主要是未声明的变量)

但是我还有一个我只是不明白...

在 ImageEffectsOrder.js 文件中的以下代码中,javascript 引用了数组的排序方法sorted[] as sorted[i].order

'order' 的编译器错误不是对象的成员。

所以我对为什么windows构建支持这个成员而不是android有点困惑。这让我想知道从平台转换到平台时还有哪些其他惊喜在等待。

但是现在任何人都可以指出我的订单成员的解决方法吗?而且我不太清楚它实际返回的内容......似乎变量i应该给你命令。

从代码来看,顺序似乎是固有的,它从未设置为任何值,那么它是什么“顺序”?我似乎在 Array 类的这个“成员”上找不到任何文档。

这是代码:

var sorted : Array = new Array();

var i : int = 0;
for (var fx : PostEffectsBase in GetComponents(PostEffectsBase)) 
{
    if(fx && fx.enabled) 
    {   
        sorted[i++] = fx;
    }
}   


while (sorted.length) 
{
    var indexToUse : int = 0;
    var orderValue : int = -1;
    for(i = 0; i < sorted.length; i++) {
        if(sorted[i].order > orderValue) {
        orderValue = sorted[i].order;   
        indexToUse = i;
    }
}

 ...more code...
4

1 回答 1

0

我解决了。问题不在于 Array Class,fx因为分配给sorted[]数组的是 class 的对象PostEffectsBase

所以实际问题是我们尝试使用时的铸造问题之一sorted[i].order

我将引用从sorted[i].orderto更改为(sorted[i] as PostEffectsBase).order有效。

我必须记住这一点。似乎有很多这样的演员必须在平台之间完成。

于 2013-09-04T18:00:03.740 回答