我想复制名为“Damaged”的游戏对象。
我希望它有确切的名字、位置并且是游戏对象 Boss 下的孩子。整个想法是,每次我调用一个函数时,都应该创建一个游戏对象,它有一个带有单个动画的动画师,然后在播放动画时,有一个事件会破坏该游戏对象。我尝试了明显的 Instance 解决方案,我得到了父类之外的对象。:
GameObject duplicate = Instantiate(damageText, transform.position, transform.rotation);
animator.SetTrigger("Damage");
总的来说,我需要帮助将新创建的游戏对象作为子对象移动到 Boss 对象下并触发该游戏对象的动画。我试着搜索它,但我找不到任何东西。
如果您更改 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;
创建后直接设置parent,运行动画师的Trigger。
GameObject duplicate = Instantiate(damageText, transform.position, transform.rotation, transform.parent);
animator.SetTrigger("Damage");
duplicate.GetComponent<Animator>().SetTrigger("Damage");