public Buff(int id, Role role, Role from) { _id = id; _tpl = TemplateManager.GetBuff(_id); if (_tpl == null) { Debug.LogError("未找到Buff模板,id=" + _id); } _role = role; _from = from; Vector2 pt = Vector2.zero; if (_tpl.Resposition == 1) { pt = _role.GetBuffPosition(); } else if (_tpl.Resposition == 2) { pt = _role.GetHeadPosition(true); } if (!_tpl.Res.Trim().Equals("")) { _effect = _role.AddFlipEffect(SystemConsts.SKILL_BUFF_PREFIX + _tpl.Res, pt); } _affectIndex = 0; _affectCount = 0.0f; Refresh(_from); }
public void Clear() { if (_effect != null) { _effect.Destroy(); _effect = null; } _finished = true; }
public FlipEffect AddFlipEffect(string res, Vector2 pos) { var effect = new FlipEffect(res, pos, transform, _orientation == Orientation.LEFT); return(effect); }
private void Init() { Width = 0f; isTriggered.Bind(OnTriggeredChange); buttonTrigger = CreateChild <BasicTrigger>("trigger"); { buttonTrigger.IsClickToTrigger = false; buttonTrigger.Anchor = AnchorType.CenterStretch; buttonTrigger.Width = 36f; buttonTrigger.SetOffsetVertical(0f); buttonTrigger.OnPointerDown += () => isTriggered.Value = true; buttonTrigger.OnPointerUp += () => isTriggered.Value = false; var bg = buttonTrigger.CreateChild <UguiSprite>("bg"); { bg.Anchor = AnchorType.CenterStretch; bg.SetOffsetVertical(0f); bg.Width = 8f; bg.Color = new Color(1f, 1f, 1f, 0.25f); bg.SpriteName = "circle-8"; bg.ImageType = Image.Type.Sliced; } } indicatorContainer = CreateChild <UguiObject>("container"); { indicatorContainer.Anchor = AnchorType.CenterStretch; indicatorContainer.Width = 0; indicatorContainer.SetOffsetVertical(0f); indicatorCanvas = indicatorContainer.RawObject.AddComponent <CanvasGroup>(); indicatorCanvas.alpha = 0f; shadowSprite = indicatorContainer.CreateChild <UguiSprite>("shadow"); { shadowSprite.Anchor = AnchorType.Fill; shadowSprite.Offset = new Offset(0f, 9f, 0f, -9f); shadowSprite.Color = ColorPreset.Passive.Darken(0.5f); shadowSprite.SpriteName = "parallel-64"; shadowSprite.ImageType = Image.Type.Sliced; shadowFlipEffect = shadowSprite.AddEffect(new FlipEffect()); } bgSprite = indicatorContainer.CreateChild <UguiSprite>("bg"); { bgSprite.Anchor = AnchorType.Fill; bgSprite.Offset = Offset.Zero; bgSprite.Color = ColorPreset.Passive; bgSprite.SpriteName = "parallel-64"; bgSprite.ImageType = Image.Type.Sliced; bgFlipEffect = bgSprite.AddEffect(new FlipEffect()); } iconSprite = indicatorContainer.CreateChild <UguiSprite>("icon"); { iconSprite.Y = 0f; iconSprite.Size = new Vector2(24f, 24f); iconSprite.SpriteName = "icon-pause"; iconSprite.Color = ColorPreset.PrimaryFocus; } indicatorContainer.Active = false; } showAni = new Anime(); showAni.AddEvent(0f, () => indicatorContainer.Active = true); showAni.AnimateFloat((width) => indicatorContainer.Width = width) .AddTime(0f, 0, EaseType.BackEaseOut) .AddTime(0.25f, 196f) .Build(); showAni.AnimateFloat((alpha) => indicatorCanvas.alpha = alpha) .AddTime(0f, () => indicatorCanvas.alpha) .AddTime(0.25f, 1f) .Build(); hideAni = new Anime(); hideAni.AnimateFloat((width) => indicatorContainer.Width = width) .AddTime(0f, 196f, EaseType.CubicEaseIn) .AddTime(0.25f, 0f) .Build(); hideAni.AnimateFloat((alpha) => indicatorCanvas.alpha = alpha) .AddTime(0f, () => indicatorCanvas.alpha) .AddTime(0.25f, 0f) .Build(); hideAni.AddEvent(hideAni.Duration, () => indicatorContainer.Active = false); }