按鈕有兩種動畫表演 選中的表演A沒被選中的表演B
用Script代替就可以不用每個按鈕OnClick各別設定
void Awake ()
{
foreach (Transform Child in gameObject.transform) {
if (Child.GetComponent<Button> () == true) {
_Button.Add (Child.gameObject);
_Background.Add (Child.GetChild (0).gameObject);
_Image.Add (Child.GetChild (1).gameObject);
_Number.Add (Child.GetChild (2).gameObject);
_ButtonClick.Add (Child.GetComponent<Button> ());
}
}
for (int i = 0; i != _ButtonClick.Count; i++) {
ClickButton (_ButtonClick [i], i);
}
}
void ClickButton (Button b, int Number)
{
b.onClick.AddListener (() => ClickButtonListener (Number));
}
void ClickButtonListener (int Number)
{
//Debug.Log (Number);
for (int i = 0; i != _ButtonClick.Count; i++) {
_ButtonClick [i].enabled = false;
if (i == Number) {
_Button [i].GetComponent<Animator> ().SetTrigger ("Select");
_Background [i].GetComponent<Animator> ().SetTrigger ("Select");
_Image [i].GetComponent<Animator> ().SetTrigger ("Select");
//_Image[i].GetComponent<Animator>().OnStop.AddListener (() => effectCount--);
continue;
}
_Button [i].GetComponent<Animator> ().SetTrigger ("Small");
_Background [i].GetComponent<Animator> ().enabled = false;
_Image [i].GetComponent<Animator> ().enabled = false;
_Background [i].GetComponent<Image> ().sprite = _BlackBackGround;
_Image [i].GetComponent<Image> ().sprite = _BlackImage [i];
_Number [i].GetComponent<Image> ().sprite = _BlackNumber [i];
}
}
foreach (var Item in TagButton)
{
Item.onClick.AddListener(() => ButtonCallBack(Item));
}
void ButtonCallBack(Button ButtonPressed)
{
foreach (var Item in PanelGO)
{
Item.gameObject.SetActive(false);
}
int Select = System.Convert.ToInt32(ButtonPressed.name);
PanelGO[Select].SetActive(true);
switch (System.Convert.ToInt32(ButtonPressed.name))
{
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
}
}
動態+Function
GetComponent<Button> ().onClick.AddListener(delegate () { BetSystem.Function(); });
不規則按鈕 Alpha區塊設定無法Click
AlphaThreshold = 0.1f;
void Start()
{
gameObject.GetComponent<Image>().alphaHitTestMinimumThreshold = AlphaThreshold;
}
OnClick取得自身物件實驗
Button ActionButton;
void Start()
{
ActionButton = gameObject.GetComponent<Button>();
ActionButton.onClick.AddListener(delegate { GetButton(gameObject.name); });
}
public void GetButton(string Name)
{
Debug.Log(Name);
}