【问题标题】:Unity prefabs acting differently based on whether dragging them into the scene statically or having them dynamically generated by codeUnity 预制件的行为不同,具体取决于是将它们静态拖动到场景中还是让它们由代码动态生成
【发布时间】:2017-08-27 20:07:26
【问题描述】:

如果我像这样实例化一个预制件:

GameObject asteroid = GameObject.Instantiate(thing2spawn);
//then set the location and some other stuff

预制小行星的碰撞根本没有记录,但如果我只是将小行星拖到场景中,碰撞就会完全按照预期工作。

【问题讨论】:

    标签: c# unity3d unity5 unityscript unity-components


    【解决方案1】:

    想通了。

    我的小行星物体有两个子物体,其中包含做不同事情的对撞机。击中小行星的某个部分会治愈你,而击中另一部分会伤害你。这两个孩子有刚体组件,所以当我在代码中设置小行星(父对象)的速度时,这两个孩子不会随之移动。所以看起来对撞机似乎没有工作,而实际上它们只是被留在了其他地方。从孩子身上移除刚体解决了这个问题。

    很奇怪。

    【讨论】:

    • 如你所见,你不能真正将刚体作为另一个刚体的孩子,否则你会遇到这样的随机非工作行为。
    猜你喜欢
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    相关资源
    最近更新 更多