所以我现在正在修理一个我拥有的枪支系统,而我遇到的一个问题是缺乏使用任何武器的能力而只有一个。
我想在我继续这里之前是代码:
[Player Controller Script]
public Gun gun;
void Update() {
ControlMouse();
if (Input.GetButtonDown("Shoot"))
{
gun.Shoot();
}
else if (Input.GetButton("Shoot"))
{
if (gun.gunType == Gun.GunType.Explosive)
{
gun.ShootExplosive();
}
else if (gun.gunType == Gun.GunType.Auto)
{
gun.ShootContinuous();
}
}
现在这种方法很好但是如果我装备了第二把枪,它就不会起火,就像枪一样#34;并没有改变已经设置的预制件。我试着添加一系列公共枪支枪#39;通过做公枪枪,枪1',然后添加' gun1.Shoot()'对于每个if语句与原始'枪一样。但那仍然行不通。我想知道我需要做什么,要么有a)公共枪炮'依赖于当前配备某种标签的武器或者b)我说过我之前尝试过的阵列是否正常工作。
p.s:所有枪支都可以独立工作(当他们的预制件在编辑器中添加到播放器中时)。
答案 0 :(得分:0)
你的意思是:
[Player Controller Script]
public Gun gun;
void Update()
{
ControlMouse();
if (Input.GetButtonDown("Shoot"))
{
if (gun.gunType == Gun.GunType.Explosive)
{
gun.ShootExplosive();
}
else if (gun.gunType == Gun.GunType.Auto)
{
gun.ShootContinuous();
}
else
{
gun.Shoot();
}
}
}
第一个if是唯一一个执行的,这意味着所有的枪总是用Shoot()
方法射击。
答案 1 :(得分:0)
也许你需要指定枪支变量来指向新武器:
gun = gun2.GetComponent<GunScript>();