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 0000000..a03ea2c Binary files /dev/null and b/Assets/AssetBundles/AssetBundles differ diff --git a/Assets/AssetBundles/AssetBundles.manifest b/Assets/AssetBundles/AssetBundles.manifest new file mode 100644 index 0000000..2d35944 --- /dev/null +++ b/Assets/AssetBundles/AssetBundles.manifest @@ -0,0 +1,7 @@ +ManifestFileVersion: 0 +CRC: 1256175042 +AssetBundleManifest: + AssetBundleInfos: + Info_0: + Name: sample.slo + Dependencies: {} diff --git a/Assets/AssetBundles/AssetBundles.manifest.meta b/Assets/AssetBundles/AssetBundles.manifest.meta new file mode 100644 index 0000000..599c5d9 --- /dev/null +++ b/Assets/AssetBundles/AssetBundles.manifest.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64aa84f3e38415b498ff18648d364ccf +timeCreated: 1485469137 +licenseType: Free +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AssetBundles/AssetBundles.meta b/Assets/AssetBundles/AssetBundles.meta new file mode 100644 index 0000000..7148efc --- /dev/null +++ b/Assets/AssetBundles/AssetBundles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ec739523d1f8de47b2d4008f1ce532d +timeCreated: 1485469137 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AssetBundles/sample.slo b/Assets/AssetBundles/sample.slo new file mode 100644 index 0000000..e762a33 Binary files /dev/null and b/Assets/AssetBundles/sample.slo differ diff --git a/Assets/AssetBundles/sample.slo.manifest b/Assets/AssetBundles/sample.slo.manifest new file mode 100644 index 0000000..cb5566b --- /dev/null +++ b/Assets/AssetBundles/sample.slo.manifest @@ -0,0 +1,35 @@ +ManifestFileVersion: 0 +CRC: 4130073870 +Hashes: + AssetFileHash: + serializedVersion: 2 + Hash: 3eaee4e1f9fde8a2422524ac58d4630c + TypeTreeHash: + serializedVersion: 2 + Hash: 1d14c69d2b628eecb355a842fd260673 +HashAppended: 0 +ClassTypes: +- Class: 1 + Script: {instanceID: 0} +- Class: 4 + Script: {instanceID: 0} +- Class: 21 + Script: {instanceID: 0} +- Class: 23 + Script: {instanceID: 0} +- Class: 33 + Script: {instanceID: 0} +- Class: 43 + Script: {instanceID: 0} +- Class: 48 + Script: {instanceID: 0} +- Class: 114 + Script: {fileID: 11500000, guid: 5a61987817fbe4b45a87582bcb2be501, type: 3} +- Class: 115 + Script: {instanceID: 0} +Assets: +- Assets/Resources/Level Editor Prefabs/Cube.prefab +- Assets/Resources/Level Editor Prefabs/Hole.prefab +- Assets/Resources/Level Editor Prefabs/Flat.prefab +- Assets/Resources/Level Editor Prefabs/Column.prefab +Dependencies: [] diff --git a/Assets/AssetBundles/sample.slo.manifest.meta b/Assets/AssetBundles/sample.slo.manifest.meta new file mode 100644 index 0000000..cd624dd --- /dev/null +++ b/Assets/AssetBundles/sample.slo.manifest.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 010fc3d4c4aed4e4c8b9cdc1bd1772a1 +timeCreated: 1485468068 +licenseType: Free +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AssetBundles/sample.slo.meta b/Assets/AssetBundles/sample.slo.meta new file mode 100644 index 0000000..1e613cd --- /dev/null +++ b/Assets/AssetBundles/sample.slo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35a992e2fe2595740a49885a6f87619c +timeCreated: 1485468068 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GILES/Code/Classes/Serialization/Converters/pb_ObjectContainerConverter.cs b/Assets/GILES/Code/Classes/Serialization/Converters/pb_ObjectContainerConverter.cs index 4b6e464..1d05281 100644 --- a/Assets/GILES/Code/Classes/Serialization/Converters/pb_ObjectContainerConverter.cs +++ b/Assets/GILES/Code/Classes/Serialization/Converters/pb_ObjectContainerConverter.cs @@ -4,7 +4,6 @@ using Newtonsoft.Json.Linq; using System.Reflection; using System; -using System.Linq; namespace GILES.Serialization { @@ -12,7 +11,7 @@ public class pb_ObjectConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { - throw new NotImplementedException("Cannot write objects!"); + throw new NotImplementedException("Cannot write objects!"); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) @@ -20,7 +19,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist JObject o = JObject.Load(reader); Debug.Log("pb_ObjectContainer Converter:\n" + o.ToString()); - var obj = o.GetValue("value").ToObject(serializer); + 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 20ec1ad..4797f78 100644 Binary files a/Assets/GILES/Prefab/Level Editor.prefab and b/Assets/GILES/Prefab/Level Editor.prefab differ diff --git a/Assets/GILES/Scenes/Level Editor.unity b/Assets/GILES/Scenes/Level Editor.unity index 6959c92..e7514eb 100644 Binary files a/Assets/GILES/Scenes/Level Editor.unity and b/Assets/GILES/Scenes/Level Editor.unity differ 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: