public MPrefabData(E_H_RESOURCELOAD eResource, string sPrefab, string parentstr, float fZ = 0.0f, string sAddCom = "", string sTitle = "") { eResourcesLoadPos = eResource; sPrefabName = sPrefab; parentString = parentstr; sTitleName = sTitle; sAddComponents = sAddCom; fZPos = fZ; vPosVec3 = default(Vector3); vScaleVec3 = default(Vector3); parentGame = null; }
public MPrefabData(E_H_RESOURCELOAD eResource, string sPrefab, GameObject parentgame, Vector3 vPosVec = default(Vector3), Vector3 vScaleVec = default(Vector3), string sAddCom = "", string sTitle = "") { eResourcesLoadPos = eResource; sPrefabName = sPrefab; parentGame = parentgame; vPosVec3 = vPosVec; vScaleVec3 = vScaleVec; sTitleName = sTitle; sAddComponents = sAddCom; fZPos = 0.0f; parentString = ""; }
/// <summary> /// 리소스 로드 합니다^^ /// </summary> /// <param name="sPrefabName"></param> /// <param name="eResourceLoadPos"></param> /// <returns></returns> List <GameObject> GetResourceList(string sPrefabName, E_H_RESOURCELOAD eResourceLoadPos) { List <GameObject> Resource = null; string sSceneName = GetSceneName(eResourceLoadPos.ToString()); foreach (MResourceList list in ResourceList) { if (list.name.Equals(sSceneName)) { Resource = list.resourceList; } } ResourceLoad(sSceneName, sPrefabName, Resource); return(Resource); }
/// <summary> /// 프리펩 삭제하는 함수, 인자가 있어서 인자에 씬 이름을 넣으면 그 씬만 청소해줍니다. /// </summary> /// <param name="sDestroyResourceSceneName"> 리소스를 초기화 할 씬 </param> /// <param name="sDestroyResourceSceneParams"> 리소스를 초기화 할 다른 씬들 </param> public void DestroyPrefabs(E_H_RESOURCELOAD eType, params E_H_RESOURCELOAD[] eTypeParams) { if (CreatePrefabsList == null) { return; } if (CreatePrefabsList.Count == 0) { Debug.Log("CreatePrefabsList.Count == 0 [DestroyPrefab/HPrefabMng.cs]"); return; } var enumerator = CreatePrefabsList.Values.GetEnumerator(); while (enumerator.MoveNext()) { GameObject obj = (GameObject)enumerator.Current; if (obj != null) { Destroy(obj); continue; } } string sResourceScene = GetSceneName(eType.ToString()); string[] sResourcesScene = new string[eTypeParams.Length]; for (int i = 0; i < ResourceList.Count; i++) { if (ResourceList[i].name.Equals(sResourceScene)) { for (int j = 0; j < ResourceList[i].resourceList.Count; j++) { ResourceList[i].resourceList.Remove(ResourceList[i].resourceList[j]); } ResourceList[i].resourceList.Clear(); } for (int j = 0; j < sResourcesScene.Length; j++) { if (ResourceList[i].name.Equals(sResourcesScene[j])) { for (int k = 0; k < ResourceList[i].resourceList.Count; k++) { ResourceList[i].resourceList.Remove(ResourceList[i].resourceList[k]); } ResourceList[i].resourceList.Clear(); } } } CreatePrefabsList.Clear(); System.GC.Collect(); Resources.UnloadUnusedAssets(); }
GameObject CreatePrefab(E_M_PREFAB_TYPE eType, E_H_RESOURCELOAD eResourceLoadPos, float fZPos = -1.0f, Vector3 PosVec = default(Vector3), Vector3 ScaleVec = default(Vector3), GameObject ParentGame = null, string sParentName = "", string sPrefabName = "", string sTitleName = "", string sAddComponent = "", int nDepth = 1) { GameObject CreatePrefabGame = null; GameObject tempParentGame = null; if (MAssetBundleMng.I.bAssetBundleExists) { sPrefabName = GetOnlyPrefabName(sPrefabName); } if (sParentName != "") { tempParentGame = GameObject.Find(sParentName); } if (ParentGame != null) { tempParentGame = ParentGame; } // 중복되는 오브젝트에 대한 처리 if (bOverLapGameObject(sPrefabName, sTitleName) && (eType != E_M_PREFAB_TYPE.E_OVERLAP)) { Debug.Log("sTitleName is " + sTitleName + "/sPrefabName is " + sPrefabName + "/OverLapGameObject return null [CreatePrefab/HPrefabMng.cs]"); return(null); } List <GameObject> Resource = GetResourceList(sPrefabName, eResourceLoadPos); if (Resource != null) { var enumerator = Resource.GetEnumerator(); while (enumerator.MoveNext()) { GameObject obj = (GameObject)enumerator.Current; if (obj.transform.name == sPrefabName) { CreatePrefabGame = Instantiate(obj) as GameObject; if (sAddComponent != "") { CreatePrefabGame.AddComponent(sAddComponent); } // 타이틀 이름 정했을 경우 if (sTitleName != "") { StringBuilder sb = new StringBuilder(); if (eType == E_M_PREFAB_TYPE.E_OVERLAP) { sb.Append(sTitleName).Append(CreatePrefabsList.Count.ToString()).Append("(Clone)"); } else { sb.Append(sTitleName).Append("(Clone)"); } CreatePrefabGame.transform.name = sb.ToString(); } else { // 타이틀 이름을 정하지 않고 프리펩 이름을 정했을 경우 if (sPrefabName != "") { StringBuilder sb = new StringBuilder(); if (eType == E_M_PREFAB_TYPE.E_OVERLAP) { sb.Append(sPrefabName).Append(CreatePrefabsList.Count.ToString()).Append("(Clone)"); } else { sb.Append(sPrefabName).Append("(Clone)"); } CreatePrefabGame.transform.name = sb.ToString(); } } if (tempParentGame != null) { CreatePrefabGame.transform.parent = tempParentGame.transform; } if (!PosVec.Equals(default(Vector3))) { CreatePrefabGame.transform.localPosition = PosVec; } else { CreatePrefabGame.transform.localPosition = new Vector3(0, 0, fZPos); } if (!ScaleVec.Equals(default(Vector3))) { CreatePrefabGame.transform.localScale = ScaleVec; } else { CreatePrefabGame.transform.localScale = Vector3.one; } // 팝업창에 대해서 현재 PopupOffset의 밑에 있는 오브젝트 수의 + 1 만큼 Depth를 지정 if (eType == E_M_PREFAB_TYPE.E_POPUP) { CreatePrefabGame.GetComponent <UIPanel>().depth = PopupOffset_Transform.GetChildCount() + nDepth; } // 리스트에 등록 CreatePrefabsList.Add(CreatePrefabGame.transform.name, CreatePrefabGame); return(CreatePrefabGame); } } //Debug.Log(" No Find PrefabName ->" + sPrefabName + " [CreatePrefab/HPrefabMng.cs]"); } else { Debug.Log(" NULL Resource [CreatePrefab/HPrefabMng.cs]"); } return(null); }
public GameObject CreatePopupPrefab(int depth, GameObject ParentGame, E_H_RESOURCELOAD eResourceLoadPos, string sPrefabName, float fZPos = -1.0f, string sTitleName = "", string sAddComponent = "") { return(CreatePrefab(E_M_PREFAB_TYPE.E_POPUP, eResourceLoadPos, fZPos, default(Vector3), default(Vector3), ParentGame, "", sPrefabName, sTitleName, sAddComponent, depth)); }
public GameObject CreatePopupPrefab(int depth, GameObject ParentGame, E_H_RESOURCELOAD eResourceLoadPos, string sPrefabName, Vector3 PosVec, Vector3 ScaleVec, string sTitleName = "", string sAddComponent = "") { return(CreatePrefab(E_M_PREFAB_TYPE.E_POPUP, eResourceLoadPos, -1.0f, PosVec, ScaleVec, ParentGame, "", sPrefabName, sTitleName, sAddComponent, depth)); }
public GameObject CreateOverlapPrefab(GameObject ParentGame, E_H_RESOURCELOAD eResourceLoadPos, string sPrefabName, Vector3 PosVec, Vector3 ScaleVec, string sTitleName = "", string sAddComponent = "") { return(CreatePrefab(E_M_PREFAB_TYPE.E_OVERLAP, eResourceLoadPos, -1.0f, PosVec, ScaleVec, ParentGame, "", sPrefabName, sTitleName, sAddComponent)); }
public GameObject CreateOverlapPrefab(GameObject ParentGame, E_H_RESOURCELOAD eResourceLoadPos, string sPrefabName, float fZPos = -1.0f, string sTitleName = "", string sAddComponent = "") { return(CreatePrefab(E_M_PREFAB_TYPE.E_OVERLAP, eResourceLoadPos, fZPos, default(Vector3), default(Vector3), ParentGame, "", sPrefabName, sTitleName, sAddComponent)); }
public GameObject CreatePrefab(string sParentName, E_H_RESOURCELOAD eResourceLoadPos, string sPrefabName, Vector3 PosVec, Vector3 ScaleVec, string sTitleName = "", string sAddComponent = "") { return(CreatePrefab(E_M_PREFAB_TYPE.E_NORMAL, eResourceLoadPos, -1.0f, PosVec, ScaleVec, null, sParentName, sPrefabName, sTitleName, sAddComponent)); }
public GameObject CreatePrefab(string sParentName, E_H_RESOURCELOAD eResourceLoadPos, string sPrefabName, float fZPos = -1.0f, string sTitleName = "", string sAddComponent = "") { return(CreatePrefab(E_M_PREFAB_TYPE.E_NORMAL, eResourceLoadPos, fZPos, default(Vector3), default(Vector3), null, sParentName, sPrefabName, sTitleName, sAddComponent)); }
public GameObject CreatePrefab(E_H_RESOURCELOAD eResourceLoadPos, string sPrefabName, Vector3 vPos, Vector3 vScale, string sTitleName = "", string sAddComponent = "") { return(CreatePrefab(E_M_PREFAB_TYPE.E_NORMAL, eResourceLoadPos, -1.0f, vPos, vScale, null, "", sPrefabName, sTitleName, sAddComponent)); }