/// <summary> /// 获取与目标的关系 /// </summary> /// <param name="unit"></param> /// <returns></returns> public RoleCast GetRoleCastToTarget(Unit unit) { if (unit.GetComponent <B2S_RoleCastComponent>() == null) { return(RoleCast.Friendly); } RoleCamp roleCamp = unit.GetComponent <B2S_RoleCastComponent>().RoleCamp; if (roleCamp == this.RoleCamp) { return(RoleCast.Friendly); } switch (roleCamp | this.RoleCamp) { case RoleCamp.TianZai | RoleCamp.HuiYue: return(RoleCast.Adverse); case RoleCamp.TianZai | RoleCamp.JunHeng: case RoleCamp.HuiYue | RoleCamp.JunHeng: return(RoleCast.Neutral); } return(RoleCast.Friendly); }
protected override async ETTask Run(ETModel.Session session, M2C_CreateSpilings message) { SpilingInfo spilingInfo = message.Spilings; if (spilingInfo == null) { ETModel.Log.Error("收到的木桩回调信息为空"); } RoleCamp roleCamp = (RoleCamp)spilingInfo.RoleCamp; //创建木桩 Unit unit = UnitFactory.CreateSpiling(spilingInfo.UnitId, spilingInfo.ParentUnitId, roleCamp); //因为血条需要,创建热更层unit HotfixUnit hotfixUnit = HotfixUnitFactory.CreateHotfixUnit(unit); hotfixUnit.AddComponent <FallingFontComponent>(); unit.Position = new Vector3(spilingInfo.X, spilingInfo.Y, spilingInfo.Z); unit.AddComponent <HeroDataComponent, long>(10001); // 创建头顶Bar Game.EventSystem.Run(EventIdType.CreateHeadBar, spilingInfo.UnitId); // 挂载头顶Bar hotfixUnit.AddComponent <HeroHeadBarComponent, Unit, FUI>(unit, Game.Scene.GetComponent <FUIComponent>().Get(spilingInfo.UnitId)); await ETTask.CompletedTask; }
public static Unit CreateHero(long id, string unitType, RoleCamp roleCamp) { PrepareHeroRes(unitType); Unit unit = Game.Scene.GetComponent <GameObjectPool>().FetchEntityWithId(id, unitType); //Log.Info($"此英雄的Model层ID为{unit.Id}"); unit.AddComponent <DataModifierComponent>(); unit.AddComponent <NumericComponent>(); unit.AddComponent <HeroTransformComponent>(); //增加子实体组件,用于管理子实体 unit.AddComponent <ChildrenUnitComponent>(); //增加栈式状态机,辅助动画切换 unit.AddComponent <StackFsmComponent>(); unit.AddComponent <AnimationComponent>(); unit.AddComponent <MoveComponent>(); unit.AddComponent <TurnComponent>(); unit.AddComponent <UnitPathComponent>(); unit.AddComponent <EffectComponent>(); //增加Buff管理组件 unit.AddComponent <BuffManagerComponent>(); unit.AddComponent <SkillCanvasManagerComponent>(); unit.AddComponent <B2S_RoleCastComponent, RoleCamp>(roleCamp); unit.AddComponent <CommonAttackComponent>(); unit.GameObject.GetComponent <MonoBridge>().BelongToUnit = unit; UnitComponent.Instance.Add(unit); return(unit); }
/// <summary> /// 创建木桩 /// </summary> /// <param name="selfId">自己的id</param> /// <param name="parentId">父实体id</param> /// <returns></returns> public static Unit CreateSpiling(long selfId, long parentId, RoleCamp roleCamp) { PrepareHeroRes("NuoKe"); Unit unit = Game.Scene.GetComponent <GameObjectPool>().FetchEntityWithId(selfId, "NuoKe"); //Log.Info($"此英雄的Model层ID为{unit.Id}"); unit.AddComponent <DataModifierComponent>(); unit.AddComponent <NumericComponent>(); //增加子实体组件,用于管理子实体 unit.AddComponent <ChildrenUnitComponent>(); //增加栈式状态机,辅助动画切换 unit.AddComponent <StackFsmComponent>(); unit.AddComponent <MoveComponent>(); unit.AddComponent <TurnComponent>(); unit.AddComponent <UnitPathComponent>(); unit.AddComponent <AnimationComponent>(); unit.AddComponent <EffectComponent>(); unit.AddComponent <B2S_RoleCastComponent, RoleCamp>(roleCamp); unit.AddComponent <HeroTransformComponent>(); //增加Buff管理组件 unit.AddComponent <BuffManagerComponent>(); unit.GameObject.GetComponent <MonoBridge>().BelongToUnit = unit; UnitComponent.Instance.Get(parentId).GetComponent <ChildrenUnitComponent>().AddUnit(unit); return(unit); }
/// <summary> /// 玩家掉线就清空其信息 /// </summary> /// <param name="player"></param> public void PlayerDisconnected(Player player) { RoleCamp roleCamp = UnitComponent.Instance.Get(player.UnitId).GetComponent <B2S_RoleCastComponent>().RoleCamp; switch (roleCamp) { case RoleCamp.HuiYue: this.HuiYueCount--; break; case RoleCamp.TianZai: this.TianZaiCount--; break; default: return; } }
public void Awake(RoleCamp roleCamp) { //此处填写Awake逻辑 this.RoleCamp = roleCamp; }