//addChunk到服务器上必须比UpdateAfterPopulation早,因此,只要数据产生,无论是读取网络数据、本地数据、产生数据都需要发送 private void OnChunkDataGenerateFinish(object[] param) { Chunk chunk = param[0] as Chunk; PlayerAddChunkPackage package = PackageFactory.GetPackage(PackageType.PlayerAddChunk) as PlayerAddChunkPackage; package.pos = chunk.worldPos; package.sign = chunk.GetSign(); SendPackage(package); }
private void InitServerMainPlayerInfo() { //初始化主玩家的一些信息 MainClientInitPackage package = PackageFactory.GetPackage(PackageType.MainClientInit) as MainClientInitPackage; GameObject mainPlayer = HasActionObjectManager.Instance.playerManager.getMyPlayer(); package.roleId = roleId; package.position = mainPlayer.transform.position; package.aoId = mainPlayer.GetComponent <PlayerAttributes>().aoId; package.playerId = mainPlayer.GetComponent <PlayerAttributes>().playerId; package.worldConfigName = WorldConfig.Instance.name; package.seed = WorldConfig.Instance.seed; package.time = DayNightTime.Instance.TotalTime; SendPackage(package); //初始化当前玩家内存中的chunk信息到服务器 foreach (var key in World.world.chunks) { WorldPos chunkPos = key.Key; int sign = key.Value.GetSign(); PlayerAddChunkPackage addChunkPackage = PackageFactory.GetPackage(PackageType.PlayerAddChunk) as PlayerAddChunkPackage; addChunkPackage.pos = chunkPos; addChunkPackage.sign = sign; SendPackage(addChunkPackage); } //初始化主玩家的entity信息到服务器上(暂时只同步怪物) MainClientEntityInitPackage entityInitPackage = PackageFactory.GetPackage(PackageType.MainClientEntityInit) as MainClientEntityInitPackage; List <ClientEntityInfo> list = new List <ClientEntityInfo>(); List <GameObject> listMonster = HasActionObjectManager.Instance.monsterManager.listObj(); for (int i = 0; i < listMonster.Count; i++) { GOMonsterController controller = listMonster[i].GetComponent <GOMonsterController>(); ClientEntityInfo info = new ClientEntityInfo(); EntityData entityData = controller.GetEntityData(); info.roleId = roleId; info.aoId = controller.monsterAttribute.aoId; info.entityId = entityData.id; info.type = EntityType.MONSTER; info.position = entityData.pos; info.extData = entityData.exData; list.Add(info); } entityInitPackage.entityInfos = list; SendPackage(entityInitPackage); }