// Controller depends on interfaces for the model and view public HudController(ISelectedCharacterData selectedCharacterData, IHudImageView hudImageView, IHudStatView hudStatView) { _selectedCharacterData = selectedCharacterData; _hudImageView = hudImageView; _hudStatView = hudStatView; _selectedCharacterData.OnSwitchingCharacterFinished += HandleSwitchingCharacter; if (_selectedCharacterData.CharacterStatModel == null) { return; } _characterStatModel = selectedCharacterData.CharacterStatModel; _characterStatModel.OnStatChanged += HandleStatChanged; _characterStatModel.InitializeStats(); }
// Create just the controller public HudCharacterControllerFactory(ISelectedCharacterData selectedCharacterData, IHudImageView hudImageView, List <IHudStatView> hudStatViews) { foreach (var hudStatView in hudStatViews) { _controllers.Add(new HudController(selectedCharacterData, hudImageView, hudStatView)); } }
// Create the view public HudCharacterViewFactory() { var instance = UnityEngine.Object.FindObjectOfType <HudImageView>(); View = instance.gameObject.GetComponent <IHudImageView>(); }