Exemplo n.º 1
0
        public override void OnInspectorGUI()
        {
            if (_info == null)
            {
                _info = (CVRAssetInfo)target;
            }

            EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_HEADER_INFORMATION"), MessageType.Info);

            if (!string.IsNullOrEmpty(_info.guid))
            {
                EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_GUID_LABEL") + _info.guid, MessageType.Info);
                if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON")))
                {
                    bool detach = EditorUtility.DisplayDialog(
                        CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_TITLE"),
                        CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_BODY"),
                        CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_ACCEPT"),
                        CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_DETACH_BUTTON_DIALOG_DENY"));
                    if (detach)
                    {
                        DetachGuid();
                    }
                }
            }
            else
            {
                _newGuid = EditorGUILayout.TextField(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_ATTACH_LABEL"), _newGuid);
                EditorGUILayout.HelpBox(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_ATTACH_INFO"), MessageType.Warning);
                if (GUILayout.Button(CCKLocalizationProvider.GetLocalizedText("ABI_UI_ASSET_INFO_ATTACH_BUTTON")))
                {
                    ReattachGuid(_newGuid);
                }
            }
        }
Exemplo n.º 2
0
        public static void BuildAndUploadMapAsset(Scene scene, GameObject descriptor)
        {
            SetupNetworkUUIDs();

            EditorSceneManager.MarkSceneDirty(scene);

            EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());

            CVRAssetInfo info = descriptor.GetComponent <CVRAssetInfo>();

            if (string.IsNullOrEmpty(info.guid))
            {
                info.guid = Guid.NewGuid().ToString();
            }

            PrefabUtility.SaveAsPrefabAsset(descriptor, "Assets/ABI.CCK/Resources/Cache/_CVRWorld.prefab");

            AssetBundleBuild assetBundleBuild = new AssetBundleBuild();

            assetBundleBuild.assetNames      = new[] { scene.path };
            assetBundleBuild.assetBundleName = "bundle.cvrworld";

            BuildPipeline.BuildAssetBundles(Application.persistentDataPath, new[] { assetBundleBuild },
                                            BuildAssetBundleOptions.None, EditorUserBuildSettings.activeBuildTarget);

            AssetDatabase.Refresh();

            EditorPrefs.SetBool("m_ABI_isBuilding", true);
            EditorApplication.isPlaying = true;
        }
Exemplo n.º 3
0
        public static void BuildAndUploadSpawnable(GameObject s)
        {
            GameObject sCopy    = null;
            var        origInfo = s.GetComponent <CVRAssetInfo>();

            try
            {
                sCopy = GameObject.Instantiate(s);
                PrefabUtility.UnpackPrefabInstance(sCopy, PrefabUnpackMode.Completely, InteractionMode.UserAction);
                Debug.Log("[CCK:BuildUtility] To prevent problems, the prefab has been unpacked. Your game object is no longer linked to the prefab instance.");
            }
            catch
            {
                Debug.Log("[CCK:BuildUtility] Object is not a prefab. No need to unpack.");
            }

            CVRAssetInfo info = sCopy.GetComponent <CVRAssetInfo>();

            if (string.IsNullOrEmpty(info.guid))
            {
                info.guid     = Guid.NewGuid().ToString();
                origInfo.guid = info.guid;
                try
                {
                    PrefabUtility.ApplyPrefabInstance(s, InteractionMode.UserAction);
                }
                catch
                {
                    Debug.Log("[CCK:BuildUtility] Object is not a prefab. No need to Apply To Instance.");
                }
            }

            EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());

            EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());

            PrefabUtility.SaveAsPrefabAsset(sCopy, "Assets/ABI.CCK/Resources/Cache/_CVRSpawnable.prefab");
            GameObject.DestroyImmediate(sCopy);

            EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());

            EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());

            AssetBundleBuild assetBundleBuild = new AssetBundleBuild();

            assetBundleBuild.assetNames      = new[] { "Assets/ABI.CCK/Resources/Cache/_CVRSpawnable.prefab" };
            assetBundleBuild.assetBundleName = "bundle.cvrprop";

            BuildPipeline.BuildAssetBundles(Application.persistentDataPath, new[] { assetBundleBuild },
                                            BuildAssetBundleOptions.None, EditorUserBuildSettings.activeBuildTarget);

            AssetDatabase.Refresh();

            EditorPrefs.SetBool("m_ABI_isBuilding", true);
            EditorApplication.isPlaying = true;
        }