我不知道下面代码的销毁部分有什么问题。我试图在整个场景中只有1 GameControl
持续存在。似乎每次切换回此场景时,我的GameControl
都会被视为空,并且会生成一个新的GameControl
,并且我最终会持续存在多个GameControl
。
供参考:我尝试将代码从18:24移植到此link
的JavaScript中请告知。
#pragma strict
var control : GameControl;
function Awake () {
Debug.Log("GameControl runs");
if (control == null)
{
DontDestroyOnLoad(gameObject);
control = this;
Debug.Log(control);
} else if (control != this)
{
Destroy(gameObject);
Debug.Log("Destroy?");
}
}
function Update ()
{
}
答案 0 :(得分:0)
问题是你没有使用这样的静态变量:
static var control : GameControl;
简单来说,static
表示此变量将在所有脚本中保持相同的值,因此检查if(control == null)
将始终保持为真,因为当您GameObject
时, df[c(which(grepl(toupper("Datsun"),toupper(rownames(df))))+1,which(grepl(toupper("valiant"),toupper(rownames(df))))-1) , ]
将创建一个新变量加载一个新场景。这个新对象仍然不是静态的,因此完全不同。我希望这有帮助。如果你仍然感到困惑,我建议你阅读一些单一的模式文章,因为有很多方法可以实现它。