public void AmbientSettingsWithSetNameNull() { string settingName = nameof(AmbientSettingsWithSetNameNull) + "-int-setting"; AmbientSetting <int> setting = new AmbientSetting <int>(settingName, "", s => Int32.Parse(s), "1"); (int, string)valueWithSetName = setting.GetValueWithSetName(); }
static void ExportLightMap() { string sceneName = GetCurrentSceneName(); string abName = "config/lightmap_" + sceneName; LightMapAsset lightmapAsset = ScriptableObject.CreateInstance <LightMapAsset>(); int count = LightmapSettings.lightmaps.Length; lightmapAsset.lightmapFar = new Texture2D[count]; lightmapAsset.lightmapNear = new Texture2D[count]; AmbientSetting am = new AmbientSetting(); am.useFog = RenderSettings.fog; am.fogMode = RenderSettings.fogMode; am.fogColor = RenderSettings.fogColor; am.fogEndDistance = RenderSettings.fogEndDistance; am.fogStartDistance = RenderSettings.fogStartDistance; am.fogMode = RenderSettings.fogMode; am.ambientColor = RenderSettings.ambientLight; lightmapAsset.ambientSetting = am; for (int i = 0; i < count; i++) { lightmapAsset.lightmapFar[i] = LightmapSettings.lightmaps[i].lightmapColor; lightmapAsset.lightmapNear[i] = LightmapSettings.lightmaps[i].lightmapDir; } string path = ("Assets/GameResources/ArtResources/SceneConfig/LightMap/lightmap_" + sceneName.ToLower() + ".asset"); AssetDatabase.CreateAsset(lightmapAsset, path); AssetImporter assetImporter = AssetImporter.GetAtPath(path); assetImporter.assetBundleName = abName; }
public void SettingsInfo() { string settingName = nameof(SettingsInfo); DateTime start = AmbientClock.UtcNow; AmbientSetting <string> testSetting = new AmbientSetting <string>(settingName, "", s => s, "default value"); foreach (IAmbientSettingInfo info in SettingsRegistry.DefaultRegistry.Settings) { if (String.Equals(settingName, info.Key)) { Assert.IsTrue(info.LastUsed == DateTime.MinValue); Assert.IsTrue(String.IsNullOrEmpty(info.Description)); Assert.AreEqual("default value", info.DefaultValueString); Assert.AreEqual("default value", (string)info.DefaultValue); } } Assert.AreEqual("default value", testSetting.Value); foreach (IAmbientSettingInfo info in SettingsRegistry.DefaultRegistry.Settings) { if (String.Equals(settingName, info.Key)) { Assert.IsTrue(info.LastUsed >= start); Assert.IsTrue(String.IsNullOrEmpty(info.Description)); Assert.AreEqual("default value", info.DefaultValueString); Assert.AreEqual("default value", (string)info.DefaultValue); } } }
public void SettingLocalChangeSettingsSet() { IMutableAmbientSettingsSet settingsSet = new BasicAmbientSettingsSet(nameof(SettingLocalChangeSettingsSet)); using (new ScopedLocalServiceOverride <IMutableAmbientSettingsSet>(settingsSet)) using (new ScopedLocalServiceOverride <IAmbientSettingsSet>(settingsSet)) { string testSettingKey = nameof(SettingLocalChangeSettingsSet); string initialValue = "initialValue"; string notificationNewValue = ""; AmbientSetting <string> testSetting = new AmbientSetting <string>(testSettingKey, "", s => { notificationNewValue = s; return(s); }, initialValue); Assert.AreEqual(initialValue, testSetting.Value); Assert.AreEqual(initialValue, notificationNewValue); // now switch local settings set and try again string secondValue = "change1"; IMutableAmbientSettingsSet settingsSet2 = new BasicAmbientSettingsSet(nameof(SettingLocalChangeSettingsSet) + "_2"); using (new ScopedLocalServiceOverride <IMutableAmbientSettingsSet>(settingsSet2)) using (new ScopedLocalServiceOverride <IAmbientSettingsSet>(settingsSet2)) { settingsSet2.ChangeSetting(testSettingKey, secondValue); Assert.AreEqual(secondValue, testSetting.Value); Assert.AreEqual(secondValue, notificationNewValue); } } }
public void SettingGlobalValueChangeNotification() { string testSettingKey = nameof(SettingGlobalValueChangeNotification); string initialValue = "initialValue"; string notificationNewValue = ""; AmbientSetting <string> testSetting = new AmbientSetting <string>(testSettingKey, "", s => { notificationNewValue = s; return(s); }, initialValue); Assert.AreEqual(initialValue, testSetting.Value); string secondValue = "change1"; Assert.AreEqual(initialValue, notificationNewValue); IAmbientSettingsSet settingsReader = _SettingsSet.Global; IMutableAmbientSettingsSet settingsMutator = settingsReader as IMutableAmbientSettingsSet; if (settingsMutator != null) { settingsMutator.ChangeSetting(testSettingKey, secondValue); Assert.AreEqual(secondValue, testSetting.Value); Assert.AreEqual(secondValue, notificationNewValue); // now change it to the same value it already has (this should not do anything) notificationNewValue = ""; bool changed = settingsMutator.ChangeSetting(testSettingKey, secondValue); Assert.AreEqual(secondValue, testSetting.Value); Assert.AreEqual("", notificationNewValue, changed.ToString()); } }
public void AmbientSettingInt() { // use a local override in case we ran another test that left the global or local settings set set to something else on this thread BasicAmbientSettingsSet settings = new BasicAmbientSettingsSet(nameof(AmbientSettingInt)); using (ScopedLocalServiceOverride <IAmbientSettingsSet> localOverrideTest = new ScopedLocalServiceOverride <IAmbientSettingsSet>(settings)) { AmbientSetting <int> value; value = new AmbientSetting <int>("int-setting", "", s => string.IsNullOrEmpty(s) ? 0 : Int32.Parse(s)); Assert.AreEqual(0, value.Value); value = new AmbientSetting <int>("int-setting-2", "", s => Int32.Parse(s), "1"); Assert.AreEqual(1, value.Value); value = new AmbientSetting <int>("int-setting-3", "", s => Int32.Parse(s), "1"); Assert.AreEqual(1, value.Value); // test changing the setting without an event listener settings.ChangeSetting("int-setting-3", "5"); // test changing the setting to the same value without an event listener settings.ChangeSetting("int-setting-3", "5"); // test changing the setting to null so we fall through to the global settings set settings.ChangeSetting("int-setting-3", null); int settingValue = value.Value; Assert.AreEqual(1, value.Value); } }
public void NoAmbientSetting() { using (ScopedLocalServiceOverride <IAmbientSettingsSet> localOverrideTest = new ScopedLocalServiceOverride <IAmbientSettingsSet>(null)) { AmbientSetting <int> value; value = new AmbientSetting <int>("int-setting", "", s => string.IsNullOrEmpty(s) ? 0 : Int32.Parse(s)); Assert.AreEqual(0, value.Value); value = new AmbientSetting <int>("int-setting-2", "", s => Int32.Parse(s), "1"); Assert.AreEqual(1, value.Value); value = new AmbientSetting <int>("int-setting-4", "", s => Int32.Parse(s), "-1"); Assert.AreEqual(-1, value.Value); SettingsSetSetting <int> settingsSetSetting = new SettingsSetSetting <int>(_SettingsSet, nameof(NoAmbientSetting) + "4", "", s => Int32.Parse(s), "4"); Assert.AreEqual(4, settingsSetSetting.Value); } }
public void SettingGlobalSettingsSetChangeNotification() { AmbientService <IAmbientSettingsSet> pretendGlobalSettings = new AmbientService <IAmbientSettingsSet>(); string testSettingKey = nameof(SettingGlobalSettingsSetChangeNotification); string defaultValue = "defaultValue"; string overrideValue = "overrideSettingsSetValue"; Dictionary <string, string> overrides = new Dictionary <string, string>() { { testSettingKey, overrideValue } }; string notificationNewValue = ""; AmbientSetting <string> testSetting = new AmbientSetting <string>(pretendGlobalSettings, testSettingKey, "", s => { notificationNewValue = s; return(s); }, defaultValue); Assert.AreEqual(defaultValue, testSetting.Value); AmbientSettingsOverride pretendGlobalSettingsImplementation = new AmbientSettingsOverride(overrides, nameof(SettingGlobalSettingsSetChangeNotification), null, pretendGlobalSettings); pretendGlobalSettings.Global = pretendGlobalSettingsImplementation; Assert.AreEqual(overrideValue, testSetting.Value); Assert.AreEqual(overrideValue, notificationNewValue); IMutableAmbientSettingsSet globalSettingsSet = pretendGlobalSettings.Global as IMutableAmbientSettingsSet; if (globalSettingsSet != null) { string valueChangeValue = "valueChange"; globalSettingsSet.ChangeSetting(testSettingKey, valueChangeValue); Assert.AreEqual(valueChangeValue, testSetting.Value); Assert.AreEqual(valueChangeValue, notificationNewValue); } overrides = new Dictionary <string, string>() { { testSettingKey, overrideValue } }; AmbientSettingsOverride pretendGlobalSettingsSet2 = new AmbientSettingsOverride(overrides, nameof(SettingGlobalSettingsSetChangeNotification), null, pretendGlobalSettings); pretendGlobalSettings.Global = pretendGlobalSettingsSet2; Assert.AreEqual(overrideValue, testSetting.Value); overrides[testSettingKey] = null; AmbientSettingsOverride pretendGlobalSettingsSet3 = new AmbientSettingsOverride(overrides, nameof(SettingGlobalSettingsSetChangeNotification), null, pretendGlobalSettings); pretendGlobalSettings.Global = pretendGlobalSettingsSet3; Assert.AreEqual(defaultValue, testSetting.Value); }
public void AmbientSettingsWithSetName() { string settingName = nameof(AmbientSettingsWithSetName) + "-int-setting"; AmbientSetting <int> setting3 = new AmbientSetting <int>(settingName, "", s => Int32.Parse(s), "1"); Assert.AreEqual(1, setting3.Value); Assert.IsNotNull(setting3.GetValueWithSetName().Item2); IMutableAmbientSettingsSet settingsSet = _SettingsSet.Global as IMutableAmbientSettingsSet; if (settingsSet != null) { settingsSet.ChangeSetting(settingName, "2"); Assert.AreEqual(2, setting3.Value); Assert.AreEqual(BasicAmbientSettingsSet.DefaultSetName, setting3.GetValueWithSetName().Item2); } // use a local override in case we ran another test that left the global or local settings set set to something else on this thread BasicAmbientSettingsSet settings = new BasicAmbientSettingsSet(nameof(AmbientSettingsWithSetName)); using (ScopedLocalServiceOverride <IAmbientSettingsSet> localOverrideTest = new ScopedLocalServiceOverride <IAmbientSettingsSet>(settings)) { AmbientSetting <int> setting; setting = new AmbientSetting <int>(nameof(AmbientSettingsWithSetName) + "-int-setting-1", "", s => string.IsNullOrEmpty(s) ? 0 : Int32.Parse(s)); Assert.AreEqual(0, setting.Value); Assert.IsNotNull(setting.GetValueWithSetName().Item2); setting = new AmbientSetting <int>(nameof(AmbientSettingsWithSetName) + "-int-setting-2", "", s => Int32.Parse(s), "1"); settings.ChangeSetting(nameof(AmbientSettingsWithSetName) + "-int-setting-2", "1"); Assert.AreEqual(1, setting.Value); Assert.AreEqual(nameof(AmbientSettingsWithSetName), setting.GetValueWithSetName().Item2); setting = new AmbientSetting <int>(settingName, "", s => Int32.Parse(s), "1"); settings.ChangeSetting(settingName, "3"); Assert.AreEqual(3, setting3.Value); Assert.AreEqual(nameof(AmbientSettingsWithSetName), setting3.GetValueWithSetName().Item2); // test changing the setting to null so we fall through to the global settings set settings.ChangeSetting(settingName, null); int settingValue = setting.Value; Assert.AreEqual(1, setting.Value); Assert.IsNotNull(setting3.GetValueWithSetName().Item2); } }