using Entitas; using Game; public enum EInteractType { Monster, Door, Npc, Bless, } [Game] public class InteractComponent : IComponent { public MetaData IsActive = new MetaData(); //是否激活 public MetaData IsTarget = new MetaData(); //是否在交互范围内、并成为交互目标 public EInteractType InteractType; //交互类型 public string TargetId; //交互目标id 关卡/宝箱/npc } namespace Game { public abstract partial class Util { public static void SetIsTarget(int entityID, bool isTarget) { var entity = GetEntity(entityID); if (entity == null) { return; } var interact = entity.interact; interact.IsTarget.Value = isTarget; } public static void ClearInteract(GameEntity entity) { var interact = entity.interact; interact.IsActive.Value = false; interact.IsTarget.Value = false; } } }