From 11346d49d9288f767bc5f4b24f4d20953b8e86bb Mon Sep 17 00:00:00 2001 From: hthroweriii Date: Thu, 9 Mar 2017 16:43:13 -0800 Subject: [PATCH] Improved browser navigation. Browser Preview now supports sub directories. --- Assets/AssetBundles.meta | 9 + Assets/AssetBundles/AssetBundles | Bin 0 -> 934 bytes Assets/AssetBundles/AssetBundles.manifest | 7 + .../AssetBundles/AssetBundles.manifest.meta | 8 + Assets/AssetBundles/AssetBundles.meta | 8 + Assets/AssetBundles/sample.slo | Bin 0 -> 5301 bytes Assets/AssetBundles/sample.slo.manifest | 35 +++ Assets/AssetBundles/sample.slo.manifest.meta | 8 + Assets/AssetBundles/sample.slo.meta | 8 + .../Converters/pb_ObjectContainerConverter.cs | 5 +- .../GILES/Code/Classes/pb_ResourceManager.cs | 44 +++- .../GILES/Code/Scripts/GUI/pb_DirectoryMap.cs | 94 ++++++++ .../Code/Scripts/GUI/pb_DirectoryMap.cs.meta | 12 + .../Code/Scripts/GUI/pb_PrefabBrowser.cs | 127 ++++++++++- .../pb_PrefabBrowserItemAssetBundleButton.cs | 52 +++++ ...PrefabBrowserItemAssetBundleButton.cs.meta | 12 + .../Scripts/GUI/pb_PrefabBrowserItemButton.cs | 123 ++++------- .../pb_PrefabBrowserItemFolderIconButton.cs | 52 +++++ ..._PrefabBrowserItemFolderIconButton.cs.meta | 12 + .../pb_PrefabBrowserItemGameObjectsButton.cs | 205 ++++++++++++++++++ ...PrefabBrowserItemGameObjectsButton.cs.meta | 12 + Assets/GILES/Prefab/Level Editor.prefab | Bin 132956 -> 200965 bytes Assets/GILES/Scenes/Level Editor.unity | Bin 98848 -> 227528 bytes Assets/GILES/Settings/pb_Config.cs | 23 +- Assets/GILES/Shader/Grid Line.shader | 4 +- Assets/Resources/Defaults.meta | 9 + .../DefaultAssetBundleThumbnail.prefab | 96 ++++++++ .../DefaultAssetBundleThumbnail.prefab.meta | 8 + .../Defaults/DefaultFolderThumbnail.prefab | 108 +++++++++ .../DefaultFolderThumbnail.prefab.meta | 8 + ProjectSettings/ProjectVersion.txt | 3 +- ProjectSettings/UnityAdsSettings.asset | 11 - ProjectSettings/UnityConnectSettings.asset | 15 ++ 33 files changed, 996 insertions(+), 122 deletions(-) create mode 100644 Assets/AssetBundles.meta create mode 100644 Assets/AssetBundles/AssetBundles create mode 100644 Assets/AssetBundles/AssetBundles.manifest create mode 100644 Assets/AssetBundles/AssetBundles.manifest.meta create mode 100644 Assets/AssetBundles/AssetBundles.meta create mode 100644 Assets/AssetBundles/sample.slo create mode 100644 Assets/AssetBundles/sample.slo.manifest create mode 100644 Assets/AssetBundles/sample.slo.manifest.meta create mode 100644 Assets/AssetBundles/sample.slo.meta create mode 100644 Assets/GILES/Code/Scripts/GUI/pb_DirectoryMap.cs create mode 100644 Assets/GILES/Code/Scripts/GUI/pb_DirectoryMap.cs.meta create mode 100644 Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemAssetBundleButton.cs create mode 100644 Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemAssetBundleButton.cs.meta create mode 100644 Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemFolderIconButton.cs create mode 100644 Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemFolderIconButton.cs.meta create mode 100644 Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemGameObjectsButton.cs create mode 100644 Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemGameObjectsButton.cs.meta create mode 100644 Assets/Resources/Defaults.meta create mode 100644 Assets/Resources/Defaults/DefaultAssetBundleThumbnail.prefab create mode 100644 Assets/Resources/Defaults/DefaultAssetBundleThumbnail.prefab.meta create mode 100644 Assets/Resources/Defaults/DefaultFolderThumbnail.prefab create mode 100644 Assets/Resources/Defaults/DefaultFolderThumbnail.prefab.meta delete mode 100644 ProjectSettings/UnityAdsSettings.asset diff --git a/Assets/AssetBundles.meta b/Assets/AssetBundles.meta new file mode 100644 index 0000000..627573a --- /dev/null +++ b/Assets/AssetBundles.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8389b9b6261ab42e0853c5d4c971b93f +folderAsset: yes +timeCreated: 1489106103 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AssetBundles/AssetBundles b/Assets/AssetBundles/AssetBundles new file mode 100644 index 0000000000000000000000000000000000000000..a03ea2c6a7b3150947de9ddcca99f71e315ef60b GIT binary patch literal 934 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 + var obj = o.GetValue("value").ToObject(objectType, serializer); return ((pb_ObjectWrapper)obj).GetValue(); } diff --git a/Assets/GILES/Code/Classes/pb_ResourceManager.cs b/Assets/GILES/Code/Classes/pb_ResourceManager.cs index 3d80eb6..f38daef 100644 --- a/Assets/GILES/Code/Classes/pb_ResourceManager.cs +++ b/Assets/GILES/Code/Classes/pb_ResourceManager.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using System.Linq; +using System.IO; namespace GILES { @@ -14,6 +15,9 @@ public class pb_ResourceManager : pb_ScriptableObjectSingleton lookup = new Dictionary(); + ///A layout of all directories and sub directories + List directoryMaps = new List(); + /** * Load all assets listed in pb_Config.Resource_Folder_Paths and populate a lookup table, then * unload. @@ -26,23 +30,23 @@ protected override void OnEnable() { GameObject[] prefabs = Resources.LoadAll(resourceFolder).Select(x => x is GameObject ? (GameObject)x : null).Where(y => y != null).ToArray(); -#if ASSET_LOADER_DEBUG + #if ASSET_LOADER_DEBUG System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.AppendLine("Loaded Resources: "); -#endif + #endif // Populate a dictionary to use as a lookup, then unload whatever isn't used for(int i = 0; i < prefabs.Length; i++) { -#if ASSET_LOADER_DEBUG + #if ASSET_LOADER_DEBUG sb.AppendLine(string.Format("{0,-50} : {1}", prefabs[i].name, prefabs[i].GetComponent().metadata.fileId) ); -#endif + #endif lookup.Add(prefabs[i].GetComponent().metadata.fileId, prefabs[i]); } -#if ASSET_LOADER_DEBUG + #if ASSET_LOADER_DEBUG Debug.Log(sb.ToString()); -#endif + #endif Resources.UnloadUnusedAssets(); } @@ -75,7 +79,7 @@ public static GameObject LoadPrefabWithMetadata(pb_MetaData metadata) switch(metadata.assetType) { - case AssetType.Resource: + case AssetType.Resource: { if(instance.lookup.ContainsKey(metadata.fileId)) { @@ -88,12 +92,12 @@ public static GameObject LoadPrefabWithMetadata(pb_MetaData metadata) } } - case AssetType.Bundle: + case AssetType.Bundle: { return pb_AssetBundles.LoadAsset(metadata.assetBundlePath); } - default: + default: { Debug.LogError("File not found from metadata: " + metadata); return null; @@ -108,6 +112,7 @@ public static IEnumerable LoadAll() where T : UnityEngine.Object { List assets = new List(); + foreach(string path in pb_Config.Resource_Folder_Paths) { assets.AddRange( Resources.LoadAll(path) ); @@ -119,11 +124,32 @@ public static IEnumerable LoadAll() where T : UnityEngine.Object { AssetBundle bundle = pb_AssetBundles.LoadAssetBundleWithName(bundleName); assets.AddRange( bundle.LoadAllAssets() ); + Debug.Log("found bundle: " + assets.Count); } catch {} } return assets; } + + /** + * Load a specific asset of type T and return. Searches all directories listed in for first appearance of asset. + */ + public static T Load(string name) where T : UnityEngine.Object + { + T asset = null; + + foreach(string path in pb_Config.Resource_Folder_Paths) + { + asset = Resources.Load (path + "/" + name); + if (asset != null) { + return asset; + } + } + + return null; + } + + } } diff --git a/Assets/GILES/Code/Scripts/GUI/pb_DirectoryMap.cs b/Assets/GILES/Code/Scripts/GUI/pb_DirectoryMap.cs new file mode 100644 index 0000000..166701d --- /dev/null +++ b/Assets/GILES/Code/Scripts/GUI/pb_DirectoryMap.cs @@ -0,0 +1,94 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.IO; +using System.Text.RegularExpressions; + +public class pb_DirectoryMap { + public string name; + public string path; + public List directories; + public List files; + + // Use this for initialization + public pb_DirectoryMap(string Name, string Path){ + name = Name; + path = Path;// Should be in the form PathA/PathB/PathC/Name + map(Path); + } + + public List getSubDirectoryNames(){ + List names = new List (); + foreach (pb_DirectoryMap dir in directories) { + names.Add(dir.name); + } + return names; + } + + public string getParentDirectory(){ + Regex r = new Regex (".*\\/"); + Match m = r.Match(path); + if (m.Success) { + string parDirectory = m.Value; + return parDirectory.Substring (0, parDirectory.Length - 1); + } + return ""; + } + + public string getRoot(){ + Regex r = new Regex(".*?\\/"); + Match m = r.Match(path); + return m.Value; + } + + public string getPathNoRoot(){ + string root = getRoot (); + if (root != "") { + return path.Replace (root, ""); + } + return ""; + } + public List getFileNames(){ + return files; + } + + public List getFilesMatch (string pattern){ + Regex r = new Regex (pattern); + List matches = new List (); + foreach (string file in files) { + if (r.IsMatch (file)) { + matches.Add (file); + } + } + return matches; + } + + public void map (string path) { + directories = new List(); + files = new List(); + DirectoryInfo info = new DirectoryInfo (Application.dataPath + "/Resources/" + path); + FileInfo[] fileInfo = info.GetFiles (); + foreach (FileInfo fInfo in fileInfo) { + // Decipher between files and folders + if (isFolder (fInfo.Name)) { + string folderName = fInfo.Name.Replace (".meta", ""); + directories.Add (new pb_DirectoryMap (folderName, path + '/' + folderName)); + } else { + files.Add (fInfo.Name); + } + } + } + + + bool isFolder(string fName){ + int sIndex = fName.LastIndexOf (".meta"); + if(sIndex == -1){ + return false; + } + if ((fName.Substring (0, sIndex).IndexOf ('.')) != -1) { + return false; + } + return true; + } + +} diff --git a/Assets/GILES/Code/Scripts/GUI/pb_DirectoryMap.cs.meta b/Assets/GILES/Code/Scripts/GUI/pb_DirectoryMap.cs.meta new file mode 100644 index 0000000..e9cca2a --- /dev/null +++ b/Assets/GILES/Code/Scripts/GUI/pb_DirectoryMap.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f73a6e6da3f264b89af968ac338d71cc +timeCreated: 1489102841 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowser.cs b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowser.cs index 7c0b85d..3c883e0 100644 --- a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowser.cs +++ b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowser.cs @@ -9,21 +9,132 @@ namespace GILES.Interface { public class pb_PrefabBrowser : MonoBehaviour { - List prefabs; + List prefabs = new List (); void Start() { - prefabs = pb_ResourceManager.LoadAll().ToList(); + openFolder (""); + //prefabs = pb_ResourceManager.LoadAll().ToList(); + } + private string cleanPath(string p){ + p = p.Replace("//", "/"); + if(p.IndexOf('/') == 0){ + p = p.Substring(1); + } + if (p == "/") { + return ""; + } + if (p.EndsWith ("/")) { + p = p.Substring (0, p.Length - 1); + } + return p; + } + + private void createHomeIcons(){ + foreach (string folder in pb_Config.Resource_Folder_Paths) { + createFolderButton ("", folder); + } + foreach (string bundle in pb_Config.AssetBundle_Names) { + createAssetBundleButton (bundle); + } + } + private void createAssetBundleButton(string bundleName){ + GameObject icon = transform.gameObject.AddChild(); + pb_PrefabBrowserItemAssetBundlenButton button = icon.AddComponent(); + button.asset = Resources.Load (pb_Config.Default_Folder_Path + "/" + pb_Config.Default_AssetBundle_Thumbnail); + if (button.asset == null) { + button.asset = new GameObject (); + } + button.asset.name = bundleName; + button.bundleName = bundleName; + button.browser = this; + button.Initialize(); + } + + private void createFolderButton(string path, string dir, string dirName = ""){ + GameObject icon = transform.gameObject.AddChild(); + pb_PrefabBrowserItemFolderIconButton button = icon.AddComponent(); + button.asset = Resources.Load (pb_Config.Default_Folder_Path + "/" + pb_Config.Default_Folder_Thumbnail); + if (button.asset == null) { + button.asset = new GameObject (); + } + button.asset.name = (dirName != "") ? dirName : dir; + button.path = path + '/' + dir; + button.path = cleanPath (button.path); + button.browser = this; + button.Initialize(); + } - foreach(GameObject go in prefabs) + private void LoadFileToPrefab(string fileName, string fPath, string root){ + GameObject filePrefab; + if (root == "") { + filePrefab = pb_ResourceManager.Load (fileName.Replace (".prefab", "")); + } else { + filePrefab = pb_ResourceManager.Load (fPath + '/' + fileName.Replace (".prefab", "")); + } + if (filePrefab != null) { + prefabs.Add (filePrefab); + } else { + } + } + + private void CreateFileButton(GameObject go){ + GameObject icon = transform.gameObject.AddChild(); + pb_PrefabBrowserItemGameObjectsButton button = icon.AddComponent(); + + button.asset = go; + button.Initialize(); + } + private void clearBrowser(){ + foreach (Transform child in transform) { + GameObject.Destroy(child.gameObject); + } + Resources.UnloadUnusedAssets(); + } + public void openAssetBundle(string bundleName){ + clearBrowser (); + createFolderButton("","", "../"); + List assets = new List (); + AssetBundle bundle = pb_AssetBundles.LoadAssetBundleWithName (bundleName); + assets.AddRange (bundle.LoadAllAssets ()); + foreach (GameObject go in assets){ + Debug.Log ("loading asset: " + go); + CreateFileButton (go); + } + } + + public void openFolder(string path){ + clearBrowser (); + pb_DirectoryMap dMap = new pb_DirectoryMap (path, path); + prefabs = new List (); + List fileNames = dMap.getFilesMatch("\\.prefab"); + + //If root, display only resource folders + if (path == "") { + createHomeIcons (); + } else //Display Folder { - GameObject icon = transform.gameObject.AddChild(); - - pb_PrefabBrowserItemButton button = icon.AddComponent(); - button.asset = go; - button.Initialize(); + + //Add Back Button + createFolderButton(dMap.getParentDirectory(),"", "../"); + + //Create Directories + foreach (string dir in dMap.getSubDirectoryNames()) { + createFolderButton (path, dir); + } + + //Load Files + foreach (string file in fileNames) { + LoadFileToPrefab (file, dMap.getPathNoRoot (), dMap.getRoot ()); + } + //Create File Button + foreach (GameObject go in prefabs) { + CreateFileButton (go); + } } } } + + } \ No newline at end of file diff --git a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemAssetBundleButton.cs b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemAssetBundleButton.cs new file mode 100644 index 0000000..97463c8 --- /dev/null +++ b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemAssetBundleButton.cs @@ -0,0 +1,52 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using GILES; +using System.Collections; +using System.Collections.Generic; + +namespace GILES.Interface +{ + + public class pb_PrefabBrowserItemAssetBundlenButton : pb_PrefabBrowserItemButton + { + public pb_PrefabBrowser browser; + public string bundleName; + + protected override void OnClick(){ + if (browser) { + browser.openAssetBundle (bundleName); + DestroyInstance (); + } + } + + public override void Initialize(){ + base.Initialize (); + if (previewComponent != null) { + GameObject go = previewComponent.gameObject; + GameObject child = go.AddChild (); + Text text = child.AddComponent (); + text.font = pb_GUIUtility.DefaultFont (); + text.alignment = TextAnchor.LowerCenter; + text.text = asset.name; + } + } + + public override void OnPointerEnter(PointerEventData eventData) + { + base.OnPointerEnter (eventData); + Renderer renderer = instance.GetComponent (); + renderer.enabled = false; + } + + public override void OnPointerExit(PointerEventData eventData) + { + Renderer renderer = instance.GetComponent (); + renderer.enabled = true; + base.OnPointerExit (eventData); + } + + + } +} + diff --git a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemAssetBundleButton.cs.meta b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemAssetBundleButton.cs.meta new file mode 100644 index 0000000..5d7f67e --- /dev/null +++ b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemAssetBundleButton.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9e8c4d7c8772b4bd98fa31d67245b1cf +timeCreated: 1489104047 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemButton.cs b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemButton.cs index 2ebe41d..28dfe68 100644 --- a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemButton.cs +++ b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemButton.cs @@ -10,26 +10,23 @@ namespace GILES.Interface /** * Button implementation that shows a preview of an inspector prefab object. */ - public class pb_PrefabBrowserItemButton : Button + public abstract class pb_PrefabBrowserItemButton : Button { - const int PREVIEW_LAYER = 31; - const int PreviewWidth = 256; - const int PreviewHeight = 256; + protected static int PREVIEW_LAYER = 31; + protected static int PreviewWidth = 256; + protected static int PreviewHeight = 256; public string prefabId = ""; - private static readonly Quaternion CAMERA_VIEW_ANGLE = Quaternion.Euler(30f, -30f, 0f); + protected static readonly Quaternion CAMERA_VIEW_ANGLE = Quaternion.Euler(30f, -30f, 0f); public GameObject asset; - - public float cameraRotateSpeed = 50f; - private Quaternion cameraRotation = CAMERA_VIEW_ANGLE; - private RawImage previewComponent; - private bool doSpin = false; - private Texture2D previewImage; - private GameObject instance; - private Light[] sceneLights; - private bool[] lightWasEnabled = null; - - private static Camera _previewCamera = null; - private static Camera previewCamera + protected Quaternion cameraRotation = CAMERA_VIEW_ANGLE; + protected RawImage previewComponent; + protected Texture2D previewImage; + protected GameObject instance; + protected Light[] sceneLights; + protected bool[] lightWasEnabled = null; + + protected static Camera _previewCamera = null; + protected static Camera previewCamera { get { @@ -45,25 +42,23 @@ private static Camera previewCamera return _previewCamera; } } - - private static RenderTexture _renderTexture; - private static RenderTexture renderTexture + protected static RenderTexture _renderTexture; + protected static RenderTexture renderTexture { get { if(_renderTexture == null) { _renderTexture = new RenderTexture(PreviewWidth, PreviewHeight, 0, RenderTextureFormat.Default, RenderTextureReadWrite.Default); - _renderTexture.generateMips = false; + _renderTexture.autoGenerateMips = false; _renderTexture.useMipMap = false; } return _renderTexture; } } - - private static Light _previewLightA = null; - private static Light previewLightA + protected static Light _previewLightA = null; + protected static Light previewLightA { get { @@ -81,8 +76,8 @@ private static Light previewLightA } } - private static Light _previewLightB = null; - private static Light previewLightB + protected static Light _previewLightB = null; + protected static Light previewLightB { get { @@ -102,14 +97,14 @@ private static Light previewLightB /** * When this button is instantiated, send event to base and then add the onClick listener. - */ + **/ protected override void Start() { base.Start(); - onClick.AddListener( Instantiate ); + onClick.AddListener( OnClick ); } - public void Initialize() + public virtual void Initialize() { prefabId = asset.DemandComponent().GetFileId(); @@ -143,46 +138,10 @@ public void Initialize() } } - void Update() - { - if(doSpin) - { - previewCamera.transform.RotateAround(Vector3.zero, Vector3.up, cameraRotateSpeed * Time.deltaTime); - RenderPreview(); - } - } - - /** + /* * Instantiate the inspected object in the scene. */ - void Instantiate() - { - Camera cam = Camera.main; - GameObject go; - - Vector3 org = pb_Selection.activeGameObject == null ? Vector3.zero : pb_Selection.activeGameObject.transform.position; - Vector3 nrm = pb_Selection.activeGameObject == null ? Vector3.up : pb_Selection.activeGameObject.transform.localRotation * Vector3.up; - - Plane plane = new Plane(nrm, org); - - Ray ray = new Ray(cam.transform.position, cam.transform.forward); - - float hit = 0f; - - if( plane.Raycast(ray, out hit)) - go = (GameObject) pb_Scene.Instantiate(asset, pb_Snap.Snap(ray.GetPoint(hit), .25f), Quaternion.identity); - else - go = (GameObject) pb_Scene.Instantiate(asset, pb_Snap.Snap(ray.GetPoint(10f), .25f), Quaternion.identity); - - Undo.RegisterStates(new List() { new UndoSelection(), new UndoInstantiate(go) }, "Create new object"); - - pb_Selection.SetSelection(go); - - bool curSelection = pb_Selection.activeGameObject != null; - - if(!curSelection) - pb_SceneCamera.Focus(go); - } + protected abstract void OnClick (); public override void OnPointerEnter(PointerEventData eventData) { @@ -193,8 +152,6 @@ public override void OnPointerEnter(PointerEventData eventData) return; previewComponent.texture = renderTexture; - - doSpin = true; } public override void OnPointerExit(PointerEventData eventData) @@ -202,9 +159,6 @@ public override void OnPointerExit(PointerEventData eventData) if(previewComponent == null) return; - doSpin = false; - - cameraRotation = previewCamera.transform.localRotation; RenderPreview(); @@ -215,13 +169,10 @@ public override void OnPointerExit(PointerEventData eventData) RenderTexture.active = null; - renderTexture.DiscardContents(); - renderTexture.Release(); - - pb_ObjectUtility.Destroy(instance); + DestroyInstance (); } - bool SetupAndRenderPreview(Texture2D texture) + protected virtual bool SetupAndRenderPreview(Texture2D texture) { if(!SetupPreviewRender()) return false; @@ -233,15 +184,12 @@ bool SetupAndRenderPreview(Texture2D texture) RenderTexture.active = null; - renderTexture.DiscardContents(); - renderTexture.Release(); - - pb_ObjectUtility.Destroy(instance); + DestroyInstance (); return true; } - bool SetupPreviewRender() + protected virtual bool SetupPreviewRender() { if(asset.GetComponent() == null) return false; @@ -253,7 +201,7 @@ bool SetupPreviewRender() Renderer renderer = instance.GetComponent(); instance.transform.position = -renderer.bounds.center; - + instance.layer = PREVIEW_LAYER; previewCamera.transform.localRotation = cameraRotation; @@ -266,7 +214,7 @@ bool SetupPreviewRender() return true; } - void RenderPreview() + protected virtual void RenderPreview() { for(int i = 0; i < sceneLights.Length; i++) { @@ -293,5 +241,12 @@ void RenderPreview() sceneLights[i].enabled = lightWasEnabled[i]; } } + + public virtual void DestroyInstance(){ + renderTexture.DiscardContents(); + renderTexture.Release(); + pb_ObjectUtility.Destroy(instance); + } + } } diff --git a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemFolderIconButton.cs b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemFolderIconButton.cs new file mode 100644 index 0000000..4f96405 --- /dev/null +++ b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemFolderIconButton.cs @@ -0,0 +1,52 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using GILES; +using System.Collections; +using System.Collections.Generic; + +namespace GILES.Interface +{ + + public class pb_PrefabBrowserItemFolderIconButton : pb_PrefabBrowserItemButton + { + public pb_PrefabBrowser browser; + public string path; + + protected override void OnClick(){ + if (browser) { + browser.openFolder (path); + DestroyInstance (); + } + } + + public override void Initialize(){ + base.Initialize (); + if (previewComponent != null) { + GameObject go = previewComponent.gameObject; + GameObject child = go.AddChild (); + Text text = child.AddComponent (); + text.font = pb_GUIUtility.DefaultFont (); + text.alignment = TextAnchor.LowerCenter; + text.text = asset.name; + } + } + + public override void OnPointerEnter(PointerEventData eventData) + { + base.OnPointerEnter (eventData); + Renderer renderer = instance.GetComponent (); + renderer.enabled = false; + } + + public override void OnPointerExit(PointerEventData eventData) + { + Renderer renderer = instance.GetComponent (); + renderer.enabled = true; + base.OnPointerExit (eventData); + } + + + } +} + diff --git a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemFolderIconButton.cs.meta b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemFolderIconButton.cs.meta new file mode 100644 index 0000000..54fe5c6 --- /dev/null +++ b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemFolderIconButton.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 932768175fd1b42f08b1702e592825d5 +timeCreated: 1489102804 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemGameObjectsButton.cs b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemGameObjectsButton.cs new file mode 100644 index 0000000..fa88274 --- /dev/null +++ b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemGameObjectsButton.cs @@ -0,0 +1,205 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using GILES; +using System.Collections; +using System.Collections.Generic; + +namespace GILES.Interface +{ + /** + * Button implementation that shows a preview of an inspector prefab object. + */ + public class pb_PrefabBrowserItemGameObjectsButton : pb_PrefabBrowserItemButton + { + public float cameraRotateSpeed = 50f; + private bool doSpin = false; + + + public override void Initialize() + { + prefabId = asset.DemandComponent().GetFileId(); + + previewImage = new Texture2D(PreviewWidth, PreviewHeight); + + if(!SetupAndRenderPreview(previewImage)) + { + pb_ObjectUtility.Destroy(previewImage); + previewImage = null; + } + + gameObject.AddComponent(); + gameObject.AddComponent(); + Image image = gameObject.DemandComponent(); + image.color = pb_GUIUtility.ITEM_BACKGROUND_COLOR; + image.sprite = null; + + GameObject description = gameObject.AddChild(); + + if(previewImage != null) + { + previewComponent = description.AddComponent(); + previewComponent.texture = previewImage; + /*if (displayNameEnabled) { + GameObject child = description.AddChild (); + Text text = child.AddComponent (); + text.font = pb_GUIUtility.DefaultFont (); + text.alignment = TextAnchor.LowerCenter; + text.text = asset.name; + }*/ + } + else + { + Text text = description.AddComponent(); + text.font = pb_GUIUtility.DefaultFont(); + text.alignment = TextAnchor.MiddleCenter; + text.text = asset.name; + } + } + + void Update() + { + if(doSpin && previewImage) + { + previewCamera.transform.RotateAround(Vector3.zero, Vector3.up, cameraRotateSpeed * Time.deltaTime); + RenderPreview(); + } + } + + /** + * Instantiate the inspected object in the scene. + */ + protected override void OnClick() + { + Camera cam = Camera.main; + GameObject go; + + Vector3 org = pb_Selection.activeGameObject == null ? Vector3.zero : pb_Selection.activeGameObject.transform.position; + Vector3 nrm = pb_Selection.activeGameObject == null ? Vector3.up : pb_Selection.activeGameObject.transform.localRotation * Vector3.up; + + Plane plane = new Plane(nrm, org); + + Ray ray = new Ray(cam.transform.position, cam.transform.forward); + + float hit = 0f; + + if( plane.Raycast(ray, out hit)) + go = (GameObject) pb_Scene.Instantiate(asset, pb_Snap.Snap(ray.GetPoint(hit), .25f), Quaternion.identity); + else + go = (GameObject) pb_Scene.Instantiate(asset, pb_Snap.Snap(ray.GetPoint(10f), .25f), Quaternion.identity); + + Undo.RegisterStates(new List() { new UndoSelection(), new UndoInstantiate(go) }, "Create new object"); + + pb_Selection.SetSelection(go); + + bool curSelection = pb_Selection.activeGameObject != null; + + if(!curSelection) + pb_SceneCamera.Focus(go); + } + + public override void OnPointerEnter(PointerEventData eventData) + { + base.OnPointerEnter (eventData); + + doSpin = true; + } + + public override void OnPointerExit(PointerEventData eventData) + { + if(previewComponent == null) + return; + + doSpin = false; + + cameraRotation = previewCamera.transform.localRotation; + + RenderPreview(); + + previewImage.ReadPixels(new Rect(0,0,renderTexture.width,renderTexture.height), 0, 0); + previewImage.Apply(); + + previewComponent.texture = previewImage; + + RenderTexture.active = null; + + renderTexture.DiscardContents(); + renderTexture.Release(); + + pb_ObjectUtility.Destroy(instance); + } + + protected override bool SetupAndRenderPreview(Texture2D texture) + { + if(!SetupPreviewRender()) + return false; + + RenderPreview(); + + texture.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0); + texture.Apply(); + + RenderTexture.active = null; + + renderTexture.DiscardContents(); + renderTexture.Release(); + + pb_ObjectUtility.Destroy(instance); + + return true; + } + + protected override bool SetupPreviewRender() + { + if(asset.GetComponent() == null) return false; + + sceneLights = Object.FindObjectsOfType(); + lightWasEnabled = new bool[sceneLights.Length]; + + instance = (GameObject) GameObject.Instantiate(asset, Vector3.zero, Quaternion.identity); + + Renderer renderer = instance.GetComponent(); + + instance.transform.position = -renderer.bounds.center; + + instance.layer = PREVIEW_LAYER; + + previewCamera.transform.localRotation = cameraRotation; + + /// can return false if no renderer is available, but since we already check that there's not need to here + pb_AssetPreview.PrepareCamera(previewCamera, instance, PreviewWidth, PreviewHeight); + + previewCamera.targetTexture = renderTexture; + + return true; + } + + protected override void RenderPreview() + { + for(int i = 0; i < sceneLights.Length; i++) + { + lightWasEnabled[i] = sceneLights[i].enabled; + sceneLights[i].enabled = false; + } + + RenderTexture.active = renderTexture; + + instance.SetActive(true); + + previewLightA.gameObject.SetActive(true); + previewLightB.gameObject.SetActive(true); + + previewCamera.Render(); + + instance.SetActive(false); + + previewLightA.gameObject.SetActive(false); + previewLightB.gameObject.SetActive(false); + + for(int i = 0; i < sceneLights.Length; i++) + { + sceneLights[i].enabled = lightWasEnabled[i]; + } + } + } +} diff --git a/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemGameObjectsButton.cs.meta b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemGameObjectsButton.cs.meta new file mode 100644 index 0000000..fb722a8 --- /dev/null +++ b/Assets/GILES/Code/Scripts/GUI/pb_PrefabBrowserItemGameObjectsButton.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aa6f2ee8b54704653b353d2bbacafb61 +timeCreated: 1489102890 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GILES/Prefab/Level Editor.prefab b/Assets/GILES/Prefab/Level Editor.prefab index 20ec1adb864fd99acf460e1ac5309dd19dc66050..4797f78632a9fe3d6fc2c5d7700e3511644a6449 100644 GIT binary patch literal 200965 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 H{^|b%!BY!f literal 132956 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 literal 98848 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 diff --git a/Assets/GILES/Settings/pb_Config.cs b/Assets/GILES/Settings/pb_Config.cs index 67b4735..2ce541e 100644 --- a/Assets/GILES/Settings/pb_Config.cs +++ b/Assets/GILES/Settings/pb_Config.cs @@ -12,6 +12,21 @@ public static class pb_Config { public const int ASSET_MENU_ORDER = 800; + /** + * Folder that contains default assets + */ + public static readonly string Default_Folder_Path = "Defaults"; + + /** + * Name of default thumbnail for a folder + */ + public static readonly string Default_Folder_Thumbnail = "DefaultFolderThumbnail"; + + /** + * Name of default thumbnail for a folder + */ + public static readonly string Default_AssetBundle_Thumbnail = "DefaultAssetBundleThumbnail"; + /** * When saving and loading levels using the Resources folder, the following subfolders will * searched for assets. @@ -28,7 +43,7 @@ public static class pb_Config */ public static readonly string[] AssetBundle_Names = new string[] { - "TestAssets" + "sample.slo" }; /** @@ -119,9 +134,9 @@ public static class pb_Config typeof(UnityEngine.PointEffector2D), typeof(UnityEngine.PlatformEffector2D), typeof(UnityEngine.SurfaceEffector2D), - typeof(UnityEngine.NavMeshAgent), - typeof(UnityEngine.NavMeshObstacle), - typeof(UnityEngine.OffMeshLink), + typeof(UnityEngine.AI.NavMeshAgent), + typeof(UnityEngine.AI.NavMeshObstacle), + typeof(UnityEngine.AI.OffMeshLink), typeof(UnityEngine.AudioListener), typeof(UnityEngine.AudioSource), typeof(UnityEngine.AudioReverbZone), diff --git a/Assets/GILES/Shader/Grid Line.shader b/Assets/GILES/Shader/Grid Line.shader index a9a9793..91a78e0 100644 --- a/Assets/GILES/Shader/Grid Line.shader +++ b/Assets/GILES/Shader/Grid Line.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' + Shader "Custom/Grid Line" { Properties @@ -52,7 +54,7 @@ Shader "Custom/Grid Line" o.pos = mul(UNITY_MATRIX_MVP, v.vertex); o.uv = v.uv; - o.world = mul(_Object2World, v.vertex); + o.world = mul(unity_ObjectToWorld, v.vertex); o.normal = UnityObjectToWorldNormal(v.normal); return o; diff --git a/Assets/Resources/Defaults.meta b/Assets/Resources/Defaults.meta new file mode 100644 index 0000000..b49a8c3 --- /dev/null +++ b/Assets/Resources/Defaults.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ee441fca0967f47c9bfe06bf229bd5f7 +folderAsset: yes +timeCreated: 1489105149 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Defaults/DefaultAssetBundleThumbnail.prefab b/Assets/Resources/Defaults/DefaultAssetBundleThumbnail.prefab new file mode 100644 index 0000000..583fd5b --- /dev/null +++ b/Assets/Resources/Defaults/DefaultAssetBundleThumbnail.prefab @@ -0,0 +1,96 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1754540693040778} + m_IsPrefabParent: 1 +--- !u!1 &1754540693040778 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4148983837126740} + - component: {fileID: 212867368042342728} + - component: {fileID: 114371983951788404} + m_Layer: 0 + m_Name: slo/test.slo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4148983837126740 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1754540693040778} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 429.50497, y: 181.69, z: 0.19000006} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &114371983951788404 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1754540693040778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a61987817fbe4b45a87582bcb2be501, type: 3} + m_Name: + m_EditorClassIdentifier: + metadata: + _fileId: MetaData_NoGUIDPresent + _assetBundlePath: + assetBundleName: + filePath: + _assetType: 2 + tags: [] +--- !u!212 &212867368042342728 +SpriteRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1754540693040778} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: d1a3a51e425a49549bb3490713757f5f, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 diff --git a/Assets/Resources/Defaults/DefaultAssetBundleThumbnail.prefab.meta b/Assets/Resources/Defaults/DefaultAssetBundleThumbnail.prefab.meta new file mode 100644 index 0000000..ee66a33 --- /dev/null +++ b/Assets/Resources/Defaults/DefaultAssetBundleThumbnail.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ef44a595553f4b44b8c8bd10169b485 +timeCreated: 1489005365 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Defaults/DefaultFolderThumbnail.prefab b/Assets/Resources/Defaults/DefaultFolderThumbnail.prefab new file mode 100644 index 0000000..fd14410 --- /dev/null +++ b/Assets/Resources/Defaults/DefaultFolderThumbnail.prefab @@ -0,0 +1,108 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1863694276854174} + m_IsPrefabParent: 1 +--- !u!1 &1863694276854174 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224888660719366702} + - component: {fileID: 212092464449289286} + - component: {fileID: 114960068090989892} + - component: {fileID: 222498297340330126} + m_Layer: 0 + m_Name: DefaultFolderThumbnail + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114960068090989892 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1863694276854174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a61987817fbe4b45a87582bcb2be501, type: 3} + m_Name: + m_EditorClassIdentifier: + metadata: + _fileId: MetaData_NoGUIDPresent + _assetBundlePath: + assetBundleName: + filePath: + _assetType: 2 + tags: [] +--- !u!212 &212092464449289286 +SpriteRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1863694276854174} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: d857070a814b8de4998cff7737d4ddf2, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 +--- !u!222 &222498297340330126 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1863694276854174} +--- !u!224 &224888660719366702 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1863694276854174} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1, y: 1} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/Resources/Defaults/DefaultFolderThumbnail.prefab.meta b/Assets/Resources/Defaults/DefaultFolderThumbnail.prefab.meta new file mode 100644 index 0000000..e44953a --- /dev/null +++ b/Assets/Resources/Defaults/DefaultFolderThumbnail.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 79dbc94ea7eee470fb7d0d5b982dc16b +timeCreated: 1488851435 +licenseType: Free +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 558807b..1049cc7 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1 @@ -m_EditorVersion: 5.3.5f1 -m_StandardAssetsVersion: 0 +m_EditorVersion: 5.5.2f1 diff --git a/ProjectSettings/UnityAdsSettings.asset b/ProjectSettings/UnityAdsSettings.asset deleted file mode 100644 index 224050c..0000000 --- a/ProjectSettings/UnityAdsSettings.asset +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!292 &1 -UnityAdsSettings: - m_ObjectHideFlags: 0 - m_Enabled: 0 - m_InitializeOnStartup: 1 - m_TestMode: 0 - m_EnabledPlatforms: 4294967295 - m_IosGameId: - m_AndroidGameId: diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset index 9b7a578..2943e44 100644 --- a/ProjectSettings/UnityConnectSettings.asset +++ b/ProjectSettings/UnityConnectSettings.asset @@ -3,6 +3,14 @@ --- !u!310 &1 UnityConnectSettings: m_ObjectHideFlags: 0 + m_Enabled: 0 + m_TestMode: 0 + m_TestEventUrl: + m_TestConfigUrl: + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes + m_Enabled: 0 + m_CaptureEditorExceptions: 1 UnityPurchasingSettings: m_Enabled: 0 m_TestMode: 0 @@ -12,3 +20,10 @@ UnityConnectSettings: m_TestMode: 0 m_TestEventUrl: m_TestConfigUrl: + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_EnabledPlatforms: 4294967295 + m_IosGameId: + m_AndroidGameId: