Ich habe 2 gleiche Klassen, eine für die Primärwaffe und die andere für die Sekundärwaffe. Hier sind meine Klassen:Kann Objekt C nicht erstellen
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;
}
}
ich in einem anderen Skript möchten, dass, wenn ich ‚F‘ drücken, werden die Waffen nehmen jeweils ihre Spezifikationen, aber es wird bei Angabe des Namens auf dem zweiten stecken, hier ist mein Skript geben sie ihre Daten:
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);
}
}
ich erhalte ‚Objektverweis nicht auf eine Instanz eines Objekts festgelegt‘ und ich habe genau das gleiche für beide Waffen Vielen Dank im Voraus
Sie sollten nicht mehrere Klassen erstellen, die genau so sind. Erstellen Sie eine Klasse und instanziieren Sie sie so oft wie nötig und ändern Sie ihre Member so, dass jede Instanz eindeutig ist. –
Nun, 'GetComponent()' gab 'null' zurück. Sind Sie sicher, dass sich sowohl ein "Waffe" - als auch ein "Waffe1" -Skript auf dem GLEICHEN Objekt befinden? Außerdem: Ich finde es schlecht, zwei Klassen mit genau demselben Code zu haben, aber nur einen anderen Namen. Es würde schmerzhaft sein, Änderungen an ihnen vorzunehmen und sie aufrechtzuerhalten. Machen Sie einfach ein "Waffen" -Skript und fügen Sie eine weitere Eigenschaft hinzu, um zwischen Primär- und Sekundärwaffe zu unterscheiden. –
Hast du eine Idee, wie ich es machen soll? – Ay0m3