Jump to content
Unity Insider Forum

Leaderboard


Popular Content

Showing content with the highest reputation on 04/13/2019 in all areas

  1. 1 point
    Ein 3D-Modell wird von einem MeshRenderer gezeichnet, der die Info über das Mesh aber nicht selber handhabt. Dafür gibt es die MeshFilter-Komponente. Wenn du nur das Modell austauschen willst (also das Material dasselbe bleibt), dann brauchst du den MeshFilter: private MeshFilter meshFilter; private void Awake() { meshFilter = GetComponent<MeshFilter>(); } Und zum Austauschen meshFilter.mesh = newMesh; newMesh kannst du wiederum über ein Feld besorgen, in das du dein Mesh aus den Assets reinziehst. public Mesh newMesh; Wenn du jetzt auch das Material austauschen willst, dann könntest du über den MeshRenderer gehen, der das Material handhabt. Allerdings ist spätestens hier der Punkt erreicht, wo ich sagen würde: Nutz einfach mehrere GameObjects. Man könnte Prefabs instanziieren, oder auch einfach alle Modelle gleichzeitig einem Parent unterordnen und alle durch Deaktivierung unsichtbar machen, die gerade nicht präsent sein sollen. Also Parent mit Austausch-Script und ggf. Collider zum Anklicken Würfel Kugel (GameObject deaktiviert) Das Austausch-Script würde dann so aussehen: public GameObject cube; public GameObject sphere; private void OnMouseDown() { cube.SetActive(false); sphere.SetActive(true); } Das ziehst du auf den Parent, und danach ziehst du den Würfel und die Kugel in die entsprechenden Slots im Inspektor. Sobald du mehr Objekte hast als zwei, würde ich aber zu einem Array wechseln.

Announcements

Hy, wir programmieren für dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...