Ich habe eine Klasse gemacht, einige Daten zu organisieren und eine Klasse aus mehreren dieser Klassen (Subclass?) Gemacht, so kann ich so etwas wie ...Wie referenziere ich eine Klasse, die aus Klassen aus einem Unity3D-Monobehaviour besteht?
classA.classB.value = 1;
aber ich herausfinden kann nicht tun, wie um auf meine Klassen zu verweisen. Wenn jemand weiß, wie ich das machen soll, wäre das großartig!
using UnityEngine;
using System.Collections.Generic;
using System.Collections;
class Gene {
public string name;
public float value;
public float complexity;
public Gene() {
name = "";
value = 0;
complexity = 0;
}
public Gene(string Name, float Value, float Complexity) {
name = Name;
value = Value;
complexity = Complexity;
}
}
class Genome {
public Gene agility;
public Gene intelligence;
public Gene strength;
public Genome(){
agility = new Gene();
intelligence = new Gene();
strength = new Gene();
}
public Genome(Gene Agility, Gene Intelligence, Gene Strength) {
agility = Agility;
intelligence = Intelligence;
strength = Strength;
}
public IEnumerator GetEnumerator() {
return (IEnumerator)this;
}
}
public class Life : MonoBehaviour {
Genome genome; //Warning Life.genome is never assigned to, and will always have its default value null
Quantity quantity; //Warning Life.quantity is never assigned to, and will always have its default value null
void OnEnable() {
genome = /*???*/; //How do I add the reference?
quantity = /*???*/; //How do I add the reference?
genome.agility.name = "Agility"; //On Runtime: NullReferenceException: Object reference not set to an instance of an object
genome.agility.complexity = 100;
genome.intelligence.name = "Intelligence";
genome.intelligence.complexity = 1000;
genome.strength.name = "Strength";
genome.strength.complexity = 100;
}
}
Beachten Sie, dass 'Genome' und' Quantity' keine Nachkommen von 'AudioClip' sind. Betrachten Sie einige Überarbeitungen, um das OP nicht zu täuschen. – Serlite
Making sie tatsächlich ein 'neues Genome()/Quantity()' und du bist gut zu gehen;) –
@Serlite Das ist ein Tippfehler ich habe es kompilieren lassen, da ich sein Skript nicht auf meiner Seite habe. Ich habe vergessen, sie zurück zu seinem Genom und Quantität zu ändern – Programmer