2016-07-17 9 views
0

저는 Unity에서 주 메뉴를 만들려고합니다. 물론, 나는 슈퍼 무딘 오전 나는 코딩에 매우 비 숙련 된입니다. 그러나, 나는 그것을 좋아하지만 엉덩이에 단지 고통.유형 ''에 이미 ''에 대한 정의가 포함되어 있습니다.

내 문제는 바로 '유형'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);    
     }  
    } 
} 
당신은 필드와 같은 C# 클래스에 같은 이름을 가진 메소드를 가질 수 없습니다

답변

1

.

public Transform MainMenu, OptionsMenu; 

public void OptionsMenu(bool clicked) 

그 중 하나를 변경해야합니다.

이유, 당신이 다른 방법에 메소드 OptionsMenu를 전달하려면 무엇을 : 당신은이 OptionsMenupublic Transform OptionsMenu;라는 이름의 변환이

var obj = new LevelManager(); 

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

다음 OptionsMenu라는 함수 :

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

} 

private static void DoSomething(Transform t) 
{ 

} 

.

void OptionsMenu(bool clicked) 함수의 이름을 변경하거나 Transform OptionsMenu 변수의 이름을 바꾸기 만하면됩니다.

+0

변형의 이름을 바꾸면 더 이상 파손되었지만 다른 조각의 이름을 변경하면 수정되었습니다. 다시 한번 말하지만, 약간의 무언가에 대한 미안하지만, 이런 종류의 것들을 배우는 것은 상당히 도전적입니다. –

+0

그런데 고맙습니다. 도움이되었습니다. –

+0

@ Activation7X 그 중 하나의 이름을 바꾸면됩니다. 이 오류가 수정 되었습니까? – Programmer