コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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;
            }
        }
コード例 #6
0
 public void Awake(RoleCamp roleCamp)
 {
     //此处填写Awake逻辑
     this.RoleCamp = roleCamp;
 }