【问题标题】:Unity3d Can't use equip prefab.Unity3d 不能使用装备预制件。
【发布时间】:2015-10-17 18:07:37
【问题描述】:

尝试统一玩,所以我制作了一个简单的播放器控制器和一个武器控制器。 我将我的武器控制器拖到我的播放器上,并尝试将预制件指定为起始枪,但由于某种原因它不允许我这样做。我无法将预制件拖到脚本中的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;
        }
    }
}

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

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

    public Object startingGun;
    

    【讨论】:

    • 我试过了,还是不行。我将我的预制件拖到上面。如果我使用小按钮选择预制件,我也不能在这里选择它
    • 您能否发布您的场景和脚本所附加对象的检查器的屏幕截图?
    • 更新了我的答案 - 测试看看是否能解决您的问题
    • 不,这也是我测试的第一件事。
    • 你不是从场景右边拖出来的,你是从项目标签里拖出来的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多