Exemple #1
0
#pragma warning restore 649

        public async UniTask <string> Open()
        {
            using (UniRxUtils.Toggle(SetVisible))             // open the panel, and close when done
                using (CompositeDisposable e = new CompositeDisposable())
                {
                    _field.OnValueChangedAsObservable()
                    .Select(t => CheckValidId(t))
                    .Subscribe(v => _confirmButton.interactable = v)
                    .AddTo(e);

                    while (!CheckValidId(_field.text))
                    {
                        bool confirmed = await UniRxUtils.First(
                            _confirmButton.OnClickAsObservable().Select(_ => true),
                            _cancelButton.OnClickAsObservable().Select(_ => false));

                        if (!confirmed)
                        {
                            return(null);
                        }
                    }

                    return(_field.text);
                }
        }
Exemple #2
0
        public async UniTask <string> Open()
        {
            using (UniRxUtils.Toggle(SetVisible))             // open the list, and close when finished
            {
                Prepare();

                // Return null when cancelled
                IObservable <string> cancel = _cancellation.Select(_ => (string)null);

                string input = await _selection.Merge(cancel).ToUniTask(useFirstValue: true);

                Initialize();

                return(input);
            }
        }