Jump to content
Unity Insider Forum

Script Component deaktivieren


Aliano

Recommended Posts

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

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

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

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...