私はUnity 5を使用しています。キャンバス - はいボタン& NoButtonには2つのボタンがあります。両方のボタンに「ButtonScript.cs」というスクリプトを1つだけ追加しました。複数のボタンを1つにまとめたスクリプト5
私が必要 -
- をNoButtonに押しながらYesButton、
Debug.Log("Yes");
- に押しながら、
Debug.Log("No");
私は私のスクリプトで何を書くべきですか?
私はUnity 5を使用しています。キャンバス - はいボタン& NoButtonには2つのボタンがあります。両方のボタンに「ButtonScript.cs」というスクリプトを1つだけ追加しました。複数のボタンを1つにまとめたスクリプト5
私が必要 -
Debug.Log("Yes");
Debug.Log("No");
私は私のスクリプトで何を書くべきですか?
ありそれを行うために多くの方法があるが、私は主にこのいずれかを使用するようなOnClick
イベントにパラメータを追加することができます...
public void buttonDownEvent(BaseEventData eventData){
if (eventData.selectedObject == null)
return;
string textCheck = eventData.selectedObject.name;
switch (textCheck) {
case "Yes":
Debug.Log(textCheck); // OutPut is YES;
break;
case "NO":
Debug.Log(textCheck); // OutPut is NO;
break;
default:
break;
}
これを解決する方法はたくさんあります。まず一つは、あなたがタグを操作することができtahtです:最も簡単な方法は、単に「はい」、「いいえ」のような将来の改善のために(いくつか列挙を作ることであろうように、タグを扱う
Debug.Log(gameObject.Tag == "YesButton" ? "Yes" : "No");
しかし、(IMO)はpainfullあり、 )など、 "キャンセル"
public enum ButtonType : byte {
YES = 0,
NO = (1 << 0)
}
// inside your button code
[SerializeField]
ButtonType _myType;
public ButtonType Type { get { return _myType; } }
EDIT:ユニティのイベントと
使用
// inside ButtonScript.Start() or ButtonScript.Awake()
this/* Button */.onClick.AddListener(new UnityEngine.Events.UnityAction(ButtonClicked));
// and now make a new method inside ButtonScript
void ButtonClicked()
{
// method with tags:
Debug.Log(gameObject.Tag == "YesButton" ? : "Yes" : "No");
// method with enumeration:
Debug.Log(_myType.ToString());
}
あなたはこの
public void ClickLog(string theWord)
{
Debug.Log(theWord);
}
のようなものを持つことができ、あなたがのOnClick
にこの方法を添付する場合 -
これを行う最も簡単な方法は、あなたがあなたのButtonScript.cs
ファイル内ので、OnClick
を呼び出したいメソッドに渡されたパラメータを持っていますボタンを使用して、エディタを使用してメソッドに渡す内容を入力できます。 Buttons
はコードで作成されている場合には
- あなたがそう
//Button called newButton
UnityEngine.Events.UnityAction action1 =() => { ButtonScript.ClickLog("Yes"/*or "No"*/); };
newButton.onClick.AddListener(action1);
IMO 'UnityAction
MousePressイベントはボタンでどのように機能しますか? –
私は、Unityのイベントシステムで動作する答えを編集しました。 –