Aliano Geschrieben 22. Juni 2017 Melden Share Geschrieben 22. Juni 2017 Guten Tag zusammen, ich versuche ein Script Component was sich auf dem selben GameObject befindet einfach zu deaktivieren. Ich kriege das aber einfach nicht gebacken. Mir ist nun bewusst das sich die property "enabled" in der Component class nicht vorhanden ist jedoch komme ich einfach nicht weiter. public class RespawnSystem : MonoBehaviour { public Transform respawnLocation; public static bool playerIsDead = false; public Button buttonRespawn; public Button buttonMainMenu; public Button buttonQuitGame; Component freezeAttacking; Component freezePlayer; Component weapon; // Use this for initialization void Start () { freezePlayer = GetComponent("FirstPersonController"); freezeAttacking = GameObject.Find("FirstPersonCharacter").GetComponent("MeleeSystem"); weapon = GameObject.Find("Axe").GetComponent("MeshRenderer"); } // Update is called once per frame void Update () { if (playerIsDead == true) { freezePlayer.enabled = false; buttonRespawn.gameObject.SetActive(true); buttonMainMenu.gameObject.SetActive(true); buttonQuitGame.gameObject.SetActive(true); Cursor.visible = true; Cursor.lockState = CursorLockMode.None; } } bei freezePlayer.enabled = false; sagt der compiler dan: Fehler CS1061 "Component" enthält keine Definition für "enabled", und es konnte keine enabled-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "Component" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). Ich bin mit meinem Latein am Ende und hoffe es kann mir einer weiter helfen. Vielen Dank im voraus.. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mark Geschrieben 22. Juni 2017 Melden Share Geschrieben 22. Juni 2017 Dies sollte sich leicht dadurch lösen lassen indem du zum einen die generische Variante von GetComponent verwendest (immer!): https://docs.unity3d.com/Manual/GenericFunctions.html https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html Und zum anderen nicht den BasisTyp "Component" verwendest sondern den echten Typen. zB beim MeshRenderer wäre es der Typ "MeshRenderer". Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Aliano Geschrieben 22. Juni 2017 Autor Melden Share Geschrieben 22. Juni 2017 Ich blick da einfach nicht durch. bestimmt 5x durchgelesen. Ich kriege das einfach nicht gerafft. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mark Geschrieben 22. Juni 2017 Melden Share Geschrieben 22. Juni 2017 Anstatt: Component freezePlayer; ... freezePlayer = GetComponent("FirstPersonController"); schreibst du FirstPersonController freezePlayer; ... freezePlayer = GetComponent<FirstPersonController>(); GetComponent<T>() sucht dir die Komponente vom Typen den du anstelle von T schreibst. Die Komponente wird damit auch gleich als passender Typ zurück gegeben. Und sollte somit wenn sie deaktivierbar ist auch die entsprechenden Properties besitzen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Aliano Geschrieben 22. Juni 2017 Autor Melden Share Geschrieben 22. Juni 2017 Mark vielen Dank. Es hat mir weiter geholfen und ich habe dazu gelernt! 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.