【问题标题】:How to Instantiate prefab when have a collision c#发生碰撞时如何实例化预制件c#
【发布时间】:2017-09-23 22:47:45
【问题描述】:

我想在发生碰撞时统一实例化一个预制件。

这是我的代码:

if (IgnourColl.Ddeer = true) {

    Instantiate(Deer, new Vector3(TPlayer.transform.position.x + 5, TPlayer.transform.position.y, 0), Quaternion.identity);
    IgnourColl.Ddeer = false;
}

IgnourColl.Ddeer = false; 是一个布尔值,如果发生冲突则变为真。

我在 true 之后添加 false 以便实例化停止,直到另一个碰撞...

一切正常,但 if 语句不起作用,并且在第一个 prefab 实例化后实例化并没有停止。

【问题讨论】:

  • 你能把整个函数贴出来吗?
  • if (IgnourColl.Ddeer = true) 也不正确,应该抛出一个编译器警告,询问您是否真的打算进行 assignment 而不是 comparison。 也没有必要== true 无论如何。 if(IgnourColl.Ddeer) 就足够了。
  • 另外,您使用的是 C# 还是 UnityScript?即使 UnityScript 明确表示“不要将此标签用于 C# 中的脚本”,您也已经用这两个标签标记了您的问题
  • 现在看起来不错,但是现在我让鹿与玩家发生碰撞时的速度为 0....我如何让它回到 9 以实例化鹿女巫并且他仍然碰撞的鹿0 ?!!

标签: c# unity3d unityscript


【解决方案1】:

对不起,但是使用“OnCollisionEnter()”会在碰撞进入时做一些事情。 无需设置为 false。

【讨论】:

  • 好吧 thxx 很多 .. 现在我将鹿的速度设置为 0 当他进入碰撞时......我如何让它回到 9 并且他碰撞的鹿仍然是 0 ?!!
  • 我想我不明白你的问题,当碰撞..结束时有“OnCollisionExit”来做事
  • 鹿与玩家发生碰撞时的速度为 0 ......我如何让它回到 9 到鹿女巫我将实例化并且他已经碰撞的鹿仍然是 0 ?!!跨度>
  • 这与您提出的问题不同。如果您有其他问题,请在新问题中提出...
  • 我还是听不懂他的意思。
【解决方案2】:

我通过制作一个盒子碰撞器来替换实例化,当他与玩家碰撞时,他使鹿游戏对象出现,所以我不需要实例化

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2017-12-23
    相关资源
    最近更新 更多