Szenario:Unity3D: in einem Zugriff auf transformiert eine Methode aus dem einzigen Skript zur Verfügung
Ich habe 10 Objekte in einer Szene. Jedem Objekt ist eine eindeutige Klasse zugeordnet. Wenn Sie auf ein Objekt klicken, müssen zwei Methoden aufgerufen werden.
- Eine Methode in einem Skript, das an das angeklickte gameObject angehängt ist. (Um die Benutzeroberfläche des neu angeklickten Objekts zu aktivieren)
- Eine Methode aus dem zuvor angeklickten gameObject. (Zum Deaktivieren des zuvor angeklickt Objekts UI)
Was ich getan habe:
if (Physics.Raycast(ray, out hit)) {
hit.transform.GetComponent(hit.transform.name+"").Show_status (true);
current_transform.GetComponent(current_transform.name+"").Show_status(false);
current_transform = hit.transform;
}
Hier Ich versuche, das Script für den Zugriff mit der Zeichenfolge als das Skript nach dem Gameobject benannt selbst. Eine Methode namens "Show_status()" ist für alle Klassen verfügbar. Der obige Code erzeugt den folgenden Fehler.
„UnityEngine.Component‘ enthält keine Definition für `Show_status“
Auch wenn dies nicht möglich ist, die Art, wie ich es bin versucht, es wäre hilfreich, um einige zu nennen andere einfache Ansätze zur Lösung des Szenarios.
GetComponent hat eine Form, die das Casting für Sie übernimmt, d. H. 'MyGameObject.GetComponent()' –
Cody