【问题标题】:Instantiating an Object after Destroying in UNITY JAVASCRIPT在 UNITY JAVASCRIPT 中销毁后实例化对象
【发布时间】:2014-02-04 14:36:24
【问题描述】:

销毁命令:

var destroyTime : int; // This is the time in seconds
function Start(){
    yield WaitForSeconds(destroyTime);
    Destroy(gameObject);
}

我想销毁一个对象然后再创建另一个对象 你能统一给我它的代码吗?我只有 销毁命令

这段代码在我想要的特定时间后销毁对象 再次在该位置重生我的特定对象

【问题讨论】:

  • 更好的性能是设置可见性开/关,而不是再次破坏创建对象。有时您需要实现类似init() 的方法,其中所有属性都重置为默认值。

标签: unity3d instantiation destroy unityscript


【解决方案1】:

如果你想在之后重新使用你的对象,那么最好的办法不是销毁它,而是禁用它。

var destroyTime : int; // This is the time in seconds
function Start(){
    yield WaitForSeconds(destroyTime);
    gameObject.SetActive(false);
}

然后,您可以再次重新启用它。但是,当您这样做并希望在生成它时保持“在 xx 秒后销毁”,您必须将您的函数更改为“OnEnable”事件,因为该对象已经启动。像这样:

var destroyTime : int; // This is the time in seconds
function OnEnable(){
    yield WaitForSeconds(destroyTime);
    gameObject.SetActive(false);
}

PS:我很确定你已经有一个脚本附加到一些生成游戏对象的游戏对象上,因为有必要执行 spwawn/destroy 逻辑。我希望这会有所帮助。

【讨论】:

  • 先生,感谢您的回复,但我很难编写重生代码。能教下怎么做吗??非常感谢:)
  • 它不起作用:(我的目标是让立方体隐藏几秒钟,然后再次出现几秒钟。
  • 那么,你具体想要的是一个红绿灯逻辑?
  • 现在可以了,先生,谢谢您的回复和款待:) 我很感激
  • 没问题。您可以将问题标记为已回答吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多