Esempio n. 1
0
    public static void cleanShardAssets(UnityEngine.Object obj)
    {
        CLSharedAssets sharedAsset = null;
        CLRoleAvata    avata       = null;

        if (obj is GameObject)
        {
            sharedAsset = ((GameObject)obj).GetComponent <CLSharedAssets> ();
            avata       = ((GameObject)obj).GetComponent <CLRoleAvata> ();
            if (AssetDatabase.GetAssetPath(obj).Contains("/other/model/"))
            {
                ECLEditorUtl.cleanModleMaterials(AssetDatabase.GetAssetPath(obj));
            }
            UIFont font = ((GameObject)obj).GetComponent <UIFont> ();
            if (font != null)
            {
                string spName = font.spriteName;
                font.atlas      = null;
                font.material   = null;
                font.spriteName = spName;
            }
        }
        else if (obj is Material)
        {
            CLMaterialPool.cleanTexRef(ECLEditorUtl.getAssetName4Upgrade(obj), (Material)obj);
            sharedAsset = null;
        }
        else
        {
            sharedAsset = null;
        }
        bool isRefresh = false;

        if (avata != null)
        {
            avata.cleanMaterial();
            isRefresh = true;
        }
        if (sharedAsset != null)
        {
            sharedAsset.cleanRefAssets();
            isRefresh = true;
        }
        if (isRefresh && obj is GameObject)
        {
            //			AssetDatabase.Refresh ();
            //string path = AssetDatabase.GetAssetPath (obj);
            //EditorUtility.SetDirty (obj);
            //AssetDatabase.WriteImportSettingsIfDirty (path);
            //AssetDatabase.ImportAsset (path);
            PrefabUtility.SavePrefabAsset(obj as GameObject);
        }
    }
Esempio n. 2
0
    public static bool getMeshRef(CLSharedAssets sharedAsset, Transform tr)
    {
        bool ret  = false;
        bool ret1 = false;
        bool ret2 = false;
        bool ret3 = false;

        MeshFilter[] mfs  = tr.GetComponents <MeshFilter> ();
        Mesh         mesh = null;

        for (int i = 0; i < mfs.Length; i++)
        {
            mesh = (mfs [i]).sharedMesh;
            if (mesh != null)
            {
                Coolape.CLSharedAssets.CLMeshInfor clMesh = new Coolape.CLSharedAssets.CLMeshInfor();
                clMesh.meshFilter = mfs [i];
                ret1 = ECLEditorUtl.moveAsset4Upgrade(mfs [i].sharedMesh) || ret1 ? true : false;
                string modelName = ECLEditorUtl.getAssetName4Upgrade(mfs [i].sharedMesh);
                ECLEditorUtl.cleanModleMaterials(modelName);
                clMesh.modelName = modelName;
                clMesh.meshName  = mesh.name;
                sharedAsset.meshs.Add(clMesh);
            }
        }

        SkinnedMeshRenderer[] smrs = tr.GetComponents <SkinnedMeshRenderer> ();
        for (int i = 0; i < smrs.Length; i++)
        {
            mesh = (smrs [i]).sharedMesh;
            if (mesh != null)
            {
                Coolape.CLSharedAssets.CLMeshInfor clMesh = new Coolape.CLSharedAssets.CLMeshInfor();
                clMesh.skinnedMesh = smrs [i];
                ret2 = ECLEditorUtl.moveAsset4Upgrade(smrs [i].sharedMesh) || ret2 ? true : false;
                string modelName = ECLEditorUtl.getAssetName4Upgrade(smrs [i].sharedMesh);
                ECLEditorUtl.cleanModleMaterials(modelName);
                clMesh.modelName = modelName;
                clMesh.meshName  = mesh.name;
                sharedAsset.meshs.Add(clMesh);
            }
        }

        Animator[] anis = tr.GetComponents <Animator> ();
        for (int i = 0; i < anis.Length; i++)
        {
            if (anis [i].avatar == null)
            {
                continue;
            }
            Coolape.CLSharedAssets.CLMeshInfor clMesh = new Coolape.CLSharedAssets.CLMeshInfor();
            ret2 = ECLEditorUtl.moveAsset4Upgrade(anis [i].avatar) || ret2 ? true : false;
            string modelName = ECLEditorUtl.getAssetName4Upgrade(anis [i].avatar);
            clMesh.modelName = modelName;
            clMesh.animator  = anis [i];
            sharedAsset.meshs.Add(clMesh);
        }

        for (int i = 0; i < tr.childCount; i++)
        {
            ret3 = getMeshRef(sharedAsset, tr.GetChild(i)) || ret3 ? true : false;
        }

        return(ret1 || ret2 || ret3);
    }