Ejemplo n.º 1
0
        /// <summary>
        /// 获取当前预览的物体,更新预览界面的角色灯光
        /// </summary>
        public void UpdatePreviewLight(GameObject preview_object)
        {
            var role_ids = GameConstHelper.GetUintList("GAME_AVAILABLE_ROLE_ID");
            var type_ids = new List <uint>(role_ids.Count);

            foreach (var rid in role_ids)
            {
                type_ids.Add(ActorHelper.RoleIdToTypeId(rid));
            }

            uint actor_type_id = 0;
            var  client_model  = preview_object.GetComponentInChildren <ActorMono>(true);

            if (client_model != null && client_model.BindActor != null)
            {
                actor_type_id = client_model.BindActor.TypeIdx;
            }

            if (type_ids.Contains(actor_type_id))
            {
                PreviewLight.SelectLight(0, ActorHelper.TypeIdToRoleId(actor_type_id));
            }
            else
            {
                PreviewLight.SelectLight(0, 0);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 根据PkgPlayerBrief来初始化AOI数据
        /// </summary>
        public static UnitCacheInfo CreateUnitCacheInfo(PkgPlayerBrief info, Vector3 pos)
        {
            var cache_info = new xc.UnitCacheInfo(EUnitType.UNITTYPE_PLAYER, info.uuid);

            cache_info.CacheType               = xc.UnitCacheInfo.EType.ET_Create;
            cache_info.PosBorn                 = pos;
            cache_info.AOIPlayer.type_idx      = ActorHelper.RoleIdToTypeId(info.rid);
            cache_info.AOIPlayer.name          = System.Text.Encoding.UTF8.GetString(info.name);
            cache_info.AOIPlayer.model_id_list = new List <uint>();
            cache_info.AOIPlayer.fashions      = new List <uint>();
            ActorHelper.GetModelFashionList(info.shows, cache_info.AOIPlayer.model_id_list, cache_info.AOIPlayer.fashions);
            cache_info.AOIPlayer.suit_effects = info.effects;
            cache_info.AOIPlayer.level        = (short)info.level;
            cache_info.AOIPlayer.mount_id     = info.ride;
            cache_info.AOIPlayer.name_color   = info.name_color;
            cache_info.AOIPlayer.state        = info.state;
            cache_info.AOIPlayer.honor_id     = info.honor;
            cache_info.AOIPlayer.title_id     = info.title;
            cache_info.AOIPlayer.transfer_lv  = info.transfer;
            cache_info.AOIPlayer.mate_info    = info.mate;

            if (info.war != null)
            {
                cache_info.AOIPlayer.camp      = info.war.side;
                cache_info.AOIPlayer.team_id   = info.war.team_id;
                cache_info.AOIPlayer.pet_id    = info.war.pet_skin; //宠物皮肤
                cache_info.AOIPlayer.escort_id = info.war.escort_id;
            }
            else
            {
                cache_info.AOIPlayer.camp      = 0;
                cache_info.AOIPlayer.team_id   = 0;
                cache_info.AOIPlayer.pet_id    = 0;
                cache_info.AOIPlayer.escort_id = 0;
            }
            if (info.guild != null)
            {
                cache_info.AOIPlayer.guild_id   = info.guild.guild_id;
                cache_info.AOIPlayer.guild_name = System.Text.Encoding.UTF8.GetString(info.guild.guild_name);
            }
            else
            {
                cache_info.AOIPlayer.guild_id   = 0;
                cache_info.AOIPlayer.guild_name = "";
            }

            return(cache_info);
        }
Ejemplo n.º 3
0
        protected virtual UnitCacheInfo CreateUnitCacheData(S2CNwarInitInfo player_info)
        {
            var born_pos  = RoleHelp.GetPositionInScene(ActorHelper.RoleIdToTypeId(player_info.brief.rid), player_info.init_pos.px * GlobalConst.UnitScale, player_info.init_pos.py * GlobalConst.UnitScale);
            var init_data = ActorHelper.CreateUnitCacheInfo(player_info.brief, born_pos);

            // 读取出生点朝向
            List <Neptune.Tag> tags = Neptune.DataHelper.GetTagListByType(Neptune.DataManager.Instance.Data, "born_pos");

            if (tags.Count > 0)
            {
                init_data.Rotation = tags[0].Rotation;
            }
            if (LocalPlayerManager.Instance.BornRotation.Equals(Quaternion.identity) == false)
            {
                init_data.Rotation = LocalPlayerManager.Instance.BornRotation;
                LocalPlayerManager.Instance.BornRotation = Quaternion.identity;
            }

            return(init_data);
        }