【问题标题】:Unity3d BootCamp Tutorial UnityScript Array Order Anomaly in ImageEffectsOrder.jsUnity3d BootCamp 教程 UnityScript Array Order Anomaly in ImageEffectsOrder.js
【发布时间】:2013-09-07 11:07:55
【问题描述】:

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

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

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

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

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

所以我有点困惑,为什么 windows 版本支持这个成员,但不支持 android。 这让我想知道从平台转换到平台时还有哪些惊喜等待着我们。

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

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

代码如下:

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...

【问题讨论】:

    标签: android arrays unity3d unityscript


    【解决方案1】:

    我解决了。问题不在于数组类,因为分配给sorted[] 数组的fxPostEffectsBase 类的对象。

    所以实际问题是我们尝试使用sorted[i].order时的转换问题

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      相关资源
      最近更新 更多