Jump to content
Unity Insider Forum
Sign in to follow this  
RealNiclas

Modelle bei Mausklick austauschen

Recommended Posts

Guten Tag,

ich habe ein Problem bei folgendem Sachverhalt:
Wenn der Spieler auf ein Objekt klickt, soll dieses ein anderes Modell bekommen, so das z.B. aus einem Würfel eine Kugel wird.

Wie man auf das Objekt zugreift, auf welches der Spieler klickt, habe ich schon verstanden, nur scheitert es noch daran, dass 3D Modell durch ein anderes zu ersetzten.
Weiß jemand wie man das löst?

Gruß: Niclas

Share this post


Link to post
Share on other sites

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.

  • Thanks 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×