Unity3d无法使用装备预制件。

时间:2015-10-17 09:11:34

标签: c# unity3d

尝试团结一致,所以我制作了一个简单的玩家控制器和一个武器控制器。 我将我的武器控制器拖到我的播放器上,我试着指定一个预制件作为起始枪,但由于某种原因它不允许我这样做。我无法将Prefab拖到我脚本中的startingGun中。

我的武器控制器如下所示:

namespace Assets.Scripts.Weapon
{
    public class WeaponController : MonoBehaviour
    {
        public Transform WeaponHold;
        public Gun startingGun;
        private Gun EquippedGun;

        void Start()
        {
            if (startingGun != null)
            {
                EquipWeapon(startingGun);   
            }   
        }

        public void EquipWeapon(Gun gunToEquip)
        {
            if (gunToEquip != null)
                Destroy(EquippedGun.gameObject);

            EquippedGun = Instantiate(gunToEquip, WeaponHold.position, WeaponHold.rotation) as Gun;
            if (EquippedGun != null)
                EquippedGun.transform.parent = WeaponHold;
        }
    }
}

1 个答案:

答案 0 :(得分:2)

问题在于您是否尝试将预制件分配给具有GameObject类型的变量 - 而是需要使用以下代码,然后您应该能够在检查器中添加预制件:

public Object startingGun;