public virtual void TearDownTest() { EditorBuildSettings.RemoveConfigObject(XRGeneralSettings.k_SettingsKey); if (!string.IsNullOrEmpty(testPathToGeneralSettings)) { AssetDatabase.DeleteAsset(testPathToGeneralSettings); } if (!string.IsNullOrEmpty(testPathToSettings)) { AssetDatabase.DeleteAsset(testPathToSettings); } xrGeneralSettings.Manager = null; UnityEngine.Object.DestroyImmediate(xrGeneralSettings); xrGeneralSettings = null; UnityEngine.Object.DestroyImmediate(testManager); testManager = null; UnityEngine.Object.DestroyImmediate(buildTargetSettings); buildTargetSettings = null; if (currentSettings != null) { EditorBuildSettings.AddConfigObject(XRGeneralSettings.k_SettingsKey, currentSettings, true); } else { EditorBuildSettings.RemoveConfigObject(XRGeneralSettings.k_SettingsKey); } AssetDatabase.DeleteAsset(Path.Combine("Assets", "Temp")); }
public void AssetReferenceDrawer_SetMainAssets_CanSetMultipleAssets(int numAtlasObjects, int numReferences) { // Setup var subAssets = new List <Object>(); var atlas = SetUpSpriteAtlas(numAtlasObjects, out subAssets); var property = SetupForSetSubAssets(atlas, numReferences); m_AssetReferenceDrawer.m_label = new GUIContent("testSpriteReference"); FieldInfo propertyFieldInfo = typeof(TestSubObjectsSpriteAtlas).GetField("testSpriteReference", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); var assetPath = AssetDatabase.GetAssetOrScenePath(atlas); var atlasGuid = AssetDatabase.AssetPathToGUID(assetPath); // Test m_AssetReferenceDrawer.SetMainAssets(property, atlas, null, propertyFieldInfo); foreach (var obj in property.serializedObject.targetObjects) { Assert.AreEqual(((TestSubObjectsSpriteAtlas)obj).testSpriteReference.AssetGUID, atlasGuid); } // Cleanup if (Directory.Exists("Assets/AddressableAssetsData")) { AssetDatabase.DeleteAsset("Assets/AddressableAssetsData"); } EditorBuildSettings.RemoveConfigObject("Assets/AddressableAssetsData"); }
public void Cleanup() { if (Directory.Exists(k_TestConfigFolder)) { AssetDatabase.DeleteAsset(k_TestConfigFolder); } EditorBuildSettings.RemoveConfigObject(k_TestConfigName); }
public void Cleanup() { if (Directory.Exists(TestFolder)) { Debug.Log($"{GetType()} - (cleanup) deleting {TestFolder}"); AssetDatabase.DeleteAsset(TestFolder); } EditorBuildSettings.RemoveConfigObject(k_TestConfigName); }
public virtual void TearDownTest() { #if UNITY_EDITOR EditorBuildSettings.RemoveConfigObject(XRGeneralSettings.k_SettingsKey); buildTargetSettings = null; testManager = null; xrGeneralSettings = null; AssetDatabase.DeleteAsset(Path.Combine("Assets", "Temp")); #endif }
public void AddressableAssetSettings_MoveAssetsFromResources_AddressRespectFolderHierarchy() { // Setup var guidsToPaths = new Dictionary <string, string>(); var obj = new GameObject("TestObjectMoveAssets"); var objFolder = ConfigFolder + "/Resources/subfolder/subsubfolder"; if (!Directory.Exists(objFolder)) { Directory.CreateDirectory(objFolder); } var objPath = objFolder + "/testasset.prefab"; PrefabUtility.SaveAsPrefabAsset(obj, objPath); var guid = AssetDatabase.AssetPathToGUID(objPath); var playerDataGroup = Settings.FindGroup(AddressableAssetSettings.PlayerDataGroupName); Settings.CreateOrMoveEntry(guid, playerDataGroup); var destinationFolder = ConfigFolder + "/testMoveAssets"; guidsToPaths[guid] = destinationFolder + "/testasset.prefab"; // Test var defaultLocalGroup = Settings.FindGroup(AddressableAssetSettings.DefaultLocalGroupName); Settings.MoveAssetsFromResources(guidsToPaths, defaultLocalGroup); var idx = objPath.ToLower().LastIndexOf("resources/"); var expectedAddress = objPath.Substring(idx + 10).Replace(Path.GetExtension(objPath), ""); var entry = Settings.FindAssetEntry(guid); Assert.AreEqual(expectedAddress, entry.address); Assert.AreEqual(guidsToPaths[guid], AssetDatabase.GUIDToAssetPath(guid)); Assert.AreEqual(defaultLocalGroup, entry.parentGroup); //Cleanup if (Directory.Exists(ConfigFolder + "/Resources")) { AssetDatabase.DeleteAsset(ConfigFolder + "/Resources"); } EditorBuildSettings.RemoveConfigObject(ConfigFolder + "/Resources"); Settings.RemoveAssetEntry(guid); AssetDatabase.DeleteAsset(guidsToPaths[guid]); if (Directory.Exists(destinationFolder)) { AssetDatabase.DeleteAsset(destinationFolder); } EditorBuildSettings.RemoveConfigObject(destinationFolder); }
public void AssetReferenceDrawer_SelectionChanged_CanSelectSameNameAssetsInDifferentGroups() { // Drawer Setup var testAssetReferenceDrawer = new TestAssetReferenceDrawer(); testAssetReferenceDrawer.SetAssetReference(new AssetReference()); TestObjectWithRef obj = ScriptableObject.CreateInstance <TestObjectWithRef>(); var so = new SerializedObject(obj); var property = so.FindProperty("Reference"); testAssetReferenceDrawer.GatherFilters(property); // Entries setup var newEntryPath = ConfigFolder + "/test" + "/test.prefab"; var testEntry = Settings.CreateOrMoveEntry(m_AssetGUID, Settings.groups[0]); GameObject testObject = new GameObject("TestObject"); Directory.CreateDirectory(ConfigFolder + "/test"); PrefabUtility.SaveAsPrefabAsset(testObject, newEntryPath); var newEntryGuid = AssetDatabase.AssetPathToGUID(newEntryPath); var secondTestEntry = Settings.CreateOrMoveEntry(newEntryGuid, Settings.groups[1]); // Tree setup var testId = testEntry.AssetPath.GetHashCode(); List <int> selectedIds = new List <int>() { testId }; var treeState = new TreeViewState(); treeState.selectedIDs = selectedIds; Directory.CreateDirectory("Assets/AddressableAssetsData"); AddressableAssetSettingsDefaultObject.Settings = Settings; testAssetReferenceDrawer.TreeSetup(treeState); // Test testAssetReferenceDrawer.TreeSelectionChangedHelper(selectedIds); Assert.AreEqual(m_AssetGUID, testAssetReferenceDrawer.newGuid); selectedIds[0] = secondTestEntry.AssetPath.GetHashCode(); testAssetReferenceDrawer.TreeSelectionChangedHelper(selectedIds); Assert.AreEqual(AssetDatabase.AssetPathToGUID(newEntryPath), testAssetReferenceDrawer.newGuid); // Cleanup if (Directory.Exists("Assets/AddressableAssetsData")) { AssetDatabase.DeleteAsset("Assets/AddressableAssetsData"); } EditorBuildSettings.RemoveConfigObject("Assets/AddressableAssetsData"); Settings.RemoveAssetEntry(AssetDatabase.AssetPathToGUID(newEntryPath)); Settings.RemoveAssetEntry(m_AssetGUID); }
public void SetUp() { if (EditorBuildSettings.TryGetConfigObject(EditorBuildSettingsConfigKey, out MLAgentsSettings settingsAsset)) { if (settingsAsset != null) { storedConfigObject = settingsAsset; EditorBuildSettings.RemoveConfigObject(EditorBuildSettingsConfigKey); } } MLAgentsSettingsManager.Destroy(); ClearSettingsAssets(); }
public void TearDown() { var services = m_Manager.HostingServices.ToArray(); foreach (var svc in services) { m_Manager.RemoveHostingService(svc); } if (Directory.Exists(k_TestConfigFolder)) { AssetDatabase.DeleteAsset(k_TestConfigFolder); } EditorBuildSettings.RemoveConfigObject(k_TestConfigName); }
public void TearDown() { Assert.AreEqual(0, SessionState.GetInt(HostingServicesManager.k_GlobalProfileVariablesCountKey, 0)); var services = m_Manager.HostingServices.ToArray(); foreach (var svc in services) { m_Manager.RemoveHostingService(svc); } if (Directory.Exists(k_TestConfigFolder)) { AssetDatabase.DeleteAsset(k_TestConfigFolder); } EditorBuildSettings.RemoveConfigObject(k_TestConfigName); }
public void AddressableAssetSettings_MoveAssetsFromResources_CanMoveAssetsFromResources() { // Setup var testGuidsToPaths = new Dictionary <string, string>(); var testObject = new GameObject("TestObjectMoveAssets"); #if UNITY_2018_3_OR_NEWER PrefabUtility.SaveAsPrefabAsset(testObject, ConfigFolder + "/testasset.prefab"); #else PrefabUtility.CreatePrefab(k_TestConfigFolder + "/test.prefab", testObject); #endif var testAssetGUID = AssetDatabase.AssetPathToGUID(ConfigFolder + "/testasset.prefab"); Settings.CreateOrMoveEntry(testAssetGUID, Settings.FindGroup(AddressableAssetSettings.PlayerDataGroupName)); var originalAssetEntry = Settings.CreateOrMoveEntry(m_AssetGUID, Settings.FindGroup(AddressableAssetSettings.PlayerDataGroupName)); var prevAddress = originalAssetEntry.address; var prevDC = EditorUtility.GetDirtyCount(Settings); var prevGroup = originalAssetEntry.parentGroup; var prevPath = AssetDatabase.GUIDToAssetPath(m_AssetGUID); var prevPathTwo = AssetDatabase.GUIDToAssetPath(testAssetGUID); var testGroup = Settings.FindGroup(AddressableAssetSettings.DefaultLocalGroupName); var testAssetPath = ConfigFolder + "/testMoveAssets"; testGuidsToPaths[m_AssetGUID] = testAssetPath + "/resources/test.prefab"; testGuidsToPaths[testAssetGUID] = testAssetPath + "/resources/testasset.prefab"; // Test Settings.MoveAssetsFromResources(testGuidsToPaths, testGroup); var dc = EditorUtility.GetDirtyCount(Settings); Assert.AreNotEqual(prevPath, AssetDatabase.GUIDToAssetPath(m_AssetGUID)); Assert.AreNotEqual(prevPathTwo, AssetDatabase.GUIDToAssetPath(testAssetGUID)); Assert.AreNotEqual(prevGroup, Settings.FindAssetEntry(m_AssetGUID).parentGroup); Assert.AreNotEqual(prevGroup, Settings.FindAssetEntry(testAssetGUID).parentGroup); Assert.AreEqual(prevDC + 1, dc); testGuidsToPaths[m_AssetGUID] = ConfigFolder + "/test.prefab"; testGuidsToPaths[testAssetGUID] = ConfigFolder + "/testasset.prefab"; Settings.MoveAssetsFromResources(testGuidsToPaths, prevGroup); originalAssetEntry = Settings.FindAssetEntry(m_AssetGUID); Assert.AreEqual(originalAssetEntry.address, "test"); //Cleanup originalAssetEntry.address = prevAddress; if (Directory.Exists(testAssetPath)) { AssetDatabase.DeleteAsset(testAssetPath); } EditorBuildSettings.RemoveConfigObject(testAssetPath); }
public void SetupPlayerSettings() { EditorBuildSettings.TryGetConfigObject(XRGeneralSettings.k_SettingsKey, out m_OldBuildTargetSettings); EditorBuildSettings.RemoveConfigObject(XRGeneralSettings.k_SettingsKey); var emptyBuildTargetSettings = ScriptableObject.CreateInstance <XRGeneralSettingsPerBuildTarget>(); var generalSettings = ScriptableObject.CreateInstance <XRGeneralSettings>(); generalSettings.AssignedSettings = ScriptableObject.CreateInstance <XRManagerSettings>(); emptyBuildTargetSettings.SetSettingsForBuildTarget(m_BuildTargetGroup, generalSettings); emptyBuildTargetSettings.SettingsForBuildTarget(m_BuildTargetGroup).AssignedSettings.TrySetLoaders(new List <XRLoader>()); Directory.CreateDirectory(k_TemporaryTestPath); AssetDatabase.CreateAsset(emptyBuildTargetSettings, Path.Combine(k_TemporaryTestPath, k_AssetName)); EditorBuildSettings.AddConfigObject(XRGeneralSettings.k_SettingsKey, emptyBuildTargetSettings, true); }
protected void RemoveLoaderAndSettings() { #if UNITY_EDITOR StopAndShutdown(); if (loader != null) { #pragma warning disable CS0618 xrGeneralSettings.Manager.loaders.Remove(loader); #pragma warning restore CS0618 } EditorBuildSettings.RemoveConfigObject(settingsKey); loader = null; #endif }
public void AssetReferenceDrawer_GetNameForAsset_CanGetAssetNameWhenAllSame(int numAtlasObjects, int numReferences) { // Setup var subAssets = new List <Object>(); var atlas = SetUpSpriteAtlas(numAtlasObjects, out subAssets); var property = SetupForSetSubAssets(atlas, numReferences); FieldInfo propertyFieldInfo = typeof(TestSubObjectsSpriteAtlas).GetField("testSpriteReference", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); m_AssetReferenceDrawer.m_AssetName = atlas.name; // Test var nameforAsset = m_AssetReferenceDrawer.GetNameForAsset(property, false, propertyFieldInfo); Assert.AreEqual(atlas.name, nameforAsset); // Cleanup if (Directory.Exists("Assets/AddressableAssetsData")) { AssetDatabase.DeleteAsset("Assets/AddressableAssetsData"); } EditorBuildSettings.RemoveConfigObject("Assets/AddressableAssetsData"); }
public void AssetReferenceDrawer_SetMainAssets_CanSetToNullInList(int numAtlasObjects, int numReferences, int numElements, int selectedElement) { // Setup var subAssets = new List <Object>(); var atlas = SetUpSpriteAtlas(numAtlasObjects, out subAssets); var property = SetupForSetSubAssetsList(atlas, numReferences, selectedElement, numElements, true, numReferences); FieldInfo propertyFieldInfo = typeof(TestSubObjectsSpriteAtlasList).GetField("testSpriteReference", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); var assetPath = AssetDatabase.GetAssetOrScenePath(atlas); var atlasGuid = AssetDatabase.AssetPathToGUID(assetPath); m_AssetReferenceDrawer.m_label = new GUIContent("Element " + selectedElement); // Test m_AssetReferenceDrawer.SetMainAssets(property, null, null, propertyFieldInfo); // Check that only the selected element of each object's reference list was set to null foreach (var obj in property.serializedObject.targetObjects) { var checkList = ((TestSubObjectsSpriteAtlasList)obj).testSpriteReference; for (int currElement = 0; currElement < checkList.Length; currElement++) { if (currElement == selectedElement) { Assert.AreEqual(String.Empty, checkList[selectedElement].AssetGUID); } else { Assert.AreEqual(atlasGuid, checkList[currElement].AssetGUID); } } } // Cleanup if (Directory.Exists("Assets/AddressableAssetsData")) { AssetDatabase.DeleteAsset("Assets/AddressableAssetsData"); } EditorBuildSettings.RemoveConfigObject("Assets/AddressableAssetsData"); }
/// <summary> /// Grab <see cref="InputSystem.settings"/> and set it up for editing. /// </summary> private void InitializeWithCurrentSettings() { // Find the set of available assets in the project. m_AvailableInputSettingsAssets = FindInputSettingsInProject(); // See which is the active one. m_Settings = InputSystem.settings; var currentSettingsPath = AssetDatabase.GetAssetPath(m_Settings); if (string.IsNullOrEmpty(currentSettingsPath)) { // The current settings aren't coming from an asset. These won't be editable // in the UI but we still have to show something. m_CurrentSelectedInputSettingsAsset = ArrayHelpers.Append(ref m_AvailableInputSettingsAssets, "<No Asset>"); EditorBuildSettings.RemoveConfigObject(kEditorBuildSettingsConfigKey); } else { m_CurrentSelectedInputSettingsAsset = ArrayHelpers.IndexOf(m_AvailableInputSettingsAssets, currentSettingsPath); if (m_CurrentSelectedInputSettingsAsset == -1) { // This is odd and shouldn't happen. Solve by just adding the path to the list. m_CurrentSelectedInputSettingsAsset = ArrayHelpers.Append(ref m_AvailableInputSettingsAssets, currentSettingsPath); } ////REVIEW: should we store this by platform? EditorBuildSettings.AddConfigObject(kEditorBuildSettingsConfigKey, m_Settings, true); } // Refresh the list of assets we display in the UI. m_AvailableSettingsAssetsOptions = new GUIContent[m_AvailableInputSettingsAssets.Length]; for (var i = 0; i < m_AvailableInputSettingsAssets.Length; ++i) { var name = m_AvailableInputSettingsAssets[i]; if (name.StartsWith("Assets/")) { name = name.Substring("Assets/".Length); } if (name.EndsWith(".asset")) { name = name.Substring(0, name.Length - ".asset".Length); } if (name.EndsWith(".inputsettings")) { name = name.Substring(0, name.Length - ".inputsettings".Length); } m_AvailableSettingsAssetsOptions[i] = new GUIContent(name); } // Look up properties. m_SettingsObject = new SerializedObject(m_Settings); m_UpdateMode = m_SettingsObject.FindProperty("m_UpdateMode"); m_ActionUpdateMode = m_SettingsObject.FindProperty("m_ActionUpdateMode"); m_TimesliceEvents = m_SettingsObject.FindProperty("m_TimesliceEvents"); m_RunInBackground = m_SettingsObject.FindProperty("m_RunInBackground"); m_CompensateForScreenOrientation = m_SettingsObject.FindProperty("m_CompensateForScreenOrientation"); m_FilterNoiseOnCurrent = m_SettingsObject.FindProperty("m_FilterNoiseOnCurrent"); m_DefaultDeadzoneMin = m_SettingsObject.FindProperty("m_DefaultDeadzoneMin"); m_DefaultDeadzoneMax = m_SettingsObject.FindProperty("m_DefaultDeadzoneMax"); m_DefaultButtonPressPoint = m_SettingsObject.FindProperty("m_DefaultButtonPressPoint"); m_DefaultTapTime = m_SettingsObject.FindProperty("m_DefaultTapTime"); m_DefaultSlowTapTime = m_SettingsObject.FindProperty("m_DefaultSlowTapTime"); m_DefaultHoldTime = m_SettingsObject.FindProperty("m_DefaultHoldTime"); // Initialize ReorderableList for list of supported devices. var supportedDevicesProperty = m_SettingsObject.FindProperty("m_SupportedDevices"); m_SupportedDevices = new ReorderableList(m_SettingsObject, supportedDevicesProperty) { drawHeaderCallback = rect => { EditorGUI.LabelField(rect, m_SupportedDevicesText); }, onChangedCallback = list => { Apply(); }, onAddDropdownCallback = (rect, list) => { var state = new AdvancedDropdownState(); var dropdown = new InputControlPickerDropdown(state, path => { var layoutName = InputControlPath.TryGetDeviceLayout(path) ?? path; var numDevices = supportedDevicesProperty.arraySize; supportedDevicesProperty.InsertArrayElementAtIndex(numDevices); supportedDevicesProperty.GetArrayElementAtIndex(numDevices) .stringValue = layoutName; Apply(); }, InputControlPickerDropdown.Mode.PickDevice); dropdown.Show(rect); }, drawElementCallback = (rect, index, isActive, isFocused) => { var layoutName = m_Settings.supportedDevices[index]; var icon = EditorInputControlLayoutCache.GetIconForLayout(layoutName); if (icon != null) { var iconRect = rect; iconRect.width = 20; rect.x += 20; rect.width -= 20; GUI.Label(iconRect, icon); } EditorGUI.LabelField(rect, m_Settings.supportedDevices[index]); } }; }