2016-07-17 10 views
0

私はユニティでメインメニューを作成しようとしています。もちろん、私は超鈍いですし、私はコーディングに非常に熟練していません。しかし、私はそれを愛するが、それはちょうどお尻の痛みです。タイプ ''には既に ''の定義が含まれています

私の問題は、まさに「タイプ 『LevelManager』はすでにの定義が含まれている

『OptionsMenu』

私はちょうどのオプションのボタンのコードにしようとしているが、それはお尻されています。ここに私のコードだ;。

using UnityEngine; 
using UnityEngine.SceneManagement; 
using System.Collections; 

public class LevelManager : MonoBehaviour { 

    public Transform MainMenu, OptionsMenu; 

    public void LoadScene(string name){ 
     SceneManager.LoadScene(name); 
    } 
    public void QuitGame(){ 
     Application.Quit(); 
    } 
    public void OptionsMenu(bool clicked){ 
     if (clicked == true){ 
      OptionsMenu.gameObject.SetActive(clicked); 
      MainMenu.gameObject.SetActive(false); 
     } else { 
      OptionsMenu.gameObject.SetActive(clicked); 
      MainMenu.gameObject.SetActive(true);    
     }  
    } 
} 

答えて

1

あなたは同じC#クラスに同じ名前のフィールドやメソッドを持つことはできません。

public Transform MainMenu, OptionsMenu; 

public void OptionsMenu(bool clicked) 

いずれかを変更する必要があります。あなたが別のメソッドにメソッドOptionsMenuを渡したい場合はどのような

理由、:

private static void DoSomething(Action<bool> action) 
{ 

} 

private static void DoSomething(Transform t) 
{ 

} 

その後:

var obj = new LevelManager(); 

// confusing call. Is this the method or the field ? 
DoSomething(obj.OptionsMenu); 
1

あなたは変換OptionsMenuという名前の関数その後、OptionsMenupublic Transform OptionsMenu;命名しました。

void OptionsMenu(bool clicked)関数の名前を変更するか、変数Transform OptionsMenuの名前を変更するだけです。

+0

トランスフォームの名前を変更すると、それをさらに壊しましたが、他の部分の名前を変更すると、それが修正されました。 もう一度申し訳ありませんが、この種のものを学ぶのは非常に難しいです。 –

+0

ところでありがとう、ありがとう。それは助けになった。 –

+0

@ Activation7Xあなたはそれらの名前を1つだけ変更する必要があります。このエラーは修正されましたか? – Programmer

関連する問題