Example #1
0
    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;
    }
Example #2
0
    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 = "";
    }
Example #3
0
    /// <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);
    }
Example #4
0
    /// <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();
    }
Example #5
0
    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);
    }
Example #6
0
 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));
 }
Example #7
0
 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));
 }
Example #8
0
 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));
 }
Example #9
0
 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));
 }
Example #10
0
 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));
 }
Example #11
0
 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));
 }
Example #12
0
 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));
 }