You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
| using Entitas;
 | |
| using Game;
 | |
| 
 | |
| public enum EInteractType
 | |
| {
 | |
|     Monster,
 | |
|     Door,
 | |
|     Npc,
 | |
|     Bless,
 | |
| }
 | |
| [Game]
 | |
| public class InteractComponent : IComponent
 | |
| {
 | |
|     public MetaData<bool> IsActive = new MetaData<bool>(); //是否激活
 | |
|     public MetaData<bool> IsTarget = new MetaData<bool>(); //是否在交互范围内、并成为交互目标
 | |
|     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;
 | |
|         }
 | |
|     }
 | |
| } |