我遇到编译器错误,编译器无法将类型" UnityEngine.Object转换为Gun。我不认为这些是不同的文件类型,但无论如何,这是我的代码。我已经对此感到难过,而且我还没有专业的C#,所以请原谅我,如果这是一个n00b的错误。 Idk如何使用代码插入,这让我很困惑,所以这里是一个版画屏幕。
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;
}
}
答案 0 :(得分:1)
Instantiate
方法返回object
,您可以将其转换为必要的类型。
将其投放到Gun
并停止抱怨:
equippedGun = (Gun)Instantiate(gunToEquip, WeaponHold.position, WeaponHold.rotation);
答案 1 :(得分:0)
确保您的类继承自MonoBehaviour。
public class MyClass : MonoBehaviour{
}