Timbo3 Geschrieben 30. März 2019 Melden Share Geschrieben 30. März 2019 Hallo Forum. Ich versuche gerade das Material eines Würfels zu ändern allerdings funktioniert dieser Code nicht: using UnityEngine; public class Material : MonoBehaviour { public Material[] materials; void Start() { GetComponent<MeshRenderer>().material = materials[1]; } } Und im Internet hab ich auch nichts funktionierendes gefunden. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Timbo3 Geschrieben 30. März 2019 Autor Melden Share Geschrieben 30. März 2019 Sorry habe das Problem grade gelöst. Das funktioniert: using UnityEngine; public class Material : MonoBehaviour { public Material[] materials; void Start() { GetComponent<MeshRenderer>().material = GetComponent<MeshRenderer>().materials[1]; } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 30. März 2019 Melden Share Geschrieben 30. März 2019 Das ist keine gute Lösung. Das Material-Array eines Renderers ist nicht zum Einlagern von irgendwelchen Materials, sondern erfüllt einen bestimmten Zweck. Was in jedem Fall funktionieren sollte: using UnityEngine; public class ChangeMaterial : MonoBehaviour { public Material[] materials; void Start() { GetComponent<Renderer>().sharedMaterial = materials[1]; } } Achte auch darauf, dass du deine eigenen Klassen nicht nach Typen benennst, die es schon gibt - "Material" zum Beispiel solltest du deine Komponente nicht nennen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.