/// <summary> /// Paintモードに変更 /// </summary> /// <param name="obj">リスナー登録時に必要な引数</param> private void modeChangeToPaint(InteractableStateArgs obj) { if (obj.NewInteractableState == InteractableState.ActionState) { _paintFunctionState = HpPaintFunctionState.Paint; } }
private void Start() { //Redoボタンが押されたらFunctionステートを変更 _redoButtonObj.InteractableStateChanged.AddListener(modeChangeToRedo); //Undoボタンが押されたらFunctionステートを変更 _undoButtonObj.InteractableStateChanged.AddListener(modeChangeToUndo); //Paintボタンが押されたらFunctionステートを変更 _paintButtonObj.InteractableStateChanged.AddListener(modeChangeToPaint); //機能のステートに応じて処理を行う _inputModule.InputDataObservable .Subscribe(x => { switch (_paintFunctionState) { case HpPaintFunctionState.Redo: //Redo処理ここに書く redo(x); //使い終わったら機能のステート未使用に戻す _paintFunctionState = HpPaintFunctionState.NoFunc; break; case HpPaintFunctionState.Undo: //Undo処理ここに書く undo(x); //使い終わったら機能のステート未使用に戻す _paintFunctionState = HpPaintFunctionState.NoFunc; break; case HpPaintFunctionState.Paint: //Paint処理ここに書く paint(x); break; } }) .AddTo(this); }