private void CreatEnemyCreature(PMatchInfo info) { //创建敌人 ShowCreatureInfo showInfo = ConfigManager.Get <ShowCreatureInfo>(10); Vector3_ pos = new Vector3_(1.3, 0, 0); Vector3 rot = new Vector3(0, -110, 0); if (showInfo != null) { for (int i = 0; i < showInfo.forData.Length; i++) { if (showInfo.forData[i].index == info.roleProto) { pos = showInfo.forData[i].data[0].pos; rot = showInfo.forData[i].data[0].rotation; break; } } } var weaponInfo = ConfigManager.Get <PropItemInfo>(info.fashion.weapon); if (weaponInfo == null) { return; } moduleGlobal.LockUI("", 0.5f); Level.PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(info), (r) => { if (!r) { return; } enemy = moduleHome.CreatePlayer(info, pos, CreatureDirection.BACK); enemy.transform.localEulerAngles = rot; moduleGlobal.UnLockUI(); }); if (info.pet != null && info.pet.itemTypeId != 0) { var rPet = PetInfo.Create(info.pet); var assets = new List <string>(); Level.PrepareAssets(Module_Battle.BuildPetSimplePreloadAssets(rPet, assets, 2), b => { var rGradeInfo = rPet.UpGradeInfo; var show = ConfigManager.Get <ShowCreatureInfo>(rPet.ID); if (show == null) { Logger.LogError("没有配置config_showCreatureInfo表。宠物ID = {0}, 没有出生位置信息。宠物模型创建失败", rPet.ID); return; } var showData = show.GetDataByIndex(0); var data = showData.data.GetValue <ShowCreatureInfo.SizeAndPos>(0); enemyPet = moduleHome.CreatePet(rGradeInfo, pos + data.pos, data.rotation, Level.current.startPos, true, Module_Home.FIGHTING_PET_OBJECT_NAME + "_Enemy"); enemyPet.transform.localScale *= data.size; enemyPet.transform.localEulerAngles = data.rotation; }); } }
private void CreatePlayer() { if (master) { master.Destroy(); master = null; } var oc = ConfigManager.Get <ShowCreatureInfo>(20000)?.GetDataByIndex(modulePlayer.proto) ?? null; if (oc != null && oc.data != null && oc.data.Length > 0) { startCameraOffset = oc.data[0].pos; ResetMainCamera(); } PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(), r => { if (!r) { return; } master = moduleHome.CreatePlayer(); originMasterPos = master.position_; if (modulePVP.opType != OpenWhichPvP.None) { moduleMatch.DispatchModuleEvent(Module_Match.EventComeBackHomeScence); } }); CreateFightingPet(modulePet.FightingPet); }
protected override List <string> BuildPreloadAssets() { var asstes = base.BuildPreloadAssets(); if (!moduleNPCDating.isDebug) { asstes.AddRange(Module_NPCDating.GetDatingPreAssets(moduleNPCDating.enterSceneData.eventId)); } asstes.AddRange(Module_Battle.BuildPlayerSimplePreloadAssets());//Ô¤¼ÓÔØÖ÷½Ç×ÊÔ´ return(asstes); }
private void CreatTeamCreature(PMatchProcessInfo info, int index) { //创建敌人 var t = GetTransform(info, index); var pos = t.pos; var rot = t.rotation; var weaponInfo = ConfigManager.Get <PropItemInfo>(info.fashion.weapon); if (weaponInfo == null) { return; } moduleGlobal.LockUI("", 0.5f); m_memberLoadCoroutine = Level.PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(info), r => { if (!r) { return; } teamPlayer = moduleHome.CreatePlayer(info, pos, CreatureDirection.FORWARD); teamPlayer.uiName = Module_Home.TEAM_OBJECT_NAME; teamPlayer.gameObject.name = Module_Home.TEAM_OBJECT_NAME; teamPlayer.transform.localEulerAngles = rot; teamPlayer.transform.localScale = Vector3.one * t.size; moduleGlobal.UnLockUI(); }); if (info.pet != null && info.pet.itemTypeId != 0) { var rPet = PetInfo.Create(info.pet); var assets = new List <string>(); Level.PrepareAssets(Module_Battle.BuildPetSimplePreloadAssets(rPet, assets, 2), b => { var rGradeInfo = rPet.UpGradeInfo; var show = ConfigManager.Get <ShowCreatureInfo>(rPet.ID); if (show == null) { Logger.LogError("没有配置config_showCreatureInfo表。宠物ID = {0}, 没有出生位置信息。宠物模型创建失败", rPet.ID); return; } var showData = show.GetDataByIndex(0); var data = showData.data.GetValue <ShowCreatureInfo.SizeAndPos>(0); teamPlayerPet = moduleHome.CreatePet(rGradeInfo, pos + data.pos, data.rotation, Level.current.startPos, true, Module_Home.TEAM_PET_OBJECT_NAME); teamPlayerPet.transform.localScale *= data.size; teamPlayerPet.transform.localEulerAngles = data.rotation; }); } }
protected override List <string> BuildPreloadAssets() { var assets = base.BuildPreloadAssets(); for (var i = 0; i < moduleSelectRole.roleList?.Length; i++) { Module_Battle.BuildPlayerSimplePreloadAssets(moduleSelectRole.roleList[i], assets); } assets.Add(StoryConst.THEATRE_MASK_ASSET_NAME); assets.Add(GeneralConfigInfo.defaultConfig.roleSelectEffect.effect); assets.Add("ui_selectcharacter"); return(assets); }
protected override List <string> BuildPreloadAssets() { var assets = base.BuildPreloadAssets(); //收到角色信息后才预加载。否则采用动态加载 if (moduleEquip.weaponID != 0) { assets.AddRange(Module_Battle.BuildPlayerSimplePreloadAssets()); } assets.AddRange(Module_Battle.BuildPetSimplePreloadAssets(modulePet.FightingPet, null, 2)); //切换场景回到主城的时候,需要预加载未完成的资源 if (moduleGuide.currentGuide != null) { assets.AddRange(moduleGuide.GetPreLoadAssets(moduleGuide.currentGuide)); } assets.AddRange(FaceName.cachedAssets); return(assets); }
private void OnPostGmLockClass(Event_ e) { var mm = (bool)e.param1; if (!mm || !master) { CreatePlayer(); } else { moduleGlobal.LockUI("拼命加载中...", 1.0f, 5.0f); PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(), f => { moduleGlobal.UnLockUI(); if (!f || !master) { return; } master.UpdateWeapon(moduleEquip.weaponID, moduleEquip.weaponItemID); }); } }
private void CreateRole(PRoleSummary rRole, RoleEntry rEntry) { if (rEntry?.root == null || rRole == null) { return; } rEntry.materialList.Clear(); //没有时装数据的角色不创建模型。避免报错 if (rRole.fashion.weapon == 0) { return; } Vector3 pos = Vector3.zero, rot = Vector3.zero; var info = ConfigManager.Get <ShowCreatureInfo>(20001 + rEntry.index); var d = info?.GetDataByIndex(rRole.proto); if (d != null && d.data?.Length > 0) { pos = d.data[0].pos; rot = d.data[0].rotation; } var assets = new List <string>(); Level.PrepareAssets(Module_Battle.BuildPlayerSimplePreloadAssets(rRole, assets), b => { rEntry.creature = Creature.Create(modulePlayer.BuildPlayerInfo(rRole), rEntry.root.position + pos, rot, true, rRole.name, rRole.name, false); rEntry.creature.transform.SetParent(rEntry.root); rEntry.creature.localRotation = Quaternion.Euler(rot); rEntry.creature.roleId = rRole.roleId; CharacterEquip.ChangeCloth(rEntry.creature, rRole.fashion); var renderers = rEntry.creature.gameObject.GetComponentsInChildren <Renderer>(); foreach (var r in renderers) { rEntry.materialList.AddRange(r.materials); } //暂时不显示宠物了 /*if (rRole.pet == null || rRole.pet.itemId == 0) * return; * * var rPet = PetInfo.Create(rRole.pet); * var rGradeInfo = rPet.UpGradeInfo; * var show = ConfigManager.Get<ShowCreatureInfo>(rPet.ID); * if (show == null) * { * Logger.LogError("没有配置config_showCreatureInfo表。宠物ID = {0}, 没有出生位置信息。宠物模型创建失败", rPet.ID); * return; * } * var showData = show.GetDataByIndex(0); * var data = showData.data.GetValue<ShowCreatureInfo.SizeAndPos>(0); * rEntry.pet = moduleHome.CreatePet(rGradeInfo, data.pos + rEntry.creature.position, data.rotation, rEntry.root, true, * Module_Home.TEAM_PET_OBJECT_NAME); * rEntry.pet.transform.localScale *= data.size; * rEntry.pet.transform.localEulerAngles = data.rotation; * * renderers = rEntry.pet.gameObject.GetComponentsInChildren<Renderer>(); * foreach (var r in renderers) * rEntry.materialList.AddRange(r.materials);*/ }); }