public void ReplaceWeatherEffect(Weather newType, WeatherDisplayEffect newEffect) { var index = GameComponentsLookup.WeatherEffect; var component = CreateComponent <WeatherEffectComponent>(index); component.Type = newType; component.Effect = newEffect; ReplaceComponent(index, component); }
public void Initialize() { Dictionary <Weather, WeatherDataComponent> _weatherDic = new Dictionary <Weather, WeatherDataComponent>(); foreach (WeatherData data in _setting.DataList) { WeatherDisplayEffect effect = Object.Instantiate <WeatherDisplayEffect>(data.WeatherEffect, _camera, false); effect.gameObject.SetActive(false); var dataCom = new WeatherDataComponent(); dataCom.ability = new WeatherAbilityComponent(); dataCom.effect = new WeatherEffectComponent(); dataCom.ability.Ability = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(data.WeatherAbility) as WeatherAbility; dataCom.effect.Effect = effect; _weatherDic.Add(data.Type, dataCom); } var entity = _gameContexts.CreateEntity(); entity.AddWeatherEffect(Weather.Normal , _weatherDic[Weather.Normal].effect.Effect); entity.AddWeatherDictionary(_weatherDic); }