//体重ボタンをタップした際に実行される public void OnWeightButtonTap() { //ピッカーを表示して体重を設定させる string title = "体重設定"; string unit = "kg"; float maxValue = 200.9f; float minValue = 30f; float stepValue = 0.1f; float currentValue = UserDataManager.Setting.Profile.GetWeight(); var vs = new SelectValueDialogParamSet( SelectValueDialogParamSet.DISPLAY_TYPE.Numeric, title, unit, maxValue, minValue, stepValue, currentValue); SelectValueDialog.Show(vs, (SelectValueDialog.ButtonItem status, float value, GameObject dialog) => { if (status == SelectValueDialog.ButtonItem.OK) { //結果をテキストに反映 weightText.text = value.ToString("0.0") + unit; //アプリ内保存 UserDataManager.Setting.Profile.SaveWeight(value); OnChangeSetting(); } else { //なにもしない } }); }
/// <summary> /// 抑制開始時間ボタン押下イベントハンドラ /// </summary> public void OnSuppressionStartTimeButtonTap() { //ピッカーを表示して抑制開始時間を設定させる string title = "抑制開始時間設定"; string unit = "分"; float maxValue = (float)SuppressionStartTime.Max; float minValue = (float)SuppressionStartTime.Min; float stepValue = 1; float currentValue = (float)TempDeviceSetting.SuppressionStartTime; var vs = new SelectValueDialogParamSet( SelectValueDialogParamSet.DISPLAY_TYPE.Numeric, title, unit, maxValue, minValue, stepValue, currentValue); SelectValueDialog.Show(vs, (SelectValueDialog.ButtonItem status, float value, GameObject dialog) => { if (status == SelectValueDialog.ButtonItem.OK) { //結果をテキストに反映 suppressionStartTimeText.text = value.ToString("0") + unit; //アプリ内保存 TempDeviceSetting.SuppressionStartTime = (SuppressionStartTime)value; SaveDeviceSetting(); } else { //なにもしない } }); }
/// <summary> /// 初期化 /// </summary> /// <param name="valueset">初期値</param> public void Init(SelectValueDialogParamSet valueset) { if (rc == null) { getController(); } // パラメータチェック if (valueset.maxValue < valueset.minValue) { // 常にminValueがmaxValueより小さくなるように調整 float temp = valueset.maxValue; valueset.maxValue = valueset.minValue; valueset.minValue = temp; } if (valueset.currentValue < valueset.minValue || valueset.currentValue > valueset.maxValue) { // currentValueが設定範囲外の場合は強制的にminValueを初期値とする valueset.currentValue = valueset.minValue; } // nullを空文字に置き換える valueset.valueTitle = valueset.valueTitle ?? ""; valueset.valueUnit = valueset.valueUnit ?? ""; // 通知表示タイプ設定 if (valueset.displayType == SelectValueDialogParamSet.DISPLAY_TYPE.Time) { valuetype = ValueType.Time; // ルーラー部分初期化 rc.Init(0, 60 * 24, 10, (float)valueset.currentTime.TotalMinutes, true); } else { if (valueset.stepValue < 1) { valuetype = ValueType.Decimal; } else { valuetype = ValueType.Integer; } // ルーラー部分初期化 rc.Init(valueset.minValue, valueset.maxValue, valueset.stepValue, valueset.currentValue); } // クリアボタン有無設定 //使用しない if (valueset.displayType != SelectValueDialogParamSet.DISPLAY_TYPE.NumericClear) { // transform.Find("Background/Footer/Child1/ClearButton").gameObject.SetActive(false); } // タイトル初期化 titleDispText.text = valueset.valueTitle; unitDispText.text = valueset.valueUnit; }
/// <summary> /// 数値選択ダイアログを表示します /// </summary> /// <param name="resultSetField">設定値の出力先</param> /// <param name="valueSet">共通入力UI設定値</param> /// <param name="onTapOK">OKボタンが選択された際に実行されるコールバック</param> /// <param name="onTapCancel">Cancelボタンが選択された際に実行されるコールバック</param> public static void Show(SelectValueDialogParamSet valueSet, ValueSelectCallback valueCallBack) { //ダイアログ作成 GameObject dialog = CreateDialog(dialogPath); var dialogController = dialog.GetComponent <SelectValueDialog>(); // ダイアログに値を設定 dialogController.Init(valueSet); // ダイアログの各ボタンにコールバック登録 if (valueSet.displayType == SelectValueDialogParamSet.DISPLAY_TYPE.Numeric) { dialogController.SetCallback( delegate { valueCallBack(ButtonItem.OK, dialogController.currentValue, dialog); }, delegate { valueCallBack(ButtonItem.Cancel, dialogController.currentValue, dialog); } ); } else if (valueSet.displayType == SelectValueDialogParamSet.DISPLAY_TYPE.NumericClear) { dialogController.SetCallback( delegate { valueCallBack(ButtonItem.OK, dialogController.currentValue, dialog); }, delegate { valueCallBack(ButtonItem.Cancel, dialogController.currentValue, dialog); }, delegate { valueCallBack(ButtonItem.Clear, dialogController.currentValue, dialog); } ); } }