2016-08-05 2 views
1

4 개의 버튼이 있습니다. 각 버튼은 Game Object를 켜고 다른 세 버튼은 꺼집니다.SetActive를 사용하여 GameObjects 그룹을 끄려면 어떻게해야합니까?

아래에있는 것보다 더 나은 방법이 있습니까?

public void Button1() { 
    gameObject1.SetActive(true); 
    gameObject2.SetActive(false); 
    gameObject3.SetActive(false); 
    gameObject4.SetActive(false); 
} 

public void Button2() 
{ 
    gameObject1.SetActive(false); 
    gameObject2.SetActive(true); 
    gameObject3.SetActive(false); 
    gameObject4.SetActive(false); 
} 

public void Button3() 
{ 
    gameObject1.SetActive(false); 
    gameObject2.SetActive(false); 
    gameObject3.SetActive(true); 
    gameObject4.SetActive(false); 
} 

public void Button4() 
{ 
    gameObject1.SetActive(false); 
    gameObject2.SetActive(false); 
    gameObject3.SetActive(false); 
    gameObject4.SetActive(true); 
} 

답변

2

나는 그렇다. 단추 게임 개체의 배열을 만들고 해당 목록을 탐색합니다. 난 당신이 설정 버튼 연결을 편집기 내에서 가정입니다 :

(안된)

using System.Collections.Generic; 

public class YourClass : MonoBehavour 
{ 
    public GameObject gameObject1; 
    public GameObject gameObject2; 
    public GameObject gameObject3; 
    public GameObject gameObject4; 
    private List<GameObject> _buttons = null; 

    void Start() 
    { 
     _buttons = new List<GameObject>(); 
     _buttons.Add(gameObject1); 
     _buttons.Add(gameObject2); 
     _buttons.Add(gameObject3); 
     _buttons.Add(gameObject4); 
     // Other stuff 
    } 

    public void Button1() 
    { 
     TurnOnButton(0); 
    } 

    public void Button2() 
    { 
     TurnOnButton(1); 
    } 

    public void Button3() 
    { 
     TurnOnButton(2); 
    } 

    public void Button4() 
    { 
     TurnOnButton(3); 
    } 

    private void TurnOnButton(int buttonNumber) 
    { 
     for (int i = 0; i < _buttons.Count(); i++) { 
      _buttons[i].SetActive(i == buttonNumber); 
     } 
    } 
+0

그래, 난 연관을했다. 고마워! –

관련 문제