发生碰撞时如何实例化预制件c#

Posted

技术标签:

【中文标题】发生碰撞时如何实例化预制件c#【英文标题】:How to Instantiate prefab when have a collision 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 ?!! 【参考方案1】:

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

【讨论】:

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

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

【讨论】:

以上是关于发生碰撞时如何实例化预制件c#的主要内容,如果未能解决你的问题,请参考以下文章

在 Unity C# 中实例化游戏对象列表

当我第二次实例化预制件时,为啥会出现错误?

Unity:使用动画师实例化预制件

Unity UI 缩放和实例化预制件

如何从预制件中获取场景中游戏对象的引用

Unity Photon:实例化非预制对象?