これを行う正しい方法は何ですか?ユニティ固有の同じタイプのコンポーネントへのアクセス方法?
は、ここに私のコードですが、私は、これはそれ
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();'の前に保存するか、ネットワークから切断します。これらのすべてのアクションをラムダ式に詰め込む必要があるときは、醜い状態になります。 – Programmer
また、 'AddListener'関数に非常に多くのコードを書く場合、' RemoveListener'関数に同じコードを書く必要があります。この場合、単純に関数を使用しないでコードを2倍にしました。 – Programmer