Diese Fragen und weitere werde ich mit kleinen Tutorials hier im Blog beantworten. Ich habe mir für diesen Zweck ein Plugin organisiert, welches Code-Embedding vereinfacht. Nun wenden wir uns aber den ScriptableObject zu.
Zuerst benötigen wir ein ScriptableObject. Dazu habe ich beispielhaft ein sehr simples erzeugt. Unser ScriptableObject muss natürlich von ScriptableObject erben. Dazu habe ich noch 2 float Felder für den Schaden und die Geschwindigkeit eingefügt, sowie ein Feld, welches das ParticleSystem hält.
1 2 3 4 5 6 7 8 9 10 | // MetaData for all Projectiles in the game public class ProjectileMetaData : ScriptableObject { // Damage of the Projectile public float Damage = 1;</div> // Speed of the Projectile public float Speed = 10; // ParticleSystem of the Projectile public GameObject ParticleSystem; } |
Das folgende Snippet sorgt dafür, dass im UnityEditor ein neuer Tab("ScriptableObjects") eingefügt wird. Dort gibt es die unterpunkte "Create" und "Projectile". Klickt man nun auf Projectile wird die Methode "CreateMyAsset" ausgeführt.
Tab
Das ScriptableObject wurde als Asset im gewünschten Pfad erzeugt und kann nun benutzt werden. Das ist auch schon die gesamte Magie daran. Das obige Script kann angepasst werden um beliebige ScriptableObjects zu erzeugen. Dafür muss nur der generische Typparameter gegen einen anderen getauscht werden und falls notwendig kann der Pfad angepasst werden.
ProjectView
Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen
Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklären Sie sich damit einverstanden.