| System/AssetVersion/InGameDownLoad.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/AssetVersion/InGameDownLoadProgress.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/AssetVersion/RemoteFile.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Login/LoginWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/FlyingShoesTask.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/PlayerMainDate.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/SideMission.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/TaskListTip.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmBossShow.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureCyclicScroll.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| UI/Common/UI3DShowHero.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/AssetVersion/InGameDownLoad.cs
@@ -16,8 +16,6 @@ public bool inGameDownLoadAllow = false; public float progress { get { return Mathf.Clamp01((float)showDownLoadedSize / showTotalSize); @@ -240,7 +238,6 @@ } } int workingQueueMaxCount = 1; IEnumerator Co_StartDownLoad() { @@ -249,18 +246,14 @@ workingQueue.Clear(); okCount = 0; var downLoadTasksQueues = new Queue<AssetVersion>(); for (int i = 0; i < tasks.Count; i++) { var assetVersion = tasks[i]; if (!assetVersion.localValid) { var remoteURL = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), "/", assetVersion.relativePath); var localURL = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, assetVersion.relativePath); var remoteFile = new RemoteFile(); workingQueue.Add(remoteFile); remoteFile.Init(remoteURL, localURL, assetVersion, true); remoteFile.Begin(OnFileDownLoadCompleted); downLoadTasksQueues.Enqueue(assetVersion); } else { @@ -270,6 +263,17 @@ while (okCount < totalCount) { while (workingQueue.Count < 2 && downLoadTasksQueues.Count > 0) { var assetVersion = downLoadTasksQueues.Dequeue(); var remoteURL = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), "/", assetVersion.relativePath); var localURL = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, assetVersion.relativePath); var remoteFile = new RemoteFile(); workingQueue.Add(remoteFile); remoteFile.Init(remoteURL, localURL, assetVersion, true); remoteFile.Begin(OnFileDownLoadCompleted); } yield return null; } @@ -307,6 +311,15 @@ private void OnFileDownLoadCompleted(bool _ok, AssetVersion _assetVersion) { foreach (var remote in workingQueue) { if (remote.assetVersion == _assetVersion) { workingQueue.Remove(remote); break; } } if (_ok) { okCount++; System/AssetVersion/InGameDownLoadProgress.cs
@@ -27,7 +27,8 @@ else if (!InGameDownLoad.Instance.hasReward && InGameDownLoad.Instance.completeDownLoadAccount == PlayerDatas.Instance.baseData.AccID) { m_ProgressText.gameObject.SetActive(false); m_ProgressText.gameObject.SetActive(true); m_ProgressText.text = "100%"; this.gameObject.SetActive(true); } else @@ -89,7 +90,8 @@ break; case InGameDownLoad.State.Award: this.gameObject.SetActive(true); m_ProgressText.gameObject.SetActive(false); m_ProgressText.gameObject.SetActive(true); m_ProgressText.text = "100%"; break; } } System/AssetVersion/RemoteFile.cs
@@ -72,7 +72,7 @@ } } AssetVersion assetVersion; public AssetVersion assetVersion { get; private set; } protected string mRemoteFile; protected string localFile; bool speedLimit = false; @@ -123,6 +123,7 @@ public static void Prepare() { gDownloadIsRunningCount = 0; gStartTickcount = System.Environment.TickCount; TotalDownloadedSize = 0L; downloadSpeedRef = 0f; @@ -153,7 +154,8 @@ } stop = true; try { if (headRequest != null) { headRequest.Abort(); @@ -190,13 +192,19 @@ inStream.Close(); inStream = null; } } catch (Exception ex) { Debug.Log(ex); } finally { onCompleted = null; mHadError = false; if (state == State.Working) { gDownloadIsRunningCount--; } } } @@ -324,7 +332,11 @@ headResponse.Close(); headResponse = null; } if (headRequest != null) { headRequest.Abort(); headRequest = null; } } }, headRequest); @@ -373,7 +385,12 @@ if (mHadError) { DebugEx.LogWarningFormat("获取远程文件{0} 信息失败!", mRemoteFile); if (headRequest != null) { headRequest.Abort(); headRequest = null; } done = true; gDownloadIsRunningCount--; yield break; System/Login/LoginWin.cs
@@ -157,6 +157,11 @@ protected virtual void EnterGame() { if (!LaunchPostProcess.Instance.completed) { return; } Login(); } System/MainInterfacePanel/FlyingShoesTask.cs
@@ -120,36 +120,27 @@ m_ImgSelected.SetActive(true); taskmodel.GetNowTaskID = Task_ID; if (mainModel.TaskId_Skill1.Contains(Task_ID)) { int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品 if (itemNumber >= mainModel.ItemNumber) { taskmodel.CompletionOfTask(Task_ID); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2); } else { StateDetermination(); ContentText.ExcuteHref(); } return; } switch ((int)taskmodel.GetTaskStatus(Task_ID)) { case -5: case 0: DropItemManager.StopMissionPickup = true;//主动停止拾取物品 if (PlayerDatas.Instance.extersion.bossState == 1) { string strNpc = string.Empty; strNpc = ContentText.GetHrefMessage("movenpc"); int npcId = 0; int mapID = PlayerDatas.Instance.baseData.MapID; if (int.TryParse(strNpc, out npcId)) { var npcConfig = Config.Instance.GetAllValues<mapnpcConfig>(); foreach (var value in npcConfig) { if (value.NPCID == npcId && value.MapID != mapID) { SysNotifyMgr.Instance.ShowTip("Task_Transfer1"); return; } } var MonsterConfig = Config.Instance.Get<MonsterRefreshPointConfig>(npcId); if (MonsterConfig != null && MonsterConfig.MapId != mapID) { SysNotifyMgr.Instance.ShowTip("Task_Transfer1"); return; } } } StateDetermination(); ContentText.ExcuteHref(); OpenPanel(Task_ID); break; @@ -202,12 +193,47 @@ break; case 3: taskmodel.CompletionOfTask(Task_ID); if (mainModel.TaskId_Skill.Contains(Task_ID)) { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2); } break; default: break; } } private void StateDetermination()//状态判定 { DropItemManager.StopMissionPickup = true;//主动停止拾取物品 if (PlayerDatas.Instance.extersion.bossState == 1) { string strNpc = string.Empty; strNpc = ContentText.GetHrefMessage("movenpc"); int npcId = 0; int mapID = PlayerDatas.Instance.baseData.MapID; if (int.TryParse(strNpc, out npcId)) { var npcConfig = Config.Instance.GetAllValues<mapnpcConfig>(); foreach (var value in npcConfig) { if (value.NPCID == npcId && value.MapID != mapID) { SysNotifyMgr.Instance.ShowTip("Task_Transfer1"); return; } } var MonsterConfig = Config.Instance.Get<MonsterRefreshPointConfig>(npcId); if (MonsterConfig != null && MonsterConfig.MapId != mapID) { SysNotifyMgr.Instance.ShowTip("Task_Transfer1"); return; } } } } } private void OnClickDeliveryButton()//传送符 { mainModel.FlyShoseTaskID = Task_ID; @@ -293,6 +319,22 @@ } string str = taskmodel.allMissionDict[TaskID].InforList; var taskinfo = Config.Instance.Get<TASKINFOConfig>(str); if (mainModel.TaskId_Skill1.Contains(TaskID))//特殊任务 { int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品 string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, itemNumber); string Str_B = Language.Get("PassiveSkillTask2"); if (itemNumber >= mainModel.ItemNumber) { m_ContentText.text = Str_B; } else { m_ContentText.text = Str_A; } } else { if (taskinfo != null) { m_ContentText.text = taskinfo.show_writing; @@ -302,7 +344,7 @@ DebugEx.LogError("任务表格PyTaskInfo配置缺失"); return; } } bool isOPenTransferButton = HrefAnalysis.Inst.ContainsKey(taskinfo.show_writing, "flynpc"); if (isOPenTransferButton && !IsKaJiBool) { System/MainInterfacePanel/PlayerMainDate.cs
@@ -123,6 +123,7 @@ OneKeyList.Add(Listmap[i]); } NetworkState = (int)SDKUtility.Instance.NetworkType; GetPassiveSkillTask(); } //----------关于某些副本可以进行地图挂机 public List<int> OneKeyList = new List<int>(); @@ -130,6 +131,40 @@ //----------使用娲皇卷轴后的Buff表现 public static event Action EmperorBuffEvent; public bool IsEmperor = false; //---------关于任务需要的数据 public List<int> TaskId_Skill = new List<int>(); public List<int> TaskId_Skill1 = new List<int>(); public int ItemID = 0; public int UnitPrice = 0; public int ItemNumber = 0; private void GetPassiveSkillTask()//获取任务数据 { TaskId_Skill.Clear(); TaskId_Skill1.Clear(); var PassiveSkillTaskconfig = Config.Instance.Get<FuncConfigConfig>("PassiveSkillTask"); int[] TaskId_SkillInt = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical1); for (int i = 0; i < TaskId_SkillInt.Length; i++) { TaskId_Skill.Add(TaskId_SkillInt[i]); } int[] TaskId_SkillInt1 = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical2); for (int i = 0; i < TaskId_SkillInt1.Length; i++) { TaskId_Skill1.Add(TaskId_SkillInt1[i]); } int[] PassiveSkillTask = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical3); if (PassiveSkillTask.Length >= 3) { ItemID = PassiveSkillTask[0]; UnitPrice = PassiveSkillTask[1]; ItemNumber = PassiveSkillTask[2]; } } private void UseItemSuccessAct(int Index, int ItemID) { if (ItemID == 221) System/MainInterfacePanel/SideMission.cs
@@ -9,9 +9,11 @@ using TableConfig; using System.Collections.Generic; //任务面板的支线任务 namespace Snxxz.UI { namespace Snxxz.UI { public class SideMission:MonoBehaviour { public class SideMission : MonoBehaviour { [SerializeField] ScrollerController _TaskRamusList; //右侧面板 [SerializeField] Text _Text_TaskName;//任务名 @@ -25,6 +27,10 @@ PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } } PlayerMainDate m_MainModel; PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } } private List<RewardAnalysis.RewardInfo> rewardList = new List<RewardAnalysis.RewardInfo>(); private int TaskIdNow = 0; private void Awake() @@ -39,19 +45,102 @@ { TaskIdNow = 0; _TaskRamusList.OnRefreshCell += OnRefreshGridCell; playerPack.RefreshItemCountAct += RefreshItemCountAct; playerPack.ItemCntReduceAct += ItemCntReduceAct; OnCreateGridLineCell(_TaskRamusList); } private void OnDisable() { _TaskRamusList.OnRefreshCell -= OnRefreshGridCell; playerPack.RefreshItemCountAct -= RefreshItemCountAct; playerPack.ItemCntReduceAct -= ItemCntReduceAct; } private void ItemCntReduceAct(PackType arg1, int arg2, int arg3) { if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID) { foreach (var key in taskmodel.SideQuestsDic.Keys) { if (mainModel.TaskId_Skill1.Contains(key)) { _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见 } } } } private void RefreshItemCountAct(PackType arg1, int arg2, int arg3) { if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID) { foreach (var key in taskmodel.SideQuestsDic.Keys) { if (mainModel.TaskId_Skill1.Contains(key)) { _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见 } } } } private void ForwardButton() { if (mainModel.TaskId_Skill1.Contains(TaskIdNow)) { int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品 if (itemNumber >= mainModel.ItemNumber) { taskmodel.CompletionOfTask(TaskIdNow); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2); } else { int Gold = (int)UIHelper.GetMoneyCnt(1);//仙玉 int GoldPaper = (int)UIHelper.GetMoneyCnt(2);//绑玉 string strNull = string.Empty; int needNumber = (mainModel.ItemNumber - itemNumber) * mainModel.UnitPrice;//所需金额 if (GoldPaper >= needNumber) { strNull = string.Format(Language.Get("PassiveSkillTask3"), needNumber); } else { strNull = string.Format(Language.Get("PassiveSkillTask4"), needNumber, GoldPaper, needNumber- GoldPaper); } ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strNull, (bool isOk) => { if (isOk) { if (Gold + GoldPaper >= needNumber) { taskmodel.CompletionOfTask(TaskIdNow); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2); } else { if (VersionConfig.Get().isBanShu) { SysNotifyMgr.Instance.ShowTip("GoldErr"); return; } WindowCenter.Instance.Open<RechargeTipWin>(); } } }); } return; } if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3) { taskmodel.CompletionOfTask(TaskIdNow); if (mainModel.TaskId_Skill.Contains(TaskIdNow)) { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2); } } else { @@ -122,11 +211,30 @@ _Text_TaskName.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Name).show_writing;//任务名 _Text_TaskDescribe.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Desclist).show_writing;//任务描述 string strINfor = taskmodel.SideQuestsDic[taskID].InforList; string str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing; string str = string.Empty; if (mainModel.TaskId_Skill1.Contains(taskID)) { int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品 if (itemNumber >= mainModel.ItemNumber) { string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, mainModel.ItemNumber); str = Str_A; } else { string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, itemNumber); str = Str_A; } } else { str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing; } str = WordAnalysis.Color_Start_Regex.Replace(str, string.Empty); str = WordAnalysis.Color_End_Regex.Replace(str, string.Empty); _Text_TaskTarget.text = str;//任务目标 if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3) if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3 || mainModel.TaskId_Skill1.Contains(taskID))//能够进行立即完成的支线任务 { _Text_Forward.text = string.Format(Language.Get("FinishAtOnce_Z")) ; } System/MainInterfacePanel/TaskListTip.cs
@@ -33,6 +33,10 @@ TreasureModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>()); } } PlayerTaskDatas m_TaskModel; PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } } PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } } PlayerMainDate m_MainModel; PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } } List<int> RenzhuTaskIDList = new List<int>();//法宝任务数组ID List<int> ListSort = new List<int>();//用于排列顺序(未卡级) List<int> ListSort1 = new List<int>();//用于排序(卡级) @@ -104,12 +108,12 @@ PlayerTaskDatas.Event_TaskRefreshes += TaskRefreshes;//任务的刷新 PlayerTaskDatas.Event_TaskToDelete += OnTaskToDelete;//任务的删除 PlayerTaskDatas.Event_TaskInformation += TaskInformation;//任务字典信息 //PlayerTaskDatas.CardLevelChange += CardLevelChange;//任务卡级状态改变 PlayerTaskDatas.MainCardLevelChange += MainCardLevelChange;//卡级任务修改 model.collectingTreasureChangeEvent += OnCollectingTreasureChangeEvent; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; TreasureNewGotWin.CloseTreasureNewGotWinEvent += CloseTreasureNewGotWinEvent; playerPack.RefreshItemCountAct += RefreshItemCountAct; playerPack.ItemCntReduceAct += ItemCntReduceAct; OnCollectingTreasureChangeEvent(TreasureCategory.Human); TaskScheduling();//任务排序 1 TheTaskToGenerate();//任务生成 @@ -139,11 +143,55 @@ FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; TreasureNewGotWin.CloseTreasureNewGotWinEvent -= CloseTreasureNewGotWinEvent; PlayerTaskDatas.MainCardLevelChange -= MainCardLevelChange;//卡级任务修改 playerPack.RefreshItemCountAct -= RefreshItemCountAct; playerPack.ItemCntReduceAct -= ItemCntReduceAct; } private void ItemCntReduceAct(PackType arg1, int arg2, int arg3) { if (arg1 == PackType.rptItem && arg3== mainModel.ItemID) { foreach (var key in taskmodel.SideQuestsDic.Keys) { if (mainModel.TaskId_Skill1.Contains(key)) { TaskIdUpdate(key); } } } } private void RefreshItemCountAct(PackType arg1, int arg2, int arg3) { if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID) { foreach (var key in taskmodel.SideQuestsDic.Keys) { if (mainModel.TaskId_Skill1.Contains(key)) { TaskIdUpdate(key); } } } } private void TaskIdUpdate(int taskId) { int leng = Content.childCount; for (int i = 0; i < leng; i++) { GameObject childObj = Content.GetChild(i).gameObject; TaskType childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>(); if (childObj.activeSelf && childObjTaskType.TaskID == taskId) { childObj.GetComponent<FlyingShoesTask>().FlyingShoes_Task(taskId); } } } private void MainCardLevelChange(int _id) { TaskScheduling(); bool IsDefault = true; var State = taskmodel.GetTaskStatus(_id); @@ -348,7 +396,6 @@ { _list.Sort(Compare1);//卡级排序 } } int Compare(int x, int y)//默认排序(无卡级) { @@ -401,8 +448,6 @@ var _position = (_list.Count - type) * m_SizeHeight + (_list.Count - type - 1) * 2; _position -= 196; m_ScrollRect.verticalNormalizedPosition = Mathf.Clamp01(_position / ((Content as RectTransform).sizeDelta.y - 196)); // m_ScrollRect.verticalNormalizedPosition = Mathf.Clamp01(m_ScrollRect.verticalNormalizedPosition + ((Content as RectTransform).sizeDelta.y - 196)); //m_ScrollRect.verticalNormalizedPosition = ((float)1 - (float)(type + 1) / _list.Count); } } } System/Realm/RealmBossShow.cs
@@ -11,7 +11,12 @@ [SerializeField, Header("展示时间")] float m_DisplayTime = 15f; [SerializeField, Header("特效位置")] Vector3 m_EffectPosition = Vector3.zero; UI3DShowHero showHero = new UI3DShowHero(); GameObject clothesModel; Animator clothesAnimator; Transform showPoint; List<SFXController> closthesSFXList = new List<SFXController>(); static RealmBossShow m_Instance = null; public static RealmBossShow Instance @@ -134,10 +139,11 @@ } #endregion var _hero = showHero.Show(_job, _clothesId, _suitLevel, _weaponId, _wingsId, _secondaryId, m_HeroStage); showPoint = m_HeroStage; var _hero = ShowHero(_job, _clothesId, _suitLevel, _weaponId, _wingsId, _secondaryId); if (_hero != null) { showHero.SitDown(); SitDown(); LayerUtility.SetLayer(m_HeroStage.gameObject, LayerUtility.BossShow, true); } } @@ -185,12 +191,202 @@ showCamera.enabled = false; m_Effect.gameObject.SetActive(false); transform.localPosition = new Vector3(0, 4000, 5000); showHero.Dispose(); if (m_Effect != null) { SFXPlayUtility.Instance.Release(m_Effect); m_Effect = null; } for (int i = closthesSFXList.Count - 1; i >= 0; i--) { if (closthesSFXList[i] != null) { Destroy(closthesSFXList[i].gameObject); } } closthesSFXList.Clear(); if (clothesModel != null) { Destroy(clothesModel); clothesModel = null; clothesAnimator = null; } } GameObject ShowHero(int _job, int _clothes, int suitID, int _weaponId, int _wingsId, int _secondaryId) { PutOnClothes(_job, _clothes, suitID); return clothesModel; } public void SitDown() { if (clothesModel != null) { var animator = clothesModel.GetComponent<Animator>(); animator.Play(GAStaticDefine.State_SitDown); } } public void PutOnClothes(int _job, int itemID, int suitID) { var newClothes = 0; var config = Config.Instance.Get<JobSetupConfig>(_job); if (itemID == 0) { newClothes = config.BaseEquip[0]; } else { var item = Config.Instance.Get<ItemConfig>(itemID); newClothes = item == null ? newClothes = config.BaseEquip[0] : item.ChangeOrd; } var _prefab = InstanceResourcesLoader.LoadModelRes(newClothes); if (!_prefab) { newClothes = config.BaseEquip[0]; } LoadClothes(newClothes); LoadClothesEffect(_job, itemID, suitID); } private void LoadClothes(int resID) { var prefab = InstanceResourcesLoader.LoadModelRes(resID); if (clothesModel == null) { clothesModel = Instantiate(prefab, Constants.Special_Hide_Position, Quaternion.identity); } clothesModel.transform.SetParent(null); clothesModel.transform.localScale = Vector3.one; LayerUtility.SetLayer(clothesModel, LayerUtility.Player, false); var skinnedMeshRenderer = clothesModel.GetComponentInChildren<SkinnedMeshRenderer>(true); LayerUtility.SetLayer(skinnedMeshRenderer.gameObject, LayerUtility.Player, false); clothesModel.SetActive(true); clothesModel.transform.SetParentEx(showPoint, Vector3.zero, Quaternion.identity, Vector3.one); clothesAnimator = clothesModel.GetComponent<Animator>(); if (clothesAnimator == null) { DebugEx.LogErrorFormat("角色资源: {0} 没有动画控制器", resID); } // 动画状态机修改 if (clothesAnimator) { RuntimeAnimatorController _controller = AnimatorControllerLoader.Load(AnimatorControllerLoader.controllerUISuffix, resID); clothesAnimator.runtimeAnimatorController = _controller; clothesAnimator.enabled = true; } } public void LoadClothesEffect(int job,int clothedID, int suitLevel) { var _equipModel = ModelCenter.Instance.GetModel<PlayerPackModel>().GetSinglePackModel(PackType.rptEquip); if (_equipModel == null) { if (DTC0309_tagPlayerLoginInfo.equipSuitID > 0) { PutOnEffect(DTC0309_tagPlayerLoginInfo.equipSuitID); } return; } int _suitCount = 0; int _start = (int)RoleEquipType.retHat; int _end = (int)RoleEquipType.retShoes; ItemModel _itemModel = null; _itemModel = _equipModel.GetItemModelByIndex((int)RoleEquipType.retClothes); if (_itemModel == null) { return; } int _rank = _itemModel.chinItemModel.LV; for (int i = _start; i <= _end; ++i) { _itemModel = _equipModel.GetItemModelByIndex(i); if (_itemModel == null) { continue; } if (_itemModel.chinItemModel.SuiteiD <= 0) { continue; } if (i == (int)RoleEquipType.retClothes) { _rank = _itemModel.chinItemModel.LV; } var suitModel = ModelCenter.Instance.GetModel<PlayerSuitModel>(); if (suitModel.suitModelDict.ContainsKey(i)) { if (suitModel.suitModelDict[i].ContainsKey(1) || suitModel.suitModelDict[i].ContainsKey(2)) { if (_itemModel.chinItemModel.LV >= _rank) { _suitCount += 1; } } } } if (_suitCount == 5) { int _type = 1; int _suitEffectID = _type * 1000 + job * 100 + _rank; PutOnEffect(_suitEffectID); } } public void PutOnEffect(int id) { SuitEffectConfig _suitEffect = Config.Instance.Get<SuitEffectConfig>(id); // 上特效 if (_suitEffect != null) { Transform _parent = null; SFXController _sfx = null; for (int i = 0; _suitEffect.bindbones != null && i < _suitEffect.bindbones.Length; ++i) { if (string.IsNullOrEmpty(_suitEffect.bindbones[i]) || _suitEffect.effectIds[i] == 0) { continue; } _parent = clothesModel.transform.GetChildTransformDeeply(_suitEffect.bindbones[i]); if (_parent == null) { Debug.LogErrorFormat("套装: {0} 配置的骨骼节点: {1} 不存在", id, _suitEffect.bindbones[i]); continue; } _sfx = SFXPlayUtility.Instance.PlayBattleEffect(_suitEffect.effectIds[i], _parent); closthesSFXList.Add(_sfx); } } } } } System/Treasure/TreasureCyclicScroll.cs
@@ -122,6 +122,7 @@ { if (item.achievementGroup != datas[preIndex + i]) { item.gameObject.SetActive(true); item.Display(datas[preIndex + i]); } } UI/Common/UI3DShowHero.cs
@@ -50,7 +50,6 @@ { prefab = InstanceResourcesLoader.LoadModelRes(weaponId); pool = GameObjectPoolManager.Instance.RequestPool(prefab); ResetModelLayer(weaponModel); pool.Release(weaponModel); weaponModel = null; } @@ -59,7 +58,6 @@ { prefab = InstanceResourcesLoader.LoadModelRes(secondaryId); pool = GameObjectPoolManager.Instance.RequestPool(prefab); ResetModelLayer(secondaryModel); pool.Release(secondaryModel); secondaryModel.SetActive(true); secondaryModel = null; @@ -69,7 +67,6 @@ { prefab = InstanceResourcesLoader.LoadModelRes(wingsId); pool = GameObjectPoolManager.Instance.RequestPool(prefab); ResetModelLayer(wingsModel); pool.Release(wingsModel); wingsModel = null; wingsAnimator = null; @@ -79,7 +76,6 @@ { prefab = InstanceResourcesLoader.LoadModelRes(clothesId); pool = GameObjectPoolManager.Instance.RequestPool(prefab); ResetModelLayer(clothesModel); pool.Release(clothesModel); clothesModel = null; if (clothesAnimator) @@ -120,7 +116,6 @@ if (weaponModel) { ResetModelLayer(weaponModel); GameObject prefab = InstanceResourcesLoader.LoadModelRes(weaponId); GameObjectPoolManager.Instance.ReleaseGameObject(prefab, weaponModel); weaponModel = null; @@ -225,7 +220,6 @@ var prefab = InstanceResourcesLoader.LoadModelRes(clothesId); var pool = GameObjectPoolManager.Instance.RequestPool(prefab); ResetModelLayer(clothesModel); pool.Release(clothesModel); clothesModel = null; if (clothesAnimator != null) @@ -268,7 +262,6 @@ { prefab = InstanceResourcesLoader.LoadModelRes(oldWeapon); pool = GameObjectPoolManager.Instance.RequestPool(prefab); ResetModelLayer(weaponModel); pool.Release(weaponModel); weaponModel = null; } @@ -318,7 +311,6 @@ { prefab = InstanceResourcesLoader.LoadModelRes(oldSecondary); pool = GameObjectPoolManager.Instance.RequestPool(prefab); ResetModelLayer(secondaryModel); pool.Release(secondaryModel); secondaryModel = null; } @@ -333,13 +325,6 @@ } pool = GameObjectPoolManager.Instance.RequestPool(prefab); secondaryModel = pool.Request(); secondaryModel.layer = LayerUtility.Player; SkinnedMeshRenderer _renderer = secondaryModel.GetComponentInChildren<SkinnedMeshRenderer>(); if (_renderer) { _renderer.gameObject.layer = LayerUtility.Player; } var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.SecondaryBindBoneName[job - 1]); secondaryModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); @@ -372,7 +357,6 @@ { prefab = InstanceResourcesLoader.LoadModelRes(oldWings); pool = GameObjectPoolManager.Instance.RequestPool(prefab); ResetModelLayer(wingsModel); pool.Release(wingsModel); wingsModel = null; } @@ -538,19 +522,6 @@ SFXPlayUtility.Instance.Release(closthesSFXList[i]); } closthesSFXList.Clear(); } void ResetModelLayer(GameObject _go) { if (_go != null) { var skinMeshRender = _go.GetComponentInChildren<SkinnedMeshRenderer>(); if (skinMeshRender != null) { skinMeshRender.gameObject.layer = LayerUtility.Player; } LayerUtility.SetLayer(_go, LayerUtility.Player, false); } } }