我有兩個相同的類,一個用於主要武器,另一個用於第二個。這裏是我的課:無法創建對象C#
public class weapon : MonoBehaviour {
public string Name { get; set; }
public float Damages { get; set; }
public float FireRate { get; set; }
public float Range { get; set; }
public float BulletSpeed { get; set; }
public bool isOn { get; set; }
public weapon(string name, float damages, float fireRate, float range, float bulletSpeed, bool ison) {
this.Name = name;
this.Damages = damages;
this.FireRate = fireRate;
this.Range = range;
this.BulletSpeed = bulletSpeed;
this.isOn = ison;
}
}
public class weapon1 : MonoBehaviour {
public string Name { get; set; }
public float Damages { get; set; }
public float FireRate { get; set; }
public float Range { get; set; }
public float BulletSpeed { get; set; }
public bool isOn { get; set; }
public weapon1(string name, float damages, float fireRate, float range, float bulletSpeed, bool ison) {
this.Name = name;
this.Damages = damages;
this.FireRate = fireRate;
this.Range = range;
this.BulletSpeed = bulletSpeed;
this.isOn = ison;
}
}
我想在另一個腳本,當我按「F」,武器分別以自己的規格,但它被卡在給名字的第二個,這裏是我的腳本給他們的規格:
void Update() {
if (Input.GetKeyDown (KeyCode.F)) {
GetComponent<weapon>().Name = "Rien";
GetComponent<weapon>().Damages = 0;
GetComponent<weapon>().FireRate = 0;
GetComponent<weapon>().Range = 0;
GetComponent<weapon>().BulletSpeed = 0;
GetComponent<weapon>().isOn = true;
Debug.Log (GetComponent<weapon>().Name);
GetComponent<weapon1>().Name = "Rien1"; //stuck here... :'(
GetComponent<weapon1>().Damages = 0;
GetComponent<weapon1>().FireRate = 0;
GetComponent<weapon1>().Range = 0;
GetComponent<weapon1>().BulletSpeed = 0;
GetComponent<weapon1>().isOn = false;
Debug.Log(GetComponent<weapon1>().Name);
}
}
我收到「對象引用不設置到對象的實例」和我做同樣的事情兩個武器提前 感謝
您不應該像這樣製作多個完全相同的類。創建一個類,然後根據需要多次實例化該類,並更改其成員以使每個實例具有唯一性。 –
那麼,'GetComponent()'返回'null'。你確定「武器」和「武器1」腳本都在SAME對象上嗎?另外:我覺得有兩個完全相同的代碼但名稱不同的類是不好的風格。對它們進行修改和維護是很痛苦的。只需做一個「武器」腳本並添加另一個屬性來區分主要和次要武器。 –
你知道我應該怎麼做嗎? – Ay0m3