'有源'不是UnityEngine.Transform'的成员。

时间:2017-09-13 06:38:11

标签: javascript unity3d

任何人都知道我为什么会收到这个错误,当我将项目升级到最新版本的unity3d时出现此错误。



#pragma strict
@script ExecuteInEditMode
function Start () {

}

var bool : boolean = false;
var ts1 : Transform[];
function Update () {
	if(bool){
		bool = false;
		var ts = new Array();
		for(var trans : Transform in transform){
			if(!trans.active){
				ts.Add(trans);
			}
		}
		ts1 = new Array(ts.Count);
		for(var i=0; i<ts.length; i++){
			ts1[i] = ts[i];
		}
	}
}
&#13;
&#13;
&#13;

告诉我哪部分代码错了?

2 个答案:

答案 0 :(得分:0)

Active不是属性。您需要使用activeSelf类型的GameObject属性。

transform.gameObject.activeSelf

您也可以使用:

transform.gameObject.activeInHierarchy

要修复您的代码,请替换此

if(!trans.active){
    ts.Add(trans);
}

有了这个

if(!trans.gameObject.activeSelf ){
    ts.Add(trans);
}

答案 1 :(得分:0)

目前此属性不存在。 您需要使用gameobject.active来检查活动状态,而不是transform.active。

#pragma strict
@script ExecuteInEditMode
function Start () {

}

var bool : boolean = false;
var ts1 : Transform[];
function Update () {
    if(bool){
        bool = false;
        var ts = new Array();
        for(var trans : Transform in transform){
            if(!trans.gameObject.activeSelf){
                ts.Add(trans);
            }
        }
        ts1 = new Array(ts.Count);
        for(var i=0; i<ts.length; i++){
            ts1[i] = ts[i];
        }
    }
}