MawaLog

一日一日、楽しく生きる。技術と音楽が好き。

Unity::UniRx自分用メモ::基礎、Buttonを紐づける

f:id:k_mawa:20180405143952j:plain

コメント

ボタンとUniRxの連動についてのメモ

参考資料

qiita.com

コードの機能メモ

using UnityEngine.UI; //書き忘れ注意!
using UniRx;
using UniRx.Triggers;


public class ClickButton : MonoBehaviour {

    public Button Button; //Button定義

    
    void Start () {
        //Button.onClick.AsObservable
        //Buttonクリックされたら
        //Observableオブジェクト起動
        Button.onClick.AsObservable().First() //First()は最初の一回だけTrueにする
            .Subscribe(_ => Debug.Log("push!"));

    }
    
    // Update is called once per frame
    void Update () {
        
    }
}

あとはUnityEditorでボタンの登録D&Dも忘れずに。

追加して動かしてDebug.Logにもコメント吐かせる

public class ClickButton : MonoBehaviour {

    public Button Button;
    //CubeをUnityEditorから登録
    public GameObject Obj_one;

    // Use this for initialization
    void Start () {

        Button.onClick.AsObservable().First()
            .Subscribe(_ => Debug.Log("push!"));
        //↓これを追加一回だけ動く
        Button.onClick.AsObservable().First()
            .Subscribe(l => Move(1f, 0));

    }
    
    // Update is called once per frame
    void Update () {
        
    }
    //動かす関数 Obj_oneで指定しているところがポイント
    public void Move(float dx, float dy)
    {
        Obj_one.transform.position += new Vector3(dx, dy, 0);
    }

}