繁体   English   中英

CS0266 C# 无法将类型“UnityEngine.Object”隐式转换为“”。 存在显式转换(您是否缺少演员表?)

[英]CS0266 C# Cannot implicitly convert type 'UnityEngine.Object' to ''. An explicit conversion exists (are you missing a cast?)

我有一个编译器错误,编译器无法将类型“UnityEngine.Object 转换为 Gun。我不认为这些是不同的文件类型,但无论如何,这是我的代码。我一直被这个问题难住,我不是专业人士在 C# 上,所以如果是 n00b 错误,请原谅我。我不知道如何使用代码插入,这让我很困惑,所以这是一个打印屏幕。

using UnityEngine;
using System.Collections;

public class GunController : MonoBehaviour {

    public Transform WeaponHold;
    public Gun startingGun;
    Gun equippedGun;

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

    public void EquipGun(Gun gunToEquip)
    {
        if(equippedGun != null)
        {
            Destroy(equippedGun.gameObject);
        }
        equippedGun = Instantiate(gunToEquip, WeaponHold.position,WeaponHold.rotation);
        equippedGun.transform.parent = WeaponHold;
    }
}

Instantiate方法返回一个object ,您可以将其转换为所需的类型。

把它Gun ,它应该停止抱怨:

equippedGun = (Gun)Instantiate(gunToEquip, WeaponHold.position, WeaponHold.rotation);

确保您的类继承自 MonoBehaviour。

public class MyClass : MonoBehaviour{

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM