public void Init( [NotNull] GameViewModel game, [NotNull] UnitView unitPrefab, [NotNull] UnitBuyView placeholderPrefab, [NotNull] UnitInfoView infoView) { Assert.IsNotNull(game, nameof(game)); Assert.IsNotNull(unitPrefab, nameof(unitPrefab)); Assert.IsNotNull(placeholderPrefab, nameof(placeholderPrefab)); Assert.IsNotNull(infoView, nameof(infoView)); _game = game; _unitPrefab = unitPrefab; _placeholder = UnityEngine.Object.Instantiate(placeholderPrefab); _infoView = infoView; foreach (var unit in game.Units) { if (unit.Type == _type) { OnAddUnit(unit); } } game.Units .ObserveAdd() .Where(e => e.Value.Type == _type) .Subscribe(e => OnAddUnit(e.Value)); UpdatePlaceholder(); }
public void Init( [NotNull] GameViewModel game, [NotNull] UnitInfoView infoView, [NotNull] UnitViewModel viewModel) { Assert.IsNotNull(game, nameof(game)); Assert.IsNotNull(infoView, nameof(infoView)); Assert.IsNotNull(viewModel, nameof(viewModel)); _game = game; _infoView = infoView; ViewModel = viewModel; viewModel.Sprite .Subscribe(s => _image.sprite = s); _button.onClick.AsObservable() .Subscribe(_ => OnClick()); _incomeView.Init(game, viewModel.Income); }