private static bool UpLoadAudioAsyncRequest(ResourcePackageCallBackObj req) { ResNode curr = AllocResNode(req.resInstanceID); bool bigSize = curr.UpLoadClipTime >= (MaxUpLoad_Assets_AsyncRequestClip - 0.0001f); return(UpLoadAsyncRequest <AudioClip>(req, !bigSize)); }
public void LoadOtherTex() { foreach (SceneMaterialConfig r in ConfigDataList) { if (!r.SharedMaterial) { if (!bPreaLoaded) { currPreLoadedTexCount++; } continue; } foreach (SceneTextureConfigData rt in r.TextureConfigList) { ResNode nod = null; //主贴图是不会释放的,先看看是不是主贴图,如果是主贴图的话,看看是不是加载了,是的话,就跳过 bool isMainTex = rt.ShaderKeyWordName.Equals(MainTexKeyWorld); if (isMainTex) { continue; } //如果是永远不优化内存,也只会加载一次,后面就不加载了 OtherLoadedResTable.TryGetValue(rt, out nod); if (null != nod) { continue; } nod = AssetBundleManager.GetAssetsAsync(AssetType.Asset_Texture, rt, this, r); if (!ResNode.isNullOrEmpty(nod)) { OtherLoadedResTable.Add(rt, nod); //不优化内存的需要增加一下引用.避免多个引用删除 if (AlwaysUnOptimitzedMemory) { if (!UnOptimitzedMaterials.ContainsKey(r.SharedMaterial)) { UnOptimitzedMaterials.Add(r.SharedMaterial, 1); } else { UnOptimitzedMaterials[r.SharedMaterial]++; } } } else { if (!bPreaLoaded) { currPreLoadedTexCount++; } } } } }
public void InitDefaultNavList() { m_navItemList.Clear(); m_navIDList.Clear(); m_builtInNavMethodMap.Clear(); List <SchemeWebUrlNode> urlNodeList = SchemeWebUrl.Instance.SchemeWebUrlNodeList; for (int i = 0; i < urlNodeList.Count; i++) { SchemeWebUrlNode node = urlNodeList[i]; if (node == null) { continue; } GameObject go = ResNode.InstantiateRes(DefaultNavItem); if (go == null) { continue; } UButtonGroupItem btnItem = go.GetComponent <UButtonGroupItem>(); if (btnItem == null) { continue; } Text navLabel = go.GetComponentInChildren <Text>(); if (navLabel == null) { continue; } if (node.nClientFuncType > 0 && !m_builtInNavMethodMap.ContainsKey(node.nId)) { m_builtInNavMethodMap.Add(node.nId, node.nClientFuncType); } navLabel.text = node.szName; go.transform.SetParent(NavGroup.transform); go.gameObject.SetActive(true); btnItem.Group = NavGroup; btnItem.GroupIndex = i; btnItem.onSelectedChangedEx.RemoveAllListeners(); btnItem.onSelectedChangedEx.AddListener(OnNavButtonClicked); m_navIDList.Add(node.nId); m_navItemList.Add(btnItem); if (i == 0) { m_curNavID = node.nId; btnItem.Selected = true; } } }
public void OnShowKinMemberWnd(int nKinID) { // 清空KinMemberFrame int nCount = KinMemberListFrame.childCount; for (int i = nCount - 1; i >= 0; --i) { Transform childTrans = KinMemberListFrame.GetChild(i); if (childTrans) { var temp = childTrans.gameObject; ResNode.DestroyRes(ref temp); } } // 填充数据 List <cmd_legendcup_competition_kinmembernode> memberList = LogicDataCenter.legendCupDataManager.GetKinMemberInfo(nKinID); if (memberList == null) { return; } KinMemberTemplate.SetActive(true); cmd_legendcup_recv_regist_memberlistnode tempNode = new cmd_legendcup_recv_regist_memberlistnode(); m_kinMemberItems = new LegendCupRegistKinMemberItem[memberList.Count]; for (int i = 0; i < memberList.Count; ++i) { GameObject memberItemObj = ResNode.InstantiateRes(KinMemberTemplate); if (!memberItemObj) { return; } m_kinMemberItems[i] = memberItemObj.GetComponent <LegendCupRegistKinMemberItem>(); if (!m_kinMemberItems[i]) { return; } tempNode.uDBID = memberList[i].nUserID; tempNode.nPDBID = memberList[i].nPDBID; tempNode.nActorSex = memberList[i].nActorSex; tempNode.nActorLevel = memberList[i].nActorLevel; tempNode.szActorName = memberList[i].szActorName; tempNode.nType = memberList[i].nType; tempNode.nRankGrade = memberList[i].nRankGrade; tempNode.nRankScore = memberList[i].nRankScore; tempNode.nRankIconId = memberList[i].nRankIconId; tempNode.szGradeName = memberList[i].szGradeName; m_kinMemberItems[i].SetData(tempNode); memberItemObj.name = "MemberItem" + (i + 1); RectTransform rectTrans = memberItemObj.transform as RectTransform; rectTrans.SetParent(KinMemberListFrame, false); } KinMemberTemplate.SetActive(false); }
public void OnShowLegndCupPrizeWnd(long lLegendCupID) { cmd_legendcup_recv_cuplist_node cupBaseData = LogicDataCenter.legendCupDataManager.GetSingleLegendCupNode(lLegendCupID); if (cupBaseData.nLegendCupID == 0) { return; } TotalBonusCount.text = cupBaseData.nCompetitionBonus.ToString(); // 清空DetailPrizeFrame int nCount = DetailPrizeFrame.childCount; for (int j = nCount - 1; j >= 0; j--) { Transform childTrans = DetailPrizeFrame.GetChild(j); if (childTrans) { var temp = childTrans.gameObject; ResNode.DestroyRes(ref temp); } } SSchemeLegendCupConfig cupConfig = LegendCupConfig.Instance.GetCupConfig(cupBaseData.nCupConfigID); if (cupConfig == null) { return; } List <SSchemeLegendCupPrizeConfig> prizeConfigList = LegendCupConfig.Instance.GetCupPrizeConfig(cupConfig.nPrizeConfigID); if (prizeConfigList == null) { return; } m_DetailPrizeItems = new LegendCupDetailPrizeItem[prizeConfigList.Count]; for (int i = 0; i < prizeConfigList.Count; i++) { GameObject detailPrizeObj = ResNode.InstantiateRes(DetailPrizeTemplate); if (!detailPrizeObj) { return; } RectTransform rectTrans = detailPrizeObj.transform as RectTransform; rectTrans.SetParent(DetailPrizeFrame, false); m_DetailPrizeItems[i] = detailPrizeObj.GetComponent <LegendCupDetailPrizeItem>(); if (!m_DetailPrizeItems[i]) { return; } m_DetailPrizeItems[i].SetData(prizeConfigList[i], cupBaseData.nCompetitionBonus); } DetailPrizeTemplate.SetActive(false); }
/// <summary> /// 不能获取预制体 /// </summary> /// <param name="t"></param> /// <param name="conf"></param> /// <returns></returns> public static ResNode GetAssets(AssetType t, ResConfigData conf) { ResNode res = null; if (null == conf) { return(res); } switch (t) { case AssetType.Asset_Prefab: UnionResConfigData unionCof = conf as UnionResConfigData; if (null == unionCof) { Debug.LogWarning("预制体参数转换失败,请确认参数2是否是UnionResConfigData类型"); return(null); } res = GetPrefab(unionCof); break; case AssetType.Asset_FBX: res = GetFBXResource(conf); break; case AssetType.Asset_AnimationClip: res = GetAnimationClipResource(conf); break; case AssetType.Asset_AnimatorController: res = GetAnimatorControllerResource(conf); break; case AssetType.Asset_Audio: res = GetAudioResource(conf); break; case AssetType.Asset_Font: res = GetFont(conf.AssetBundleName, conf.AssetName); break; case AssetType.Asset_Material: res = GetMaterialResource(conf); break; case AssetType.Asset_Texture: res = GetTextureResource(conf); break; case AssetType.Asset_Sprite: res = GetSprite(conf.AssetBundleName, conf.AssetName); break; default: Debug.LogWarning(StringHelper.BuildString("无效的资源类型:", t)); break; } return(res); }
private void UnloadWebBrowser() { if (m_webBrowserResNode != null) { UISystem.Instance.ReleaseResNode(m_webBrowserResNode, true); m_webBrowserResNode = null; } }
/// <summary> /// 清除材质球实例 /// </summary> public void ClearMaterialInstance() { if (InstanceMaterial) { ResNode.DestroyRes(ref InstanceMaterial); InstanceMaterial = null; } }
public void AddPreviousNode(ResNode node) { if (node != null) { previous.Add(node); ResetAssetsBundleName(); } }
public void AddNextNode(ResNode node) { if (node != null) { nexts.Add(node); ResetAssetsBundleName(); } }
public void OnDestroy() { if (m_image != null) { var temp = m_image.gameObject; ResNode.DestroyRes(ref temp); } }
private static void AsyncLoadDependenicesCallBack(ResConfigData config, ResNode res, System.Object userData) { if (null != res && !res.IsValid()) { Debug.LogWarning(config.AssetName + "-预制体依赖资源加载失败,类型:" + res.assetType.ToString() + ",资源路径:" + config.AssetBundleName + "--" + config.AssetName); } }
void ClearContainer(RectTransform container) { for (int i = container.childCount - 1; i >= 0; --i) { var temp = container.GetChild(i).gameObject; ResNode.DestroyRes(ref temp); } }
/// <summary> /// 离开本控制器接管 /// </summary> public override void Leave() { if (m_camRecTrans) { var temp = m_camRecTrans.gameObject; ResNode.DestroyRes(ref temp); } }
private static ResNode GetAnimationClipPackgeAsync(ResConfigData config, System.Action <ResourcePackageCallBackObj> resourcePackageCallBack, System.Action <ResConfigData, ResNode, System.Object> UserCallBack, System.Object userDataObj) { ResNode res = null; BuildPacakgeAsync(ref res, m_AnimationClipResTable, config, resourcePackageCallBack, UserCallBack, userDataObj); return(res); }
// 搜索 static void SearchDependencies(ResNode root) { if (root == null) { return; } //Debug.Log("输入依赖目录 = "+root.assetsPath); var list = GetDependencies(root.assetsPath); if (list == null || list.Length <= 0) { return; } List <ResNode> newNode = new List <ResNode>(); foreach (var assetsPath in list) { if (ignoreConfig.IsMatch(assetsPath)) { continue; } if (root.assetsPath.Contains("Art/Prefab/UI") && assetsPath.Contains("Art/Prefab/UI")) { continue; } bool isNew = false; ResNode node = null; if (!resNodeDic.TryGetValue(assetsPath, out node)) { isNew = true; node = new ResNode(); node.assetsPath = assetsPath; node.ResetAssetsBundleName(); resNodeDic[assetsPath] = node; newNode.Add(node); } if (!isNew) { // 已有节点需要考虑环形依赖 node.AddPreviousNode(root); root.AddNextNode(node); } else { // 新发现的节点 node.AddPreviousNode(root); root.AddNextNode(node); } } // 递归搜索新节点 foreach (var node in newNode) { SearchDependencies(node); } }
public void ResetMemory() { bOptimitzedMenory = true; currFadeMatTable = null; if (OtherLoadedResTable.Count <= 0 || AlwaysUnOptimitzedMemory) { return; } foreach (SceneMaterialConfig r in ConfigDataList) { if (!r.SharedMaterial) { continue; } if (UnOptimitzedMaterials.ContainsKey(r.SharedMaterial)) { int refCount = --UnOptimitzedMaterials[r.SharedMaterial]; if (refCount <= 0) { foreach (SceneTextureConfigData rt in r.TextureConfigList) { if (!rt.ShaderKeyWordName.Equals(MainTexKeyWorld)) { Material orginalInstanceMat = null; Orginal_AlphaInstanceTable.TryGetValue(r.SharedMaterial, out orginalInstanceMat); if (rt.ShaderKeyWordVariantName.Count != 0) { foreach (string var in rt.ShaderKeyWordVariantName) { if (orginalInstanceMat) { orginalInstanceMat.DisableKeyword(var); } r.SharedMaterial.DisableKeyword(var); } } if (orginalInstanceMat) { orginalInstanceMat.SetTexture(rt.ShaderKeyWordName, null); } r.SharedMaterial.SetTexture(rt.ShaderKeyWordName, null); } } ResetEmissonTexture(r.SharedMaterial); ResetSurfaceDefineTexture(r.SharedMaterial); UnOptimitzedMaterials.Remove(r.SharedMaterial); } } } foreach (ResNode res in OtherLoadedResTable.Values) { ResNode temp = res; AssetBundleManager.DeleteAssetsAsync(ref temp, this, false); } OtherLoadedResTable.Clear(); }
private void CreateSubItem(SChatMessageObjectInfo info, float width, ref float curOffsetX, ref float curOffsetY, List <LineObjCache> curLineObject) { if (width < 0f || curLineObject == null) { return; } ResNode itemPrefab = LogicDataCenter.chatMessageManager.GetChatItemPrefabByObjType(info.type); if (itemPrefab == null) { return; } GameObject itemObj = itemPrefab.InstanceMainRes(); if (itemObj == null) { return; } IChatItem subItem = itemObj.GetComponent <IChatItem>(); if (subItem == null) { itemPrefab.DestroyInstanceRes(ref itemObj); return; } subItem.SetResNode(itemPrefab); currChatBoxItem.Add(subItem); itemObj.transform.SetParent(this.transform, false); if (subItem.SetItemData(info) == false) { return; } for (int i = 0; i < 100; ++i) { IChatItem nextItem; subItem.SplitByWidth(width, curOffsetX, out subItem, out nextItem); if (subItem != null) { curOffsetX += subItem.GetItemWidth(); AddLineObject(subItem, curLineObject); } if (nextItem == null) { break; } AlignLineObject(ref curOffsetX, ref curOffsetY, curLineObject); subItem = nextItem; currChatBoxItem.Add(subItem); } }
// 复制物件 public virtual ILoudspeakerItem Clone() { GameObject newObj = ResNode.InstantiateRes(m_obj.gameObject); LoudspeakerItemText newItem = newObj.GetComponent <LoudspeakerItemText>(); newItem.SetItemData(m_itemData); return(newItem); }
public void removeAllChild() { // 删除现有子对象 for (int i = this.transform.childCount - 1; i >= 0; --i) { var temp = this.transform.GetChild(i).gameObject; ResNode.DestroyRes(ref temp); } }
public static void API_UnLoadAllLevel() { foreach (SceneResInfoManager re in LoadedScene_ResTable.Values) { ResNode.DestroyRes(ref re.SceneRoot); } LoadedScene_ResTable.Clear(); }
public void Start() { if (null == renderCam) { renderCam = this.transform.GetComponentInChildren <Camera>(); } if (null == renderCanvas) { renderCanvas = this.transform.FindChild("BloodCanvas").GetComponent <RectTransform>(); } if (null == m_RenderTexture) { m_RenderTexture = new RenderTexture(bloodRenderTextureWidth, bloodRenderTextureHeight, 16); m_RenderTexture.filterMode = FilterMode.Point; m_RenderTexture.Create(); if (renderCam != null) { renderCam.targetTexture = m_RenderTexture; } } if (null == bossBloodParent) { bossBloodParent = UISystem.Instance.GetWndLayerTrans(WndLayerDef.WND_LAYER_FIXED); } foreach (BloodStyleInfo info in m_BloodStyleList) { if (info.bloodType == BloodStyleType.MAX) { continue; } string path = "UI/Prefabs/Blood/BloodStyle/Blood_" + info.bloodType.ToString(); ResNode node = AssetBundleManager.GetAssets(AssetType.Asset_Prefab, path); if (null != node) { info.bloodRes = node; } } actorBloodVisible = ASpeedGame.Data.GameSettingConfig.GameSettingConfig.Instance.GetGameSettingBoolValue(ASpeedGame.Data.GameSettingConfig.GameSettingIndex.ShowSelfBlood); numInfoVisible = ASpeedGame.Data.GameSettingConfig.GameSettingConfig.Instance.GetGameSettingBoolValue(ASpeedGame.Data.GameSettingConfig.GameSettingIndex.ShowBloodNum); EntityFactory.SetEntityNumPropHandler(ResponseEntityNumPropEvent); TargetFrame.OnSelectedTarget += OnSelectTarget; TargetFrame.OnDisSelectedTarget += OnUnSelectTarget; SoldierCamera.SwitchLookAtSoliderEvent += SwitchBossBloodTarget; Initialize.OnDeviceStateChage += Refresh; Initialize.onApplicationFocusChangeEvent.AddListener(ForceRefresh); InitCache(); }
public static void DeleteAssetsAsync(ref ResNode conf, System.Action <ResConfigData, ResNode, System.Object> callBack, bool Immediate) { if (null == conf || conf.assetType == AssetType.Asset_NotUse) { return; } //if (!conf.ResObj) //{ // return; //} switch (conf.assetType) { case AssetType.Asset_Prefab: DeletePrefabAsync(ref conf, callBack, Immediate); return; case AssetType.Asset_FBX: DeleteFBXResourceAsync(ref conf, callBack, Immediate); return; case AssetType.Asset_AnimationClip: DeleteAnimationClipResourceAsync(ref conf, callBack, Immediate); return; case AssetType.Asset_AnimatorController: DeleteAnimatorControllerResourceAsync(ref conf, callBack, Immediate); return; case AssetType.Asset_Audio: DeleteAudioResourceAsync(ref conf, callBack, Immediate); return; case AssetType.Asset_Font: Debug.LogWarning("字体是通用资源,不能通过deleteassetAsync删除"); return; case AssetType.Asset_Material: DeleteMaterialResourceAsync(ref conf, callBack, Immediate); return; case AssetType.Asset_Texture: DeleteTextureResourceAsync(ref conf, callBack, Immediate); return; case AssetType.Asset_Sprite: DeleteSpriteResourceAsync(ref conf, callBack, Immediate); return; case AssetType.Asset_CommonAssets: return; } Debug.LogWarning("不支持资源类型的删除:" + conf.assetType.ToString()); }
public void Awake() { isOnGameRuning = true; m_WindowHwnd = GameLogicAPI.getMainWindHwnd(); if (!Application.isEditor) { GameLogicAPI.SetWindowText(Initialize.m_WindowHwnd, "泰坦-大地之子,勇往直前"); } InitDoTween(); GameLogicAPI.OpenLog(); if (AssetBundleManager.isVaild) { LoadingWaitngResNode = AssetBundleManager.GetAssets(AssetType.Asset_Prefab, "fa32d80346317d445bf6bdd4f1b4c5da", true); if (!ResNode.isNullOrEmpty(LoadingWaitngResNode)) { LoadingWaitngResNode.InstanceMainRes(); } } DontDestroyOnLoad(gameObject); Type[] types = new Type[] { typeof(Trace), }; CreateModulesSync(types); if (Time.timeScale < 0.01) { Time.timeScale = 1f; } mainCam = Camera.main; Instance = this; myTransform = this.transform; SoliderTarget = myTransform.FindChild("SoldierTarget").gameObject; Hero_Camera = Initialize.mainCam.gameObject; TargetFrame = myTransform.FindChild("TargetFrame").gameObject; Second_Camera = myTransform.FindChild("Second_Camera").gameObject; SecondTarget = Second_Camera.transform.FindChild("SecondTarget").gameObject; CamInitPos = Hero_Camera.transform.position; CamInitQua = Hero_Camera.transform.rotation; SetState(InitializeState.Init); SceneManager.RegisterSceneLoadFinishEvent(SceneLoadFinish); SceneManager.RegisterSceneLoadStartEvent(SceneLoadStart); SceneResInfoManager.RegisterActiveSceneChangedEvent(ActiveSceneChanged); UISystem.OnResolutionChanged += DoMouseLockInModeType; //将显示层配置文档初始化提前避免启用多线程时配置文档未初始化 //ViewConfigManager.Init(); }
private void UpdateServerList(List <gamelogic_district_info> groupList) { int nCount = ServerList.transform.childCount; for (int i = nCount - 1; i >= 0; --i) { Transform childTrans = ServerList.transform.GetChild(i); if (childTrans) { GameObject go = childTrans.gameObject; // 销毁obj ResNode.DestroyRes(ref go); } } for (int i = 0; i < groupList.Count; i++) { GameObject serverGo = ResNode.InstantiateRes(DefaultServerItem); if (serverGo != null) { serverGo.transform.SetParent(ServerList.transform, false); serverGo.GetComponent <UButtonGroupItem>().Group = ServerList; serverGo.SetActive(true); Text btnLabel = serverGo.GetComponentInChildren <Text>(); if (btnLabel) { btnLabel.text = groupList[i].szName; } //正常 if (groupList[i].nState < 2) { Transform icon_Green = serverGo.transform.FindChild("Icon_Green"); if (icon_Green) { icon_Green.gameObject.SetActive(true); } } else//爆满 { Transform icon_Red = serverGo.transform.FindChild("Icon_Red"); if (icon_Red) { icon_Red.gameObject.SetActive(true); } } DistrictInfo districtInfo = serverGo.GetComponent <DistrictInfo>(); if (districtInfo != null) { districtInfo.SetData(i, groupList[i].nGroup, groupList[i].nDistrict, groupList[i].nServer); } } } }
private void DeleteFloatingAssets() { if (!ResNode.isNullOrEmpty(WingAssets)) { WingAssets.DestroyInstanceRes(ref wingGO); AssetBundleManager.DeleteAssets(ref WingAssets, false); wingGO = null; wingAnimator = null; } }
/// <summary> /// 设置游戏对象 /// </summary> /// <param name="gameObject">游戏对象</param> public void SetGameObject(GameObject gameObject) { if (m_gameObject) { Debug.LogError("EntityView Error,gameobject is not null!" + m_gameObject.name + ",isValid:" + m_isValid + ",chidCout:" + m_gameObject.transform.childCount); ResNode.DestroyRes(ref m_gameObject); } m_gameObject = gameObject; }
/// <summary> /// Fix the instantiated object (in some cases object have wrong position, rotation and scale). /// </summary> /// <param name="source">Source.</param> /// <param name="instance">Instance.</param> static public void FixInstantiated(ResNode source, GameObject instance) { var rectTransform = instance.transform as RectTransform; rectTransform.localPosition = source.GetResPosition(); rectTransform.localRotation = source.GetResRotation(); rectTransform.localScale = source.GetResScale(); rectTransform.anchoredPosition = source.GetResAnchoredPosition(); rectTransform.sizeDelta = source.GetResSizeDelta(); }
public void Awake() { bodyobj = gameObject; //以后应该用下面的异步加载时的方法 Animator a = GetComponent <Animator>(); if (a != null && a.runtimeAnimatorController == null) { ResNode.DestroyRes(ref a); } }
public static void API_UnLoadLevel(string sceneName) { SceneResInfoManager mr = null; if (LoadedScene_ResTable.TryGetValue(sceneName, out mr)) { ResNode.DestroyRes(ref mr.SceneRoot); LoadedScene_ResTable.Remove(sceneName); } }