unity3d 如何在代码Unity中复制gameObject

w7t8yxp5  于 2023-03-23  发布在  其他
关注(0)|答案(2)|浏览(161)

我想复制名为“损坏”的游戏对象。

我希望它有确切的名称,位置,并且是gameObject Boss下的一个孩子。整个想法是,每次我调用一个函数,都应该创建一个gameObject,它有一个带有单个动画的Animator,然后当动画播放时,有一个事件会破坏那个gameObject。我尝试了明显的示例解决方案,我在父类之外获得了对象。

GameObject duplicate = Instantiate(damageText, transform.position, transform.rotation);
animator.SetTrigger("Damage");

总的来说,我需要帮助来移动新创建的gameObject作为Boss对象下的子对象,并触发该gameObject的动画。我尝试搜索它,但我找不到任何东西。

xfyts7mz

xfyts7mz1#

创建后直接设置父对象并运行动画师的触发器。

GameObject duplicate = Instantiate(damageText, transform.position, transform.rotation, transform.parent);
animator.SetTrigger("Damage");

duplicate.GetComponent<Animator>().SetTrigger("Damage");
bvjxkvbb

bvjxkvbb2#

如果你改变你的Instanciate来添加父变换,它应该工作,instanciate可以把父变换作为参数,只是像这样添加它:

GameObject duplicate = Instantiate(damageText, transform.position, transform.rotation, "parent transform here");
animator.SetTrigger("Damage");

如果你想得到父变换,你可以用它的名字找到它,如下所示:Transform bossTransform = GameObject.Find("name").tranform;或者你可以把它作为一个公共组件添加到你的脚本中:public Transform bossTransform;

相关问题