using System.Collections.Generic; using CoreGame; using Entitas; using GAS.Runtime; namespace CoreGame.Render.System { public class AnimancerTickSys : IExecuteSystem { private readonly IGroup m_AnimGroup; private readonly List m_CacheEntities = new(); public AnimancerTickSys(CombatContext context) { m_AnimGroup = context.GetGroup(CombatMatcher.AnimationProxy); } public void Execute(float deltaTime) { if (deltaTime < BattleConst.Epsilon) return; m_AnimGroup.GetEntities(m_CacheEntities); for (var i = 0; i < m_CacheEntities.Count; i++) { var ent = m_CacheEntities[i]; var animProxy = ent.animationProxy; var tagAggregator = ent.TagCountContainer; if (tagAggregator.HasTag(GTagLib.State_StandStill)) continue; animProxy.Tick(deltaTime); } } } }