public void AddEffect(UserRole.MagicState magicAttrib) { _magicAttribs.Enqueue(magicAttrib); if (_controller.uiSlot == null) { return; } //Debug.Log("AddEffect " + magicAttrib.EffectType); if (_uiEffectSet.ContainsKey(magicAttrib.EffectType)) { //Debug.Log("_uiEffectSet.ContainsKey " + magicAttrib.EffectType); _uiEffectSet[magicAttrib.EffectType].AddDuration(magicAttrib.RemainTime); } else { //Debug.Log("effectRoot " + _controller.uiSlot.effectRoot); //Debug.Log("_uiEffectPrefab " + _uiEffectPrefab); GameObject go = NGUITools.AddChild(_controller.uiSlot.effectRoot, _uiEffectPrefab); UIEffectController uiEffect = go.GetComponent <UIEffectController>(); uiEffect.CreateEffect(this, magicAttrib); go.transform.localPosition = new Vector3((_uiEffectSet.Count % 3) * _offset.x, (_uiEffectSet.Count / 3) * _offset.y, 0); _uiEffectSet.Add(magicAttrib.EffectType, uiEffect); } }
public void RemoveEffect(EffectType type) { UIEffectController uiEffect = _uiEffectSet[type]; if (uiEffect != null) { GameObject.Destroy(uiEffect.gameObject); _uiEffectSet.Remove(type); } //Debug.Log("RemoveEffect"); _controller.RemoveEffect(type); RefreshEffectSet(); }