public void Start() { if (_list.Orientation == NavigationOrientation.None) { throw new InvalidOperationException( $"ListControl is missing orientation value on gameObject {_list.gameObject.ToHierarchyPath()}"); } _list.Views .CombineLatest(ChosenIndex, (views, selectedIndex) => new { views, selectedIndex }) .Subscribe(x => { _chosenView.Value = x.views.GetAtOrDefault(x.selectedIndex); if (_list.IsSelfOrDescendantSelected.Value) { _chosenView.Value?.Select(); } }) .AddTo(_disposables); SubscribeToUpdateFocusables(ChosenView); _disposables.AddTo(_list); _chosenView.AddTo(_list); ChosenIndex.AddTo(_list); }
// Use this for initialization void Start() { PlayerState.Do(ps => { PlayerStateClear.Dispose(); PlayerStateClear = new CompositeDisposable(); PlayerStateClear.AddTo(this); }).Where(ps => ps != null).Subscribe(ps => { AvatarRight.onClick.AsObservable().Select(p => 1) .Merge(AvatarLeft.onClick.AsObservable().Select(p => - 1)) .Subscribe(pos => { var list = GameManager.GameConfig.CampaignConfig.PlayerAvatarList; var currentIndex = list.IndexOf(GameManager.GameConfig.CampaignConfig.PlayerAvatars[PlayerState.Value.Avatar]); var nextIndex = currentIndex + pos; if (nextIndex < 0) { nextIndex = list.Count - 1; } if (nextIndex >= list.Count) { nextIndex = 0; } PlayerState.Value.Avatar = list[nextIndex].Name; }).AddTo(PlayerStateClear); }).AddTo(this); }
// Use this for initialization void Start() { CampaignState.Subscribe(cs => { CampaignStateClear.Dispose(); CampaignStateClear = new CompositeDisposable(); CampaignStateClear.AddTo(this); if (cs != null) { Avatar.PlayerState.Value = cs.PlayerState; AvatarSelector.PlayerState.Value = cs.PlayerState; cs.DifficultyLevelProperty.Subscribe(d => { EasyCampaign.isOn = d == Difficulty.Level.Easy; MediumCampaign.isOn = d == Difficulty.Level.Medium; HardCampaign.isOn = d == Difficulty.Level.Hard; }).AddTo(CampaignStateClear); cs.PermadeathProperty.Subscribe(p => Permadeath.isOn = p).AddTo(CampaignStateClear); cs.TutorialsProperty.Subscribe(t => Tutorials.isOn = t).AddTo(CampaignStateClear); EasyCampaign.onValueChanged.AsObservable().Where(c => c).Subscribe(_ => cs.DifficultyLevel = Difficulty.Level.Easy); MediumCampaign.onValueChanged.AsObservable().Where(c => c).Subscribe(_ => cs.DifficultyLevel = Difficulty.Level.Medium); HardCampaign.onValueChanged.AsObservable().Where(c => c).Subscribe(_ => cs.DifficultyLevel = Difficulty.Level.Hard); Tutorials.onValueChanged.AsObservable().Subscribe(t => cs.Tutorials = t); Permadeath.onValueChanged.AsObservable().Subscribe(t => cs.Permadeath = t); } else { Avatar.PlayerState.Value = null; AvatarSelector.PlayerState.Value = null; } }).AddTo(this); }
protected virtual void Awake() { _isOpen.Where(x => x).Subscribe(x => OnOpenAnyObserver.OnNext(this)).AddTo(this); _isOpen.Where(x => !x).Subscribe(x => OnCloseAnyObserver.OnNext(this)).AddTo(this); openCloseDisposable.AddTo(this); animations = GetComponents <DOTweenAnimation>(); SubscribeOnAnimationComplete(); }
// Use this for initialization void Start() { PlayerState.Do(ps => { PlayerStateClear.Dispose(); PlayerStateClear = new CompositeDisposable(); PlayerStateClear.AddTo(this); }).Where(ps => ps != null).Subscribe(ps => { ps.AvatarProperty.StartWith(ps.Avatar).Subscribe(a => { Icon.sprite = GameManager.GameConfig.CampaignConfig.PlayerAvatars[a].Avatar; }).AddTo(PlayerStateClear); }).AddTo(this); }
public static IDisposable BindChildPrefabsTo <T>(this GameObject input, IReadOnlyReactiveCollection <T> list, GameObject prefab, Func <GameObject, Transform, GameObject> instantiator, Action <T, GameObject> onChildCreated = null, Action <T, GameObject> onChildRemoving = null) { var disposable = new CompositeDisposable(); void onElementAdded(CollectionAddEvent <T> data) { var newChild = instantiator(prefab, input.transform); onChildCreated?.Invoke(data.Value, newChild); } void onElementUpdated(CollectionReplaceEvent <T> data) { var existingChild = input.transform.GetChild(data.Index); onChildCreated?.Invoke(data.NewValue, existingChild.gameObject); } void onElementRemoved(CollectionRemoveEvent <T> data) { var existingChild = input.transform.GetChild(data.Index); onChildRemoving?.Invoke(data.Value, existingChild.gameObject); GameObject.Destroy(existingChild); } list.ObserveAdd().Subscribe(onElementAdded).AddTo(disposable); list.ObserveReplace().Subscribe(onElementUpdated).AddTo(disposable); list.ObserveRemove().Subscribe(onElementRemoved).AddTo(disposable); input.transform.DeleteAllChildren(); foreach (var element in list) { var newChild = instantiator(prefab, input.transform); onChildCreated?.Invoke(element, newChild); } return(disposable.AddTo(input)); }
private void SetupDisposer(CompositeDisposable disposer) { Disposer.AddTo(disposer); }
private void InjectDisposer(CompositeDisposable disposer) { Disposer.AddTo(disposer); }
void OnCreated() { _life.AddTo(this); _renderer.material = Instantiate(_renderer.material); }
void OnCreated() { _life.AddTo(this); _blocks = new Array3 <byte>(VoxelConsts.ChunkLength); _serializer = new ChunkSerializer(VoxelConsts.ChunkLength); }
void OnCreated() { _life.AddTo(this); }
static DateTimeHelper() { SetObservables(); compositeDisposable.AddTo(Application.Current); }