更新脚本中的动画引用

时间:2015-05-26 08:57:23

标签: animation unity3d sprite

对于2D侧面平台,我在这里做了一个小齿轮系统的描述:

  • 播放器(附带Gear脚本的主要播放器gameObject)
    • Gear(此游戏对象仅适用于组织,它名为" root"在脚本中,并且没有附加脚本)
    • 护甲(精灵盔甲和护甲脚本)
    • 武器(带有精灵和武器脚本的武器)

我有一个附加到Player的脚本,它是Gear,引用了" Gear" GameObject将其用作我未来项目的父变换。

在装备中,我用这种方式装备武器:

public void Equip(Wearable w){
        switch (w.type) {
        case Wearable.Type.WEAPON:
            GameObject weaponGO = Instantiate(w.gameObject);
            weaponGO.transform.SetParent(root.transform);
            Destroy (this.weapon.gameObject);
            this.weapon = w.GetComponent<Weapon>();
            break;
             //I did a swicth because i'll do it for armor, pets etc afterwards
        }
    }

问题在于我还有付款人的动画师,攻击,移动等......

所以,当我改变我的武器时,它会产生0,0,0并且它根本不跟随动画,并且在我的播放器的动画中,我看到&#34;武器:位置(缺失) !)&#34;,所以我认为这来自动画参考......但是如何在我的剧本中改变它?

1 个答案:

答案 0 :(得分:0)

问题似乎在于对象命名。因此,在实例化之后,您必须重命名新武器对象,以使其名称与您删除的名称完全相同。动画师中的参考应该在此之后自动更新。

请注意,层次结构中的位置也应该与具有Animator组件的对象相同。

另请注意,实例化对象应具有与Animator中相同的属性(组件)作为已删除的属性。