对于继承还是比较新的,所以我需要一些帮助。目前,我有一项任务是创建一个使用3种武器继承的基本游戏。我的基类:实例化一个继承对象
public class Weapons : MonoBehaviour
{
public int rateOfFire;
public string myName;
public Weapons(string Name)
{
myName = Name;
}
}
而子类中的一种:
public class Rifle : Weapons
{
public Rifle(string Name)
: base(Name)
{
myName = Name;
rateOfFire = 5;
}
}
我的第一个问题来了这样一个事实,如果我连这样做对吗?
我的第二个问题是如何将这些实例化到我的Unity场景中? 我已经写了一个方法来切换武器,这是我的播放器脚本上的数组,所以我会在这里插入一个实例化线或创建另一个方法?缺少一些线条,但这里是它的只是:
public GameObject[] weapons;
public int currentweapon = 0;
private int invweap;
void Start()
{
//Managing weapons
invweap = weapons.Length;
SwitchWeapon(currentweapon);
}
void SwitchWeapon(int index)
{
for (int i = 0; i<invweap;i++)
{
if (i == index)
{
weapons[i].gameObject.SetActive(true);
}
else
{
weapons[i].gameObject.SetActive(false);
}
}
}
在继承的类中调用'myName = Name;'是没有必要的,因为您调用基类并且基类已经这样做了。 – Icemanind
为什么你需要在这里继承?你不使用任何继承的优势。 Unity3d中的每个对象都是从MonoBehaviour继承而来的。 – Valentin
@Valentin因为这就是任务所要求的,正如他所说的。 – Asik