2016-03-26 6 views
0

Ich muss den Wert eines booleschen (in eine Variable namens "bouclier") in einem Skript setzen, um ein GameObject zu aktivieren oder zu deaktivieren.Aktivieren/Deaktivieren einer GameObject-Komponente aus einem Skript [Unity3D]

Die Variable ist in Spielobjekt Player (unten rechts hier):

enter image description here

Und ich brauche die Sperrung dieses Spielobjekt ("Bouclier01") aktivieren:

enter image description here

Dazu habe ich dem Spielobjekt "Bouclier01" ein Skript angehängt. Hier ist sie:

using UnityEngine; 
using System.Collections; 

public class ShowBouclier : MonoBehaviour { 

    public GameObject Bouclier01; 
    public bool bouclier; 

    // Use this for initialization 
    void Start() { 
     Bouclier01 = Bouclier01.GetComponent<GameObject>(); 
    } 

    // Update is called once per frame 
    void Update() { 

     Bouclier01.enabled = false; 
     if (bouclier == true) { 
      Bouclier01.enabled = true; 
     } 
    } 
} 

ich etwas fehlen darf, weil dies mit dieser Fehlermeldung kommt:

enter image description here

Jede Idee, wie man richtig dies zu erreichen?

+0

aktiviert/deaktiviert ist für Komponenten –

+0

Sie Antworten, bevor er fragte sie aussehen sollte. Diese Frage wurde unzählige Male gestellt und beantwortet. – DzoniGames

Antwort

3

Verwenden GameObject.SetActive() Funktion zur Aktivierung oder die Gameobject wie diese zu deaktivieren:

Bouclier.SetActive(false); 

Ich denke GameObject.enabled in der alten Einheit APIs war. Auch wenn Sie den aktuellen Aktivierungszustand eines Gameobject Verwendung GameObject.activeSelf wissen wollen, was ein Lesen ist nur variabel, wie folgt aus:

Debug.Log(Bouclier.activeSelf); 
+0

Danke! Das ist eine Sache, die falsch war, aber ich denke, dass es mehr gibt ... Ich kann nicht in der Lage sein, den Wert von "Bouclier" auf der Spieler-Ebene zu lesen. Gibt es etwas anderes offensichtlich falsch in meinem Skript? – Rodolphe

+0

Was genau passiert mit dir, kannst du mehr reden? – mohammadT3d

+0

Ich mache ein kleines Video, um zu erklären, was los ist, es wird in einer Minute oder zwei sein :) – Rodolphe

Verwandte Themen