0
這樣做的正確方法是什麼?如何訪問統一特定的相同類型的組件?
這裏是我的代碼,但我不認爲這是做
public class buttons : MonoBehaviour {
public Button play;
public Button shop;
public Button exit;
// Use this for initialization
void Start() {
Button bplay=play.GetComponent<Button>();
Button bshop=shop.GetComponent<Button>();
Button bexit=exit.GetComponent<Button>();
bplay.onClick.AddListener(()=>loads("level"));
bshop.onClick.AddListener(()=>loads("shop"));
bexit.onClick.AddListener(()=>loads("exit"));
}
void loads(System.String scenename)
{
if(scenename=="level")
Application.LoadLevel("level_1");
else if(scenename=="shop")
Application.LoadLevel("Shop_menu");
else if(scenename=="exit")
Application.Quit();
}
}
尼斯的答案。我認爲這個函數有點無用,除非你打算重寫它或某種我只是做類似play.onClick.AddListener((=)=> SceneManager.LoadScene(「level_1」)); –
@JuanBayonaBeriso謝謝。將來,OP可能要在按下按鈕時做更多的事情。例如,在'Application.Quit();'之前保存或從網絡斷開連接。當你必須將所有這些操作填入lambda表達式時,它變得很難看。 – Programmer
另外,如果你在'AddListener'函數中寫了這麼多的代碼,你將不得不在'RemoveListener'函數中編寫相同的代碼。在這種情況下,通過簡單地不使用函數就可以使代碼翻倍。 – Programmer