【问题标题】:Unity3d OnTriggerEnter c#Unity3d OnTriggerEnter c#
【发布时间】:2013-02-20 12:27:16
【问题描述】:

您好,当一个物体穿过一个空物体时,我正在尝试让一个计分器运行。下面是我正在使用的代码。

private void OnTriggerEnter(Collider other){
     var collider = projectile.gameObject;
     score = score+1;
    // Debug.Log(collider);
    Debug.Log(score);
}

当弹丸穿过物体时分数会增加,但如果我射击第二个,分数不会再次增加,直到第一个弹丸回滚并变为两个。

我想知道的是如何在通过空对象一秒钟后销毁对象,在存储该分数的同时将分数增加一,还允许另一个对象通过并重复前面的步骤但递增得分为 2,依此类推。

任何帮助将不胜感激

【问题讨论】:

  • OnTriggerEnter方法是在对象中实现还是在弹丸类中实现?

标签: c# unity3d


【解决方案1】:

当弹丸穿过物体时分数会增加,但 如果我打第二个,分数不会再次增加,直到 第一个弹丸回滚并变成两个。

我猜你的 score 变量是在你的 projectile script 实例中定义的,所以不同的 projectiles 有不同的 score 变量实例。 我建议你将分数存储在弹丸脚本之外的其他地方。

使用类(es.Score Manager)来存储分数并在您的射弹脚本中添加对它的引用。

我想知道的是如何销毁对象 通过空对象的第二个,将分数加一 在存储该分数的同时,还允许另一个对象通过 并重复前面的步骤,但将分数增加到 2 等等 开。

这不会解决您的问题。顺便说一句,您可以使用 Object.Destroy 方法销毁对象:

GameObject aGameObject;
...
GameObject.Destroy(aGameObject); //this will destroy the object referenced by aGameObject

【讨论】:

  • 感谢我刚刚将脚本添加到错误的地方,感谢您的帮助
猜你喜欢
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多