public void OnOneOfNCornerReloaded(GameObject one, GameObject[] all, Action<GameObject> setToOneOfNAct) { // UIの調整 foreach (var a in all) { var button = a.GetComponent<Button>(); if (a == one) { button.interactable = false; continue; } button.interactable = true; } // oneの好きなパラメータで内容を変更する // TODO: とはいえstringは最悪なので、何かしらこのへんも宣言的にしたいところ。indexとか? oneOfNみたいな概念でラップすればつけられるな。ただ結局どう並ぶかの法則を知らないと困る。 switch (one.name) { case "Button1": corner.BackContentsIfNeed(); corner.TryBorrowContents(corner1st); break; case "Button2": corner.BackContentsIfNeed(); corner.TryBorrowContents(corner2nd); break; case "Button3": corner.BackContentsIfNeed(); corner.TryBorrowContents(corner3rd); break; default: Debug.LogError("unhandled name:" + one.gameObject.name); break; } this.setToOneOfNAct = setToOneOfNAct; }