2016-08-05 8 views
1

私は4つのボタンを持っています。各ボタンはゲームオブジェクトをオンにし、他の3つをオフにします。ゲームオブジェクトのグループをオフにするにはどうすればよいですか?

私は以下のような方法がありますか?

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

はい、私は関連付けを行いました。ありがとう! –

関連する問題