【问题标题】:Infinite prefab spawn bug无限的预制生成错误
【发布时间】:2016-05-27 23:28:30
【问题描述】:

我为我的 2D 游戏编写了一个简单的生成脚本,我想在特定时间后生成一个对象。我设法让它工作,但一个问题是对象不断产卵。我只希望对象生成一次而不是无限量。

var myTimer : float = 5.0;
var thePrefab : GameObject;

function Update () {
    if(myTimer > 0){
        myTimer -= Time.deltaTime;
    }
    if(myTimer <= 0){
        var instance : GameObject = Instantiate(thePrefab, transform.position, transform.rotation);
    }
}

【问题讨论】:

标签: unity3d 2d unityscript


【解决方案1】:

通过移动 if 语句,您可以将对象限制为仅生成一次:

var myTimer : float = 5.0;
var thePrefab : GameObject;

function Update () {
    if(myTimer > 0){
        myTimer -= Time.deltaTime;

        if(myTimer <= 0){
            var instance : GameObject = Instantiate(thePrefab, transform.position, transform.rotation);
        }
    }
}

现在,对象只会在myTimer &gt; 0 在递减之前生成,myTimer &lt;= 0 在递减之后生成 - 这只会发生一次。

希望这会有所帮助!如果您有任何问题,请告诉我。

【讨论】:

  • 太棒了!很高兴能帮到你。
  • 虽然帮助新的 Unity 爱好者是完全令人钦佩的,但考虑到这里的 Unity3D 标签中的混乱是一个巨大的问题。 确实,看到或回答问题变得非常困难。考虑到通常最好直接关闭问题,如有必要,也许留下有用的评论
  • @JoeBlow 啊,明白了。虽然不确定建议的副本是否适用于这种情况 - 错误出现在 OP 的代码逻辑中,而不是能够为其游戏对象设置父级。
  • 嗨@serlite。一件事是,不要忘记,使用任何你喜欢的理由。没有人真正关注或关心密切的原因。这也可能被关闭为“由一个简单的印刷错误引起”“太模糊”等等。
  • @JoeBlow 哦,嗯......我尽量使用我的近距离投票(我同意 Unity3D 标签有点像低质量/努力问题的污水池),但我怀疑我们的近距离投票启发式有所不同,哈哈。
猜你喜欢
  • 1970-01-01
  • 2018-11-09
  • 2019-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 2014-11-30
  • 2013-01-06
  • 1970-01-01
相关资源
最近更新 更多