2017-03-06 30 views
2

私は問題を理解できません。削除してからPlayTabオブジェクトを再作成しましたが、もう機能しません...割り当てられていませんが、私の知る限りです。 Unityプログラミングに比較的新しい、どんな助けも素晴らしいだろう、以下のスクリプト。ユニティ変数が割り当てられていませんエラー

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 
using UnityEngine.Audio; 
public class MainMenu : MonoBehaviour { 
    public GameObject Buttons; 
    public GameObject CreditsPanel; 
    public GameObject QuitPanel; 
    public GameObject Options; 
    public GameObject PlayTab; 
    public Slider audiosl; 
    public Slider graphicsl; 
    public Toggle fullscreen; 
    public string SceneName; 

void Start(){ 
    QualitySettings.SetQualityLevel (100); 
    //(int)PlayerPrefs.GetFloat("Quality") 
    AudioListener.volume = 100; 
    //PlayerPrefs.GetFloat("Volume"); 
    int qualityLevel = QualitySettings.GetQualityLevel(); 
    audiosl.value = AudioListener.volume; 
    graphicsl.value = qualityLevel; 
} 
void Update(){ 
    Debug.Log ("Update"); 
    AudioListener.volume = audiosl.value; 
    QualitySettings.SetQualityLevel ((int)graphicsl.value); 
} 
public void InGame(bool a){ 
    if (a == true) { 
     Application.LoadLevel (SceneName); 
    } else { 
     //continue 
    } 
} 
public void Play(bool a){ 
    Debug.Log ("Inside Play Function"); 
    if (a == true) { 
     Debug.Log ("Inside If Statment"); 
     PlayTab.SetActive(a); 
     Buttons.SetActive(!a); 
     Animation pl = PlayTab.GetComponent<Animation>(); 
     pl.Play("EnterPlayMenu"); 
    }else { 
     Debug.Log ("Else'd"); 
     PlayTab.SetActive(a); 
    } 

} 
public void ShowMenu(bool a){ 

} 
public void Option(bool a){ 
    if (a == true) { 
     Options.SetActive(a); 
     Buttons.SetActive(!a); 
     Animation Opt = Options.GetComponent<Animation>(); 
     Opt.Play("OptionEnter"); 



    }if (a == false) { 
     Animation d = Buttons.GetComponent<Animation>(); 

     d.Play ("mainbuttonenter"); 
     Options.SetActive (false); 
    } 
    } 


public void Credits(bool a){ 
    if (a == true) { 
     CreditsPanel.SetActive(a); 
     Buttons.SetActive(!a); 
     Animation cr = CreditsPanel.GetComponent<Animation>(); 
     cr.Play("EnterCredits"); 

    }else { 
     CreditsPanel.SetActive(a); 
    } 

} 
public void Quit(bool a){ 
    if (a == true) { 
     QuitPanel.SetActive(a); 
     Buttons.SetActive(!a); 
     Animation q = QuitPanel.GetComponent<Animation>(); 
     q.Play("EnterQuit"); 
    }else { 
     QuitPanel.SetActive(a); 
    } 

} 
public void Exit(bool a){ 
    if (a == false) { 
     Option(false); 
     Buttons.SetActive(true); 
     CreditsPanel.SetActive(false); 
     QuitPanel.SetActive(false); 
     Options.SetActive(false); 

     PlayTab.SetActive(false); 
     saveSettings(); 

    } 
    if (a == true) { 
     Application.Quit(); 
    } 
} 
public void saveSettings(){ 
    PlayerPrefs.SetFloat ("Quality", QualitySettings.GetQualityLevel()); 
    PlayerPrefs.SetFloat ("Volume", AudioListener.volume); 
} 
public void FullScreen(bool a){ 
    if (Screen.fullScreen == a) { 
     Screen.fullScreen = !a; 
    } else { 
     Screen.fullScreen = a; 
    } 
} 

}

+0

Unity Game Objectペインにオブジェクトバインディングのスクリーンショットを表示できますか?それは決して初期化されませんか、またはある時点でPlaytab状態を失いますか? –

+0

@SilasReinagel インスペクタのオブジェクトバインディングとは、具体的にはどういう意味ですか? –

+0

InspectorのPlayTabフィールドに関連するゲームオブジェクトを割り当てていない可能性があります。このスクリプトがアタッチされているオブジェクトを選択し、PlayTabフィールドに関連するgameオブジェクトがあるかどうかを確認します。そうでない場合は、階層から「PlayTab」フィールドにドラッグアンドドロップします。 – pumpkinszwan

答えて

1

私の知る限り見るように、あなただけのplayTab変数を定義し、それを割り当てられていません。

EDIT:

コードを経由して、それを隠して、自動的に、開始時にそれを表示してみます。おそらくUnityは、最初からシーンに表示されないオブジェクトを初期化しません。

+0

しかし、そのゲームオブジェクトは、適切なゲームオブジェクトに添付されています。それをどのように割り当てますか?他のものは次のように動作します... –

+0

ああ、エディターで意味します。私はその可能性を忘れてしまった。私の経験から、統一は時々奇妙です。この特定のオブジェクトが隠されていないかどうかチェックしましたか? –

+0

「隠された」とはどういう意味ですか?申し訳ありませんが、私はユニティにとって非常に新しいです。 –

関連する問題