2017-09-13 88 views
0

任何人都知道我为什么会出现该错误,当我将我的项目升级到unity3d的最新版本时出现此错误。'active'不是'UnityEngine.Transform'的成员

#pragma strict 
 
@script ExecuteInEditMode 
 
function Start() { 
 

 
} 
 

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

告诉我这部分的代码是错误的?

回答

0

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

#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]; 
     } 
    } 
} 
+0

感谢它修复,这部分即时得到错误与这个UIStone.transform.parent.active = true; ,我只是试图改变activeSelf但得到错误 –

0

活动不是一个属性。您需要使用GameObject类型的activeSelf属性。

transform.gameObject.activeSelf 

您还可以使用:

transform.gameObject.activeInHierarchy 

要解决你的代码,替换该

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

有了这个

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

活动不是gameobject的属性...活动不存在。该属性是积极的自我 – joreldraw

相关问题