From af294fe39aa63e696fd715e3866cf9f5bb2277bf Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:12:07 -0500 Subject: [PATCH] DMX support (from #670), "All Settings" tab, and more setting categories (#682) * DMX support, "Advanced" tab, Stagekit toggle (#670) * DMX support Added scan (dmx over ethernet) support. Added an advanced settings tab. Added ability to turn off the stage kit. * fixed var names * Moved things to correct spots * Refactored into a MonoSingleton * Added README to note changes --------- Co-authored-by: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> * Fix some things up * Make it so settings don't use tab in unlocalized name * Started "All Settings" menu * Split up advanced settings into their own categories and added some more buttons * Fixed a small bug that Jaden would totally fine 10 seconds after this update releases * Updated setting category view to concept * Updated search bar * Updated placeholder text styling * Added basic search functionality * Limit number of results * Fixed scrolling on scroll views * Make the search results clickable * Added more icons * Prevent SacnController from initializing twice --------- Co-authored-by: TheFatBastid --- Assembly-CSharp.csproj.DotSettings | 2 + .../Art/Menu/Common/Icons/AssortedIcons.png | 4 +- .../Menu/Common/Icons/AssortedIcons.png.meta | 24 +- Assets/Art/Menu/Common/Icons/TabIcons.png | 4 +- .../Art/Menu/Common/Icons/TabIcons.png.meta | 70 +- Assets/Plugins/Haukcode.sACN.meta | 8 + .../Haukcode.sACN/BigEndianBinaryWriter.cs | 111 + .../BigEndianBinaryWriter.cs.meta | 11 + Assets/Plugins/Haukcode.sACN/Model.meta | 8 + .../Plugins/Haukcode.sACN/Model/DMPLayer.cs | 42 + .../Haukcode.sACN/Model/DMPLayer.cs.meta | 11 + .../Haukcode.sACN/Model/DataFramingLayer.cs | 58 + .../Model/DataFramingLayer.cs.meta | 11 + .../Haukcode.sACN/Model/FramingLayer.cs | 27 + .../Haukcode.sACN/Model/FramingLayer.cs.meta | 11 + .../Haukcode.sACN/Model/FramingOptions.cs | 60 + .../Model/FramingOptions.cs.meta | 11 + .../Plugins/Haukcode.sACN/Model/RootLayer.cs | 59 + .../Haukcode.sACN/Model/RootLayer.cs.meta | 11 + .../Haukcode.sACN/Model/SACNDataPacket.cs | 25 + .../Model/SACNDataPacket.cs.meta | 11 + .../Plugins/Haukcode.sACN/Model/SACNPacket.cs | 32 + .../Haukcode.sACN/Model/SACNPacket.cs.meta | 11 + .../Haukcode.sACN/Model/SendStatistics.cs | 14 + .../Model/SendStatistics.cs.meta | 11 + .../Haukcode.sACN/Model/SyncFramingLayer.cs | 37 + .../Model/SyncFramingLayer.cs.meta | 11 + Assets/Plugins/Haukcode.sACN/README.txt | 11 + Assets/Plugins/Haukcode.sACN/README.txt.meta | 7 + Assets/Plugins/Haukcode.sACN/SACNClient.cs | 516 +++++ .../Plugins/Haukcode.sACN/SACNClient.cs.meta | 11 + Assets/Plugins/Haukcode.sACN/SACNCommon.cs | 155 ++ .../Plugins/Haukcode.sACN/SACNCommon.cs.meta | 11 + Assets/Plugins/Haukcode.sACN/SendData.cs | 11 + Assets/Plugins/Haukcode.sACN/SendData.cs.meta | 11 + Assets/Prefabs/Menu/Common/InputField.prefab | 8 +- Assets/Prefabs/Menu/Common/ScrollView.prefab | 40 + Assets/Prefabs/Menu/Settings/AllSettings.meta | 8 + .../AllSettings/SearchResultPopulator.prefab | 53 + .../SearchResultPopulator.prefab.meta | 7 + .../AllSettings/SettingCategoryView.prefab | 544 +++++ .../SettingCategoryView.prefab.meta | 7 + .../AllSettings/SettingSearchResult.prefab | 626 ++++++ .../SettingSearchResult.prefab.meta | 7 + Assets/Prefabs/Menu/Settings/Presets.meta | 8 + .../{ => Presets}/PresetActions.prefab | 0 .../{ => Presets}/PresetActions.prefab.meta | 0 .../{ => Presets}/PresetDefaultText.prefab | 0 .../PresetDefaultText.prefab.meta | 0 .../{ => Presets}/PresetDropdown.prefab | 0 .../{ => Presets}/PresetDropdown.prefab.meta | 0 .../{ => Presets}/PresetTypeDropdown.prefab | 0 .../PresetTypeDropdown.prefab.meta | 0 .../Prefabs/Menu/Settings/SettingsMenu.prefab | 485 +++- Assets/Prefabs/Menu/Settings/SongManager.meta | 8 + .../SongManagerDirectory.prefab | 0 .../SongManagerDirectory.prefab.meta | 0 .../SongManagerHeader.prefab | 0 .../SongManagerHeader.prefab.meta | 0 .../Visuals/DMXChannelsSetting.prefab | 1983 +++++++++++++++++ .../Visuals/DMXChannelsSetting.prefab.meta | 7 + Assets/Scenes/PersistentScene.unity | 75 +- Assets/Script/Integration/Sacn.meta | 8 + .../Script/Integration/Sacn/SacnController.cs | 161 ++ .../Integration/Sacn/SacnController.cs.meta | 11 + .../Integration/StageKit/StageKitGameplay.cs | 5 +- .../StageKit/StageKitLightingController.cs | 8 +- .../Script/Menu/Common/Header/HeaderTabs.cs | 20 + Assets/Script/Menu/Settings/AllSettings.meta | 3 + .../AllSettings/SearchResultPopulator.cs | 102 + .../AllSettings/SearchResultPopulator.cs.meta | 3 + .../AllSettings/SettingCategoryView.cs | 45 + .../AllSettings/SettingCategoryView.cs.meta | 3 + .../AllSettings/SettingSearchResult.cs | 36 + .../AllSettings/SettingSearchResult.cs.meta | 3 + Assets/Script/Menu/Settings/Presets.meta | 3 + .../Settings/{ => Presets}/PresetActions.cs | 0 .../{ => Presets}/PresetActions.cs.meta | 0 .../Settings/{ => Presets}/PresetDropdown.cs | 0 .../{ => Presets}/PresetDropdown.cs.meta | 0 .../{ => Presets}/PresetTypeDropdown.cs | 0 .../{ => Presets}/PresetTypeDropdown.cs.meta | 0 Assets/Script/Menu/Settings/SettingsButton.cs | 4 +- Assets/Script/Menu/Settings/SettingsMenu.cs | 92 +- Assets/Script/Menu/Settings/SongManager.meta | 3 + .../{ => SongManager}/SettingsDirectory.cs | 0 .../SettingsDirectory.cs.meta | 0 .../{ => SongManager}/SongManagerHeader.cs | 0 .../SongManagerHeader.cs.meta | 0 .../Settings/Visuals/BaseSettingVisual.cs | 14 +- .../Visuals/DMXChannelsSettingVisual.cs | 60 + .../Visuals/DMXChannelsSettingVisual.cs.meta | 11 + .../Settings/Visuals/DropdownSettingVisual.cs | 9 +- .../Settings/Metadata/AbstractMetadata.cs | 2 + .../Settings/Metadata/ButtonRowMetadata.cs | 16 +- .../Script/Settings/Metadata/FieldMetadata.cs | 5 +- .../Settings/Metadata/HeaderMetadata.cs | 4 +- .../Settings/Metadata/Tabs/AllSettingsTab.cs | 56 + .../Metadata/Tabs/AllSettingsTab.cs.meta | 3 + .../Settings/Metadata/Tabs/MetadataTab.cs | 6 +- .../Settings/Metadata/Tabs/PresetSubTab.cs | 2 +- Assets/Script/Settings/Metadata/Tabs/Tab.cs | 2 + .../Script/Settings/Metadata/TextMetadata.cs | 4 +- .../Settings/SettingsManager.Settings.cs | 96 +- Assets/Script/Settings/SettingsManager.cs | 70 +- .../Settings/Types/DMXChannelsSetting.cs | 26 + .../Settings/Types/DMXChannelsSetting.cs.meta | 11 + .../AssetGroups/Default Local Group.asset | 15 + .../Localization/Settings Shared Data.asset | 912 ++++---- .../Localization/Settings_en-US.asset | 915 ++++---- Assets/packages.config | 1 + YARG.sln.DotSettings | 1 + 112 files changed, 7106 insertions(+), 939 deletions(-) create mode 100644 Assets/Plugins/Haukcode.sACN.meta create mode 100644 Assets/Plugins/Haukcode.sACN/BigEndianBinaryWriter.cs create mode 100644 Assets/Plugins/Haukcode.sACN/BigEndianBinaryWriter.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model/DMPLayer.cs create mode 100644 Assets/Plugins/Haukcode.sACN/Model/DMPLayer.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model/DataFramingLayer.cs create mode 100644 Assets/Plugins/Haukcode.sACN/Model/DataFramingLayer.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model/FramingLayer.cs create mode 100644 Assets/Plugins/Haukcode.sACN/Model/FramingLayer.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model/FramingOptions.cs create mode 100644 Assets/Plugins/Haukcode.sACN/Model/FramingOptions.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model/RootLayer.cs create mode 100644 Assets/Plugins/Haukcode.sACN/Model/RootLayer.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model/SACNDataPacket.cs create mode 100644 Assets/Plugins/Haukcode.sACN/Model/SACNDataPacket.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model/SACNPacket.cs create mode 100644 Assets/Plugins/Haukcode.sACN/Model/SACNPacket.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model/SendStatistics.cs create mode 100644 Assets/Plugins/Haukcode.sACN/Model/SendStatistics.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/Model/SyncFramingLayer.cs create mode 100644 Assets/Plugins/Haukcode.sACN/Model/SyncFramingLayer.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/README.txt create mode 100644 Assets/Plugins/Haukcode.sACN/README.txt.meta create mode 100644 Assets/Plugins/Haukcode.sACN/SACNClient.cs create mode 100644 Assets/Plugins/Haukcode.sACN/SACNClient.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/SACNCommon.cs create mode 100644 Assets/Plugins/Haukcode.sACN/SACNCommon.cs.meta create mode 100644 Assets/Plugins/Haukcode.sACN/SendData.cs create mode 100644 Assets/Plugins/Haukcode.sACN/SendData.cs.meta create mode 100644 Assets/Prefabs/Menu/Settings/AllSettings.meta create mode 100644 Assets/Prefabs/Menu/Settings/AllSettings/SearchResultPopulator.prefab create mode 100644 Assets/Prefabs/Menu/Settings/AllSettings/SearchResultPopulator.prefab.meta create mode 100644 Assets/Prefabs/Menu/Settings/AllSettings/SettingCategoryView.prefab create mode 100644 Assets/Prefabs/Menu/Settings/AllSettings/SettingCategoryView.prefab.meta create mode 100644 Assets/Prefabs/Menu/Settings/AllSettings/SettingSearchResult.prefab create mode 100644 Assets/Prefabs/Menu/Settings/AllSettings/SettingSearchResult.prefab.meta create mode 100644 Assets/Prefabs/Menu/Settings/Presets.meta rename Assets/Prefabs/Menu/Settings/{ => Presets}/PresetActions.prefab (100%) rename Assets/Prefabs/Menu/Settings/{ => Presets}/PresetActions.prefab.meta (100%) rename Assets/Prefabs/Menu/Settings/{ => Presets}/PresetDefaultText.prefab (100%) rename Assets/Prefabs/Menu/Settings/{ => Presets}/PresetDefaultText.prefab.meta (100%) rename Assets/Prefabs/Menu/Settings/{ => Presets}/PresetDropdown.prefab (100%) rename Assets/Prefabs/Menu/Settings/{ => Presets}/PresetDropdown.prefab.meta (100%) rename Assets/Prefabs/Menu/Settings/{ => Presets}/PresetTypeDropdown.prefab (100%) rename Assets/Prefabs/Menu/Settings/{ => Presets}/PresetTypeDropdown.prefab.meta (100%) create mode 100644 Assets/Prefabs/Menu/Settings/SongManager.meta rename Assets/Prefabs/Menu/Settings/{ => SongManager}/SongManagerDirectory.prefab (100%) rename Assets/Prefabs/Menu/Settings/{ => SongManager}/SongManagerDirectory.prefab.meta (100%) rename Assets/Prefabs/Menu/Settings/{ => SongManager}/SongManagerHeader.prefab (100%) rename Assets/Prefabs/Menu/Settings/{ => SongManager}/SongManagerHeader.prefab.meta (100%) create mode 100644 Assets/Prefabs/Menu/Settings/Visuals/DMXChannelsSetting.prefab create mode 100644 Assets/Prefabs/Menu/Settings/Visuals/DMXChannelsSetting.prefab.meta create mode 100644 Assets/Script/Integration/Sacn.meta create mode 100644 Assets/Script/Integration/Sacn/SacnController.cs create mode 100644 Assets/Script/Integration/Sacn/SacnController.cs.meta create mode 100644 Assets/Script/Menu/Settings/AllSettings.meta create mode 100644 Assets/Script/Menu/Settings/AllSettings/SearchResultPopulator.cs create mode 100644 Assets/Script/Menu/Settings/AllSettings/SearchResultPopulator.cs.meta create mode 100644 Assets/Script/Menu/Settings/AllSettings/SettingCategoryView.cs create mode 100644 Assets/Script/Menu/Settings/AllSettings/SettingCategoryView.cs.meta create mode 100644 Assets/Script/Menu/Settings/AllSettings/SettingSearchResult.cs create mode 100644 Assets/Script/Menu/Settings/AllSettings/SettingSearchResult.cs.meta create mode 100644 Assets/Script/Menu/Settings/Presets.meta rename Assets/Script/Menu/Settings/{ => Presets}/PresetActions.cs (100%) rename Assets/Script/Menu/Settings/{ => Presets}/PresetActions.cs.meta (100%) rename Assets/Script/Menu/Settings/{ => Presets}/PresetDropdown.cs (100%) rename Assets/Script/Menu/Settings/{ => Presets}/PresetDropdown.cs.meta (100%) rename Assets/Script/Menu/Settings/{ => Presets}/PresetTypeDropdown.cs (100%) rename Assets/Script/Menu/Settings/{ => Presets}/PresetTypeDropdown.cs.meta (100%) create mode 100644 Assets/Script/Menu/Settings/SongManager.meta rename Assets/Script/Menu/Settings/{ => SongManager}/SettingsDirectory.cs (100%) rename Assets/Script/Menu/Settings/{ => SongManager}/SettingsDirectory.cs.meta (100%) rename Assets/Script/Menu/Settings/{ => SongManager}/SongManagerHeader.cs (100%) rename Assets/Script/Menu/Settings/{ => SongManager}/SongManagerHeader.cs.meta (100%) create mode 100644 Assets/Script/Menu/Settings/Visuals/DMXChannelsSettingVisual.cs create mode 100644 Assets/Script/Menu/Settings/Visuals/DMXChannelsSettingVisual.cs.meta create mode 100644 Assets/Script/Settings/Metadata/Tabs/AllSettingsTab.cs create mode 100644 Assets/Script/Settings/Metadata/Tabs/AllSettingsTab.cs.meta create mode 100644 Assets/Script/Settings/Types/DMXChannelsSetting.cs create mode 100644 Assets/Script/Settings/Types/DMXChannelsSetting.cs.meta diff --git a/Assembly-CSharp.csproj.DotSettings b/Assembly-CSharp.csproj.DotSettings index ab7f111c0..fe5f77cd6 100644 --- a/Assembly-CSharp.csproj.DotSettings +++ b/Assembly-CSharp.csproj.DotSettings @@ -48,6 +48,8 @@ True True True + True + True True True True diff --git a/Assets/Art/Menu/Common/Icons/AssortedIcons.png b/Assets/Art/Menu/Common/Icons/AssortedIcons.png index f3a0e9cff..5498b4a9b 100644 --- a/Assets/Art/Menu/Common/Icons/AssortedIcons.png +++ b/Assets/Art/Menu/Common/Icons/AssortedIcons.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:26c033dfc18038baa0d92ac6899df87fd84b700b766c0ee52da7e378c8edd9ac -size 23337 +oid sha256:b69323522c959c1101b50adfc7278d7f072cf994dc155142fb6b5d39589a158e +size 34943 diff --git a/Assets/Art/Menu/Common/Icons/AssortedIcons.png.meta b/Assets/Art/Menu/Common/Icons/AssortedIcons.png.meta index 5da03122f..df2e22f04 100644 --- a/Assets/Art/Menu/Common/Icons/AssortedIcons.png.meta +++ b/Assets/Art/Menu/Common/Icons/AssortedIcons.png.meta @@ -260,7 +260,7 @@ TextureImporter: width: 128 height: 128 alignment: 0 - pivot: {x: 0, y: 0} + pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] @@ -272,6 +272,27 @@ TextureImporter: indices: edges: [] weights: [] + - serializedVersion: 2 + name: UIIcons_8 + rect: + serializedVersion: 2 + x: 0 + y: 128 + width: 128 + height: 128 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: df22b3e2b5aca3c49b867ac359a24dba + internalID: -159250094 + vertices: [] + indices: + edges: [] + weights: [] outline: [] physicsShape: [] bones: [] @@ -291,6 +312,7 @@ TextureImporter: UIIcons_5: -1461395519 UIIcons_6: 259208894 UIIcons_7: 1674151241 + UIIcons_8: -159250094 spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Art/Menu/Common/Icons/TabIcons.png b/Assets/Art/Menu/Common/Icons/TabIcons.png index ea1591403..2e3da5358 100644 --- a/Assets/Art/Menu/Common/Icons/TabIcons.png +++ b/Assets/Art/Menu/Common/Icons/TabIcons.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a83da8cd8415308f0c13b57b2ede3fe14d531e33b0326fe982e9744b52c96933 -size 4881 +oid sha256:9aa8e12491cda0849443e4dc9af823a9812d289126723606489adea573362cee +size 9395 diff --git a/Assets/Art/Menu/Common/Icons/TabIcons.png.meta b/Assets/Art/Menu/Common/Icons/TabIcons.png.meta index f000f5dd4..69e4f9d68 100644 --- a/Assets/Art/Menu/Common/Icons/TabIcons.png.meta +++ b/Assets/Art/Menu/Common/Icons/TabIcons.png.meta @@ -260,7 +260,7 @@ TextureImporter: width: 64 height: 64 alignment: 0 - pivot: {x: 0, y: 0} + pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] @@ -281,7 +281,7 @@ TextureImporter: width: 64 height: 64 alignment: 0 - pivot: {x: 0, y: 0} + pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] @@ -293,6 +293,69 @@ TextureImporter: indices: edges: [] weights: [] + - serializedVersion: 2 + name: Files + rect: + serializedVersion: 2 + x: 64 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4b553e62c6827c6448fb0275c8b84845 + internalID: 2001280944 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Lighting + rect: + serializedVersion: 2 + x: 128 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: d7cb6784b5bd165489ba6f10773a2b1b + internalID: -711394195 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Debug + rect: + serializedVersion: 2 + x: 192 + y: 64 + width: 64 + height: 64 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 74fcc80e958f2ba4e82e26a1b83aa7ac + internalID: 1334840911 + vertices: [] + indices: + edges: [] + weights: [] outline: [] physicsShape: [] bones: [] @@ -306,11 +369,14 @@ TextureImporter: nameFileIdTable: Credits: 1937860847 Customization: 1860848380 + Debug: 1334840911 Display: -2102064641 Engine: -1055201595 + Files: 2001280944 Generic: 948285804 History: -1967022677 Import: -345837708 + Lighting: -711394195 Songs: -1793394884 Sound: -812806453 spritePackingTag: diff --git a/Assets/Plugins/Haukcode.sACN.meta b/Assets/Plugins/Haukcode.sACN.meta new file mode 100644 index 000000000..b9714fe64 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 645ae5c9169894440b13664ce76fc708 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/BigEndianBinaryWriter.cs b/Assets/Plugins/Haukcode.sACN/BigEndianBinaryWriter.cs new file mode 100644 index 000000000..8ad23fbe9 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/BigEndianBinaryWriter.cs @@ -0,0 +1,111 @@ +using System; +using System.Linq; +using System.Text; + +namespace Haukcode.sACN +{ + internal class BigEndianBinaryWriter + { + private int writePosition = 0; + private readonly Memory buffer; + + public BigEndianBinaryWriter(Memory buffer) + { + this.buffer = buffer; + } + + public int WrittenBytes => writePosition; + + public Memory Memory => buffer.Slice(writePosition); + + public void WriteByte(byte value) + { + var span = buffer.Span; + + span[writePosition++] = (byte)value; + } + + public void WriteShort(short value) + { + var span = buffer.Span; + + span[writePosition++] = (byte)(value >> 8); + span[writePosition++] = (byte)value; + } + + public void WriteUShort(ushort value) + { + var span = buffer.Span; + + span[writePosition++] = (byte)(value >> 8); + span[writePosition++] = (byte)value; + } + + public void WriteInt32(int value) + { + var span = buffer.Span; + + span[writePosition++] = (byte)(value >> 24); + span[writePosition++] = (byte)(value >> 16); + span[writePosition++] = (byte)(value >> 8); + span[writePosition++] = (byte)value; + } + + public void WriteBytes(byte[] bytes) + { + bytes.CopyTo(buffer[writePosition..].Span); + + writePosition += bytes.Length; + } + + public void WriteBytes(ReadOnlyMemory bytes) + { + bytes.Span.CopyTo(buffer[writePosition..].Span); + + writePosition += bytes.Length; + } + + public void WriteString(string value, int length) + { + //FIXME + WriteBytes(Encoding.UTF8.GetBytes(value)); + WriteBytes(Enumerable.Repeat((byte)0, length - value.Length).ToArray()); + } + + private byte[] GuidToByteArray(Guid input) + { + var bytes = input.ToByteArray(); + + return new byte[] { + bytes[3], + bytes[2], + bytes[1], + bytes[0], + + bytes[5], + bytes[4], + + bytes[7], + bytes[6], + + bytes[8], + bytes[9], + + bytes[10], + bytes[11], + bytes[12], + bytes[13], + bytes[14], + bytes[15] + }; + } + + public void WriteGuid(Guid value) + { + // Fixme + var bytes = GuidToByteArray(value); + + WriteBytes(bytes); + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/BigEndianBinaryWriter.cs.meta b/Assets/Plugins/Haukcode.sACN/BigEndianBinaryWriter.cs.meta new file mode 100644 index 000000000..46bc0f4e8 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/BigEndianBinaryWriter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca381c7006e070948b75d3d086b1e7f5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model.meta b/Assets/Plugins/Haukcode.sACN/Model.meta new file mode 100644 index 000000000..fa4d22b2f --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ffa0a0b095d11a4eb9cf12d0fbd22cb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model/DMPLayer.cs b/Assets/Plugins/Haukcode.sACN/Model/DMPLayer.cs new file mode 100644 index 000000000..ac3025191 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/DMPLayer.cs @@ -0,0 +1,42 @@ +using System; + +namespace Haukcode.sACN.Model +{ + public class DMPLayer + { + public const byte DMP_VECTOR = 2; + public const byte ADDRESS_TYPE_AND_DATA_TYPE = 0xA1; + public const short FIRST_PROPERTY_ADDRESS = 0x00; + public const short ADDRESS_INCREMENT = 1; + + public byte StartCode { get; set; } + + public short Length { get { return (short)(11 + Data.Length); } } + + public ReadOnlyMemory Data { get; set; } + + public DMPLayer(ReadOnlyMemory data, byte startCode = 0x00) + { + Data = data; + StartCode = startCode; + } + + public int WriteToBuffer(Memory buffer) + { + var writer = new BigEndianBinaryWriter(buffer); + + ushort flagsAndDMPLength = (ushort)(SACNDataPacket.FLAGS | (ushort)Length); + + writer.WriteUShort(flagsAndDMPLength); + writer.WriteByte(DMP_VECTOR); + writer.WriteByte(ADDRESS_TYPE_AND_DATA_TYPE); + writer.WriteShort(FIRST_PROPERTY_ADDRESS); + writer.WriteShort(ADDRESS_INCREMENT); + writer.WriteShort((short)(Data.Length + 1)); + writer.WriteByte(StartCode); + writer.WriteBytes(Data); + + return writer.WrittenBytes; + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/Model/DMPLayer.cs.meta b/Assets/Plugins/Haukcode.sACN/Model/DMPLayer.cs.meta new file mode 100644 index 000000000..3029a9dbb --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/DMPLayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 16c89a06b6ed7d544b2825eba53ffc1d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model/DataFramingLayer.cs b/Assets/Plugins/Haukcode.sACN/Model/DataFramingLayer.cs new file mode 100644 index 000000000..049130864 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/DataFramingLayer.cs @@ -0,0 +1,58 @@ +using System; + + +namespace Haukcode.sACN.Model +{ + public class DataFramingLayer : FramingLayer + { + public const int SourceNameLength = 64; + + public DMPLayer DMPLayer { get; set; } + + public override ushort Length { get { return (ushort)(13 + SourceNameLength + DMPLayer.Length); } } + + public string SourceName { get; set; } + + public ushort UniverseId { get; set; } + + public byte Priority { get; set; } + + public ushort SyncAddress { get; set; } + + public FramingOptions Options { get; set; } + + public override int RootVector => RootLayer.VECTOR_ROOT_E131_DATA; + + public DataFramingLayer(string sourceName, ushort universeId, byte sequenceId, ReadOnlyMemory data, byte priority, ushort syncAddress = 0, byte startCode = 0) + : base(sequenceId) + { + SourceName = sourceName; + UniverseId = universeId; + DMPLayer = new DMPLayer(data, startCode); + Priority = priority; + SyncAddress = syncAddress; + Options = new FramingOptions(); + } + + public DataFramingLayer() + { + } + + public override int WriteToBuffer(Memory buffer) + { + var writer = new BigEndianBinaryWriter(buffer); + + ushort flagsAndFramingLength = (ushort)(SACNPacket.FLAGS | Length); + writer.WriteUShort(flagsAndFramingLength); + writer.WriteInt32(VECTOR_E131_DATA_PACKET); + writer.WriteString(SourceName, 64); + writer.WriteByte(Priority); + writer.WriteUShort(SyncAddress); + writer.WriteByte(SequenceId); + writer.WriteByte(Options.ToByte()); + writer.WriteUShort(UniverseId); + + return writer.WrittenBytes + DMPLayer.WriteToBuffer(writer.Memory); + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/Model/DataFramingLayer.cs.meta b/Assets/Plugins/Haukcode.sACN/Model/DataFramingLayer.cs.meta new file mode 100644 index 000000000..e6205f1c1 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/DataFramingLayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9b41620be6ab3a94cbbb25b7f0a211f8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model/FramingLayer.cs b/Assets/Plugins/Haukcode.sACN/Model/FramingLayer.cs new file mode 100644 index 000000000..0367e02b5 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/FramingLayer.cs @@ -0,0 +1,27 @@ +using System; + +namespace Haukcode.sACN.Model +{ + public abstract class FramingLayer + { + public const int VECTOR_E131_DATA_PACKET = 0x00000002; + public const int VECTOR_E131_EXTENDED_SYNCHRONIZATION = 0x00000001; + + public abstract ushort Length { get; } + + public byte SequenceId { get; set; } + + public abstract int RootVector { get; } + + public FramingLayer(byte sequenceId) + { + SequenceId = sequenceId; + } + + public FramingLayer() + { + } + + public abstract int WriteToBuffer(Memory buffer); + } +} diff --git a/Assets/Plugins/Haukcode.sACN/Model/FramingLayer.cs.meta b/Assets/Plugins/Haukcode.sACN/Model/FramingLayer.cs.meta new file mode 100644 index 000000000..4a816ed0e --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/FramingLayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 484abccbdd248c4419edf3e96ec5e80c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model/FramingOptions.cs b/Assets/Plugins/Haukcode.sACN/Model/FramingOptions.cs new file mode 100644 index 000000000..45cdde4b2 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/FramingOptions.cs @@ -0,0 +1,60 @@ + +namespace Haukcode.sACN.Model +{ + public class FramingOptions + { + public const byte FORCE_SYNCHRONIZATION = 0b0000_1000; + public const byte STREAM_TERMINATED = 0b0000_0100; + public const byte PREVIEW_DATA = 0b0000_0010; + + public bool PreviewData { get; set; } + + public bool StreamTerminated { get; set; } + + public bool ForceSynchronization { get; set; } + + public FramingOptions() + { + } + + public static FramingOptions Parse(byte optionsByte) + { + var options = new FramingOptions(); + + if ((optionsByte & FORCE_SYNCHRONIZATION) != 0) + { + options.ForceSynchronization = true; + } + if ((optionsByte & STREAM_TERMINATED) != 0) + { + options.StreamTerminated = true; + } + if ((optionsByte & PREVIEW_DATA) != 0) + { + options.PreviewData = true; + } + + return options; + } + + public byte ToByte() + { + byte returnVal = 0; + + if (PreviewData) + { + returnVal = (byte)(returnVal | PREVIEW_DATA); + } + if (StreamTerminated) + { + returnVal = (byte)(returnVal | STREAM_TERMINATED); + } + if (ForceSynchronization) + { + returnVal = (byte)(returnVal | FORCE_SYNCHRONIZATION); + } + + return returnVal; + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/Model/FramingOptions.cs.meta b/Assets/Plugins/Haukcode.sACN/Model/FramingOptions.cs.meta new file mode 100644 index 000000000..1c4891692 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/FramingOptions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c2e1d139a490434b9767c6e34b42c2e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model/RootLayer.cs b/Assets/Plugins/Haukcode.sACN/Model/RootLayer.cs new file mode 100644 index 000000000..089179a47 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/RootLayer.cs @@ -0,0 +1,59 @@ +using System; + +namespace Haukcode.sACN.Model +{ + public class RootLayer + { + public const short PREAMBLE_LENGTH = 0x0010; + public const short POSTAMBLE_LENGTH = 0x0000; + public static readonly byte[] PACKET_IDENTIFIER = new byte[] { + 0x41, 0x53, 0x43, 0x2d, 0x45, + 0x31, 0x2e, 0x31, 0x37, 0x00, + 0x00, 0x00}; + public const int VECTOR_ROOT_E131_DATA = 0x00000004; + public const int VECTOR_ROOT_E131_EXTENDED = 0x00000008; + + public FramingLayer FramingLayer { get; set; } + + public short Length { get { return (short)(38 + FramingLayer.Length); } } + + public Guid UUID { get; set; } + + public RootLayer() + { + } + + public static RootLayer CreateRootLayerData(Guid uuid, string sourceName, ushort universeID, byte sequenceID, ReadOnlyMemory data, byte priority, ushort syncAddress, byte startCode = 0) + { + return new RootLayer + { + UUID = uuid, + FramingLayer = new DataFramingLayer(sourceName, universeID, sequenceID, data, priority, syncAddress, startCode) + }; + } + + public static RootLayer CreateRootLayerSync(Guid uuid, byte sequenceID, ushort syncAddress) + { + return new RootLayer + { + UUID = uuid, + FramingLayer = new SyncFramingLayer(syncAddress, sequenceID) + }; + } + + public int WriteToBuffer(Memory buffer) + { + var writer = new BigEndianBinaryWriter(buffer); + + writer.WriteShort(PREAMBLE_LENGTH); + writer.WriteShort(POSTAMBLE_LENGTH); + writer.WriteBytes(PACKET_IDENTIFIER); + ushort flagsAndRootLength = (ushort)(SACNPacket.FLAGS | (ushort)(Length - 16)); + writer.WriteUShort(flagsAndRootLength); + writer.WriteInt32(FramingLayer.RootVector); + writer.WriteGuid(UUID); + + return writer.WrittenBytes + FramingLayer.WriteToBuffer(writer.Memory); + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/Model/RootLayer.cs.meta b/Assets/Plugins/Haukcode.sACN/Model/RootLayer.cs.meta new file mode 100644 index 000000000..d21086942 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/RootLayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c21268c613f28d4cb95a19e2fa53689 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model/SACNDataPacket.cs b/Assets/Plugins/Haukcode.sACN/Model/SACNDataPacket.cs new file mode 100644 index 000000000..0a5c3fd09 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/SACNDataPacket.cs @@ -0,0 +1,25 @@ +using System; + +namespace Haukcode.sACN.Model +{ + public class SACNDataPacket : SACNPacket + { + public DataFramingLayer DataFramingLayer => (DataFramingLayer)RootLayer.FramingLayer; + + public string SourceName { get { return DataFramingLayer.SourceName; } set { DataFramingLayer.SourceName = value; } } + + public byte[] DMXData => DataFramingLayer.DMPLayer.Data.ToArray(); + + public ushort UniverseId { get { return DataFramingLayer.UniverseId; } set { DataFramingLayer.UniverseId = value; } } + + public SACNDataPacket(ushort universeId, string sourceName, Guid uuid, byte sequenceId, ReadOnlyMemory data, byte priority, ushort syncAddress = 0, byte startCode = 0) + : base(RootLayer.CreateRootLayerData(uuid, sourceName, universeId, sequenceId, data, priority, syncAddress, startCode)) + { + } + + public SACNDataPacket(RootLayer rootLayer) + : base(rootLayer) + { + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/Model/SACNDataPacket.cs.meta b/Assets/Plugins/Haukcode.sACN/Model/SACNDataPacket.cs.meta new file mode 100644 index 000000000..d322777bc --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/SACNDataPacket.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e0f322c444cc4134aaca7c97023ca14d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model/SACNPacket.cs b/Assets/Plugins/Haukcode.sACN/Model/SACNPacket.cs new file mode 100644 index 000000000..e8e8e5784 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/SACNPacket.cs @@ -0,0 +1,32 @@ +using System; + +namespace Haukcode.sACN.Model +{ + public class SACNPacket + { + public const ushort FLAGS = (0x7 << 12); + public const ushort FIRST_FOUR_BITS_MASK = 0b1111_0000_0000_0000; + public const ushort LAST_TWELVE_BITS_MASK = 0b0000_1111_1111_1111; + public const int MAX_PACKET_SIZE = 638; + + public RootLayer RootLayer { get; set; } + + public FramingLayer FramingLayer => RootLayer.FramingLayer; + + public Guid UUID { get { return RootLayer.UUID; } set { RootLayer.UUID = value; } } + + public byte SequenceId { get { return FramingLayer.SequenceId; } set { FramingLayer.SequenceId = value; } } + + public int Length => RootLayer.Length; + + public SACNPacket(RootLayer rootLayer) + { + RootLayer = rootLayer; + } + + public int WriteToBuffer(Memory buffer) + { + return RootLayer.WriteToBuffer(buffer); + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/Model/SACNPacket.cs.meta b/Assets/Plugins/Haukcode.sACN/Model/SACNPacket.cs.meta new file mode 100644 index 000000000..48b0db15b --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/SACNPacket.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 73028e7619ba3c846847aadfb5d97602 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model/SendStatistics.cs b/Assets/Plugins/Haukcode.sACN/Model/SendStatistics.cs new file mode 100644 index 000000000..58414067f --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/SendStatistics.cs @@ -0,0 +1,14 @@ + +namespace Haukcode.sACN.Model +{ + public class SendStatistics + { + public int DroppedPackets { get; set; } + + public int QueueLength { get; set; } + + public int DestinationCount { get; set; } + + public int SlowSends { get; set; } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/Model/SendStatistics.cs.meta b/Assets/Plugins/Haukcode.sACN/Model/SendStatistics.cs.meta new file mode 100644 index 000000000..b8ef5f4d6 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/SendStatistics.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2ee86228c649c904a883c08dfc8881e9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/Model/SyncFramingLayer.cs b/Assets/Plugins/Haukcode.sACN/Model/SyncFramingLayer.cs new file mode 100644 index 000000000..9eddf8cca --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/SyncFramingLayer.cs @@ -0,0 +1,37 @@ +using System; + +namespace Haukcode.sACN.Model +{ + public class SyncFramingLayer : FramingLayer + { + public override ushort Length { get { return 11; } } + + public ushort SyncAddress { get; set; } + + public override int RootVector => RootLayer.VECTOR_ROOT_E131_EXTENDED; + + public SyncFramingLayer(ushort syncAddress, byte sequenceID) + : base(sequenceID) + { + SyncAddress = syncAddress; + } + + public SyncFramingLayer() + { + } + + public override int WriteToBuffer(Memory buffer) + { + var writer = new BigEndianBinaryWriter(buffer); + + ushort flagsAndFramingLength = (ushort)(SACNPacket.FLAGS | Length); + writer.WriteUShort(flagsAndFramingLength); + writer.WriteInt32(VECTOR_E131_EXTENDED_SYNCHRONIZATION); + writer.WriteByte(SequenceId); + writer.WriteUShort(SyncAddress); + writer.WriteUShort((ushort)0); + + return writer.WrittenBytes; + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/Model/SyncFramingLayer.cs.meta b/Assets/Plugins/Haukcode.sACN/Model/SyncFramingLayer.cs.meta new file mode 100644 index 000000000..6a25cdc29 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/Model/SyncFramingLayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f28763268a971fa47ab133ef0c37492b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/README.txt b/Assets/Plugins/Haukcode.sACN/README.txt new file mode 100644 index 000000000..944ed9ebe --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/README.txt @@ -0,0 +1,11 @@ +This library is a modified version of Haukcode.sACN. +The orginial can be found here: https://github.com/HakanL/Haukcode.sACN + +Modifications made are: +1) Removal of all code related to reading packets, not needed. +2) Removal of GC.AllocateArray, unity doesn't support it. +3) Small adjustment to SendToAsync call, to make unity happy. + +"If you're robbing a bank and your pants fall down, I think it's okay to laugh and to let the hostages laugh too, because, come on, life is funny." + +- Jack Handey. \ No newline at end of file diff --git a/Assets/Plugins/Haukcode.sACN/README.txt.meta b/Assets/Plugins/Haukcode.sACN/README.txt.meta new file mode 100644 index 000000000..44ec45f66 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/README.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e1b264f54d002be4ca6466300bd511fc +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/SACNClient.cs b/Assets/Plugins/Haukcode.sACN/SACNClient.cs new file mode 100644 index 000000000..f9ca768e7 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/SACNClient.cs @@ -0,0 +1,516 @@ +using System; +using System.Buffers; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using System.Threading.Tasks; +using Haukcode.sACN.Model; +using UniRx; + +namespace Haukcode.sACN +{ + public class SACNClient : IDisposable + { + public class SendSocketData + { + public Socket Socket; + + public IPEndPoint Destination; + + public Memory SendBufferMem; + + } + + public class SendData + { + public ushort UniverseId; + + public IPEndPoint Destination; + + public IMemoryOwner Data; + + public int DataLength; + + public Stopwatch Enqueued; + + public double AgeMS => Enqueued.Elapsed.TotalMilliseconds; + + public SendData() + { + Enqueued = Stopwatch.StartNew(); + } + } + private const int ReceiveBufferSize = 20480; + private const int SendBufferSize = 1024; + private static readonly IPEndPoint _blankEndpoint = new(IPAddress.Any, 0); + + private readonly Socket listenSocket; + private readonly ISubject errorSubject; + private readonly Dictionary sequenceIds = new(); + private readonly Dictionary sequenceIdsSync = new(); + private readonly object lockObject = new(); + private readonly HashSet dmxUniverses = new(); + private readonly Memory receiveBufferMem; + private readonly Stopwatch clock = new(); + private readonly Task receiveTask; + private readonly Task sendTask; + private readonly CancellationTokenSource shutdownCTS = new(); + private readonly Dictionary endPointCache = new(); + private readonly ConcurrentDictionary universeSockets = new(); + private readonly IPEndPoint localEndPoint; + private readonly BlockingCollection sendQueue = new(); + private readonly MemoryPool memoryPool = MemoryPool.Shared; + private int droppedPackets; + private int slowSends; + private readonly HashSet<(IPAddress Destination, ushort UniverseId)> usedDestinations = new(); + + public SACNClient(Guid senderId, string senderName, IPAddress localAddress, int port = 5568) + { + if (senderId == Guid.Empty) + { + throw new ArgumentException("Invalid sender Id", nameof(senderId)); + } + + SenderId = senderId; + + SenderName = senderName; + + if (port <= 0) + { + throw new ArgumentException("Invalid port", nameof(port)); + } + + Port = port; + localEndPoint = new IPEndPoint(localAddress, port); + var receiveBuffer = new byte[ReceiveBufferSize]; + receiveBufferMem = receiveBuffer.AsMemory(); + errorSubject = new Subject(); + listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + + // Set the SIO_UDP_CONNRESET ioctl to true for this UDP socket. If this UDP socket + // ever sends a UDP packet to a remote destination that exists but there is + // no socket to receive the packet, an ICMP port unreachable message is returned + // to the sender. By default, when this is received the next operation on the + // UDP socket that send the packet will receive a SocketException. The native + // (Winsock) error that is received is WSAECONNRESET (10054). Since we don't want + // to wrap each UDP socket operation in a try/except, we'll disable this error + // for the socket with this ioctl call. + try + { + uint IOC_IN = 0x80000000; + uint IOC_VENDOR = 0x18000000; + uint SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12; + + byte[] optionInValue = { Convert.ToByte(false) }; + byte[] optionOutValue = new byte[4]; + listenSocket.IOControl((int)SIO_UDP_CONNRESET, optionInValue, optionOutValue); + } + catch + { + Debug.WriteLine("Unable to set SIO_UDP_CONNRESET, maybe not supported."); + } + + listenSocket.ExclusiveAddressUse = false; + listenSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); + listenSocket.Bind(new IPEndPoint(IPAddress.Any, port)); + // Only join local LAN group + listenSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 1); + + sendTask = Task.Run(Sender); + } + + public bool IsOperational => !this.shutdownCTS.IsCancellationRequested; + + private void ConfigureSendSocket(Socket socket) + { + socket.SendBufferSize = 1400; + + // Set the SIO_UDP_CONNRESET ioctl to true for this UDP socket. If this UDP socket + // ever sends a UDP packet to a remote destination that exists but there is + // no socket to receive the packet, an ICMP port unreachable message is returned + // to the sender. By default, when this is received the next operation on the + // UDP socket that send the packet will receive a SocketException. The native + // (Winsock) error that is received is WSAECONNRESET (10054). Since we don't want + // to wrap each UDP socket operation in a try/except, we'll disable this error + // for the socket with this ioctl call. + try + { + uint IOC_IN = 0x80000000; + uint IOC_VENDOR = 0x18000000; + uint SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12; + + byte[] optionInValue = { Convert.ToByte(false) }; + byte[] optionOutValue = new byte[4]; + socket.IOControl((int)SIO_UDP_CONNRESET, optionInValue, optionOutValue); + } + catch + { + Debug.WriteLine("Unable to set SIO_UDP_CONNRESET, maybe not supported."); + } + + socket.ExclusiveAddressUse = false; + socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); + + socket.Bind(this.localEndPoint); + + // Multicast socket settings + socket.DontFragment = true; + socket.MulticastLoopback = false; + + // Only join local LAN group + socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 1); + } + + public int Port { get; } + + public Guid SenderId { get; } + + public string SenderName { get; } + + public UniRx.IObservable OnError => this.errorSubject.AsObservable(); + + public SendStatistics SendStatistics + { + get + { + var sendStatistics = new SendStatistics + { + DroppedPackets = this.droppedPackets, + QueueLength = this.sendQueue.Count, + SlowSends = this.slowSends, + DestinationCount = this.usedDestinations.Count + }; + + // Reset + this.droppedPackets = 0; + this.slowSends = 0; + this.usedDestinations.Clear(); + + return sendStatistics; + } + } + + /// + /// Gets a list of dmx universes this socket has joined to + /// + public IReadOnlyCollection DMXUniverses => dmxUniverses.ToList(); + private async Task Sender() + { + while (!shutdownCTS.IsCancellationRequested) + { + var sendData = sendQueue.Take(shutdownCTS.Token); + + try + { + if (sendData.AgeMS > 100) + { + // Old, discard + droppedPackets++; + //Console.WriteLine($"Age {sendData.Enqueued.Elapsed.TotalMilliseconds:N2} queue length = {this.sendQueue.Count} Dropped = {this.droppedPackets}"); + continue; + } + + var socketData = GetSendSocket(sendData.UniverseId); + + var watch = Stopwatch.StartNew(); + byte[] dataBytes = sendData.Data.Memory[..sendData.DataLength].ToArray(); + await socketData.Socket.SendToAsync(dataBytes, SocketFlags.None, sendData.Destination ?? socketData.Destination); + watch.Stop(); + + if (watch.ElapsedMilliseconds > 20) + { + slowSends++; + } + } + catch (Exception ex) + { + if (ex is OperationCanceledException) + continue; + + errorSubject.OnNext(ex); + + if (ex is System.Net.Sockets.SocketException) + { + // Network unreachable + shutdownCTS.Cancel(); + break; + } + } + finally + { + // Return to pool + sendData.Data.Dispose(); + } + } + } + + private SendSocketData GetSendSocket(ushort universeId) + { + if (!universeSockets.TryGetValue(universeId, out var socketData)) + { + var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + ConfigureSendSocket(socket); + + var sendBuffer = new byte[SendBufferSize]; + + socketData = new SendSocketData + { + Socket = socket, + Destination = new IPEndPoint(SACNCommon.GetMulticastAddress(universeId), Port), + SendBufferMem = sendBuffer.AsMemory() + }; + universeSockets.TryAdd(universeId, socketData); + } + + return socketData; + } + + public void JoinDMXUniverse(ushort universeId) + { + if (dmxUniverses.Contains(universeId)) + throw new InvalidOperationException($"You have already joined the DMX Universe {universeId}"); + + // Join group + var option = new MulticastOption(SACNCommon.GetMulticastAddress(universeId), localEndPoint.Address); + listenSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, option); + + // Add to the list of universes we have joined + dmxUniverses.Add(universeId); + } + + public void DropDMXUniverse(ushort universeId) + { + if (!dmxUniverses.Contains(universeId)) + throw new InvalidOperationException($"You are trying to drop the DMX Universe {universeId} but you are not a member"); + + // Drop group + var option = new MulticastOption(SACNCommon.GetMulticastAddress(universeId), this.localEndPoint.Address); + listenSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.DropMembership, option); + + // Remove from the list of universes we have joined + dmxUniverses.Remove(universeId); + } + + /// + /// Multicast send data + /// + /// The universe Id to multicast to + /// Up to 512 bytes of DMX data + /// Priority (default 100) + /// Sync universe id + /// Start code (default 0) + public void SendMulticast(ushort universeId, ReadOnlyMemory data, byte priority = 100, ushort syncAddress = 0, byte startCode = 0) + { + byte sequenceId = GetNewSequenceId(universeId); + + var packet = new SACNDataPacket(universeId, SenderName, SenderId, sequenceId, data, priority, syncAddress, startCode); + + SendPacket(universeId, packet); + } + + /// + /// Unicast send data + /// + /// The address to unicast to + /// The Universe ID + /// Up to 512 bytes of DMX data + /// Sync universe id + /// Start code (default 0) + public void SendUnicast(IPAddress address, ushort universeId, ReadOnlyMemory data, byte priority = 100, ushort syncAddress = 0, byte startCode = 0) + { + byte sequenceId = GetNewSequenceId(universeId); + + var packet = new SACNDataPacket(universeId, SenderName, SenderId, sequenceId, data, priority, syncAddress, startCode); + + SendPacket(universeId, address, packet); + } + + /// + /// Multicast send sync + /// + /// Sync universe id + public void SendMulticastSync(ushort syncAddress) + { + byte sequenceId = GetNewSequenceIdSync(syncAddress); + + var packet = new SACNPacket(new RootLayer + { + UUID = SenderId, + FramingLayer = new SyncFramingLayer + { + SequenceId = sequenceId, + SyncAddress = syncAddress + } + }); + + SendPacket(syncAddress, packet); + } + + /// + /// Unicast send sync + /// + /// Sync universe id + public void SendUnicastSync(IPAddress address, ushort syncAddress) + { + byte sequenceId = GetNewSequenceIdSync(syncAddress); + + var packet = new SACNPacket(new RootLayer + { + UUID = SenderId, + FramingLayer = new SyncFramingLayer + { + SequenceId = sequenceId, + SyncAddress = syncAddress + } + }); + SendPacket(syncAddress, address, packet); + } + + /// + /// Send packet + /// + /// Universe Id + /// Destination + /// Packet + public void SendPacket(ushort universeId, IPAddress destination, SACNPacket packet) + { + if (!endPointCache.TryGetValue(destination, out var ipEndPoint)) + { + ipEndPoint = new IPEndPoint(destination, Port); + endPointCache.Add(destination, ipEndPoint); + } + + var memory = memoryPool.Rent(packet.Length); + + int packetLength = packet.WriteToBuffer(memory.Memory); + + var newSendData = new SendData + { + Data = memory, + UniverseId = universeId, + DataLength = packetLength, + Destination = ipEndPoint + }; + + usedDestinations.Add((destination, universeId)); + + if (IsOperational) + sendQueue.Add(newSendData); + } + + /// + /// Send packet + /// + /// Universe Id + /// Packet + public void SendPacket(ushort universeId, SACNPacket packet) + { + var memory = memoryPool.Rent(packet.Length); + + int packetLength = packet.WriteToBuffer(memory.Memory); + + var newSendData = new SendData + { + Data = memory, + UniverseId = universeId, + DataLength = packetLength + }; + + usedDestinations.Add((null, universeId)); + if (IsOperational) + { + sendQueue.Add(newSendData); + } + else + { + // Clear queue + while (sendQueue.TryTake(out _)); + } + } + + public void WarmUpSockets(IEnumerable universeIds) + { + foreach (ushort universeId in universeIds) + { + GetSendSocket(universeId); + } + } + + private byte GetNewSequenceId(ushort universeId) + { + lock (lockObject) + { + sequenceIds.TryGetValue(universeId, out byte sequenceId); + + sequenceId++; + + sequenceIds[universeId] = sequenceId; + + return sequenceId; + } + } + + private byte GetNewSequenceIdSync(ushort syncAddress) + { + lock (lockObject) + { + sequenceIdsSync.TryGetValue(syncAddress, out byte sequenceId); + + sequenceId++; + + sequenceIdsSync[syncAddress] = sequenceId; + + return sequenceId; + } + } + + public void Dispose() + { + shutdownCTS.Cancel(); + + foreach (var kvp in universeSockets) + { + try + { + kvp.Value.Socket.Shutdown(SocketShutdown.Both); + kvp.Value.Socket.Close(); + kvp.Value.Socket.Dispose(); + } + catch + { + // Ignore errors + } + } + + try + { + listenSocket.Shutdown(SocketShutdown.Both); + } + catch + { + // Ignore errors + } + + if (receiveTask?.IsCanceled == false) + { + receiveTask?.Wait(); + } + + receiveTask?.Dispose(); + + if (sendTask?.IsCanceled == false) + { + sendTask?.Wait(); + } + + sendTask?.Dispose(); + + listenSocket.Close(); + listenSocket.Dispose(); + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/SACNClient.cs.meta b/Assets/Plugins/Haukcode.sACN/SACNClient.cs.meta new file mode 100644 index 000000000..33e195ec2 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/SACNClient.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ab6d495e013c7c64e8b0fa996a172f88 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/SACNCommon.cs b/Assets/Plugins/Haukcode.sACN/SACNCommon.cs new file mode 100644 index 000000000..00f30cdbd --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/SACNCommon.cs @@ -0,0 +1,155 @@ +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.NetworkInformation; + +namespace Haukcode.sACN +{ + public static class SACNCommon + { + // multicast address for sACN + // 239.255.x.x where .x.x is the universe + static byte MULTICAST_BYTE_1 = (byte)239; + static byte MULTICAST_BYTE_2 = (byte)255; + public static int SACN_PORT = 5568; + + public class Adapter + { + private readonly NetworkInterface networkInterface; + + public NetworkInterfaceType Type => networkInterface.NetworkInterfaceType; + + public string Id => networkInterface.Id; + + public string Name => networkInterface.Name; + + public string Description => networkInterface.Description; + + public byte[] PhysicalAddress { get; private set; } + + public string DisplayName + { + get + { + if (Name == Description) + { + return Name; + } + else + { + return $"{Name} ({Description})"; + } + } + } + + public bool IsHyperV => PhysicalAddress?.Length == 6 && PhysicalAddress[0] == 0x00 && PhysicalAddress[1] == 0x15 && PhysicalAddress[2] == 0x5D; + + public IList<(IPAddress IP, IPAddress NetMask)> AllIpv4Addresses => networkInterface.GetIPProperties().UnicastAddresses + .Where(x => x.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) + .Select(x => (x.Address, x.IPv4Mask)) + .ToList(); + + public Adapter(NetworkInterface input) + { + networkInterface = input; + + PhysicalAddress = input.GetPhysicalAddress().GetAddressBytes(); + } + } + + /// + /// Get Multicast address from universe id + /// + /// Universe Id + /// + public static IPAddress GetMulticastAddress(ushort universeId) + { + byte highUniverseId = (byte)(universeId >> 8); + byte lowUniverseId = (byte)(universeId & 0xFF); + var multicastAddress = new IPAddress(new byte[] { MULTICAST_BYTE_1, MULTICAST_BYTE_2, highUniverseId, lowUniverseId }); + + return multicastAddress; + } + + public static IEnumerable GetAddressesFromInterfaceType(NetworkInterfaceType[] interfaceTypes, bool excludeHyperV = true) + { + foreach (NetworkInterface adapter in NetworkInterface.GetAllNetworkInterfaces()) + { + if (adapter.SupportsMulticast && interfaceTypes.Contains(adapter.NetworkInterfaceType) && + (adapter.OperationalStatus == OperationalStatus.Up || adapter.OperationalStatus == OperationalStatus.Unknown)) + { +#if DEBUG + if (adapter.Name.Contains("Docker")) + // Skip Docker virtual adapters + continue; +#endif + var result = new Adapter(adapter); + if (excludeHyperV && result.IsHyperV) + continue; + + // Only include adapters with IPv4 address(es) + if (!result.AllIpv4Addresses.Any()) + continue; + + yield return result; + } + } + } + + /// + /// Return list of ethernet and WiFi network adapters + /// + /// List of name and IPAddress + public static IList<(string AdapterName, string Description, IPAddress IPAddress, IPAddress NetMask)> GetCommonInterfaces(bool excludeHyperV = true) + { + var list = new List<(string AdapterName, string Description, IPAddress IPAddress, IPAddress NetMask)>(); + + foreach (var adapter in GetCommonAdapters(excludeHyperV)) + { + list.AddRange(adapter.AllIpv4Addresses.Select(x => (adapter.Name, adapter.Description, x.IP, x.NetMask))); + } + + return list; + } + + /// + /// Return list of ethernet and WiFi network adapters + /// + /// List of name and IPAddress + public static IList GetCommonAdapters(bool excludeHyperV = true) + { + var adapters = GetAddressesFromInterfaceType(new NetworkInterfaceType[] { NetworkInterfaceType.Ethernet, NetworkInterfaceType.Wireless80211 }, excludeHyperV); + + return adapters.ToList(); + } + + /// + /// Find first matching local IPAddress, first ethernet, then WiFi + /// + /// Local IPAddress, netmask, mac + public static (IPAddress IPAddress, IPAddress NetMask, byte[] MacAddress) GetFirstBindAddress() + { + var adapters = GetCommonAdapters(); + + // Try Ethernet first + var firstEthernetAdapter = adapters.FirstOrDefault(x => x.Type == NetworkInterfaceType.Ethernet); + if (firstEthernetAdapter != null) + { + var firstIpv4 = firstEthernetAdapter.AllIpv4Addresses.First(); + + return (firstIpv4.IP, firstIpv4.NetMask, firstEthernetAdapter.PhysicalAddress); + } + + // Then Wifi + var firstWifiAdapter = adapters.FirstOrDefault(x => x.Type == NetworkInterfaceType.Wireless80211); + if (firstWifiAdapter != null) + { + var firstIpv4 = firstWifiAdapter.AllIpv4Addresses.First(); + + return (firstIpv4.IP, firstIpv4.NetMask, firstWifiAdapter.PhysicalAddress); + } + + return (null, null, null); + } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/SACNCommon.cs.meta b/Assets/Plugins/Haukcode.sACN/SACNCommon.cs.meta new file mode 100644 index 000000000..6d2541683 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/SACNCommon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9aab4d911ed1c174a85539142ae550cd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Haukcode.sACN/SendData.cs b/Assets/Plugins/Haukcode.sACN/SendData.cs new file mode 100644 index 000000000..26672ffc4 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/SendData.cs @@ -0,0 +1,11 @@ +using System.Net; + +namespace Haukcode.sACN +{ + public class SendData + { + public IPEndPoint EndPoint { get; set; } + + public byte[] Data { get; set; } + } +} diff --git a/Assets/Plugins/Haukcode.sACN/SendData.cs.meta b/Assets/Plugins/Haukcode.sACN/SendData.cs.meta new file mode 100644 index 000000000..9c5254672 --- /dev/null +++ b/Assets/Plugins/Haukcode.sACN/SendData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ef2ec763f316a3b4a87c57e49d9d13cf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Menu/Common/InputField.prefab b/Assets/Prefabs/Menu/Common/InputField.prefab index 8820b7eb8..ac425f1dd 100644 --- a/Assets/Prefabs/Menu/Common/InputField.prefab +++ b/Assets/Prefabs/Menu/Common/InputField.prefab @@ -470,16 +470,16 @@ MonoBehaviour: m_Calls: [] m_text: Enter text... m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 65a8a6500dc773741bd815e54cd7c1ec, type: 2} - m_sharedMaterial: {fileID: -8996134669666270778, guid: 65a8a6500dc773741bd815e54cd7c1ec, + m_fontAsset: {fileID: 11400000, guid: 1bd6600681c6d27448f1afac31500cf5, type: 2} + m_sharedMaterial: {fileID: -1714122762355271036, guid: 1bd6600681c6d27448f1afac31500cf5, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 452984831 - m_fontColor: {r: 1, g: 1, b: 1, a: 0.101960786} + rgba: 4284959799 + m_fontColor: {r: 0.21568628, g: 0.29803923, b: 0.40392157, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: diff --git a/Assets/Prefabs/Menu/Common/ScrollView.prefab b/Assets/Prefabs/Menu/Common/ScrollView.prefab index 05c05b9d1..052374c8e 100644 --- a/Assets/Prefabs/Menu/Common/ScrollView.prefab +++ b/Assets/Prefabs/Menu/Common/ScrollView.prefab @@ -143,6 +143,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 375337769934742335} + - component: {fileID: 2823950037594896512} + - component: {fileID: 3650756062945204236} m_Layer: 5 m_Name: Content m_TagString: Untagged @@ -170,6 +172,44 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 1} +--- !u!222 &2823950037594896512 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3586108267756431076} + m_CullTransparentMesh: 1 +--- !u!114 &3650756062945204236 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3586108267756431076} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1001 &4199930124255381018 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Menu/Settings/AllSettings.meta b/Assets/Prefabs/Menu/Settings/AllSettings.meta new file mode 100644 index 000000000..ec679c9ce --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/AllSettings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1bc7d7984809c634892d0931e8de3cbe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Menu/Settings/AllSettings/SearchResultPopulator.prefab b/Assets/Prefabs/Menu/Settings/AllSettings/SearchResultPopulator.prefab new file mode 100644 index 000000000..c782effc5 --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/AllSettings/SearchResultPopulator.prefab @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7965171413183141832 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3424375327728412362} + - component: {fileID: 6080712882174621129} + m_Layer: 5 + m_Name: SearchResultPopulator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3424375327728412362 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7965171413183141832} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6080712882174621129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7965171413183141832} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d9970d4055f4142b60ee0b279e0ac7b, type: 3} + m_Name: + m_EditorClassIdentifier: + _resultPrefab: {fileID: 6581774566130728290, guid: e461bf7ad8176fc4e93bf85a97adf0b0, + type: 3} diff --git a/Assets/Prefabs/Menu/Settings/AllSettings/SearchResultPopulator.prefab.meta b/Assets/Prefabs/Menu/Settings/AllSettings/SearchResultPopulator.prefab.meta new file mode 100644 index 000000000..6136e3965 --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/AllSettings/SearchResultPopulator.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 38b7af833df3b304aae452f8475324f7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Menu/Settings/AllSettings/SettingCategoryView.prefab b/Assets/Prefabs/Menu/Settings/AllSettings/SettingCategoryView.prefab new file mode 100644 index 000000000..d14aa3802 --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/AllSettings/SettingCategoryView.prefab @@ -0,0 +1,544 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4547354848194693436 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 119676128567250336} + - component: {fileID: 8016017819849911054} + - component: {fileID: 4746065817154685281} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &119676128567250336 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4547354848194693436} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5753369685943773596} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 25, y: -2} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.000002567967, y: 0.5} +--- !u!222 &8016017819849911054 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4547354848194693436} + m_CullTransparentMesh: 1 +--- !u!114 &4746065817154685281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4547354848194693436} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.54509807, g: 0.65882355, b: 0.75686276, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 1674151241, guid: d61b57863fe4fc742a1234c2896ca0cd, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5753369685925887173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5753369685925887170} + - component: {fileID: 5753369685925887168} + - component: {fileID: 5753369685925887171} + - component: {fileID: 7748925732419506741} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5753369685925887170 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685925887173} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5753369685943773596} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 72, y: 0} + m_SizeDelta: {x: -72, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &5753369685925887168 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685925887173} + m_CullTransparentMesh: 1 +--- !u!114 &5753369685925887171 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685925887173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Graphics Tab + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 65a8a6500dc773741bd815e54cd7c1ec, type: 2} + m_sharedMaterial: {fileID: -8996134669666270778, guid: 65a8a6500dc773741bd815e54cd7c1ec, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4290881675 + m_fontColor: {r: 0.54509807, g: 0.65882355, b: 0.75686276, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 30 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 10 + m_fontSizeMax: 14 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 1 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7748925732419506741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685925887173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StringReference: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_FormatArguments: [] + m_UpdateString: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5753369685925887171} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + references: + version: 2 + RefIds: [] +--- !u!1 &5753369685943773599 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5753369685943773596} + - component: {fileID: 4090732949192815675} + m_Layer: 5 + m_Name: SettingCategoryView + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5753369685943773596 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685943773599} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7747197678805495323} + - {fileID: 5753369685971461697} + - {fileID: 5753369685925887170} + - {fileID: 119676128567250336} + - {fileID: 3806952689718212626} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1500, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4090732949192815675 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685943773599} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9698074bf2be46c59b0710fe33bef089, type: 3} + m_Name: + m_EditorClassIdentifier: + _selectOnHover: 1 + _selectOnClick: 1 + _selectedVisual: {fileID: 8315842651880432973} + _categoryTitle: {fileID: 5753369685925887171} + _icon: {fileID: 4746065817154685281} +--- !u!1 &5753369685971461696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5753369685971461697} + - component: {fileID: 5753369685971461727} + - component: {fileID: 5753369685971461726} + m_Layer: 5 + m_Name: Divder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5753369685971461697 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685971461696} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5753369685943773596} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 2} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5753369685971461727 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685971461696} + m_CullTransparentMesh: 1 +--- !u!114 &5753369685971461726 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685971461696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.0627451, g: 0.10980392, b: 0.16862746, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7293397378745005820 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3806952689718212626} + - component: {fileID: 4964572444538978723} + - component: {fileID: 2784335949492834725} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3806952689718212626 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7293397378745005820} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5753369685943773596} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -25, y: 0} + m_SizeDelta: {x: 16, y: 29} + m_Pivot: {x: -0.000000067055225, y: 0.5} +--- !u!222 &4964572444538978723 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7293397378745005820} + m_CullTransparentMesh: 1 +--- !u!114 &2784335949492834725 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7293397378745005820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d314a0707372ab2438419d89a90d879c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8315842651880432973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7747197678805495323} + - component: {fileID: 6643613837420447507} + - component: {fileID: 269548318118856926} + m_Layer: 5 + m_Name: Selected Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7747197678805495323 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8315842651880432973} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5753369685943773596} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6643613837420447507 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8315842651880432973} + m_CullTransparentMesh: 1 +--- !u!114 &269548318118856926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8315842651880432973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.050980393} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2d58d4e6ce696bb41a9e970ab3773f3e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Prefabs/Menu/Settings/AllSettings/SettingCategoryView.prefab.meta b/Assets/Prefabs/Menu/Settings/AllSettings/SettingCategoryView.prefab.meta new file mode 100644 index 000000000..20d897b2c --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/AllSettings/SettingCategoryView.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9d036fb0b1366674c947c508eacbef3b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Menu/Settings/AllSettings/SettingSearchResult.prefab b/Assets/Prefabs/Menu/Settings/AllSettings/SettingSearchResult.prefab new file mode 100644 index 000000000..4305a9517 --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/AllSettings/SettingSearchResult.prefab @@ -0,0 +1,626 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1535395615476722339 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5952605459425918043} + - component: {fileID: 7682447073504484522} + - component: {fileID: 8707155532363067319} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5952605459425918043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1535395615476722339} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 631212147265539918} + 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: -2} + m_SizeDelta: {x: 16, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7682447073504484522 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1535395615476722339} + m_CullTransparentMesh: 1 +--- !u!114 &8707155532363067319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1535395615476722339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.50980395, g: 0.50980395, b: 0.52156866, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: -159250094, guid: d61b57863fe4fc742a1234c2896ca0cd, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4040821237613222208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 631212147265539918} + - component: {fileID: 1935863723739360867} + m_Layer: 5 + m_Name: Icon Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &631212147265539918 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4040821237613222208} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5952605459425918043} + m_Father: {fileID: 26142423393673225} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1935863723739360867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4040821237613222208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 16 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5753369685925887173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5753369685925887170} + - component: {fileID: 5753369685925887168} + - component: {fileID: 5753369685925887171} + - component: {fileID: 7748925732419506741} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5753369685925887170 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685925887173} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 26142423393673225} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &5753369685925887168 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685925887173} + m_CullTransparentMesh: 1 +--- !u!114 &5753369685925887171 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685925887173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Setting Name Here + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 69b34e9e884c55947b52d9bbbd4258d7, type: 2} + m_sharedMaterial: {fileID: 4264900350419322127, guid: 69b34e9e884c55947b52d9bbbd4258d7, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292532169 + m_fontColor: {r: 0.7882353, g: 0.84313726, b: 0.85490197, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 10 + m_fontSizeMax: 14 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 1 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7748925732419506741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685925887173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StringReference: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_FormatArguments: [] + m_UpdateString: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5753369685925887171} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + references: + version: 2 + RefIds: [] +--- !u!1 &5753369685943773599 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5753369685943773596} + - component: {fileID: 6581774566130728290} + - component: {fileID: 8765098600093787006} + - component: {fileID: 1414320826553144725} + m_Layer: 5 + m_Name: SettingSearchResult + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5753369685943773596 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685943773599} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7747197678805495323} + - {fileID: 5753369685971461697} + - {fileID: 26142423393673225} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1500, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6581774566130728290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685943773599} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a00d3e766cd940e981379928f844d9a9, type: 3} + m_Name: + m_EditorClassIdentifier: + _selectOnHover: 1 + _selectOnClick: 1 + _selectedVisual: {fileID: 8315842651880432973} + _settingText: {fileID: 5753369685925887171} +--- !u!222 &8765098600093787006 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685943773599} + m_CullTransparentMesh: 1 +--- !u!114 &1414320826553144725 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685943773599} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5753369685971461696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5753369685971461697} + - component: {fileID: 5753369685971461727} + - component: {fileID: 5753369685971461726} + m_Layer: 5 + m_Name: Divder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5753369685971461697 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685971461696} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5753369685943773596} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 2} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5753369685971461727 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685971461696} + m_CullTransparentMesh: 1 +--- !u!114 &5753369685971461726 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5753369685971461696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.0627451, g: 0.10980392, b: 0.16862746, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7902627292381002883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 26142423393673225} + - component: {fileID: 1580056650126299463} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &26142423393673225 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7902627292381002883} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5753369685925887170} + - {fileID: 631212147265539918} + m_Father: {fileID: 5753369685943773596} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 12.5, y: 0} + m_SizeDelta: {x: -25, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1580056650126299463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7902627292381002883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 15 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &8315842651880432973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7747197678805495323} + - component: {fileID: 6643613837420447507} + - component: {fileID: 269548318118856926} + m_Layer: 5 + m_Name: Selected Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7747197678805495323 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8315842651880432973} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5753369685943773596} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6643613837420447507 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8315842651880432973} + m_CullTransparentMesh: 1 +--- !u!114 &269548318118856926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8315842651880432973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.050980393} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2d58d4e6ce696bb41a9e970ab3773f3e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Prefabs/Menu/Settings/AllSettings/SettingSearchResult.prefab.meta b/Assets/Prefabs/Menu/Settings/AllSettings/SettingSearchResult.prefab.meta new file mode 100644 index 000000000..ae8b9b5e3 --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/AllSettings/SettingSearchResult.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e461bf7ad8176fc4e93bf85a97adf0b0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Menu/Settings/Presets.meta b/Assets/Prefabs/Menu/Settings/Presets.meta new file mode 100644 index 000000000..fef9e4786 --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/Presets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 376c90650ce0f3247ab022f99e9d039e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Menu/Settings/PresetActions.prefab b/Assets/Prefabs/Menu/Settings/Presets/PresetActions.prefab similarity index 100% rename from Assets/Prefabs/Menu/Settings/PresetActions.prefab rename to Assets/Prefabs/Menu/Settings/Presets/PresetActions.prefab diff --git a/Assets/Prefabs/Menu/Settings/PresetActions.prefab.meta b/Assets/Prefabs/Menu/Settings/Presets/PresetActions.prefab.meta similarity index 100% rename from Assets/Prefabs/Menu/Settings/PresetActions.prefab.meta rename to Assets/Prefabs/Menu/Settings/Presets/PresetActions.prefab.meta diff --git a/Assets/Prefabs/Menu/Settings/PresetDefaultText.prefab b/Assets/Prefabs/Menu/Settings/Presets/PresetDefaultText.prefab similarity index 100% rename from Assets/Prefabs/Menu/Settings/PresetDefaultText.prefab rename to Assets/Prefabs/Menu/Settings/Presets/PresetDefaultText.prefab diff --git a/Assets/Prefabs/Menu/Settings/PresetDefaultText.prefab.meta b/Assets/Prefabs/Menu/Settings/Presets/PresetDefaultText.prefab.meta similarity index 100% rename from Assets/Prefabs/Menu/Settings/PresetDefaultText.prefab.meta rename to Assets/Prefabs/Menu/Settings/Presets/PresetDefaultText.prefab.meta diff --git a/Assets/Prefabs/Menu/Settings/PresetDropdown.prefab b/Assets/Prefabs/Menu/Settings/Presets/PresetDropdown.prefab similarity index 100% rename from Assets/Prefabs/Menu/Settings/PresetDropdown.prefab rename to Assets/Prefabs/Menu/Settings/Presets/PresetDropdown.prefab diff --git a/Assets/Prefabs/Menu/Settings/PresetDropdown.prefab.meta b/Assets/Prefabs/Menu/Settings/Presets/PresetDropdown.prefab.meta similarity index 100% rename from Assets/Prefabs/Menu/Settings/PresetDropdown.prefab.meta rename to Assets/Prefabs/Menu/Settings/Presets/PresetDropdown.prefab.meta diff --git a/Assets/Prefabs/Menu/Settings/PresetTypeDropdown.prefab b/Assets/Prefabs/Menu/Settings/Presets/PresetTypeDropdown.prefab similarity index 100% rename from Assets/Prefabs/Menu/Settings/PresetTypeDropdown.prefab rename to Assets/Prefabs/Menu/Settings/Presets/PresetTypeDropdown.prefab diff --git a/Assets/Prefabs/Menu/Settings/PresetTypeDropdown.prefab.meta b/Assets/Prefabs/Menu/Settings/Presets/PresetTypeDropdown.prefab.meta similarity index 100% rename from Assets/Prefabs/Menu/Settings/PresetTypeDropdown.prefab.meta rename to Assets/Prefabs/Menu/Settings/Presets/PresetTypeDropdown.prefab.meta diff --git a/Assets/Prefabs/Menu/Settings/SettingsMenu.prefab b/Assets/Prefabs/Menu/Settings/SettingsMenu.prefab index fae989799..699f00be3 100644 --- a/Assets/Prefabs/Menu/Settings/SettingsMenu.prefab +++ b/Assets/Prefabs/Menu/Settings/SettingsMenu.prefab @@ -824,6 +824,105 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1 &4763051865683014564 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8097294388707834300} + - component: {fileID: 7833736122690914910} + - component: {fileID: 2559290044272958761} + - component: {fileID: 3178302319382191706} + m_Layer: 5 + m_Name: Search Bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8097294388707834300 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4763051865683014564} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2588939329330853728} + - {fileID: 5831621527117249181} + m_Father: {fileID: 5009541611764778104} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7833736122690914910 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4763051865683014564} + m_CullTransparentMesh: 1 +--- !u!114 &2559290044272958761 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4763051865683014564} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3d1a462525fed0543ac9c73b40d35e7c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3178302319382191706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4763051865683014564} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 170 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &5009541611764778103 GameObject: m_ObjectHideFlags: 0 @@ -836,6 +935,7 @@ GameObject: - component: {fileID: 5009541611764778106} - component: {fileID: 5009541611764778105} - component: {fileID: 5598294018132910397} + - component: {fileID: 2116239974973485482} m_Layer: 5 m_Name: Settings m_TagString: Untagged @@ -855,6 +955,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 8097294388707834300} - {fileID: 3981048879495514687} m_Father: {fileID: 3984250561472363708} m_RootOrder: 0 @@ -922,6 +1023,32 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!114 &2116239974973485482 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5009541611764778103} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &5009541612151404013 GameObject: m_ObjectHideFlags: 0 @@ -977,6 +1104,9 @@ MonoBehaviour: _settingsContainer: {fileID: 1478574532061841603} _settingsNavGroup: {fileID: 6762986200682390019} _scrollRect: {fileID: 3813702091980134283} + _searchBarContainer: {fileID: 4763051865683014564} + _searchBar: {fileID: 578126539714680009} + _searchHeaderText: {fileID: 5831621527235801026} _previewContainerWorld: {fileID: 0} _previewContainerUI: {fileID: 1125194357925849411} _settingName: {fileID: 1303481480601831142} @@ -1016,17 +1146,17 @@ PrefabInstance: - target: {fileID: 2778161148834292163, guid: 81863a63e0d96cf459c263ee0ea6f98e, type: 3} propertyPath: m_RootOrder - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2778161148834292163, guid: 81863a63e0d96cf459c263ee0ea6f98e, type: 3} propertyPath: m_AnchorMax.x - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2778161148834292163, guid: 81863a63e0d96cf459c263ee0ea6f98e, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2778161148834292163, guid: 81863a63e0d96cf459c263ee0ea6f98e, type: 3} @@ -1168,6 +1298,26 @@ GameObject: type: 3} m_PrefabInstance: {fileID: 1274945328457657340} m_PrefabAsset: {fileID: 0} +--- !u!114 &184892374629718825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3772787504872590559} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: 1 + m_LayoutPriority: 1 --- !u!114 &5986883282776100585 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1215,6 +1365,335 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 1274945328457657340} m_PrefabAsset: {fileID: 0} +--- !u!1001 &2248993716607243009 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8097294388707834300} + m_Modifications: + - target: {fileID: 5753369685925887171, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_text + value: Results + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_Pivot.y + value: 0.9999999 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_SizeDelta.y + value: 70 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 70 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5753369685943773599, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + propertyPath: m_Name + value: SettingsHeader + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: eda8fcec479d4324eb4bd1d7624e1edc, type: 3} +--- !u!224 &5831621527117249181 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5753369685943773596, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + m_PrefabInstance: {fileID: 2248993716607243009} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5831621527235801026 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5753369685925887171, guid: eda8fcec479d4324eb4bd1d7624e1edc, + type: 3} + m_PrefabInstance: {fileID: 2248993716607243009} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5299744867441382707 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8097294388707834300} + m_Modifications: + - target: {fileID: 1988200050303033511, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Name + value: InputField + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5009541612151403793} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnSearchBarChanged + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.SettingsMenu, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.y + value: -70 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7802627354929852364, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: -50 + objectReference: {fileID: 0} + - target: {fileID: 7802627354929852364, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8757912418558663112, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_text + value: Search for a setting... + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f25b12de267d7544aa2ff7993247fcd, type: 3} +--- !u!114 &578126539714680009 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 5299744867441382707} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2588939329330853728 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 5299744867441382707} + m_PrefabAsset: {fileID: 0} --- !u!1001 &8388684637328606417 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Menu/Settings/SongManager.meta b/Assets/Prefabs/Menu/Settings/SongManager.meta new file mode 100644 index 000000000..d484698b1 --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/SongManager.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 358573fdc6441974387b0ab09378c681 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Menu/Settings/SongManagerDirectory.prefab b/Assets/Prefabs/Menu/Settings/SongManager/SongManagerDirectory.prefab similarity index 100% rename from Assets/Prefabs/Menu/Settings/SongManagerDirectory.prefab rename to Assets/Prefabs/Menu/Settings/SongManager/SongManagerDirectory.prefab diff --git a/Assets/Prefabs/Menu/Settings/SongManagerDirectory.prefab.meta b/Assets/Prefabs/Menu/Settings/SongManager/SongManagerDirectory.prefab.meta similarity index 100% rename from Assets/Prefabs/Menu/Settings/SongManagerDirectory.prefab.meta rename to Assets/Prefabs/Menu/Settings/SongManager/SongManagerDirectory.prefab.meta diff --git a/Assets/Prefabs/Menu/Settings/SongManagerHeader.prefab b/Assets/Prefabs/Menu/Settings/SongManager/SongManagerHeader.prefab similarity index 100% rename from Assets/Prefabs/Menu/Settings/SongManagerHeader.prefab rename to Assets/Prefabs/Menu/Settings/SongManager/SongManagerHeader.prefab diff --git a/Assets/Prefabs/Menu/Settings/SongManagerHeader.prefab.meta b/Assets/Prefabs/Menu/Settings/SongManager/SongManagerHeader.prefab.meta similarity index 100% rename from Assets/Prefabs/Menu/Settings/SongManagerHeader.prefab.meta rename to Assets/Prefabs/Menu/Settings/SongManager/SongManagerHeader.prefab.meta diff --git a/Assets/Prefabs/Menu/Settings/Visuals/DMXChannelsSetting.prefab b/Assets/Prefabs/Menu/Settings/Visuals/DMXChannelsSetting.prefab new file mode 100644 index 000000000..ccdd57d9b --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/Visuals/DMXChannelsSetting.prefab @@ -0,0 +1,1983 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &1482510037229709811 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 272972865484015839} + m_Modifications: + - target: {fileID: 1988200050303033511, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Name + value: InputField 8 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_ContentType + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_KeyboardType + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_CharacterValidation + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8757912418558663112, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_text + value: Enter... + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f25b12de267d7544aa2ff7993247fcd, type: 3} +--- !u!114 &6132633722310584329 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 1482510037229709811} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2027759864573523799 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 272972865484015839} + m_Modifications: + - target: {fileID: 1988200050303033511, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Name + value: InputField 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_ContentType + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_KeyboardType + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_CharacterValidation + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8757912418558663112, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_text + value: Enter... + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f25b12de267d7544aa2ff7993247fcd, type: 3} +--- !u!114 &6750225399639357101 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 2027759864573523799} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2451443413818975593 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 272972865484015839} + m_Modifications: + - target: {fileID: 1988200050303033511, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Name + value: InputField 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_ContentType + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_KeyboardType + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_CharacterValidation + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8757912418558663112, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_text + value: Enter... + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f25b12de267d7544aa2ff7993247fcd, type: 3} +--- !u!114 &7173341596254397587 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 2451443413818975593} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &3636922171384039899 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 272972865484015839} + m_Modifications: + - target: {fileID: 1988200050303033511, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Name + value: InputField 6 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_ContentType + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_KeyboardType + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_CharacterValidation + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8757912418558663112, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_text + value: Enter... + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f25b12de267d7544aa2ff7993247fcd, type: 3} +--- !u!114 &8354568275349653537 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 3636922171384039899} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &4089575833438552982 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 272972865484015839} + m_Modifications: + - target: {fileID: 1988200050303033511, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Name + value: InputField 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_ContentType + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_KeyboardType + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_CharacterValidation + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8757912418558663112, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_text + value: Enter... + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f25b12de267d7544aa2ff7993247fcd, type: 3} +--- !u!114 &8739381773546340972 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 4089575833438552982} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &6133974396596119954 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 272972865484015839} + m_Modifications: + - target: {fileID: 1988200050303033511, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Name + value: InputField 7 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_ContentType + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_KeyboardType + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_CharacterValidation + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8757912418558663112, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_text + value: Enter... + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f25b12de267d7544aa2ff7993247fcd, type: 3} +--- !u!114 &1488954042138994792 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 6133974396596119954} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &6609846725191865157 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 272972865484015839} + m_Modifications: + - target: {fileID: 1988200050303033511, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Name + value: InputField 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_ContentType + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_KeyboardType + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_CharacterValidation + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8757912418558663112, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_text + value: Enter... + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f25b12de267d7544aa2ff7993247fcd, type: 3} +--- !u!114 &1887982916101165759 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 6609846725191865157} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &7675649206205189898 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 272972865484015839} + m_Modifications: + - target: {fileID: 1988200050303033511, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Name + value: InputField 5 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_ContentType + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_KeyboardType + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_CharacterValidation + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8574164494457434853} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnTextFieldChange + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: YARG.Menu.Settings.Visuals.DMXChannelsSettingVisual, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_IntArgument + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7665614177142481491, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8757912418558663112, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + propertyPath: m_text + value: Enter... + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f25b12de267d7544aa2ff7993247fcd, type: 3} +--- !u!114 &3102118881229983472 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4722467204755374586, guid: 8f25b12de267d7544aa2ff7993247fcd, + type: 3} + m_PrefabInstance: {fileID: 7675649206205189898} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &8095148824242519626 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4420504316707193964, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_Name + value: DMXChannelsSetting + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_SizeDelta.x + value: 1500 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4420504316707193967, guid: 6f46741e648c07044852bd3391146600, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6f46741e648c07044852bd3391146600, type: 3} +--- !u!224 &272972865484015839 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8331225728328382101, guid: 6f46741e648c07044852bd3391146600, + type: 3} + m_PrefabInstance: {fileID: 8095148824242519626} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1727629268779748808 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7471044473863680898, guid: 6f46741e648c07044852bd3391146600, + type: 3} + m_PrefabInstance: {fileID: 8095148824242519626} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5552788490976803366 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4420504316707193964, guid: 6f46741e648c07044852bd3391146600, + type: 3} + m_PrefabInstance: {fileID: 8095148824242519626} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8574164494457434853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5552788490976803366} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d958fd2a06829d42aa641282a23c0bf, type: 3} + m_Name: + m_EditorClassIdentifier: + _settingLabel: {fileID: 1727629268779748808} + _inputField: + - {fileID: 1887982916101165759} + - {fileID: 7173341596254397587} + - {fileID: 8739381773546340972} + - {fileID: 6750225399639357101} + - {fileID: 3102118881229983472} + - {fileID: 8354568275349653537} + - {fileID: 1488954042138994792} + - {fileID: 6132633722310584329} +--- !u!1 &7199009927816744663 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1423062251918749853, guid: 6f46741e648c07044852bd3391146600, + type: 3} + m_PrefabInstance: {fileID: 8095148824242519626} + m_PrefabAsset: {fileID: 0} +--- !u!114 &480272274693829910 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7199009927816744663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7792aa537b804208a803f971074a1a45, type: 3} + m_Name: + m_EditorClassIdentifier: + _defaultGroup: 0 + _canBeCurrent: 1 + _addAllChildrenOnAwake: 0 + _selectFirst: 0 +--- !u!114 &8359188880227905752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7199009927816744663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 diff --git a/Assets/Prefabs/Menu/Settings/Visuals/DMXChannelsSetting.prefab.meta b/Assets/Prefabs/Menu/Settings/Visuals/DMXChannelsSetting.prefab.meta new file mode 100644 index 000000000..7cc4d07ad --- /dev/null +++ b/Assets/Prefabs/Menu/Settings/Visuals/DMXChannelsSetting.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8644ff72d188351429aeb73a1d49386e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/PersistentScene.unity b/Assets/Scenes/PersistentScene.unity index 07cf05844..a7485c509 100644 --- a/Assets/Scenes/PersistentScene.unity +++ b/Assets/Scenes/PersistentScene.unity @@ -984,6 +984,7 @@ GameObject: - component: {fileID: 728815265} - component: {fileID: 728815266} - component: {fileID: 728815267} + - component: {fileID: 728815268} m_Layer: 0 m_Name: Integrations m_TagString: Untagged @@ -1047,6 +1048,18 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: cb438f304d0d4064fb1de229c53becde, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &728815268 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728815263} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2e6d233a733a6014891836deea6c0bc2, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &782876828 GameObject: m_ObjectHideFlags: 0 @@ -1191,7 +1204,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -7.5, y: 0} + m_AnchoredPosition: {x: -7.500122, y: 0} m_SizeDelta: {x: -15, y: 50} m_Pivot: {x: 0.5, y: 0.99999994} --- !u!114 &787126834 @@ -3401,6 +3414,36 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 3981048879495514687, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3981048879495514687, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3981048879495514687, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3981048879495514687, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3981048879495514687, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3981048879495514687, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5009541611764778104, guid: fb698a9ab78f72e4486acac10d0286d2, type: 3} propertyPath: m_AnchorMax.y @@ -3551,6 +3594,36 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 8097294388707834300, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8097294388707834300, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8097294388707834300, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8097294388707834300, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8097294388707834300, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8097294388707834300, guid: fb698a9ab78f72e4486acac10d0286d2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: fb698a9ab78f72e4486acac10d0286d2, type: 3} --- !u!224 &5042262182439413877 diff --git a/Assets/Script/Integration/Sacn.meta b/Assets/Script/Integration/Sacn.meta new file mode 100644 index 000000000..770a603cc --- /dev/null +++ b/Assets/Script/Integration/Sacn.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c587fb1cd3a503847a4f67e4a013c1b6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/Integration/Sacn/SacnController.cs b/Assets/Script/Integration/Sacn/SacnController.cs new file mode 100644 index 000000000..41bf1ebb1 --- /dev/null +++ b/Assets/Script/Integration/Sacn/SacnController.cs @@ -0,0 +1,161 @@ +using System; +using Haukcode.sACN; +using PlasticBand.Haptics; +using UnityEngine; +using YARG.Integration.StageKit; +using YARG.Settings; + +namespace YARG.Integration.Sacn +{ + + public class SacnController : MonoSingleton + { + //DMX spec says 44 updates per second is the max + private const float TARGET_FPS = 44f; + private const float TIME_BETWEEN_CALLS = 1f / TARGET_FPS; + + //Each universe supports up to 512 channels + private const int UNIVERSE_SIZE = 512; + + private const string ACN_SOURCE_NAME = "YARG"; + + private byte[] _dataPacket = new byte[UNIVERSE_SIZE]; + //A 128-bit (16 byte) UUID that translates to "KEEP PLAYING YARG!" + private readonly Guid AcnSourceId = new Guid("{4B454550-504C-4159-494E-475941524721}"); + + private SACNClient _sendClient; + + //DMX channels - 8 per color to match the stageKit layout. Default channels, the user must change them in settings. + private int[] _dimmerChannels; + private int[] _redChannels; + private int[] _greenChannels; + private int[] _blueChannels; + private int[] _yellowChannels; + + public void HandleEnabledChanged(bool enabled) + { + if (enabled) + { + if (_sendClient != null) return; + + Debug.Log("Starting SacnController..."); + + StageKitLightingController.Instance.OnLedSet += HandleEvent; + + UpdateDMXChannels(); + + _sendClient = new SACNClient(senderId: AcnSourceId, senderName: ACN_SOURCE_NAME, + localAddress: SACNCommon.GetFirstBindAddress().IPAddress); + + InvokeRepeating(nameof(Sender), 0, TIME_BETWEEN_CALLS); + + //Many DMX fixtures have a 'Master dimmer' channel that controls the overall brightness of the fixture. + //Got to turn those on. + for (int i = 0; i < _dimmerChannels?.Length; i++) + { + _dataPacket[_dimmerChannels[i] - 1] = 255; + } + } + else + { + OnDestroy(); + } + } + + public void UpdateDMXChannels() + { + _dimmerChannels = SettingsManager.Settings?.DMXDimmerChannels.Value; + _redChannels = SettingsManager.Settings?.DMXRedChannels.Value; + _greenChannels = SettingsManager.Settings?.DMXGreenChannels.Value; + _blueChannels = SettingsManager.Settings?.DMXBlueChannels.Value; + _yellowChannels = SettingsManager.Settings?.DMXYellowChannels.Value; + } + + private void OnDestroy() + { + if (_sendClient == null) return; + + Debug.Log("Killing SacnController..."); + + // A good controller will also turn everything off after not receiving a packet after 2.5 seconds. + // But this doesn't hurt to do. + for (int i = 0; i < _dataPacket.Length; i++) + { + _dataPacket[i] = 0; //turn everything off + } + + //force send final packet. + Sender(); + + _sendClient.Dispose(); + _sendClient = null; + + CancelInvoke(nameof(Sender)); + + StageKitLightingController.Instance.OnLedSet -= HandleEvent; + } + + private void HandleEvent(StageKitLedColor color, StageKitLed value) + { + bool[] ledIsSet = new bool[8]; + + // Set the values of ledIsSet based on the StageKitLed enum + for (int i = 0; i < 8; i++) + { + ledIsSet[i] = (value & (StageKitLed) (1 << i)) != 0; + } + + // Handle the event based on color + switch (color) + { + case StageKitLedColor.Red: + SetChannelValues(_redChannels, ledIsSet); + break; + + case StageKitLedColor.Blue: + SetChannelValues(_blueChannels, ledIsSet); + break; + + case StageKitLedColor.Green: + SetChannelValues(_greenChannels, ledIsSet); + break; + + case StageKitLedColor.Yellow: + SetChannelValues(_yellowChannels, ledIsSet); + break; + + case StageKitLedColor.None: + // I'm not sure this is ever used, anywhere? + break; + + case StageKitLedColor.All: + SetChannelValues(_yellowChannels, ledIsSet); + SetChannelValues(_greenChannels, ledIsSet); + SetChannelValues(_blueChannels, ledIsSet); + SetChannelValues(_redChannels, ledIsSet); + break; + + default: + Debug.LogWarning("(Sacn) Unknown color: " + color); + break; + } + } + + private void SetChannelValues(int[] channels, bool[] ledIsSet) + { + for (int i = 0; i < 8; i++) + { + _dataPacket[channels[i] - 1] = ledIsSet[i] ? (byte) 255 : (byte) 0; + } + } + + private void Sender() + { + //Hardcoded to universe 1, as this is for non-professional use, I doubt anyone is running multiple universes. + //Didn't want to confuse the user with settings for something they don't need. However, it's a simple change if needed. + //Same goes for sending multicast vs singlecast. Sacn spec says multicast is the correct default way to go but + //singlecast can be used if needed. + _sendClient.SendMulticast(1, _dataPacket); + } + } +} \ No newline at end of file diff --git a/Assets/Script/Integration/Sacn/SacnController.cs.meta b/Assets/Script/Integration/Sacn/SacnController.cs.meta new file mode 100644 index 000000000..63f38272e --- /dev/null +++ b/Assets/Script/Integration/Sacn/SacnController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e6d233a733a6014891836deea6c0bc2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/Integration/StageKit/StageKitGameplay.cs b/Assets/Script/Integration/StageKit/StageKitGameplay.cs index 755e9a931..b8ce5b7df 100644 --- a/Assets/Script/Integration/StageKit/StageKitGameplay.cs +++ b/Assets/Script/Integration/StageKit/StageKitGameplay.cs @@ -4,6 +4,7 @@ using YARG.Core.Chart; using YARG.Gameplay; using PlasticBand.Haptics; +using YARG.Settings; using Random = UnityEngine.Random; namespace YARG.Integration.StageKit @@ -44,9 +45,9 @@ protected override void OnChartLoaded(SongChart chart) private void Update() { - if (StageKitLightingController.Instance.StageKits.Count == 0) + if ( (StageKitLightingController.Instance.StageKits.Count == 0 || !SettingsManager.Settings.StageKitEnabled.Value) && !SettingsManager.Settings.DMXEnabled.Value) { - return; + return; } //On Pause, turn off the fog and strobe so people don't die, but leave the leds on, looks nice. diff --git a/Assets/Script/Integration/StageKit/StageKitLightingController.cs b/Assets/Script/Integration/StageKit/StageKitLightingController.cs index 20e1cc81a..aac8bdf77 100644 --- a/Assets/Script/Integration/StageKit/StageKitLightingController.cs +++ b/Assets/Script/Integration/StageKit/StageKitLightingController.cs @@ -208,8 +208,6 @@ public enum LedColor public StageKitStrobeSpeed CurrentStrobeState = StageKitStrobeSpeed.Off; public StageKitStrobeSpeed PreviousStrobeState = StageKitStrobeSpeed.Off; - //public StrobeSpeed CurrentStrobeState = StrobeSpeed.Off; - //public StrobeSpeed PreviousStrobeState = StrobeSpeed.Off; public List StageKits = new(); @@ -221,6 +219,9 @@ public enum LedColor //Gets set by StageKitGameplay but this is just a fail-safe. public bool LargeVenue = false; + //This is used to send events to any other light controllers that might be in the scene (aka dmx lights) + public event Action OnLedSet; + // Stuff for the actual command sending to the unit private bool _isSendingCommands; private readonly Queue<(int command, byte data)> _commandQueue = new(); @@ -309,6 +310,7 @@ private async UniTask SendCommands() }; //This is where the magic happens StageKits.ForEach(kit => kit.SetLeds(iToStageKitLedColor, (StageKitLed) curCommand.data)); + OnLedSet?.Invoke(iToStageKitLedColor, (StageKitLed) curCommand.data); _previousLedState[curCommand.command] = _currentLedState[curCommand.command]; break; @@ -369,7 +371,7 @@ public void SetStrobeSpeed(StageKitStrobeSpeed strobeSpeed) CurrentStrobeState = strobeSpeed; } - //just a helper function + //Just a helper function public void AllLedsOff() { Instance.SetLed((int) LedColor.Red, NONE); diff --git a/Assets/Script/Menu/Common/Header/HeaderTabs.cs b/Assets/Script/Menu/Common/Header/HeaderTabs.cs index 2ae3e1784..6fffd789a 100644 --- a/Assets/Script/Menu/Common/Header/HeaderTabs.cs +++ b/Assets/Script/Menu/Common/Header/HeaderTabs.cs @@ -1,5 +1,7 @@ using System; using System.Collections.Generic; +using System.Linq; +using UnityEditor.Rendering; using UnityEngine; using YARG.Core.Input; using YARG.Helpers.Extensions; @@ -100,6 +102,24 @@ public void SelectFirstTab() _navigationGroup.SelectFirst(); } + public void SelectTabById(string id) + { + if (_navigationGroup == null) return; + + var index = _tabs.FindIndex(i => i.Id == id); + + if (index == -1) + { + _navigationGroup.SelectAt(null); + SelectedTabId = null; + } + else + { + _navigationGroup.SelectAt(index); + SelectedTabId = id; + } + } + private void OnDestroy() { _navigationGroup.SelectionChanged -= OnSelectionChanged; diff --git a/Assets/Script/Menu/Settings/AllSettings.meta b/Assets/Script/Menu/Settings/AllSettings.meta new file mode 100644 index 000000000..75a9ce509 --- /dev/null +++ b/Assets/Script/Menu/Settings/AllSettings.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e4d9ad426772483792eb689d1e83a926 +timeCreated: 1707608842 \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/AllSettings/SearchResultPopulator.cs b/Assets/Script/Menu/Settings/AllSettings/SearchResultPopulator.cs new file mode 100644 index 000000000..e02de1c6e --- /dev/null +++ b/Assets/Script/Menu/Settings/AllSettings/SearchResultPopulator.cs @@ -0,0 +1,102 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using YARG.Helpers; +using YARG.Menu.Navigation; +using YARG.Settings; +using YARG.Settings.Metadata; + +namespace YARG.Menu.Settings.AllSettings +{ + public class SearchResultPopulator : MonoBehaviour + { + private struct SearchResult + { + public string Tab; + public int Index; + public string LocalizedName; + } + + private const float WAIT_TIME = 0.25f; + + private const int MAX_RESULTS = 25; + + [SerializeField] + private SettingSearchResult _resultPrefab; + + private Coroutine _coroutine; + + public void Initialize(string query, Transform container, NavigationGroup navGroup) + { + _coroutine = StartCoroutine(SearchCoroutine(query, container, navGroup)); + } + + private IEnumerator SearchCoroutine(string query, Transform container, NavigationGroup navGroup) + { + yield return new WaitForSeconds(WAIT_TIME); + + query = query.ToLowerInvariant(); + + var results = new List(); + foreach (var tab in SettingsManager.AllSettingsTabs) + { + if (tab is not MetadataTab metadataTab) + { + continue; + } + + int navIndex = 0; + foreach (var metadata in metadataTab.Settings) + { + var unlocalizedSearch = metadata.UnlocalizedSearchNames; + if (unlocalizedSearch is null) + { + continue; + } + + foreach (var unlocalized in unlocalizedSearch) + { + var localized = LocaleHelper.LocalizeString("Settings", unlocalized); + if (localized.ToLowerInvariant().Contains(query)) + { + results.Add(new SearchResult + { + Tab = tab.Name, + Index = navIndex, + LocalizedName = localized + }); + break; + } + } + + // Since the header can't be selected, we gotta skip that + // for the navigation index. + if (metadata is not HeaderMetadata) + { + navIndex++; + } + } + + if (results.Count >= MAX_RESULTS) + { + break; + } + } + + // Allow the coroutine to stop before everything gets spawned in + yield return null; + + foreach (var result in results) + { + var resultObject = Instantiate(_resultPrefab, container); + resultObject.Initialize(result.LocalizedName, result.Tab, result.Index); + navGroup.AddNavigatable(resultObject); + } + } + + public void OnDestroy() + { + StopCoroutine(_coroutine); + } + } +} \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/AllSettings/SearchResultPopulator.cs.meta b/Assets/Script/Menu/Settings/AllSettings/SearchResultPopulator.cs.meta new file mode 100644 index 000000000..6c65c8a04 --- /dev/null +++ b/Assets/Script/Menu/Settings/AllSettings/SearchResultPopulator.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0d9970d4055f4142b60ee0b279e0ac7b +timeCreated: 1707683468 \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/AllSettings/SettingCategoryView.cs b/Assets/Script/Menu/Settings/AllSettings/SettingCategoryView.cs new file mode 100644 index 000000000..7b474ef6a --- /dev/null +++ b/Assets/Script/Menu/Settings/AllSettings/SettingCategoryView.cs @@ -0,0 +1,45 @@ +using TMPro; +using UnityEngine; +using UnityEngine.AddressableAssets; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using YARG.Helpers; +using YARG.Menu.Navigation; +using YARG.Settings.Metadata; + +namespace YARG.Menu.Settings.AllSettings +{ + public class SettingCategoryView : NavigatableBehaviour + { + [Space] + [SerializeField] + private TextMeshProUGUI _categoryTitle; + [SerializeField] + private Image _icon; + + private string _tabName; + + public void Initialize(Tab tab) + { + _tabName = tab.Name; + + _categoryTitle.text = LocaleHelper.LocalizeString("Settings", $"Tab.{tab.Name}"); + + var sprite = Addressables + .LoadAssetAsync($"TabIcons[{tab.Icon}]") + .WaitForCompletion(); + _icon.sprite = sprite; + } + + public override void OnPointerDown(PointerEventData eventData) + { + base.OnPointerDown(eventData); + Confirm(); + } + + public override void Confirm() + { + SettingsMenu.Instance.SelectTabByName(_tabName); + } + } +} \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/AllSettings/SettingCategoryView.cs.meta b/Assets/Script/Menu/Settings/AllSettings/SettingCategoryView.cs.meta new file mode 100644 index 000000000..7a5588f53 --- /dev/null +++ b/Assets/Script/Menu/Settings/AllSettings/SettingCategoryView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9698074bf2be46c59b0710fe33bef089 +timeCreated: 1707608857 \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/AllSettings/SettingSearchResult.cs b/Assets/Script/Menu/Settings/AllSettings/SettingSearchResult.cs new file mode 100644 index 000000000..17fc717da --- /dev/null +++ b/Assets/Script/Menu/Settings/AllSettings/SettingSearchResult.cs @@ -0,0 +1,36 @@ +using TMPro; +using UnityEngine; +using UnityEngine.EventSystems; +using YARG.Menu.Navigation; + +namespace YARG.Menu.Settings.AllSettings +{ + public class SettingSearchResult : NavigatableBehaviour + { + [SerializeField] + private TextMeshProUGUI _settingText; + + private string _tab; + private int _index; + + public void Initialize(string localizedName, string tab, int index) + { + _settingText.text = localizedName; + + _tab = tab; + _index = index; + } + + public override void OnPointerDown(PointerEventData eventData) + { + base.OnPointerDown(eventData); + Confirm(); + } + + public override void Confirm() + { + SettingsMenu.Instance.SelectTabByName(_tab); + SettingsMenu.Instance.SelectSettingByIndex(_index); + } + } +} \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/AllSettings/SettingSearchResult.cs.meta b/Assets/Script/Menu/Settings/AllSettings/SettingSearchResult.cs.meta new file mode 100644 index 000000000..44e198dca --- /dev/null +++ b/Assets/Script/Menu/Settings/AllSettings/SettingSearchResult.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a00d3e766cd940e981379928f844d9a9 +timeCreated: 1707683946 \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/Presets.meta b/Assets/Script/Menu/Settings/Presets.meta new file mode 100644 index 000000000..d0cbe37f8 --- /dev/null +++ b/Assets/Script/Menu/Settings/Presets.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b72313c06af947719f3c78b5db97cbe4 +timeCreated: 1707608796 \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/PresetActions.cs b/Assets/Script/Menu/Settings/Presets/PresetActions.cs similarity index 100% rename from Assets/Script/Menu/Settings/PresetActions.cs rename to Assets/Script/Menu/Settings/Presets/PresetActions.cs diff --git a/Assets/Script/Menu/Settings/PresetActions.cs.meta b/Assets/Script/Menu/Settings/Presets/PresetActions.cs.meta similarity index 100% rename from Assets/Script/Menu/Settings/PresetActions.cs.meta rename to Assets/Script/Menu/Settings/Presets/PresetActions.cs.meta diff --git a/Assets/Script/Menu/Settings/PresetDropdown.cs b/Assets/Script/Menu/Settings/Presets/PresetDropdown.cs similarity index 100% rename from Assets/Script/Menu/Settings/PresetDropdown.cs rename to Assets/Script/Menu/Settings/Presets/PresetDropdown.cs diff --git a/Assets/Script/Menu/Settings/PresetDropdown.cs.meta b/Assets/Script/Menu/Settings/Presets/PresetDropdown.cs.meta similarity index 100% rename from Assets/Script/Menu/Settings/PresetDropdown.cs.meta rename to Assets/Script/Menu/Settings/Presets/PresetDropdown.cs.meta diff --git a/Assets/Script/Menu/Settings/PresetTypeDropdown.cs b/Assets/Script/Menu/Settings/Presets/PresetTypeDropdown.cs similarity index 100% rename from Assets/Script/Menu/Settings/PresetTypeDropdown.cs rename to Assets/Script/Menu/Settings/Presets/PresetTypeDropdown.cs diff --git a/Assets/Script/Menu/Settings/PresetTypeDropdown.cs.meta b/Assets/Script/Menu/Settings/Presets/PresetTypeDropdown.cs.meta similarity index 100% rename from Assets/Script/Menu/Settings/PresetTypeDropdown.cs.meta rename to Assets/Script/Menu/Settings/Presets/PresetTypeDropdown.cs.meta diff --git a/Assets/Script/Menu/Settings/SettingsButton.cs b/Assets/Script/Menu/Settings/SettingsButton.cs index 63f2a266b..f1eb8bb85 100644 --- a/Assets/Script/Menu/Settings/SettingsButton.cs +++ b/Assets/Script/Menu/Settings/SettingsButton.cs @@ -23,7 +23,7 @@ public class SettingsButton : NavigatableBehaviour private bool _focused; - public void SetInfo(string tab, IEnumerable buttons) + public void SetInfo(IEnumerable buttons) { // Spawn button(s) foreach (var buttonName in buttons) @@ -32,7 +32,7 @@ public void SetInfo(string tab, IEnumerable buttons) // Set button text button.GetComponentInChildren().StringReference = - LocaleHelper.StringReference("Settings", $"Button.{tab}.{buttonName}"); + LocaleHelper.StringReference("Settings", $"Button.{buttonName}"); // Set button action var capture = buttonName; diff --git a/Assets/Script/Menu/Settings/SettingsMenu.cs b/Assets/Script/Menu/Settings/SettingsMenu.cs index a229ffaa3..f3c2b73ca 100644 --- a/Assets/Script/Menu/Settings/SettingsMenu.cs +++ b/Assets/Script/Menu/Settings/SettingsMenu.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using Cysharp.Threading.Tasks; +using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Localization.Components; @@ -26,6 +27,16 @@ public class SettingsMenu : MonoSingleton private NavigationGroup _settingsNavGroup; [SerializeField] private ScrollRect _scrollRect; + + [Space] + [SerializeField] + private GameObject _searchBarContainer; + [SerializeField] + private TMP_InputField _searchBar; + [SerializeField] + private TextMeshProUGUI _searchHeaderText; + + [Space] [SerializeField] private Transform _previewContainerWorld; [SerializeField] @@ -37,17 +48,8 @@ public class SettingsMenu : MonoSingleton [SerializeField] private LocalizeStringEvent _settingDescription; - private Tab _currentTab; - public Tab CurrentTab - { - get => _currentTab; - set - { - _currentTab = value; - - Refresh(); - } - } + public Tab CurrentTab { get; private set; } + public string SearchQuery => _searchBar.text; public event Action SettingChanged; @@ -66,7 +68,8 @@ private void Start() { var tabs = new List(); - foreach (var tab in SettingsManager.SettingsTabs) + // Add the main tabs + foreach (var tab in SettingsManager.DisplayedSettingsTabs) { // Load the tab sprite var sprite = Addressables.LoadAssetAsync($"TabIcons[{tab.Icon}]").WaitForCompletion(); @@ -108,14 +111,45 @@ private void OnEnable() _headerTabs.NavigatePreviousTab }, true)); - ReturnToFirstTab(); + CurrentTab = SettingsManager.DisplayedSettingsTabs[0]; + _searchBarContainer.SetActive(false); + Refresh(); } private void OnTabChanged(string tab) + { + SelectTab(SettingsManager.GetTabByName(tab)); + } + + private void SelectTab(Tab tab) { CurrentTab?.OnTabExit(); - CurrentTab = SettingsManager.GetTabByName(tab); + + CurrentTab = tab; + Refresh(); + CurrentTab?.OnTabEnter(); + + _searchBarContainer.SetActive(CurrentTab?.ShowSearchBar ?? false); + _searchBar.text = string.Empty; + OnSearchBarChanged(); + } + + public void SelectTabByName(string name) + { + _headerTabs.SelectTabById(name); + + // If the header tab does not exist, then force update to that tab + if (_headerTabs.SelectedTabId is null) + { + SelectTab(SettingsManager.GetTabByName(name)); + } + } + + public void SelectSettingByIndex(int index) + { + // Force it to be the navigation selection type so the scroll view properly updates + _settingsNavGroup.SelectAt(index, SelectionOrigin.Navigation); } private void OnSelectionChanged(NavigatableBehaviour selected, SelectionOrigin selectionOrigin) @@ -138,10 +172,10 @@ private void OnSelectionChanged(NavigatableBehaviour selected, SelectionOrigin s } _settingName.StringReference = LocaleHelper.StringReference( - "Settings", $"Setting.{CurrentTab.Name}.{settingNav.UnlocalizedName}"); + "Settings", $"Setting.{settingNav.UnlocalizedName}"); _settingDescription.StringReference = LocaleHelper.StringReference( - "Settings", $"Setting.{CurrentTab.Name}.{settingNav.UnlocalizedName}.Description"); + "Settings", $"Setting.{settingNav.UnlocalizedName}.Description"); } public void RefreshPreview(bool waitForResolution = false) @@ -223,11 +257,6 @@ private void DestroyPreview() _previewContainerUI.DestroyChildren(); } - public void ReturnToFirstTab() - { - CurrentTab = SettingsManager.SettingsTabs[0]; - } - public void OnSettingChanged() { if (!_ready || !gameObject.activeSelf) return; @@ -236,6 +265,25 @@ public void OnSettingChanged() SettingChanged?.Invoke(); } + public void OnSearchBarChanged() + { + // Update header + if (string.IsNullOrEmpty(_searchBar.text)) + { + _searchHeaderText.text = "All Categories"; + } + else + { + _searchHeaderText.text = "Results"; + } + + // Refresh on search + if (CurrentTab?.ShowSearchBar ?? false) + { + Refresh(); + } + } + private void OnDisable() { if (!_ready) @@ -245,7 +293,7 @@ private void OnDisable() // Set the current tab back to null to avoid calling OnTabExit twice CurrentTab?.OnTabExit(); - _currentTab = null; + CurrentTab = null; Navigator.Instance.PopScheme(); DestroyPreview(); diff --git a/Assets/Script/Menu/Settings/SongManager.meta b/Assets/Script/Menu/Settings/SongManager.meta new file mode 100644 index 000000000..5743c852b --- /dev/null +++ b/Assets/Script/Menu/Settings/SongManager.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5ce95107af304cf78cee14712c18c051 +timeCreated: 1707608821 \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/SettingsDirectory.cs b/Assets/Script/Menu/Settings/SongManager/SettingsDirectory.cs similarity index 100% rename from Assets/Script/Menu/Settings/SettingsDirectory.cs rename to Assets/Script/Menu/Settings/SongManager/SettingsDirectory.cs diff --git a/Assets/Script/Menu/Settings/SettingsDirectory.cs.meta b/Assets/Script/Menu/Settings/SongManager/SettingsDirectory.cs.meta similarity index 100% rename from Assets/Script/Menu/Settings/SettingsDirectory.cs.meta rename to Assets/Script/Menu/Settings/SongManager/SettingsDirectory.cs.meta diff --git a/Assets/Script/Menu/Settings/SongManagerHeader.cs b/Assets/Script/Menu/Settings/SongManager/SongManagerHeader.cs similarity index 100% rename from Assets/Script/Menu/Settings/SongManagerHeader.cs rename to Assets/Script/Menu/Settings/SongManager/SongManagerHeader.cs diff --git a/Assets/Script/Menu/Settings/SongManagerHeader.cs.meta b/Assets/Script/Menu/Settings/SongManager/SongManagerHeader.cs.meta similarity index 100% rename from Assets/Script/Menu/Settings/SongManagerHeader.cs.meta rename to Assets/Script/Menu/Settings/SongManager/SongManagerHeader.cs.meta diff --git a/Assets/Script/Menu/Settings/Visuals/BaseSettingVisual.cs b/Assets/Script/Menu/Settings/Visuals/BaseSettingVisual.cs index 902a2eda5..fccd2ef12 100644 --- a/Assets/Script/Menu/Settings/Visuals/BaseSettingVisual.cs +++ b/Assets/Script/Menu/Settings/Visuals/BaseSettingVisual.cs @@ -18,29 +18,29 @@ public abstract class BaseSettingVisual : MonoBehaviour [SerializeField] private LocalizeStringEvent _settingLabel; + public bool IsPresetSetting { get; private set; } public string UnlocalizedName { get; private set; } - public string Tab { get; private set; } - public void AssignSetting(string tab, string settingName) + public void AssignSetting(string settingName) { - Tab = tab; + IsPresetSetting = false; UnlocalizedName = settingName; _settingLabel.StringReference = LocaleHelper.StringReference( - "Settings", $"Setting.{tab}.{settingName}"); + "Settings", $"Setting.{settingName}"); AssignSettingFromVariable(SettingsManager.GetSettingByName(settingName)); OnSettingInit(); } - public void AssignSetting(string tab, string unlocalizedName, ISettingType reference) + public void AssignPresetSetting(string unlocalizedName, ISettingType reference) { - Tab = tab; + IsPresetSetting = true; UnlocalizedName = unlocalizedName; _settingLabel.StringReference = LocaleHelper.StringReference( - "Settings", $"Setting.{tab}.{unlocalizedName}"); + "Settings", $"PresetSetting.{unlocalizedName}"); AssignSettingFromVariable(reference); diff --git a/Assets/Script/Menu/Settings/Visuals/DMXChannelsSettingVisual.cs b/Assets/Script/Menu/Settings/Visuals/DMXChannelsSettingVisual.cs new file mode 100644 index 000000000..36f0e3648 --- /dev/null +++ b/Assets/Script/Menu/Settings/Visuals/DMXChannelsSettingVisual.cs @@ -0,0 +1,60 @@ +using System.Globalization; +using TMPro; +using UnityEngine; +using YARG.Core.Input; +using YARG.Menu.Navigation; +using YARG.Settings.Types; + +namespace YARG.Menu.Settings.Visuals +{ + public class DMXChannelsSettingVisual : BaseSettingVisual + { + [SerializeField] + private TMP_InputField[] _inputField; + + protected override void RefreshVisual() + { + for (int i = 0; i < Setting.Value.Length; i++) + { + _inputField[i].text = Setting.Value[i].ToString(CultureInfo.InvariantCulture); + } + } + + public override NavigationScheme GetNavigationScheme() + { + return new NavigationScheme(new() + { + NavigateFinish, + new NavigationScheme.Entry(MenuAction.Up, "Increase", () => + { + // need to change this to the correct index + Setting.Value[0]++; + RefreshVisual(); + }), + new NavigationScheme.Entry(MenuAction.Down, "Decrease", () => + { + // need to change this to the correct index + Setting.Value[0]--; + RefreshVisual(); + }) + }, true); + } + + public void OnTextFieldChange(int index) + { + + try + { + int value = int.Parse(_inputField[index].text, CultureInfo.InvariantCulture); + value = Mathf.Clamp(value, Setting.Min, Setting.Max); + Setting.Value[index] = value; + } + catch + { + // Ignore error + } + + RefreshVisual(); + } + } +} \ No newline at end of file diff --git a/Assets/Script/Menu/Settings/Visuals/DMXChannelsSettingVisual.cs.meta b/Assets/Script/Menu/Settings/Visuals/DMXChannelsSettingVisual.cs.meta new file mode 100644 index 000000000..104cc9c1d --- /dev/null +++ b/Assets/Script/Menu/Settings/Visuals/DMXChannelsSettingVisual.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4d958fd2a06829d42aa641282a23c0bf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/Menu/Settings/Visuals/DropdownSettingVisual.cs b/Assets/Script/Menu/Settings/Visuals/DropdownSettingVisual.cs index 1f48c2f5f..6615957ed 100644 --- a/Assets/Script/Menu/Settings/Visuals/DropdownSettingVisual.cs +++ b/Assets/Script/Menu/Settings/Visuals/DropdownSettingVisual.cs @@ -20,8 +20,13 @@ protected override void RefreshVisual() { string valueString = Setting.IndexToString(i); if (Setting.Localizable) - valueString = LocaleHelper.LocalizeString("Settings", - $"Dropdown.{Tab}.{UnlocalizedName}.{valueString}"); + { + valueString = !IsPresetSetting + ? LocaleHelper.LocalizeString("Settings", + $"Dropdown.{UnlocalizedName}.{valueString}") + : LocaleHelper.LocalizeString("Settings", + $"PresetDropdown.{UnlocalizedName}.{valueString}"); + } _dropdown.options.Add(new(valueString)); } diff --git a/Assets/Script/Settings/Metadata/AbstractMetadata.cs b/Assets/Script/Settings/Metadata/AbstractMetadata.cs index a39714b5d..923e93df2 100644 --- a/Assets/Script/Settings/Metadata/AbstractMetadata.cs +++ b/Assets/Script/Settings/Metadata/AbstractMetadata.cs @@ -2,6 +2,8 @@ namespace YARG.Settings.Metadata { public abstract class AbstractMetadata { + public abstract string[] UnlocalizedSearchNames { get; } + public static implicit operator AbstractMetadata(string name) => new FieldMetadata(name); } } \ No newline at end of file diff --git a/Assets/Script/Settings/Metadata/ButtonRowMetadata.cs b/Assets/Script/Settings/Metadata/ButtonRowMetadata.cs index 2fc315680..f330ce452 100644 --- a/Assets/Script/Settings/Metadata/ButtonRowMetadata.cs +++ b/Assets/Script/Settings/Metadata/ButtonRowMetadata.cs @@ -1,19 +1,25 @@ namespace YARG.Settings.Metadata { - public class ButtonRowMetadata : AbstractMetadata + public sealed class ButtonRowMetadata : AbstractMetadata { + public override string[] UnlocalizedSearchNames { get; } + public string[] Buttons { get; private set; } public ButtonRowMetadata(string button) { - Buttons = new[] - { - button - }; + UnlocalizedSearchNames = new[] { $"Button.{button}" }; + Buttons = new[] { button }; } public ButtonRowMetadata(params string[] buttons) { + UnlocalizedSearchNames = new string[buttons.Length]; + for (int i = 0; i < buttons.Length; i++) + { + UnlocalizedSearchNames[i] = $"Button.{buttons[i]}"; + } + Buttons = buttons; } } diff --git a/Assets/Script/Settings/Metadata/FieldMetadata.cs b/Assets/Script/Settings/Metadata/FieldMetadata.cs index 0faef8aea..10e18dcbc 100644 --- a/Assets/Script/Settings/Metadata/FieldMetadata.cs +++ b/Assets/Script/Settings/Metadata/FieldMetadata.cs @@ -1,11 +1,14 @@ namespace YARG.Settings.Metadata { - public class FieldMetadata : AbstractMetadata + public sealed class FieldMetadata : AbstractMetadata { + public override string[] UnlocalizedSearchNames { get; } + public string FieldName { get; private set; } public FieldMetadata(string fieldName) { + UnlocalizedSearchNames = new[] { $"Setting.{fieldName}" }; FieldName = fieldName; } } diff --git a/Assets/Script/Settings/Metadata/HeaderMetadata.cs b/Assets/Script/Settings/Metadata/HeaderMetadata.cs index 27e1200d2..30c7ce743 100644 --- a/Assets/Script/Settings/Metadata/HeaderMetadata.cs +++ b/Assets/Script/Settings/Metadata/HeaderMetadata.cs @@ -1,7 +1,9 @@ namespace YARG.Settings.Metadata { - public class HeaderMetadata : AbstractMetadata + public sealed class HeaderMetadata : AbstractMetadata { + public override string[] UnlocalizedSearchNames => null; + public string HeaderName { get; private set; } public HeaderMetadata(string headerName) diff --git a/Assets/Script/Settings/Metadata/Tabs/AllSettingsTab.cs b/Assets/Script/Settings/Metadata/Tabs/AllSettingsTab.cs new file mode 100644 index 000000000..cdce44488 --- /dev/null +++ b/Assets/Script/Settings/Metadata/Tabs/AllSettingsTab.cs @@ -0,0 +1,56 @@ +using UnityEngine; +using UnityEngine.AddressableAssets; +using YARG.Menu.Navigation; +using YARG.Menu.Settings; +using YARG.Menu.Settings.AllSettings; + +namespace YARG.Settings.Metadata +{ + public class AllSettingsTab : Tab + { + // Prefabs needed for this tab type + private static readonly GameObject _settingCategoryViewPrefab = Addressables + .LoadAssetAsync("SettingTab/SettingCategoryView") + .WaitForCompletion(); + private static readonly GameObject _searchResultPopulator = Addressables + .LoadAssetAsync("SettingTab/SearchResultPopulator") + .WaitForCompletion(); + + public override bool ShowSearchBar => true; + + public AllSettingsTab() : base("AllSettings") + { + } + + public override void BuildSettingTab(Transform settingContainer, NavigationGroup navGroup) + { + if (string.IsNullOrEmpty(SettingsMenu.Instance.SearchQuery)) + { + // If there is no search query, just show all of the categories + foreach (var tab in SettingsManager.AllSettingsTabs) + { + // Skip this tab (because we're already in it at this point) + if (tab is AllSettingsTab) + { + continue; + } + + var gameObject = Object.Instantiate(_settingCategoryViewPrefab, settingContainer); + var view = gameObject.GetComponent(); + view.Initialize(tab); + navGroup.AddNavigatable(view); + } + } + else + { + // Otherwise, show search results. Since this can't be async, we gotta do + // something a little hacky here. Create an empty object with a search result + // populator which will wait a little bit before spawning anything to prevent + // lag when typing. This will spawn in the results + var gameObject = Object.Instantiate(_searchResultPopulator, settingContainer); + var populator = gameObject.GetComponent(); + populator.Initialize(SettingsMenu.Instance.SearchQuery, settingContainer, navGroup); + } + } + } +} \ No newline at end of file diff --git a/Assets/Script/Settings/Metadata/Tabs/AllSettingsTab.cs.meta b/Assets/Script/Settings/Metadata/Tabs/AllSettingsTab.cs.meta new file mode 100644 index 000000000..5223e6ce2 --- /dev/null +++ b/Assets/Script/Settings/Metadata/Tabs/AllSettingsTab.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: eafbd568d77d41c9b059624dc1e9aee5 +timeCreated: 1707606773 \ No newline at end of file diff --git a/Assets/Script/Settings/Metadata/Tabs/MetadataTab.cs b/Assets/Script/Settings/Metadata/Tabs/MetadataTab.cs index 18d618620..567a58ca2 100644 --- a/Assets/Script/Settings/Metadata/Tabs/MetadataTab.cs +++ b/Assets/Script/Settings/Metadata/Tabs/MetadataTab.cs @@ -26,6 +26,8 @@ public class MetadataTab : Tab, IEnumerable private Dictionary _settingVisuals = new(); private readonly List _settings = new(); + public IReadOnlyList Settings => _settings; + public MetadataTab(string name, string icon = "Generic", IPreviewBuilder previewBuilder = null) : base(name, icon, previewBuilder) { @@ -57,7 +59,7 @@ public override void BuildSettingTab(Transform container, NavigationGroup navGro var go = Object.Instantiate(_buttonPrefab, container); var buttonGroup = go.GetComponent(); - buttonGroup.SetInfo(Name, buttonRow.Buttons); + buttonGroup.SetInfo(buttonRow.Buttons); navGroup.AddNavigatable(buttonGroup); break; @@ -78,7 +80,7 @@ public override void BuildSettingTab(Transform container, NavigationGroup navGro var setting = SettingsManager.GetSettingByName(field.FieldName); var visual = SpawnSettingVisual(setting, container); - visual.AssignSetting(Name, field.FieldName); + visual.AssignSetting(field.FieldName); _settingVisuals.Add(field.FieldName, visual); navGroup.AddNavigatable(visual.gameObject); diff --git a/Assets/Script/Settings/Metadata/Tabs/PresetSubTab.cs b/Assets/Script/Settings/Metadata/Tabs/PresetSubTab.cs index 5d94b3779..96bc50ae1 100644 --- a/Assets/Script/Settings/Metadata/Tabs/PresetSubTab.cs +++ b/Assets/Script/Settings/Metadata/Tabs/PresetSubTab.cs @@ -121,7 +121,7 @@ private BaseSettingVisual CreateField(Transform container, string presetName, st { var visual = SpawnSettingVisual(settingType, container); - visual.AssignSetting(Name, $"{presetName}.{name}", settingType); + visual.AssignPresetSetting($"{presetName}.{name}", settingType); _settingFields.Add(name, settingType); return visual; diff --git a/Assets/Script/Settings/Metadata/Tabs/Tab.cs b/Assets/Script/Settings/Metadata/Tabs/Tab.cs index 5ef7e7de8..f4c80d028 100644 --- a/Assets/Script/Settings/Metadata/Tabs/Tab.cs +++ b/Assets/Script/Settings/Metadata/Tabs/Tab.cs @@ -12,6 +12,8 @@ public abstract class Tab public string Name { get; } public string Icon { get; } + public virtual bool ShowSearchBar => false; + protected readonly IPreviewBuilder PreviewBuilder; protected Tab(string name, string icon = "Generic", IPreviewBuilder previewBuilder = null) diff --git a/Assets/Script/Settings/Metadata/TextMetadata.cs b/Assets/Script/Settings/Metadata/TextMetadata.cs index eb9a18aef..f3f6abf53 100644 --- a/Assets/Script/Settings/Metadata/TextMetadata.cs +++ b/Assets/Script/Settings/Metadata/TextMetadata.cs @@ -1,7 +1,9 @@ namespace YARG.Settings.Metadata { - public class TextMetadata : AbstractMetadata + public sealed class TextMetadata : AbstractMetadata { + public override string[] UnlocalizedSearchNames => null; + public string TextName { get; private set; } public TextMetadata(string textName) diff --git a/Assets/Script/Settings/SettingsManager.Settings.cs b/Assets/Script/Settings/SettingsManager.Settings.cs index 68f21e6fe..a833a650f 100644 --- a/Assets/Script/Settings/SettingsManager.Settings.cs +++ b/Assets/Script/Settings/SettingsManager.Settings.cs @@ -5,6 +5,7 @@ using YARG.Gameplay.HUD; using YARG.Helpers; using YARG.Integration; +using YARG.Integration.Sacn; using YARG.Menu.Persistent; using YARG.Menu.Settings; using YARG.Player; @@ -18,6 +19,8 @@ public static partial class SettingsManager { public class SettingContainer { + //public static event System.Action OnDMXChannelsChanged; + /// /// Whether or not the settings are currently in the process of being loaded. /// @@ -34,26 +37,6 @@ public class SettingContainer #region General - public void ExportSongsOuvert() - { - FileExplorerHelper.OpenSaveFile(null, "songs", "json", SongExport.ExportOuvert); - } - - public void ExportSongsText() - { - FileExplorerHelper.OpenSaveFile(null, "songs", "txt", SongExport.ExportText); - } - - public void CopyCurrentSongTextFilePath() - { - GUIUtility.systemCopyBuffer = CurrentSongController.TextFilePath; - } - - public void CopyCurrentSongJsonFilePath() - { - GUIUtility.systemCopyBuffer = CurrentSongController.JsonFilePath; - } - public void OpenVenueFolder() { FileExplorerHelper.OpenFolder(VenueLoader.VenueFolder); @@ -78,9 +61,6 @@ public void OpenCalibrator() public ToggleSetting AmIAwesome { get; } = new(false); - public ToggleSetting InputDeviceLogging { get; } = new(false, InputDeviceLoggingCallback); - public ToggleSetting ShowAdvancedMusicLibraryOptions { get; } = new(false); - #endregion #region Sound @@ -162,8 +142,78 @@ public void OpenCalibrator() #endregion + #region File Management + + public void ExportSongsOuvert() + { + FileExplorerHelper.OpenSaveFile(null, "songs", "json", SongExport.ExportOuvert); + } + + public void ExportSongsText() + { + FileExplorerHelper.OpenSaveFile(null, "songs", "txt", SongExport.ExportText); + } + + public void CopyCurrentSongTextFilePath() + { + GUIUtility.systemCopyBuffer = CurrentSongController.TextFilePath; + } + + public void CopyCurrentSongJsonFilePath() + { + GUIUtility.systemCopyBuffer = CurrentSongController.JsonFilePath; + } + + public void OpenPersistentDataPath() + { + FileExplorerHelper.OpenFolder(PathHelper.PersistentDataPath); + } + + public void OpenExecutablePath() + { + FileExplorerHelper.OpenFolder(PathHelper.ExecutablePath); + } + + #endregion + + #region Lighting Peripherals + + public ToggleSetting StageKitEnabled { get; } = new(true); + public ToggleSetting DMXEnabled { get; } = new(false, DMXEnabledCallback); + + public DMXChannelsSetting DMXDimmerChannels { get; } = new( + new[] { 01, 09, 17, 25, 33, 41, 49, 57 }, DMXCallback); + public DMXChannelsSetting DMXBlueChannels { get; } = new( + new[] { 04, 12, 20, 28, 36, 44, 52, 60 }, DMXCallback); + public DMXChannelsSetting DMXRedChannels { get; } = new( + new[] { 02, 10, 18, 26, 34, 42, 50, 58 }, DMXCallback); + public DMXChannelsSetting DMXGreenChannels { get; } = new( + new[] { 03, 11, 19, 27, 35, 43, 51, 59 }, DMXCallback); + public DMXChannelsSetting DMXYellowChannels { get; } = new( + new[] { 05, 13, 21, 29, 37, 45, 53, 61 }, DMXCallback); + + #endregion + + #region Debug and Developer + + public ToggleSetting InputDeviceLogging { get; } = new(false, InputDeviceLoggingCallback); + + public ToggleSetting ShowAdvancedMusicLibraryOptions { get; } = new(false); + + #endregion + #region Callbacks + private static void DMXEnabledCallback(bool value) + { + SacnController.Instance.HandleEnabledChanged(value); + } + + private static void DMXCallback(int[] value) + { + SacnController.Instance.UpdateDMXChannels(); + } + private static void VSyncCallback(bool value) { QualitySettings.vSyncCount = value ? 1 : 0; diff --git a/Assets/Script/Settings/SettingsManager.cs b/Assets/Script/Settings/SettingsManager.cs index 098939f50..aa3a79c91 100644 --- a/Assets/Script/Settings/SettingsManager.cs +++ b/Assets/Script/Settings/SettingsManager.cs @@ -14,37 +14,25 @@ public static partial class SettingsManager { public static SettingContainer Settings { get; private set; } - public static readonly List SettingsTabs = new() + public static readonly List DisplayedSettingsTabs = new() { - new MetadataTab("General") + new MetadataTab("General", icon: "Engine") { - new HeaderMetadata("FileManagement"), - new ButtonRowMetadata( - nameof(Settings.ExportSongsOuvert), - nameof(Settings.ExportSongsText)), - new ButtonRowMetadata( - nameof(Settings.CopyCurrentSongTextFilePath), - nameof(Settings.CopyCurrentSongJsonFilePath)), + new HeaderMetadata("Calibration"), + new ButtonRowMetadata(nameof(Settings.OpenCalibrator)), + nameof(Settings.AudioCalibration), + nameof(Settings.VideoCalibration), new HeaderMetadata("Venues"), new ButtonRowMetadata(nameof(Settings.OpenVenueFolder)), nameof(Settings.DisableGlobalBackgrounds), nameof(Settings.DisablePerSongBackgrounds), - new HeaderMetadata("Calibration"), - new ButtonRowMetadata(nameof(Settings.OpenCalibrator)), - nameof(Settings.AudioCalibration), - nameof(Settings.VideoCalibration), - new HeaderMetadata("Other"), nameof(Settings.UseCymbalModelsInFiveLane), nameof(Settings.KickBounceMultiplier), nameof(Settings.ShowCursorTimer), nameof(Settings.AmIAwesome), - - new HeaderMetadata("Advanced"), - nameof(Settings.InputDeviceLogging), - nameof(Settings.ShowAdvancedMusicLibraryOptions) }, new SongManagerTab("SongManager", icon: "Songs"), new MetadataTab("Sound", icon: "Sound") @@ -98,9 +86,51 @@ public static partial class SettingsManager nameof(Settings.GraphicalProgressOnScoreBox), nameof(Settings.KeepSongInfoVisible) }, - new PresetsTab("Presets", icon: "Customization") + new PresetsTab("Presets", icon: "Customization"), + new AllSettingsTab(), }; + public static readonly List AllSettingsTabs = new() + { + // The displayed tabs are appended to the top here + + new MetadataTab("FileManagement", icon: "Files") + { + new HeaderMetadata("Export"), + new ButtonRowMetadata( + nameof(Settings.ExportSongsOuvert), + nameof(Settings.ExportSongsText)), + new HeaderMetadata("PathsAndFolders"), + new ButtonRowMetadata( + nameof(Settings.CopyCurrentSongTextFilePath), + nameof(Settings.CopyCurrentSongJsonFilePath)), + new ButtonRowMetadata(nameof(Settings.OpenPersistentDataPath)), + new ButtonRowMetadata(nameof(Settings.OpenExecutablePath)), + }, + new MetadataTab("LightingPeripherals", icon: "Lighting") + { + new HeaderMetadata("LightingGeneral"), + nameof(Settings.StageKitEnabled), + nameof(Settings.DMXEnabled), + new HeaderMetadata("DMXChannels"), + nameof(Settings.DMXDimmerChannels), + nameof(Settings.DMXBlueChannels), + nameof(Settings.DMXRedChannels), + nameof(Settings.DMXGreenChannels), + nameof(Settings.DMXYellowChannels), + }, + new MetadataTab("Debug", icon: "Debug") + { + nameof(Settings.InputDeviceLogging), + nameof(Settings.ShowAdvancedMusicLibraryOptions) + } + }; + + static SettingsManager() + { + AllSettingsTabs.InsertRange(0, DisplayedSettingsTabs); + } + private static string SettingsFile => Path.Combine(PathHelper.PersistentDataPath, "settings.json"); public static void LoadSettings() @@ -194,7 +224,7 @@ public static void InvokeButton(string name) public static Tab GetTabByName(string name) { - return SettingsTabs.FirstOrDefault(tab => tab.Name == name); + return AllSettingsTabs.FirstOrDefault(tab => tab.Name == name); } public static void SetSettingsByName(string name, object value) diff --git a/Assets/Script/Settings/Types/DMXChannelsSetting.cs b/Assets/Script/Settings/Types/DMXChannelsSetting.cs new file mode 100644 index 000000000..2b460f634 --- /dev/null +++ b/Assets/Script/Settings/Types/DMXChannelsSetting.cs @@ -0,0 +1,26 @@ +using System; + +namespace YARG.Settings.Types +{ + public class DMXChannelsSetting : AbstractSetting + { + public override string AddressableName => "Setting/DMXChannels"; + + public int Min { get; } + public int Max { get; } + + public DMXChannelsSetting(int[] value, Action onChange = null) : base(onChange) + { + // DMX channels range from 1 to 512. (0 is the start code channel) + Min = 1; + Max = 512; + + _value = value; + } + + public override bool ValueEquals(int[] value) + { + return value == Value; + } + } +} \ No newline at end of file diff --git a/Assets/Script/Settings/Types/DMXChannelsSetting.cs.meta b/Assets/Script/Settings/Types/DMXChannelsSetting.cs.meta new file mode 100644 index 000000000..eae6c8e27 --- /dev/null +++ b/Assets/Script/Settings/Types/DMXChannelsSetting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 98220c19c12fb3f4b958bf0c46f05e7e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/AddressableAssetsData/AssetGroups/Default Local Group.asset b/Assets/Settings/AddressableAssetsData/AssetGroups/Default Local Group.asset index e9b6d88fd..cbc7a78dd 100644 --- a/Assets/Settings/AddressableAssetsData/AssetGroups/Default Local Group.asset +++ b/Assets/Settings/AddressableAssetsData/AssetGroups/Default Local Group.asset @@ -147,6 +147,21 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 8644ff72d188351429aeb73a1d49386e + m_Address: Setting/DMXChannels + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 9d036fb0b1366674c947c508eacbef3b + m_Address: SettingTab/SettingCategoryView + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 38b7af833df3b304aae452f8475324f7 + m_Address: SettingTab/SearchResultPopulator + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 m_ReadOnly: 0 m_Settings: {fileID: 11400000, guid: e05274e5aee7ff54bb550557e8a635f2, type: 2} m_SchemaSet: diff --git a/Assets/Settings/Localization/Settings Shared Data.asset b/Assets/Settings/Localization/Settings Shared Data.asset index 7117ddc2d..094f1f776 100644 --- a/Assets/Settings/Localization/Settings Shared Data.asset +++ b/Assets/Settings/Localization/Settings Shared Data.asset @@ -15,116 +15,104 @@ MonoBehaviour: m_TableCollectionName: Settings m_TableCollectionNameGuidString: 0c40e690d26fdff4a92f0b3813ac68a4 m_Entries: - - m_Id: 53693768659230720 - m_Key: Button.General.CopyCurrentSongJsonFilePath + - m_Id: 116747023324405765 + m_Key: Button.AddFolder m_Metadata: m_Items: [] - - m_Id: 53693768667619328 - m_Key: Button.General.CopyCurrentSongTextFilePath + - m_Id: 116747023320211456 + m_Key: Button.CopyCurrentSongJsonFilePath m_Metadata: m_Items: [] - - m_Id: 64541856412065792 - m_Key: Button.General.ExportSongsOuvert + - m_Id: 116747023324405760 + m_Key: Button.CopyCurrentSongTextFilePath m_Metadata: m_Items: [] - - m_Id: 64541856412065793 - m_Key: Button.General.ExportSongsText + - m_Id: 116747023324405761 + m_Key: Button.ExportSongsOuvert m_Metadata: m_Items: [] - - m_Id: 53693768667619330 - m_Key: Button.General.OpenCalibrator + - m_Id: 116747023324405762 + m_Key: Button.ExportSongsText m_Metadata: m_Items: [] - - m_Id: 53693768667619332 - m_Key: Button.General.OpenVenueFolder + - m_Id: 116747023324405763 + m_Key: Button.OpenCalibrator m_Metadata: m_Items: [] - - m_Id: 53694051170770944 - m_Key: Button.SongManager.AddFolder + - m_Id: 116844061357629440 + m_Key: Button.OpenExecutablePath m_Metadata: m_Items: [] - - m_Id: 53694051174965248 - m_Key: Button.SongManager.RefreshCache + - m_Id: 116844061361823744 + m_Key: Button.OpenPersistentDataPath m_Metadata: m_Items: [] - - m_Id: 53693768667619333 - m_Key: Dropdown.Graphics.FullscreenMode.ExclusiveFullScreen + - m_Id: 116747023324405764 + m_Key: Button.OpenVenueFolder m_Metadata: m_Items: [] - - m_Id: 53693768667619334 - m_Key: Dropdown.Graphics.FullscreenMode.FullScreenWindow + - m_Id: 116747023324405766 + m_Key: Button.RefreshCache m_Metadata: m_Items: [] - - m_Id: 53693768667619335 - m_Key: Dropdown.Graphics.FullscreenMode.MaximizedWindow + - m_Id: 116747023324405767 + m_Key: Dropdown.FullscreenMode.ExclusiveFullScreen m_Metadata: m_Items: [] - - m_Id: 53693768667619336 - m_Key: Dropdown.Graphics.FullscreenMode.Windowed + - m_Id: 116747023324405768 + m_Key: Dropdown.FullscreenMode.FullScreenWindow m_Metadata: m_Items: [] - - m_Id: 66739072220389376 - m_Key: Dropdown.Graphics.LyricDisplay.Compatibility + - m_Id: 116747023324405769 + m_Key: Dropdown.FullscreenMode.MaximizedWindow m_Metadata: m_Items: [] - - m_Id: 66739072241360897 - m_Key: Dropdown.Graphics.LyricDisplay.Disabled + - m_Id: 116747023324405770 + m_Key: Dropdown.FullscreenMode.Windowed m_Metadata: m_Items: [] - - m_Id: 92132627034005504 - m_Key: Dropdown.Graphics.LyricDisplay.NoBackground + - m_Id: 116747023324405771 + m_Key: Dropdown.LyricDisplay.Compatibility m_Metadata: m_Items: [] - - m_Id: 66739072241360898 - m_Key: Dropdown.Graphics.LyricDisplay.Normal + - m_Id: 116747023324405772 + m_Key: Dropdown.LyricDisplay.Disabled m_Metadata: m_Items: [] - - m_Id: 66739072241360899 - m_Key: Dropdown.Graphics.LyricDisplay.Transparent + - m_Id: 116747023324405773 + m_Key: Dropdown.LyricDisplay.NoBackground m_Metadata: m_Items: [] - - m_Id: 56963656047779840 - m_Key: Dropdown.Graphics.SongTimeOnScoreBox.CountDownAndTotal + - m_Id: 116747023324405774 + m_Key: Dropdown.LyricDisplay.Normal m_Metadata: m_Items: [] - - m_Id: 56963656236523520 - m_Key: Dropdown.Graphics.SongTimeOnScoreBox.CountDownOnly + - m_Id: 116747023324405775 + m_Key: Dropdown.LyricDisplay.Transparent m_Metadata: m_Items: [] - - m_Id: 56963656236523521 - m_Key: Dropdown.Graphics.SongTimeOnScoreBox.CountUpAndTotal + - m_Id: 116747023324405776 + m_Key: Dropdown.SongTimeOnScoreBox.CountDownAndTotal m_Metadata: m_Items: [] - - m_Id: 56963656236523522 - m_Key: Dropdown.Graphics.SongTimeOnScoreBox.CountUpOnly + - m_Id: 116747023324405777 + m_Key: Dropdown.SongTimeOnScoreBox.CountDownOnly m_Metadata: m_Items: [] - - m_Id: 56963656236523523 - m_Key: Dropdown.Graphics.SongTimeOnScoreBox.None + - m_Id: 116747023324405778 + m_Key: Dropdown.SongTimeOnScoreBox.CountUpAndTotal m_Metadata: m_Items: [] - - m_Id: 56963656240717824 - m_Key: Dropdown.Graphics.SongTimeOnScoreBox.TotalOnly + - m_Id: 116747023324405779 + m_Key: Dropdown.SongTimeOnScoreBox.CountUpOnly m_Metadata: m_Items: [] - - m_Id: 90695957755584512 - m_Key: Dropdown.Presets.ColorProfile.Instrument.FiveFretGuitar + - m_Id: 116747023324405780 + m_Key: Dropdown.SongTimeOnScoreBox.None m_Metadata: m_Items: [] - - m_Id: 90695957784944640 - m_Key: Dropdown.Presets.ColorProfile.Instrument.FiveLaneDrums - m_Metadata: - m_Items: [] - - m_Id: 90695957784944641 - m_Key: Dropdown.Presets.ColorProfile.Instrument.FourLaneDrums - m_Metadata: - m_Items: [] - - m_Id: 92846839934869504 - m_Key: Dropdown.Presets.EnginePreset.GameMode.DrumsPreset - m_Metadata: - m_Items: [] - - m_Id: 92846839955841024 - m_Key: Dropdown.Presets.EnginePreset.GameMode.FiveFretGuitarPreset + - m_Id: 116747023324405781 + m_Key: Dropdown.SongTimeOnScoreBox.TotalOnly m_Metadata: m_Items: [] - m_Id: 92111997366558720 @@ -151,8 +139,12 @@ MonoBehaviour: m_Key: Header.Display m_Metadata: m_Items: [] - - m_Id: 12472066134892544 - m_Key: Header.FileManagement + - m_Id: 116744829242040320 + m_Key: Header.DMXChannels + m_Metadata: + m_Items: [] + - m_Id: 116844061361823745 + m_Key: Header.Export m_Metadata: m_Items: [] - m_Id: 12473817265201152 @@ -163,10 +155,18 @@ MonoBehaviour: m_Key: Header.Input m_Metadata: m_Items: [] + - m_Id: 116744829250428928 + m_Key: Header.LightingGeneral + m_Metadata: + m_Items: [] - m_Id: 12472103388700672 m_Key: Header.Other m_Metadata: m_Items: [] + - m_Id: 116844061361823746 + m_Key: Header.PathsAndFolders + m_Metadata: + m_Items: [] - m_Id: 62024422937452544 m_Key: Header.PresetSettings m_Metadata: @@ -187,714 +187,790 @@ MonoBehaviour: m_Key: Header.Volume m_Metadata: m_Items: [] - - m_Id: 62024422966812672 - m_Key: PresetType.CameraSettingsContainer + - m_Id: 116747023324405782 + m_Key: PresetDropdown.ColorProfile.Instrument.FiveFretGuitar m_Metadata: m_Items: [] - - m_Id: 64543436070838272 - m_Key: PresetType.ColorProfileContainer + - m_Id: 116747023324405783 + m_Key: PresetDropdown.ColorProfile.Instrument.FiveLaneDrums m_Metadata: m_Items: [] - - m_Id: 92846839955841025 - m_Key: PresetType.EnginePresetContainer + - m_Id: 116747023324405784 + m_Key: PresetDropdown.ColorProfile.Instrument.FourLaneDrums + m_Metadata: + m_Items: [] + - m_Id: 116747023324405785 + m_Key: PresetDropdown.EnginePreset.GameMode.DrumsPreset + m_Metadata: + m_Items: [] + - m_Id: 116747023324405786 + m_Key: PresetDropdown.EnginePreset.GameMode.FiveFretGuitarPreset + m_Metadata: + m_Items: [] + - m_Id: 116747023324405845 + m_Key: PresetSetting.CameraPreset.CurveFactor + m_Metadata: + m_Items: [] + - m_Id: 116747023324405846 + m_Key: PresetSetting.CameraPreset.CurveFactor.Description + m_Metadata: + m_Items: [] + - m_Id: 116747023324405847 + m_Key: PresetSetting.CameraPreset.FadeLength + m_Metadata: + m_Items: [] + - m_Id: 116747023324405848 + m_Key: PresetSetting.CameraPreset.FadeLength.Description + m_Metadata: + m_Items: [] + - m_Id: 116747023324405849 + m_Key: PresetSetting.CameraPreset.FadeStart m_Metadata: m_Items: [] - - m_Id: 53693768667619344 - m_Key: Setting.Engine.NoKicks + - m_Id: 116747023324405850 + m_Key: PresetSetting.CameraPreset.FadeStart.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850241 - m_Key: Setting.Engine.NoKicks.Description + - m_Id: 116747023324405851 + m_Key: PresetSetting.CameraPreset.FieldOfView m_Metadata: m_Items: [] - - m_Id: 53693768667619345 - m_Key: Setting.General.AmIAwesome + - m_Id: 116747023328600064 + m_Key: PresetSetting.CameraPreset.FieldOfView.Description m_Metadata: m_Items: [] - - m_Id: 53693768667619346 - m_Key: Setting.General.AmIAwesome.Description + - m_Id: 116747023328600065 + m_Key: PresetSetting.CameraPreset.PositionY m_Metadata: m_Items: [] - - m_Id: 53693768667619347 - m_Key: Setting.General.AudioCalibration + - m_Id: 116747023328600066 + m_Key: PresetSetting.CameraPreset.PositionY.Description m_Metadata: m_Items: [] - - m_Id: 53693768667619348 - m_Key: Setting.General.AudioCalibration.Description + - m_Id: 116747023328600067 + m_Key: PresetSetting.CameraPreset.PositionZ m_Metadata: m_Items: [] - - m_Id: 114727832880271360 - m_Key: Setting.General.DisableGlobalBackgrounds + - m_Id: 116747023328600068 + m_Key: PresetSetting.CameraPreset.PositionZ.Description m_Metadata: m_Items: [] - - m_Id: 114727863477719040 - m_Key: Setting.General.DisableGlobalBackgrounds.Description + - m_Id: 116747023328600069 + m_Key: PresetSetting.CameraPreset.Rotation m_Metadata: m_Items: [] - - m_Id: 53693768667619349 - m_Key: Setting.General.DisablePerSongBackgrounds + - m_Id: 116747023328600070 + m_Key: PresetSetting.CameraPreset.Rotation.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850242 - m_Key: Setting.General.DisablePerSongBackgrounds.Description + - m_Id: 116747023328600071 + m_Key: PresetSetting.ColorProfile.ActivationNote m_Metadata: m_Items: [] - - m_Id: 79799556705734656 - m_Key: Setting.General.InputDeviceLogging + - m_Id: 116747023328600072 + m_Key: PresetSetting.ColorProfile.BlueCymbal m_Metadata: m_Items: [] - - m_Id: 79799583608000512 - m_Key: Setting.General.InputDeviceLogging.Description + - m_Id: 116747023328600073 + m_Key: PresetSetting.ColorProfile.BlueCymbalStarpower m_Metadata: m_Items: [] - - m_Id: 92131506068512768 - m_Key: Setting.General.KickBounceMultiplier + - m_Id: 116747023328600074 + m_Key: PresetSetting.ColorProfile.BlueDrum m_Metadata: m_Items: [] - - m_Id: 92131506068512769 - m_Key: Setting.General.KickBounceMultiplier.Description + - m_Id: 116747023328600075 + m_Key: PresetSetting.ColorProfile.BlueDrumStarpower m_Metadata: m_Items: [] - - m_Id: 92111997370753024 - m_Key: Setting.General.ShowAdvancedMusicLibraryOptions + - m_Id: 116747023328600076 + m_Key: PresetSetting.ColorProfile.BlueFret m_Metadata: m_Items: [] - - m_Id: 92112677250654208 - m_Key: Setting.General.ShowAdvancedMusicLibraryOptions.Description + - m_Id: 116747023328600077 + m_Key: PresetSetting.ColorProfile.BlueFretInner m_Metadata: m_Items: [] - - m_Id: 53693768667619351 - m_Key: Setting.General.ShowCursorTimer + - m_Id: 116747023328600078 + m_Key: PresetSetting.ColorProfile.BlueNote m_Metadata: m_Items: [] - - m_Id: 53704501379850244 - m_Key: Setting.General.ShowCursorTimer.Description + - m_Id: 116747023328600079 + m_Key: PresetSetting.ColorProfile.BlueNoteStarPower m_Metadata: m_Items: [] - - m_Id: 53693768667619352 - m_Key: Setting.General.UseCymbalModelsInFiveLane + - m_Id: 116747023328600080 + m_Key: PresetSetting.ColorProfile.BlueParticles m_Metadata: m_Items: [] - - m_Id: 53704501379850245 - m_Key: Setting.General.UseCymbalModelsInFiveLane.Description + - m_Id: 116747023328600081 + m_Key: PresetSetting.ColorProfile.BlueStarpower m_Metadata: m_Items: [] - - m_Id: 73744741668081664 - m_Key: Setting.General.VideoCalibration + - m_Id: 116747023328600082 + m_Key: PresetSetting.ColorProfile.GreenCymbal m_Metadata: m_Items: [] - - m_Id: 73745068840570880 - m_Key: Setting.General.VideoCalibration.Description + - m_Id: 116747023328600083 + m_Key: PresetSetting.ColorProfile.GreenCymbalStarpower m_Metadata: m_Items: [] - - m_Id: 53693768667619353 - m_Key: Setting.Graphics.DisableBloom + - m_Id: 116747023328600084 + m_Key: PresetSetting.ColorProfile.GreenDrum m_Metadata: m_Items: [] - - m_Id: 53704501379850246 - m_Key: Setting.Graphics.DisableBloom.Description + - m_Id: 116747023328600085 + m_Key: PresetSetting.ColorProfile.GreenDrumStarpower m_Metadata: m_Items: [] - - m_Id: 53693768667619354 - m_Key: Setting.Graphics.DisableTextNotifications + - m_Id: 116747023328600086 + m_Key: PresetSetting.ColorProfile.GreenFret m_Metadata: m_Items: [] - - m_Id: 53704501379850247 - m_Key: Setting.Graphics.DisableTextNotifications.Description + - m_Id: 116747023328600087 + m_Key: PresetSetting.ColorProfile.GreenFretInner m_Metadata: m_Items: [] - - m_Id: 53693768667619355 - m_Key: Setting.Graphics.FpsCap + - m_Id: 116747023328600088 + m_Key: PresetSetting.ColorProfile.GreenNote m_Metadata: m_Items: [] - - m_Id: 53704501379850248 - m_Key: Setting.Graphics.FpsCap.Description + - m_Id: 116747023328600089 + m_Key: PresetSetting.ColorProfile.GreenNoteStarPower m_Metadata: m_Items: [] - - m_Id: 53693768667619356 - m_Key: Setting.Graphics.FpsStats + - m_Id: 116747023328600090 + m_Key: PresetSetting.ColorProfile.GreenParticles m_Metadata: m_Items: [] - - m_Id: 53704501379850249 - m_Key: Setting.Graphics.FpsStats.Description + - m_Id: 116747023328600091 + m_Key: PresetSetting.ColorProfile.GreenStarpower m_Metadata: m_Items: [] - - m_Id: 53693768667619357 - m_Key: Setting.Graphics.FullscreenMode + - m_Id: 116747023328600092 + m_Key: PresetSetting.ColorProfile.Instrument m_Metadata: m_Items: [] - - m_Id: 53704501379850250 - m_Key: Setting.Graphics.FullscreenMode.Description + - m_Id: 116747023328600093 + m_Key: PresetSetting.ColorProfile.KickFret m_Metadata: m_Items: [] - - m_Id: 56971512511848448 - m_Key: Setting.Graphics.GraphicalProgressOnScoreBox + - m_Id: 116747023328600094 + m_Key: PresetSetting.ColorProfile.KickFretInner m_Metadata: m_Items: [] - - m_Id: 56971512511848449 - m_Key: Setting.Graphics.GraphicalProgressOnScoreBox.Description + - m_Id: 116747023328600095 + m_Key: PresetSetting.ColorProfile.KickNote m_Metadata: m_Items: [] - - m_Id: 98954526460338176 - m_Key: Setting.Graphics.KeepSongInfoVisible + - m_Id: 116747023328600096 + m_Key: PresetSetting.ColorProfile.KickParticles m_Metadata: m_Items: [] - - m_Id: 98954526485504000 - m_Key: Setting.Graphics.KeepSongInfoVisible.Description + - m_Id: 116747023328600097 + m_Key: PresetSetting.ColorProfile.KickStarpower m_Metadata: m_Items: [] - - m_Id: 53693768667619358 - m_Key: Setting.Graphics.LowQuality + - m_Id: 116747023328600098 + m_Key: PresetSetting.ColorProfile.OpenFret m_Metadata: m_Items: [] - - m_Id: 53704501379850251 - m_Key: Setting.Graphics.LowQuality.Description + - m_Id: 116747023328600099 + m_Key: PresetSetting.ColorProfile.OpenFretInner m_Metadata: m_Items: [] - - m_Id: 66739072245555200 - m_Key: Setting.Graphics.LyricDisplay + - m_Id: 116747023328600100 + m_Key: PresetSetting.ColorProfile.OpenNote m_Metadata: m_Items: [] - - m_Id: 66739072245555201 - m_Key: Setting.Graphics.LyricDisplay.Description + - m_Id: 116747023328600101 + m_Key: PresetSetting.ColorProfile.OpenNoteStarPower m_Metadata: m_Items: [] - - m_Id: 53693768667619360 - m_Key: Setting.Graphics.Resolution + - m_Id: 116747023328600102 + m_Key: PresetSetting.ColorProfile.OpenParticles m_Metadata: m_Items: [] - - m_Id: 53704501379850253 - m_Key: Setting.Graphics.Resolution.Description + - m_Id: 116747023328600103 + m_Key: PresetSetting.ColorProfile.OrangeFret m_Metadata: m_Items: [] - - m_Id: 53693768667619361 - m_Key: Setting.Graphics.ShowHitWindow + - m_Id: 116747023328600104 + m_Key: PresetSetting.ColorProfile.OrangeFretInner m_Metadata: m_Items: [] - - m_Id: 53704501379850254 - m_Key: Setting.Graphics.ShowHitWindow.Description + - m_Id: 116747023328600105 + m_Key: PresetSetting.ColorProfile.OrangeNote m_Metadata: m_Items: [] - - m_Id: 56963656240717825 - m_Key: Setting.Graphics.SongTimeOnScoreBox + - m_Id: 116747023328600106 + m_Key: PresetSetting.ColorProfile.OrangeNoteStarPower m_Metadata: m_Items: [] - - m_Id: 56963656240717826 - m_Key: Setting.Graphics.SongTimeOnScoreBox.Description + - m_Id: 116747023328600107 + m_Key: PresetSetting.ColorProfile.OrangeParticles m_Metadata: m_Items: [] - - m_Id: 53693768667619369 - m_Key: Setting.Graphics.VSync + - m_Id: 116747023328600108 + m_Key: PresetSetting.ColorProfile.OrangeStarpower m_Metadata: m_Items: [] - - m_Id: 53704501379850262 - m_Key: Setting.Graphics.VSync.Description + - m_Id: 116747023328600109 + m_Key: PresetSetting.ColorProfile.RedDrum m_Metadata: m_Items: [] - - m_Id: 87818437364408320 - m_Key: Setting.Presets.CameraPreset.CurveFactor + - m_Id: 116747023328600110 + m_Key: PresetSetting.ColorProfile.RedDrumStarpower m_Metadata: m_Items: [] - - m_Id: 87818437393768448 - m_Key: Setting.Presets.CameraPreset.CurveFactor.Description + - m_Id: 116747023328600111 + m_Key: PresetSetting.ColorProfile.RedFret m_Metadata: m_Items: [] - - m_Id: 87818437393768449 - m_Key: Setting.Presets.CameraPreset.FadeLength + - m_Id: 116747023328600112 + m_Key: PresetSetting.ColorProfile.RedFretInner m_Metadata: m_Items: [] - - m_Id: 87818437393768450 - m_Key: Setting.Presets.CameraPreset.FadeLength.Description + - m_Id: 116747023328600113 + m_Key: PresetSetting.ColorProfile.RedNote m_Metadata: m_Items: [] - - m_Id: 87818437393768451 - m_Key: Setting.Presets.CameraPreset.FadeStart + - m_Id: 116747023328600114 + m_Key: PresetSetting.ColorProfile.RedNoteStarPower m_Metadata: m_Items: [] - - m_Id: 87818437393768452 - m_Key: Setting.Presets.CameraPreset.FadeStart.Description + - m_Id: 116747023328600115 + m_Key: PresetSetting.ColorProfile.RedParticles m_Metadata: m_Items: [] - - m_Id: 87818437393768453 - m_Key: Setting.Presets.CameraPreset.FieldOfView + - m_Id: 116747023328600116 + m_Key: PresetSetting.ColorProfile.RedStarpower m_Metadata: m_Items: [] - - m_Id: 87818437393768454 - m_Key: Setting.Presets.CameraPreset.FieldOfView.Description + - m_Id: 116747023328600117 + m_Key: PresetSetting.ColorProfile.YellowCymbal m_Metadata: m_Items: [] - - m_Id: 87818437393768455 - m_Key: Setting.Presets.CameraPreset.PositionY + - m_Id: 116747023328600118 + m_Key: PresetSetting.ColorProfile.YellowCymbalStarpower m_Metadata: m_Items: [] - - m_Id: 87818437393768456 - m_Key: Setting.Presets.CameraPreset.PositionY.Description + - m_Id: 116747023328600119 + m_Key: PresetSetting.ColorProfile.YellowDrum m_Metadata: m_Items: [] - - m_Id: 87818437393768457 - m_Key: Setting.Presets.CameraPreset.PositionZ + - m_Id: 116747023328600120 + m_Key: PresetSetting.ColorProfile.YellowDrumStarpower m_Metadata: m_Items: [] - - m_Id: 87818437393768458 - m_Key: Setting.Presets.CameraPreset.PositionZ.Description + - m_Id: 116747023328600121 + m_Key: PresetSetting.ColorProfile.YellowFret m_Metadata: m_Items: [] - - m_Id: 87818437393768459 - m_Key: Setting.Presets.CameraPreset.Rotation + - m_Id: 116747023328600122 + m_Key: PresetSetting.ColorProfile.YellowFretInner m_Metadata: m_Items: [] - - m_Id: 87818437393768460 - m_Key: Setting.Presets.CameraPreset.Rotation.Description + - m_Id: 116747023328600123 + m_Key: PresetSetting.ColorProfile.YellowNote m_Metadata: m_Items: [] - - m_Id: 90695957784944644 - m_Key: Setting.Presets.ColorProfile.ActivationNote + - m_Id: 116747023328600124 + m_Key: PresetSetting.ColorProfile.YellowNoteStarPower m_Metadata: m_Items: [] - - m_Id: 90695957784944645 - m_Key: Setting.Presets.ColorProfile.BlueCymbal + - m_Id: 116747023328600125 + m_Key: PresetSetting.ColorProfile.YellowParticles m_Metadata: m_Items: [] - - m_Id: 90695957784944646 - m_Key: Setting.Presets.ColorProfile.BlueCymbalStarpower + - m_Id: 116747023328600126 + m_Key: PresetSetting.ColorProfile.YellowStarpower m_Metadata: m_Items: [] - - m_Id: 90695957784944647 - m_Key: Setting.Presets.ColorProfile.BlueDrum + - m_Id: 116747023328600127 + m_Key: PresetSetting.EnginePreset.AntiGhosting m_Metadata: m_Items: [] - - m_Id: 90695957784944648 - m_Key: Setting.Presets.ColorProfile.BlueDrumStarpower + - m_Id: 116747023328600128 + m_Key: PresetSetting.EnginePreset.AntiGhosting.Description m_Metadata: m_Items: [] - - m_Id: 90695957784944649 - m_Key: Setting.Presets.ColorProfile.BlueFret + - m_Id: 116747023328600129 + m_Key: PresetSetting.EnginePreset.FrontToBackRatio m_Metadata: m_Items: [] - - m_Id: 90695957789138944 - m_Key: Setting.Presets.ColorProfile.BlueFretInner + - m_Id: 116747023328600130 + m_Key: PresetSetting.EnginePreset.FrontToBackRatio.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138945 - m_Key: Setting.Presets.ColorProfile.BlueNote + - m_Id: 116747023328600131 + m_Key: PresetSetting.EnginePreset.GameMode m_Metadata: m_Items: [] - - m_Id: 90695957789138946 - m_Key: Setting.Presets.ColorProfile.BlueNoteStarPower + - m_Id: 116747023328600132 + m_Key: PresetSetting.EnginePreset.HitWindow m_Metadata: m_Items: [] - - m_Id: 90695957789138947 - m_Key: Setting.Presets.ColorProfile.BlueParticles + - m_Id: 116747023328600133 + m_Key: PresetSetting.EnginePreset.HopoLeniency m_Metadata: m_Items: [] - - m_Id: 90695957789138948 - m_Key: Setting.Presets.ColorProfile.BlueStarpower + - m_Id: 116747023328600134 + m_Key: PresetSetting.EnginePreset.HopoLeniency.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138949 - m_Key: Setting.Presets.ColorProfile.GreenCymbal + - m_Id: 116747023328600135 + m_Key: PresetSetting.EnginePreset.InfiniteFrontEnd m_Metadata: m_Items: [] - - m_Id: 90695957789138950 - m_Key: Setting.Presets.ColorProfile.GreenCymbalStarpower + - m_Id: 116747023328600136 + m_Key: PresetSetting.EnginePreset.InfiniteFrontEnd.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138951 - m_Key: Setting.Presets.ColorProfile.GreenDrum + - m_Id: 116747023328600137 + m_Key: PresetSetting.EnginePreset.IsDynamic m_Metadata: m_Items: [] - - m_Id: 90695957789138952 - m_Key: Setting.Presets.ColorProfile.GreenDrumStarpower + - m_Id: 116747023328600138 + m_Key: PresetSetting.EnginePreset.IsDynamic.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138953 - m_Key: Setting.Presets.ColorProfile.GreenFret + - m_Id: 116747023328600139 + m_Key: PresetSetting.EnginePreset.StrumLeniency m_Metadata: m_Items: [] - - m_Id: 90695957789138954 - m_Key: Setting.Presets.ColorProfile.GreenFretInner + - m_Id: 116747023328600140 + m_Key: PresetSetting.EnginePreset.StrumLeniency.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138955 - m_Key: Setting.Presets.ColorProfile.GreenNote + - m_Id: 116747023328600141 + m_Key: PresetSetting.EnginePreset.StrumLeniencySmall m_Metadata: m_Items: [] - - m_Id: 90695957789138956 - m_Key: Setting.Presets.ColorProfile.GreenNoteStarPower + - m_Id: 116747023328600142 + m_Key: PresetSetting.EnginePreset.StrumLeniencySmall.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138957 - m_Key: Setting.Presets.ColorProfile.GreenParticles + - m_Id: 62024422966812672 + m_Key: PresetType.CameraSettingsContainer + m_Metadata: + m_Items: [] + - m_Id: 64543436070838272 + m_Key: PresetType.ColorProfileContainer + m_Metadata: + m_Items: [] + - m_Id: 92846839955841025 + m_Key: PresetType.EnginePresetContainer + m_Metadata: + m_Items: [] + - m_Id: 116747023324405799 + m_Key: Setting.AmIAwesome + m_Metadata: + m_Items: [] + - m_Id: 116747023324405800 + m_Key: Setting.AmIAwesome.Description + m_Metadata: + m_Items: [] + - m_Id: 116747023324405801 + m_Key: Setting.AudioCalibration m_Metadata: m_Items: [] - - m_Id: 90695957789138958 - m_Key: Setting.Presets.ColorProfile.GreenStarpower + - m_Id: 116747023324405802 + m_Key: Setting.AudioCalibration.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138959 - m_Key: Setting.Presets.ColorProfile.Instrument + - m_Id: 116747023328600143 + m_Key: Setting.BassVolume m_Metadata: m_Items: [] - - m_Id: 90695957789138960 - m_Key: Setting.Presets.ColorProfile.KickFret + - m_Id: 116747023328600144 + m_Key: Setting.BassVolume.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138961 - m_Key: Setting.Presets.ColorProfile.KickFretInner + - m_Id: 116747023328600145 + m_Key: Setting.ClapsInStarpower m_Metadata: m_Items: [] - - m_Id: 90695957789138962 - m_Key: Setting.Presets.ColorProfile.KickNote + - m_Id: 116747023328600146 + m_Key: Setting.ClapsInStarpower.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138963 - m_Key: Setting.Presets.ColorProfile.KickParticles + - m_Id: 116747023328600147 + m_Key: Setting.CrowdVolume m_Metadata: m_Items: [] - - m_Id: 90695957789138964 - m_Key: Setting.Presets.ColorProfile.KickStarpower + - m_Id: 116747023328600148 + m_Key: Setting.CrowdVolume.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138965 - m_Key: Setting.Presets.ColorProfile.OpenFret + - m_Id: 116747023324405819 + m_Key: Setting.DisableBloom m_Metadata: m_Items: [] - - m_Id: 90695957789138966 - m_Key: Setting.Presets.ColorProfile.OpenFretInner + - m_Id: 116747023324405820 + m_Key: Setting.DisableBloom.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138967 - m_Key: Setting.Presets.ColorProfile.OpenNote + - m_Id: 116747023324405803 + m_Key: Setting.DisableGlobalBackgrounds m_Metadata: m_Items: [] - - m_Id: 90695957789138968 - m_Key: Setting.Presets.ColorProfile.OpenNoteStarPower + - m_Id: 116747023324405804 + m_Key: Setting.DisableGlobalBackgrounds.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138969 - m_Key: Setting.Presets.ColorProfile.OpenParticles + - m_Id: 116747023324405805 + m_Key: Setting.DisablePerSongBackgrounds m_Metadata: m_Items: [] - - m_Id: 90695957789138970 - m_Key: Setting.Presets.ColorProfile.OrangeFret + - m_Id: 116747023324405806 + m_Key: Setting.DisablePerSongBackgrounds.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138971 - m_Key: Setting.Presets.ColorProfile.OrangeFretInner + - m_Id: 116747023324405821 + m_Key: Setting.DisableTextNotifications m_Metadata: m_Items: [] - - m_Id: 90695957789138972 - m_Key: Setting.Presets.ColorProfile.OrangeNote + - m_Id: 116747023324405822 + m_Key: Setting.DisableTextNotifications.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138973 - m_Key: Setting.Presets.ColorProfile.OrangeNoteStarPower + - m_Id: 116747023324405787 + m_Key: Setting.DMXBlueChannels m_Metadata: m_Items: [] - - m_Id: 90695957789138974 - m_Key: Setting.Presets.ColorProfile.OrangeParticles + - m_Id: 116747023324405788 + m_Key: Setting.DMXDimmerChannels m_Metadata: m_Items: [] - - m_Id: 90695957789138975 - m_Key: Setting.Presets.ColorProfile.OrangeStarpower + - m_Id: 116747023324405789 + m_Key: Setting.DMXDimmerChannels.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138976 - m_Key: Setting.Presets.ColorProfile.RedDrum + - m_Id: 116747023324405790 + m_Key: Setting.DMXEnabled m_Metadata: m_Items: [] - - m_Id: 90695957789138977 - m_Key: Setting.Presets.ColorProfile.RedDrumStarpower + - m_Id: 116747023324405791 + m_Key: Setting.DMXEnabled.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138978 - m_Key: Setting.Presets.ColorProfile.RedFret + - m_Id: 116747023324405792 + m_Key: Setting.DMXGreenChannels m_Metadata: m_Items: [] - - m_Id: 90695957789138979 - m_Key: Setting.Presets.ColorProfile.RedFretInner + - m_Id: 116747023324405793 + m_Key: Setting.DMXRedChannels m_Metadata: m_Items: [] - - m_Id: 90695957789138980 - m_Key: Setting.Presets.ColorProfile.RedNote + - m_Id: 116747023324405794 + m_Key: Setting.DMXYellowChannels m_Metadata: m_Items: [] - - m_Id: 90695957789138981 - m_Key: Setting.Presets.ColorProfile.RedNoteStarPower + - m_Id: 116747023328600149 + m_Key: Setting.DrumsVolume m_Metadata: m_Items: [] - - m_Id: 90695957789138982 - m_Key: Setting.Presets.ColorProfile.RedParticles + - m_Id: 116747023328600150 + m_Key: Setting.DrumsVolume.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138983 - m_Key: Setting.Presets.ColorProfile.RedStarpower + - m_Id: 116747023324405823 + m_Key: Setting.FpsCap m_Metadata: m_Items: [] - - m_Id: 90695957789138984 - m_Key: Setting.Presets.ColorProfile.YellowCymbal + - m_Id: 116747023324405824 + m_Key: Setting.FpsCap.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138985 - m_Key: Setting.Presets.ColorProfile.YellowCymbalStarpower + - m_Id: 116747023324405825 + m_Key: Setting.FpsStats m_Metadata: m_Items: [] - - m_Id: 90695957789138986 - m_Key: Setting.Presets.ColorProfile.YellowDrum + - m_Id: 116747023324405826 + m_Key: Setting.FpsStats.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138987 - m_Key: Setting.Presets.ColorProfile.YellowDrumStarpower + - m_Id: 116747023324405827 + m_Key: Setting.FullscreenMode m_Metadata: m_Items: [] - - m_Id: 90695957789138988 - m_Key: Setting.Presets.ColorProfile.YellowFret + - m_Id: 116747023324405828 + m_Key: Setting.FullscreenMode.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138989 - m_Key: Setting.Presets.ColorProfile.YellowFretInner + - m_Id: 116747023324405829 + m_Key: Setting.GraphicalProgressOnScoreBox m_Metadata: m_Items: [] - - m_Id: 90695957789138990 - m_Key: Setting.Presets.ColorProfile.YellowNote + - m_Id: 116747023324405830 + m_Key: Setting.GraphicalProgressOnScoreBox.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138991 - m_Key: Setting.Presets.ColorProfile.YellowNoteStarPower + - m_Id: 116747023328600151 + m_Key: Setting.GuitarVolume m_Metadata: m_Items: [] - - m_Id: 90695957789138992 - m_Key: Setting.Presets.ColorProfile.YellowParticles + - m_Id: 116747023328600152 + m_Key: Setting.GuitarVolume.Description m_Metadata: m_Items: [] - - m_Id: 90695957789138993 - m_Key: Setting.Presets.ColorProfile.YellowStarpower + - m_Id: 116747023324405807 + m_Key: Setting.InputDeviceLogging m_Metadata: m_Items: [] - - m_Id: 92874700712435712 - m_Key: Setting.Presets.EnginePreset.AntiGhosting + - m_Id: 116747023324405808 + m_Key: Setting.InputDeviceLogging.Description m_Metadata: m_Items: [] - - m_Id: 92874700725018624 - m_Key: Setting.Presets.EnginePreset.AntiGhosting.Description + - m_Id: 116747023324405831 + m_Key: Setting.KeepSongInfoVisible m_Metadata: m_Items: [] - - m_Id: 93261075366404096 - m_Key: Setting.Presets.EnginePreset.FrontToBackRatio + - m_Id: 116747023324405832 + m_Key: Setting.KeepSongInfoVisible.Description m_Metadata: m_Items: [] - - m_Id: 93261605039890432 - m_Key: Setting.Presets.EnginePreset.FrontToBackRatio.Description + - m_Id: 116747023328600153 + m_Key: Setting.KeysVolume m_Metadata: m_Items: [] - - m_Id: 92846839960035328 - m_Key: Setting.Presets.EnginePreset.GameMode + - m_Id: 116747023328600154 + m_Key: Setting.KeysVolume.Description m_Metadata: m_Items: [] - - m_Id: 93261075383181312 - m_Key: Setting.Presets.EnginePreset.HitWindow + - m_Id: 116747023324405809 + m_Key: Setting.KickBounceMultiplier m_Metadata: m_Items: [] - - m_Id: 92875663112265728 - m_Key: Setting.Presets.EnginePreset.HopoLeniency + - m_Id: 116747023324405810 + m_Key: Setting.KickBounceMultiplier.Description m_Metadata: m_Items: [] - - m_Id: 93261075383181313 - m_Key: Setting.Presets.EnginePreset.HopoLeniency.Description + - m_Id: 116747023324405833 + m_Key: Setting.LowQuality m_Metadata: m_Items: [] - - m_Id: 92874700725018627 - m_Key: Setting.Presets.EnginePreset.InfiniteFrontEnd + - m_Id: 116747023324405834 + m_Key: Setting.LowQuality.Description m_Metadata: m_Items: [] - - m_Id: 92874700725018628 - m_Key: Setting.Presets.EnginePreset.InfiniteFrontEnd.Description + - m_Id: 116747023324405835 + m_Key: Setting.LyricDisplay m_Metadata: m_Items: [] - - m_Id: 93261075383181314 - m_Key: Setting.Presets.EnginePreset.IsDynamic + - m_Id: 116747023324405836 + m_Key: Setting.LyricDisplay.Description m_Metadata: m_Items: [] - - m_Id: 93261075387375616 - m_Key: Setting.Presets.EnginePreset.IsDynamic.Description + - m_Id: 116747023328600155 + m_Key: Setting.MasterMusicVolume m_Metadata: m_Items: [] - - m_Id: 92875663112265729 - m_Key: Setting.Presets.EnginePreset.StrumLeniency + - m_Id: 116747023328600156 + m_Key: Setting.MasterMusicVolume.Description m_Metadata: m_Items: [] - - m_Id: 93261075387375617 - m_Key: Setting.Presets.EnginePreset.StrumLeniency.Description + - m_Id: 116747023328600157 + m_Key: Setting.MicrophoneSensitivity m_Metadata: m_Items: [] - - m_Id: 92875663112265730 - m_Key: Setting.Presets.EnginePreset.StrumLeniencySmall + - m_Id: 116747023328600158 + m_Key: Setting.MicrophoneSensitivity.Description m_Metadata: m_Items: [] - - m_Id: 93261075387375618 - m_Key: Setting.Presets.EnginePreset.StrumLeniencySmall.Description + - m_Id: 116747023328600159 + m_Key: Setting.MusicPlayerVolume m_Metadata: m_Items: [] - - m_Id: 53693768667619372 - m_Key: Setting.Sound.BassVolume + - m_Id: 116747023328600160 + m_Key: Setting.MusicPlayerVolume.Description m_Metadata: m_Items: [] - - m_Id: 53693768667619373 - m_Key: Setting.Sound.BassVolume.Description + - m_Id: 116747023328600161 + m_Key: Setting.MuteOnMiss m_Metadata: m_Items: [] - - m_Id: 111744086983954432 - m_Key: Setting.Sound.ClapsInStarpower + - m_Id: 116747023328600162 + m_Key: Setting.MuteOnMiss.Description m_Metadata: m_Items: [] - - m_Id: 111744428001841152 - m_Key: Setting.Sound.ClapsInStarpower.Description + - m_Id: 116747023324405797 + m_Key: Setting.NoKicks m_Metadata: m_Items: [] - - m_Id: 53693768667619374 - m_Key: Setting.Sound.CrowdVolume + - m_Id: 116747023324405798 + m_Key: Setting.NoKicks.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850263 - m_Key: Setting.Sound.CrowdVolume.Description + - m_Id: 116747023328600163 + m_Key: Setting.PreviewVolume m_Metadata: m_Items: [] - - m_Id: 53693768667619375 - m_Key: Setting.Sound.DrumsVolume + - m_Id: 116747023328600164 + m_Key: Setting.PreviewVolume.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850264 - m_Key: Setting.Sound.DrumsVolume.Description + - m_Id: 116747023324405837 + m_Key: Setting.Resolution m_Metadata: m_Items: [] - - m_Id: 53693768667619376 - m_Key: Setting.Sound.GuitarVolume + - m_Id: 116747023324405838 + m_Key: Setting.Resolution.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850265 - m_Key: Setting.Sound.GuitarVolume.Description + - m_Id: 116747023328600165 + m_Key: Setting.RhythmVolume m_Metadata: m_Items: [] - - m_Id: 53693768667619377 - m_Key: Setting.Sound.KeysVolume + - m_Id: 116747023328600166 + m_Key: Setting.RhythmVolume.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850266 - m_Key: Setting.Sound.KeysVolume.Description + - m_Id: 116747023328600167 + m_Key: Setting.SfxVolume m_Metadata: m_Items: [] - - m_Id: 53693768667619378 - m_Key: Setting.Sound.MasterMusicVolume + - m_Id: 116747023328600168 + m_Key: Setting.SfxVolume.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850267 - m_Key: Setting.Sound.MasterMusicVolume.Description + - m_Id: 116747023324405811 + m_Key: Setting.ShowAdvancedMusicLibraryOptions m_Metadata: m_Items: [] - - m_Id: 53693768667619379 - m_Key: Setting.Sound.MicrophoneSensitivity + - m_Id: 116747023324405812 + m_Key: Setting.ShowAdvancedMusicLibraryOptions.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850268 - m_Key: Setting.Sound.MicrophoneSensitivity.Description + - m_Id: 116747023324405813 + m_Key: Setting.ShowCursorTimer m_Metadata: m_Items: [] - - m_Id: 53693768667619380 - m_Key: Setting.Sound.MusicPlayerVolume + - m_Id: 116747023324405814 + m_Key: Setting.ShowCursorTimer.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850269 - m_Key: Setting.Sound.MusicPlayerVolume.Description + - m_Id: 116747023324405839 + m_Key: Setting.ShowHitWindow m_Metadata: m_Items: [] - - m_Id: 53693768667619381 - m_Key: Setting.Sound.MuteOnMiss + - m_Id: 116747023324405840 + m_Key: Setting.ShowHitWindow.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850270 - m_Key: Setting.Sound.MuteOnMiss.Description + - m_Id: 116747023324405841 + m_Key: Setting.SongTimeOnScoreBox m_Metadata: m_Items: [] - - m_Id: 53693768667619382 - m_Key: Setting.Sound.PreviewVolume + - m_Id: 116747023324405842 + m_Key: Setting.SongTimeOnScoreBox.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850271 - m_Key: Setting.Sound.PreviewVolume.Description + - m_Id: 116747023328600169 + m_Key: Setting.SongVolume m_Metadata: m_Items: [] - - m_Id: 53693768667619383 - m_Key: Setting.Sound.RhythmVolume + - m_Id: 116747023328600170 + m_Key: Setting.SongVolume.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850272 - m_Key: Setting.Sound.RhythmVolume.Description + - m_Id: 116747023324405795 + m_Key: Setting.StageKitEnabled m_Metadata: m_Items: [] - - m_Id: 53693768667619384 - m_Key: Setting.Sound.SfxVolume + - m_Id: 116747023324405796 + m_Key: Setting.StageKitEnabled.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850273 - m_Key: Setting.Sound.SfxVolume.Description + - m_Id: 116747023328600171 + m_Key: Setting.UseChipmunkSpeed m_Metadata: m_Items: [] - - m_Id: 53693768667619385 - m_Key: Setting.Sound.SongVolume + - m_Id: 116747023328600172 + m_Key: Setting.UseChipmunkSpeed.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850274 - m_Key: Setting.Sound.SongVolume.Description + - m_Id: 116747023324405815 + m_Key: Setting.UseCymbalModelsInFiveLane m_Metadata: m_Items: [] - - m_Id: 53693768667619386 - m_Key: Setting.Sound.UseChipmunkSpeed + - m_Id: 116747023324405816 + m_Key: Setting.UseCymbalModelsInFiveLane.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850275 - m_Key: Setting.Sound.UseChipmunkSpeed.Description + - m_Id: 116747023328600173 + m_Key: Setting.UseStarpowerFx m_Metadata: m_Items: [] - - m_Id: 53693768667619387 - m_Key: Setting.Sound.UseStarpowerFx + - m_Id: 116747023328600174 + m_Key: Setting.UseStarpowerFx.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850276 - m_Key: Setting.Sound.UseStarpowerFx.Description + - m_Id: 116747023328600175 + m_Key: Setting.UseWhammyFx m_Metadata: m_Items: [] - - m_Id: 53693768667619388 - m_Key: Setting.Sound.UseWhammyFx + - m_Id: 116747023324405817 + m_Key: Setting.VideoCalibration m_Metadata: m_Items: [] - - m_Id: 53693768667619389 - m_Key: Setting.Sound.VocalMonitoring + - m_Id: 116747023324405818 + m_Key: Setting.VideoCalibration.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850277 - m_Key: Setting.Sound.VocalMonitoring.Description + - m_Id: 116747023328600176 + m_Key: Setting.VocalMonitoring m_Metadata: m_Items: [] - - m_Id: 53693768667619390 - m_Key: Setting.Sound.VocalsVolume + - m_Id: 116747023328600177 + m_Key: Setting.VocalMonitoring.Description m_Metadata: m_Items: [] - - m_Id: 53704501379850278 - m_Key: Setting.Sound.VocalsVolume.Description + - m_Id: 116747023328600178 + m_Key: Setting.VocalsVolume m_Metadata: m_Items: [] - - m_Id: 53693768667619391 - m_Key: Setting.Sound.WhammyOversampleFactor + - m_Id: 116747023328600179 + m_Key: Setting.VocalsVolume.Description m_Metadata: m_Items: [] - - m_Id: 53693768667619392 - m_Key: Setting.Sound.WhammyPitchShiftAmount + - m_Id: 116747023324405843 + m_Key: Setting.VSync + m_Metadata: + m_Items: [] + - m_Id: 116747023324405844 + m_Key: Setting.VSync.Description + m_Metadata: + m_Items: [] + - m_Id: 116747023328600180 + m_Key: Setting.WhammyOversampleFactor + m_Metadata: + m_Items: [] + - m_Id: 116747023328600181 + m_Key: Setting.WhammyPitchShiftAmount + m_Metadata: + m_Items: [] + - m_Id: 116744829250428943 + m_Key: Tab.Advanced + m_Metadata: + m_Items: [] + - m_Id: 116831000492105728 + m_Key: Tab.AllSettings + m_Metadata: + m_Items: [] + - m_Id: 116841933557850112 + m_Key: Tab.Debug m_Metadata: m_Items: [] - m_Id: 10936750303469568 m_Key: Tab.Engine m_Metadata: m_Items: [] + - m_Id: 116844061366018048 + m_Key: Tab.FileManagement + m_Metadata: + m_Items: [] - m_Id: 10936636654608384 m_Key: Tab.General m_Metadata: @@ -903,6 +979,10 @@ MonoBehaviour: m_Key: Tab.Graphics m_Metadata: m_Items: [] + - m_Id: 116831000513077248 + m_Key: Tab.LightingPeripherals + m_Metadata: + m_Items: [] - m_Id: 62024422971006976 m_Key: Tab.Presets m_Metadata: diff --git a/Assets/Settings/Localization/Settings_en-US.asset b/Assets/Settings/Localization/Settings_en-US.asset index b93dad163..92a6e1f92 100644 --- a/Assets/Settings/Localization/Settings_en-US.asset +++ b/Assets/Settings/Localization/Settings_en-US.asset @@ -34,10 +34,6 @@ MonoBehaviour: m_Localized: Sound m_Metadata: m_Items: [] - - m_Id: 12472066134892544 - m_Localized: File Management - m_Metadata: - m_Items: [] - m_Id: 12472103388700672 m_Localized: Other m_Metadata: @@ -82,887 +78,974 @@ MonoBehaviour: m_Localized: Input m_Metadata: m_Items: [] - - m_Id: 53693768659230720 - m_Localized: Copy Current Song Json File Path - m_Metadata: - m_Items: [] - - m_Id: 53693768667619328 - m_Localized: Copy Current Song Text File Path - m_Metadata: - m_Items: [] - - m_Id: 64541856412065793 - m_Localized: Export Songs List (Plain Text) - m_Metadata: - m_Items: [] - - m_Id: 53693768667619330 - m_Localized: Open Calibrator - m_Metadata: - m_Items: [] - m_Id: 55070184168611840 - m_Localized: Song Manager + m_Localized: Songs m_Metadata: m_Items: [] - - m_Id: 53693768667619332 - m_Localized: Open Backgrounds/Venue Folder - m_Metadata: - m_Items: [] - - m_Id: 53693768667619333 - m_Localized: Fullscreen + - m_Id: 62024422937452544 + m_Localized: Preset Settings m_Metadata: m_Items: [] - - m_Id: 53693768667619334 - m_Localized: Borderless Fullscreen + - m_Id: 62024422966812672 + m_Localized: Camera Presets m_Metadata: m_Items: [] - - m_Id: 53693768667619335 - m_Localized: Maximized Window + - m_Id: 62024422971006976 + m_Localized: Presets m_Metadata: m_Items: [] - - m_Id: 53693768667619336 - m_Localized: Windowed + - m_Id: 64543436070838272 + m_Localized: Color Profiles m_Metadata: m_Items: [] - - m_Id: 53693768667619344 - m_Localized: No Kicks + - m_Id: 79799527068782592 + m_Localized: Debug m_Metadata: m_Items: [] - - m_Id: 53693768667619345 - m_Localized: Awesomeness Detection + - m_Id: 92111997366558720 + m_Localized: Advanced m_Metadata: m_Items: [] - - m_Id: 53693768667619346 - m_Localized: Are you awesome? + - m_Id: 92846839955841025 + m_Localized: Engine Presets m_Metadata: m_Items: [] - - m_Id: 53693768667619347 - m_Localized: Audio Calibration (ms) + - m_Id: 116744829250428928 + m_Localized: Lighting General m_Metadata: m_Items: [] - - m_Id: 53693768667619348 - m_Localized: Audio calibration in milliseconds. Use the calibrator to automatically - calibrate. Higher values make the audio play earlier, while lower ones make - the audio play later. + - m_Id: 116744829242040320 + m_Localized: DMX Channels m_Metadata: m_Items: [] - - m_Id: 53693768667619349 - m_Localized: Disable Per-Song Backgrounds + - m_Id: 116744829250428943 + m_Localized: Advanced m_Metadata: m_Items: [] - - m_Id: 53693768667619351 - m_Localized: Cursor Show Time + - m_Id: 116747023320211456 + m_Localized: Copy Current Song Json File Path m_Metadata: m_Items: [] - - m_Id: 53693768667619352 - m_Localized: Use Cymbal Models In Five Lane + - m_Id: 116747023324405760 + m_Localized: Copy Current Song Text File Path m_Metadata: m_Items: [] - - m_Id: 53693768667619353 - m_Localized: Disable Bloom + - m_Id: 116747023324405761 + m_Localized: Export Songs List (For Ouvert Bot) m_Metadata: m_Items: [] - - m_Id: 53693768667619354 - m_Localized: Disable Text Notifications + - m_Id: 116747023324405762 + m_Localized: Export Songs List (Plain Text) m_Metadata: m_Items: [] - - m_Id: 53693768667619355 - m_Localized: FPS Cap + - m_Id: 116747023324405763 + m_Localized: Open Calibrator m_Metadata: m_Items: [] - - m_Id: 53693768667619356 - m_Localized: Enable FPS Counter + - m_Id: 116747023324405764 + m_Localized: Open Backgrounds/Venue Folder m_Metadata: m_Items: [] - - m_Id: 53693768667619357 - m_Localized: Fullscreen Mode + - m_Id: 116747023324405765 + m_Localized: Add Folder m_Metadata: m_Items: [] - - m_Id: 53693768667619358 - m_Localized: Low Quality Mode + - m_Id: 116747023324405766 + m_Localized: Scan Songs m_Metadata: m_Items: [] - - m_Id: 53693768667619360 - m_Localized: Resolution + - m_Id: 116747023324405767 + m_Localized: Fullscreen m_Metadata: m_Items: [] - - m_Id: 53693768667619361 - m_Localized: Show Hit Window + - m_Id: 116747023324405768 + m_Localized: Borderless Fullscreen m_Metadata: m_Items: [] - - m_Id: 53693768667619369 - m_Localized: Enable VSync + - m_Id: 116747023324405769 + m_Localized: Maximized Window m_Metadata: m_Items: [] - - m_Id: 53693768667619372 - m_Localized: Bass Volume + - m_Id: 116747023324405770 + m_Localized: Windowed m_Metadata: m_Items: [] - - m_Id: 53693768667619373 - m_Localized: Adjusts the song's bass guitar track volume. Only does something - if the song is multi-track. + - m_Id: 116747023324405771 + m_Localized: Compatibility Mode m_Metadata: m_Items: [] - - m_Id: 53693768667619374 - m_Localized: Crowd Volume + - m_Id: 116747023324405772 + m_Localized: Disabled m_Metadata: m_Items: [] - - m_Id: 53693768667619375 - m_Localized: Drums Volume + - m_Id: 116747023324405773 + m_Localized: No Background m_Metadata: m_Items: [] - - m_Id: 53693768667619376 - m_Localized: Guitar Volume + - m_Id: 116747023324405774 + m_Localized: Normal m_Metadata: m_Items: [] - - m_Id: 53693768667619377 - m_Localized: Keys Volume + - m_Id: 116747023324405775 + m_Localized: Translucent Background m_Metadata: m_Items: [] - - m_Id: 53693768667619378 - m_Localized: Master Music Volume + - m_Id: 116747023324405776 + m_Localized: Remaining and Total(4:20 / 5:30) m_Metadata: m_Items: [] - - m_Id: 53693768667619379 - m_Localized: Microphone Sensitivity (Db) + - m_Id: 116747023324405777 + m_Localized: Remaining Only(4:20) m_Metadata: m_Items: [] - - m_Id: 53693768667619380 - m_Localized: Music Player Volume + - m_Id: 116747023324405778 + m_Localized: Time and Total(1:10 / 5:30) m_Metadata: m_Items: [] - - m_Id: 53693768667619381 - m_Localized: Mute On Miss + - m_Id: 116747023324405779 + m_Localized: Time Only(1:10) m_Metadata: m_Items: [] - - m_Id: 53693768667619382 - m_Localized: Preview Volume + - m_Id: 116747023324405780 + m_Localized: None m_Metadata: m_Items: [] - - m_Id: 53693768667619383 - m_Localized: Rhythm Volume + - m_Id: 116747023324405781 + m_Localized: Total Only(5:30) m_Metadata: m_Items: [] - - m_Id: 53693768667619384 - m_Localized: SFX Volume + - m_Id: 116747023324405782 + m_Localized: Five Fret Guitar m_Metadata: m_Items: [] - - m_Id: 53693768667619385 - m_Localized: Backing Track Volume + - m_Id: 116747023324405783 + m_Localized: Five Lane Drums m_Metadata: m_Items: [] - - m_Id: 53693768667619386 - m_Localized: Chipmunk Speed + - m_Id: 116747023324405784 + m_Localized: Four Lane Drums m_Metadata: m_Items: [] - - m_Id: 53693768667619387 - m_Localized: Use Starpower SFX + - m_Id: 116747023324405785 + m_Localized: Drums (4 and 5 lane) m_Metadata: m_Items: [] - - m_Id: 53693768667619388 - m_Localized: Use Whammy FX + - m_Id: 116747023324405786 + m_Localized: Five Fret Guitar m_Metadata: m_Items: [] - - m_Id: 53693768667619389 - m_Localized: Vocal Monitoring Volume + - m_Id: 116747023324405787 + m_Localized: DMX Blue m_Metadata: m_Items: [] - - m_Id: 53693768667619390 - m_Localized: Vocals Volume + - m_Id: 116747023324405788 + m_Localized: DMX Master Dimmer m_Metadata: m_Items: [] - - m_Id: 53693768667619391 - m_Localized: Whammy Oversample Factor + - m_Id: 116747023324405789 + m_Localized: Any channel set here will be set to max (255) on game start. Useful + for fixtures that have a master dimmer channel. m_Metadata: m_Items: [] - - m_Id: 53693768667619392 - m_Localized: Whammy Pitch Shift Amount (semitones) + - m_Id: 116747023324405790 + m_Localized: Enable DMX Output m_Metadata: m_Items: [] - - m_Id: 53694051170770944 - m_Localized: Add Folder + - m_Id: 116747023324405791 + m_Localized: Enable sending Sacn (DMX-over-ethernet) packets over the network + to universe 1. Adds 250k bps to network traffic. m_Metadata: m_Items: [] - - m_Id: 53694051174965248 - m_Localized: Scan Songs + - m_Id: 116747023324405792 + m_Localized: DMX Green m_Metadata: m_Items: [] - - m_Id: 53704501379850241 - m_Localized: Removes all kick notes (drums only). + - m_Id: 116747023324405793 + m_Localized: DMX Red m_Metadata: m_Items: [] - - m_Id: 53704501379850242 - m_Localized: Disables custom backgrounds in songs and shows the ones in your - venue folder instead. + - m_Id: 116747023324405794 + m_Localized: DMX Yellow m_Metadata: m_Items: [] - - m_Id: 53704501379850244 - m_Localized: How long the cursor will be shown for before hiding. Set to "0" - for no hiding (playmode). + - m_Id: 116747023324405795 + m_Localized: Enable Stage Kit m_Metadata: m_Items: [] - - m_Id: 53704501379850245 - m_Localized: If enabled, cymbal models will be used in the second and fourth - lanes instead of the standard note model (five-lane drums only). + - m_Id: 116747023324405796 + m_Localized: Enables sending Stage Kit lighting data to all connected devices + capable of reading it. m_Metadata: m_Items: [] - - m_Id: 53704501379850246 - m_Localized: Disables post-processing bloom (the glowly effect). May increase - performance. - m_Metadata: - m_Items: [] - - m_Id: 53704501379850247 - m_Localized: Disables text notification on the track such as "100-Note Streak" - and "Full Combo." + - m_Id: 116747023324405797 + m_Localized: No Kicks m_Metadata: m_Items: [] - - m_Id: 53704501379850248 - m_Localized: The framerate cap. YOU DO NOT NEED TO PLAY YARG ON - 1000FPS. VSync recommended. + - m_Id: 116747023324405798 + m_Localized: Removes all kick notes (drums only). m_Metadata: m_Items: [] - - m_Id: 53704501379850249 - m_Localized: Enables the framerate counter on the top-left of your screen. + - m_Id: 116747023324405799 + m_Localized: Awesomeness Detection m_Metadata: m_Items: [] - - m_Id: 53704501379850250 - m_Localized: Changes the fullscreen mode. + - m_Id: 116747023324405800 + m_Localized: Are you awesome? m_Metadata: m_Items: [] - - m_Id: 53704501379850251 - m_Localized: If enabled, the game will disable anti-aliasing, and use lower quality - models and textures. This will significantly increase performance. + - m_Id: 116747023324405801 + m_Localized: Audio Calibration (ms) m_Metadata: m_Items: [] - - m_Id: 53704501379850253 - m_Localized: Choose the resolution of your screen. "Highest" is recommended. + - m_Id: 116747023324405802 + m_Localized: Audio calibration in milliseconds. Use the calibrator to automatically + calibrate. Higher values make the audio play earlier, while lower ones make + the audio play later. m_Metadata: m_Items: [] - - m_Id: 53704501379850254 - m_Localized: If enabled, a box will be shown on your track that represents the - "window" in which notes can be hit. + - m_Id: 116747023324405803 + m_Localized: Disable Global Backgrounds m_Metadata: m_Items: [] - - m_Id: 53704501379850262 - m_Localized: Enables VSync. VSync caps the framerate at your monitor's maximum - framerate, and prevents tearing. + - m_Id: 116747023324405804 + m_Localized: Disables custom backgrounds from your venue folder and shows the + ones in songs instead. m_Metadata: m_Items: [] - - m_Id: 53704501379850263 - m_Localized: Adjusts the song's crowd track volume. Only does something if the - song is multi-track. + - m_Id: 116747023324405805 + m_Localized: Disable Per-Song Backgrounds m_Metadata: m_Items: [] - - m_Id: 53704501379850264 - m_Localized: Adjusts the song's drum track volume. Only does something if the - song is multi-track. + - m_Id: 116747023324405806 + m_Localized: Disables custom backgrounds in songs and shows the ones in your + venue folder instead. m_Metadata: m_Items: [] - - m_Id: 53704501379850265 - m_Localized: Adjusts the song's guitar track volume. Only does something if the - song is multi-track. + - m_Id: 116747023324405807 + m_Localized: Input Device Logging m_Metadata: m_Items: [] - - m_Id: 53704501379850266 - m_Localized: Adjusts the song's keys track volume. Only does something if the - song is multi-track. + - m_Id: 116747023324405808 + m_Localized: Prints information about connected input devices to the game's log. + Do not enable this unless you are having issues with specific devices, as it + can print a very large amount of text for some devices! m_Metadata: m_Items: [] - - m_Id: 53704501379850267 - m_Localized: Adjusts the song's volume as a whole. + - m_Id: 116747023324405809 + m_Localized: Drum Kick Bounce Multiplier m_Metadata: m_Items: [] - - m_Id: 53704501379850268 - m_Localized: Adjusts your microphone's sensitivity in decibels. Lower values - are more sensitive. + - m_Id: 116747023324405810 + m_Localized: Controls the amount the track should bounce when you hit a kick + note (drums only). Set to zero if you want to disable. m_Metadata: m_Items: [] - - m_Id: 53704501379850269 - m_Localized: Adjusts the volume of the music that plays in the main menu. Set - to "0" to disable. + - m_Id: 116747023324405811 + m_Localized: Show Advanced Music Library Options m_Metadata: m_Items: [] - - m_Id: 53704501379850270 - m_Localized: Mutes a specific stem when you miss on that instrument. Only does - something if the song is multi-track. + - m_Id: 116747023324405812 + m_Localized: Adds advanced settings to the "More Options" menu in the Music Library + such as "View Song Folder" and "Copy Song Checksum". m_Metadata: m_Items: [] - - m_Id: 53704501379850271 - m_Localized: The preview volume while in the music library. + - m_Id: 116747023324405813 + m_Localized: Cursor Show Time m_Metadata: m_Items: [] - - m_Id: 53704501379850272 - m_Localized: Adjusts the song's rhythm guitar track volume. Only does something - if the song is multi-track. In some song formats, this may also be the bass - guitar. + - m_Id: 116747023324405814 + m_Localized: How long the cursor will be shown for before hiding. Set to "0" + for no hiding (playmode). m_Metadata: m_Items: [] - - m_Id: 53704501379850273 - m_Localized: Adjusts the game's sound effect volume, such as when gaining a star, - or activating starpower. + - m_Id: 116747023324405815 + m_Localized: Use Cymbal Models In Five Lane m_Metadata: m_Items: [] - - m_Id: 53704501379850274 - m_Localized: Adjusts the song's backing track volume. These are all of the instruments - that are not included in the multi-track. + - m_Id: 116747023324405816 + m_Localized: If enabled, cymbal models will be used in the second and fourth + lanes instead of the standard note model (five-lane drums only). m_Metadata: m_Items: [] - - m_Id: 53704501379850275 - m_Localized: Disables pitch correction when playing songs at a fast or slow speed - which may lead to some... interesting results. + - m_Id: 116747023324405817 + m_Localized: Video Calibration (ms) m_Metadata: m_Items: [] - - m_Id: 53704501379850276 - m_Localized: If enabled, it will add reverb to stems where the player has starpower - enabled. + - m_Id: 116747023324405818 + m_Localized: Video calibration in milliseconds. Use the calibrator to automatically + calibrate. This accounts for delays between the game's processing and the actual + frame being displayed. m_Metadata: m_Items: [] - - m_Id: 53704501379850277 - m_Localized: Adjusts the feedback you hear when singing. + - m_Id: 116747023324405819 + m_Localized: Disable Bloom m_Metadata: m_Items: [] - - m_Id: 53704501379850278 - m_Localized: Adjusts the song's vocal track volume. Only does something if the - song is multi-track. + - m_Id: 116747023324405820 + m_Localized: Disables post-processing bloom (the glowly effect). May increase + performance. m_Metadata: m_Items: [] - - m_Id: 56963656047779840 - m_Localized: Remaining and Total(4:20 / 5:30) + - m_Id: 116747023324405821 + m_Localized: Disable Text Notifications m_Metadata: m_Items: [] - - m_Id: 56963656236523520 - m_Localized: Remaining Only(4:20) + - m_Id: 116747023324405822 + m_Localized: Disables text notification on the track such as "100-Note Streak" + and "Full Combo." m_Metadata: m_Items: [] - - m_Id: 56963656236523521 - m_Localized: Time and Total(1:10 / 5:30) + - m_Id: 116747023324405823 + m_Localized: FPS Cap m_Metadata: m_Items: [] - - m_Id: 56963656236523522 - m_Localized: Time Only(1:10) + - m_Id: 116747023324405824 + m_Localized: The framerate cap. YOU DO NOT NEED TO PLAY YARG ON + 1000FPS. VSync recommended. m_Metadata: m_Items: [] - - m_Id: 56963656236523523 - m_Localized: None + - m_Id: 116747023324405825 + m_Localized: Enable FPS Counter m_Metadata: m_Items: [] - - m_Id: 56963656240717824 - m_Localized: Total Only(5:30) + - m_Id: 116747023324405826 + m_Localized: Enables the framerate counter on the top-left of your screen. m_Metadata: m_Items: [] - - m_Id: 56963656240717825 - m_Localized: Song Time On Score Box + - m_Id: 116747023324405827 + m_Localized: Fullscreen Mode m_Metadata: m_Items: [] - - m_Id: 56963656240717826 - m_Localized: Change the song time displayed above the score box. In the examples - provided, the song is 5 minutes and 30 seconds long, and you are 1 minute and - 10 seconds into the song. + - m_Id: 116747023324405828 + m_Localized: Changes the fullscreen mode. m_Metadata: m_Items: [] - - m_Id: 56971512511848448 + - m_Id: 116747023324405829 m_Localized: Graphical Progress On Score Box m_Metadata: m_Items: [] - - m_Id: 56971512511848449 + - m_Id: 116747023324405830 m_Localized: Enables and disables the graphical blue outline on the score box that displays the song's progress. m_Metadata: m_Items: [] - - m_Id: 62024422937452544 - m_Localized: Preset Settings - m_Metadata: - m_Items: [] - - m_Id: 62024422966812672 - m_Localized: Camera Presets - m_Metadata: - m_Items: [] - - m_Id: 62024422971006976 - m_Localized: Customization + - m_Id: 116747023324405831 + m_Localized: Keep Song Info Visible m_Metadata: m_Items: [] - - m_Id: 64541856412065792 - m_Localized: Export Songs List (For Ouvert Bot) + - m_Id: 116747023324405832 + m_Localized: If enabled, it keeps the song info visible throughout the entire + song. Otherwise, it will fade out after 10 seconds. m_Metadata: m_Items: [] - - m_Id: 64543436070838272 - m_Localized: Color Profiles + - m_Id: 116747023324405833 + m_Localized: Low Quality Mode m_Metadata: m_Items: [] - - m_Id: 66739072220389376 - m_Localized: Compatibility Mode + - m_Id: 116747023324405834 + m_Localized: If enabled, the game will disable anti-aliasing, and use lower quality + models and textures. This will significantly increase performance. m_Metadata: m_Items: [] - - m_Id: 66739072241360897 - m_Localized: Disabled + - m_Id: 116747023324405835 + m_Localized: Lyric Display m_Metadata: m_Items: [] - - m_Id: 66739072241360898 - m_Localized: Normal + - m_Id: 116747023324405836 + m_Localized: Choose how the lyric bar in game should be displayed. m_Metadata: m_Items: [] - - m_Id: 66739072241360899 - m_Localized: Translucent Background + - m_Id: 116747023324405837 + m_Localized: Resolution m_Metadata: m_Items: [] - - m_Id: 66739072245555200 - m_Localized: Lyric Display + - m_Id: 116747023324405838 + m_Localized: Choose the resolution of your screen. "Highest" is recommended. m_Metadata: m_Items: [] - - m_Id: 66739072245555201 - m_Localized: Choose how the lyric bar in game should be displayed. + - m_Id: 116747023324405839 + m_Localized: Show Hit Window m_Metadata: m_Items: [] - - m_Id: 73744741668081664 - m_Localized: Video Calibration (ms) + - m_Id: 116747023324405840 + m_Localized: If enabled, a box will be shown on your track that represents the + "window" in which notes can be hit. m_Metadata: m_Items: [] - - m_Id: 73745068840570880 - m_Localized: Video calibration in milliseconds. Use the calibrator to automatically - calibrate. This accounts for delays between the game's processing and the actual - frame being displayed. + - m_Id: 116747023324405841 + m_Localized: Song Time On Score Box m_Metadata: m_Items: [] - - m_Id: 79799527068782592 - m_Localized: Debug + - m_Id: 116747023324405842 + m_Localized: Change the song time displayed above the score box. In the examples + provided, the song is 5 minutes and 30 seconds long, and you are 1 minute and + 10 seconds into the song. m_Metadata: m_Items: [] - - m_Id: 79799556705734656 - m_Localized: Input Device Logging + - m_Id: 116747023324405843 + m_Localized: Enable VSync m_Metadata: m_Items: [] - - m_Id: 79799583608000512 - m_Localized: Prints information about connected input devices to the game's log. - Do not enable this unless you are having issues with specific devices, as it - can print a very large amount of text for some devices! + - m_Id: 116747023324405844 + m_Localized: Enables VSync. VSync caps the framerate at your monitor's maximum + framerate, and prevents tearing. m_Metadata: m_Items: [] - - m_Id: 87818437364408320 + - m_Id: 116747023324405845 m_Localized: Curve Factor m_Metadata: m_Items: [] - - m_Id: 87818437393768448 + - m_Id: 116747023324405846 m_Localized: The track's curve factor. m_Metadata: m_Items: [] - - m_Id: 87818437393768449 + - m_Id: 116747023324405847 m_Localized: Fade Size m_Metadata: m_Items: [] - - m_Id: 87818437393768450 + - m_Id: 116747023324405848 m_Localized: The track's fade size. A fade size of "0" will remove the fade. m_Metadata: m_Items: [] - - m_Id: 87818437393768451 + - m_Id: 116747023324405849 m_Localized: Fade Position m_Metadata: m_Items: [] - - m_Id: 87818437393768452 + - m_Id: 116747023324405850 m_Localized: The track's fade position. Lower values are closer to the frets. This also controls the track length. m_Metadata: m_Items: [] - - m_Id: 87818437393768453 + - m_Id: 116747023324405851 m_Localized: Camera FOV m_Metadata: m_Items: [] - - m_Id: 87818437393768454 + - m_Id: 116747023328600064 m_Localized: The track camera's field of view. m_Metadata: m_Items: [] - - m_Id: 87818437393768455 + - m_Id: 116747023328600065 m_Localized: Camera Y Position m_Metadata: m_Items: [] - - m_Id: 87818437393768456 + - m_Id: 116747023328600066 m_Localized: The track camera's Y position (up and down). m_Metadata: m_Items: [] - - m_Id: 87818437393768457 + - m_Id: 116747023328600067 m_Localized: Camera Z Position m_Metadata: m_Items: [] - - m_Id: 87818437393768458 + - m_Id: 116747023328600068 m_Localized: The track camera's Z position (forward and backwards). m_Metadata: m_Items: [] - - m_Id: 87818437393768459 + - m_Id: 116747023328600069 m_Localized: Camera Rotation m_Metadata: m_Items: [] - - m_Id: 87818437393768460 + - m_Id: 116747023328600070 m_Localized: The track camera's rotational pitch (up and down). m_Metadata: m_Items: [] - - m_Id: 90695957755584512 - m_Localized: Five Fret Guitar - m_Metadata: - m_Items: [] - - m_Id: 90695957784944640 - m_Localized: Five Lane Drums - m_Metadata: - m_Items: [] - - m_Id: 90695957784944641 - m_Localized: Four Lane Drums - m_Metadata: - m_Items: [] - - m_Id: 90695957784944644 + - m_Id: 116747023328600071 m_Localized: Activation Note m_Metadata: m_Items: [] - - m_Id: 90695957784944645 + - m_Id: 116747023328600072 m_Localized: Blue Cymbal m_Metadata: m_Items: [] - - m_Id: 90695957784944646 + - m_Id: 116747023328600073 m_Localized: Blue Cymbal Star Power m_Metadata: m_Items: [] - - m_Id: 90695957784944647 + - m_Id: 116747023328600074 m_Localized: Blue Drum m_Metadata: m_Items: [] - - m_Id: 90695957784944648 + - m_Id: 116747023328600075 m_Localized: Blue Drum Star Power m_Metadata: m_Items: [] - - m_Id: 90695957784944649 + - m_Id: 116747023328600076 m_Localized: Blue Fret m_Metadata: m_Items: [] - - m_Id: 90695957789138944 + - m_Id: 116747023328600077 m_Localized: Blue Fret Inner m_Metadata: m_Items: [] - - m_Id: 90695957789138945 + - m_Id: 116747023328600078 m_Localized: Blue Note m_Metadata: m_Items: [] - - m_Id: 90695957789138946 + - m_Id: 116747023328600079 m_Localized: Blue Note Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138947 + - m_Id: 116747023328600080 m_Localized: Blue Particles m_Metadata: m_Items: [] - - m_Id: 90695957789138948 + - m_Id: 116747023328600081 m_Localized: Blue Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138949 + - m_Id: 116747023328600082 m_Localized: Green Cymbal m_Metadata: m_Items: [] - - m_Id: 90695957789138950 + - m_Id: 116747023328600083 m_Localized: Green Cymbal Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138951 + - m_Id: 116747023328600084 m_Localized: Green Drum m_Metadata: m_Items: [] - - m_Id: 90695957789138952 + - m_Id: 116747023328600085 m_Localized: Green Drum Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138953 + - m_Id: 116747023328600086 m_Localized: Green Fret m_Metadata: m_Items: [] - - m_Id: 90695957789138954 + - m_Id: 116747023328600087 m_Localized: Green Fret Inner m_Metadata: m_Items: [] - - m_Id: 90695957789138955 + - m_Id: 116747023328600088 m_Localized: Green Note m_Metadata: m_Items: [] - - m_Id: 90695957789138956 + - m_Id: 116747023328600089 m_Localized: Green Note Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138957 + - m_Id: 116747023328600090 m_Localized: Green Particles m_Metadata: m_Items: [] - - m_Id: 90695957789138958 + - m_Id: 116747023328600091 m_Localized: Green Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138959 + - m_Id: 116747023328600092 m_Localized: Instrument m_Metadata: m_Items: [] - - m_Id: 90695957789138960 + - m_Id: 116747023328600093 m_Localized: Kick Fret m_Metadata: m_Items: [] - - m_Id: 90695957789138961 + - m_Id: 116747023328600094 m_Localized: Kick Fret Inner m_Metadata: m_Items: [] - - m_Id: 90695957789138962 + - m_Id: 116747023328600095 m_Localized: Kick Note m_Metadata: m_Items: [] - - m_Id: 90695957789138963 + - m_Id: 116747023328600096 m_Localized: Kick Particles m_Metadata: m_Items: [] - - m_Id: 90695957789138964 + - m_Id: 116747023328600097 m_Localized: Kick Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138965 + - m_Id: 116747023328600098 m_Localized: Open Fret m_Metadata: m_Items: [] - - m_Id: 90695957789138966 + - m_Id: 116747023328600099 m_Localized: Open Fret Inner m_Metadata: m_Items: [] - - m_Id: 90695957789138967 + - m_Id: 116747023328600100 m_Localized: Open Note m_Metadata: m_Items: [] - - m_Id: 90695957789138968 + - m_Id: 116747023328600101 m_Localized: Open Note Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138969 + - m_Id: 116747023328600102 m_Localized: Open Particles m_Metadata: m_Items: [] - - m_Id: 90695957789138970 + - m_Id: 116747023328600103 m_Localized: Orange Fret m_Metadata: m_Items: [] - - m_Id: 90695957789138971 + - m_Id: 116747023328600104 m_Localized: Orange Fret Inner m_Metadata: m_Items: [] - - m_Id: 90695957789138972 + - m_Id: 116747023328600105 m_Localized: Orange Note m_Metadata: m_Items: [] - - m_Id: 90695957789138973 + - m_Id: 116747023328600106 m_Localized: Orange Note Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138974 + - m_Id: 116747023328600107 m_Localized: Orange Particles m_Metadata: m_Items: [] - - m_Id: 90695957789138975 + - m_Id: 116747023328600108 m_Localized: Orange Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138976 + - m_Id: 116747023328600109 m_Localized: Red Drum m_Metadata: m_Items: [] - - m_Id: 90695957789138977 + - m_Id: 116747023328600110 m_Localized: Red Drum Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138978 + - m_Id: 116747023328600111 m_Localized: Red Fret m_Metadata: m_Items: [] - - m_Id: 90695957789138979 + - m_Id: 116747023328600112 m_Localized: Red Fret Inner m_Metadata: m_Items: [] - - m_Id: 90695957789138980 + - m_Id: 116747023328600113 m_Localized: Red Note m_Metadata: m_Items: [] - - m_Id: 90695957789138981 + - m_Id: 116747023328600114 m_Localized: Red Note Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138982 + - m_Id: 116747023328600115 m_Localized: Red Particles m_Metadata: m_Items: [] - - m_Id: 90695957789138983 + - m_Id: 116747023328600116 m_Localized: Red Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138984 + - m_Id: 116747023328600117 m_Localized: Yellow Cymbal m_Metadata: m_Items: [] - - m_Id: 90695957789138985 + - m_Id: 116747023328600118 m_Localized: Yellow Cymbal Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138986 + - m_Id: 116747023328600119 m_Localized: Yellow Drum m_Metadata: m_Items: [] - - m_Id: 90695957789138987 + - m_Id: 116747023328600120 m_Localized: Yellow Drum Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138988 + - m_Id: 116747023328600121 m_Localized: Yellow Fret m_Metadata: m_Items: [] - - m_Id: 90695957789138989 + - m_Id: 116747023328600122 m_Localized: Yellow Fret Inner m_Metadata: m_Items: [] - - m_Id: 90695957789138990 + - m_Id: 116747023328600123 m_Localized: Yellow Note m_Metadata: m_Items: [] - - m_Id: 90695957789138991 + - m_Id: 116747023328600124 m_Localized: Yellow Note Star Power m_Metadata: m_Items: [] - - m_Id: 90695957789138992 + - m_Id: 116747023328600125 m_Localized: Yellow Particles m_Metadata: m_Items: [] - - m_Id: 90695957789138993 + - m_Id: 116747023328600126 m_Localized: Yellow Star Power m_Metadata: m_Items: [] - - m_Id: 92111997366558720 - m_Localized: Advanced + - m_Id: 116747023328600127 + m_Localized: Anti-Ghosting m_Metadata: m_Items: [] - - m_Id: 92111997370753024 - m_Localized: Show Advanced Music Library Options + - m_Id: 116747023328600128 + m_Localized: Upon ghosting (or fretting a note that is not present) the player + will drop their combo (guitar only). m_Metadata: m_Items: [] - - m_Id: 92112677250654208 - m_Localized: Adds advanced settings to the "More Options" menu in the Music Library - such as "View Song Folder" and "Copy Song Checksum". + - m_Id: 116747023328600129 + m_Localized: Hit Window Ratio m_Metadata: m_Items: [] - - m_Id: 92131506068512768 - m_Localized: Drum Kick Bounce Multiplier + - m_Id: 116747023328600130 + m_Localized: The hit window's front to back ratio. 0 will bring the hit window + fully backwards, 1 will keep it in the center, and 2 will move it to the front. m_Metadata: m_Items: [] - - m_Id: 92131506068512769 - m_Localized: Controls the amount the track should bounce when you hit a kick - note (drums only). Set to zero if you want to disable. + - m_Id: 116747023328600131 + m_Localized: Game Mode m_Metadata: m_Items: [] - - m_Id: 92132627034005504 - m_Localized: No Background + - m_Id: 116747023328600132 + m_Localized: Hit Window m_Metadata: m_Items: [] - - m_Id: 92846839934869504 - m_Localized: Drums (4 and 5 lane) + - m_Id: 116747023328600133 + m_Localized: HOPO Leniency m_Metadata: m_Items: [] - - m_Id: 92846839955841024 - m_Localized: Five Fret Guitar + - m_Id: 116747023328600134 + m_Localized: The amount of time a hopo is allowed to take a strum input. Strum + after this time and it will overstrum. m_Metadata: m_Items: [] - - m_Id: 92846839955841025 - m_Localized: Engine Presets + - m_Id: 116747023328600135 + m_Localized: Infinite Front End m_Metadata: m_Items: [] - - m_Id: 92846839960035328 - m_Localized: Game Mode + - m_Id: 116747023328600136 + m_Localized: If on, HOPOs and taps can be fretted before they enter to hit window + (guitar only). m_Metadata: m_Items: [] - - m_Id: 92874700712435712 - m_Localized: Anti-Ghosting + - m_Id: 116747023328600137 + m_Localized: Dynamic Hit Window m_Metadata: m_Items: [] - - m_Id: 92874700725018624 - m_Localized: Upon ghosting (or fretting a note that is not present) the player - will drop their combo (guitar only). + - m_Id: 116747023328600138 + m_Localized: The timing window adjusts in size depending on how close together + the notes are. The faster the notes are, the smaller the window becomes (guitar + only). m_Metadata: m_Items: [] - - m_Id: 92874700725018627 - m_Localized: Infinite Front End + - m_Id: 116747023328600139 + m_Localized: Strum Leniency m_Metadata: m_Items: [] - - m_Id: 92874700725018628 - m_Localized: If on, HOPOs and taps can be fretted before they enter to hit window - (guitar only). + - m_Id: 116747023328600140 + m_Localized: The amount of time a strum can be inputted before fretting the correct + note. Fretting after this time will overstrum. m_Metadata: m_Items: [] - - m_Id: 92875663112265728 - m_Localized: HOPO Leniency + - m_Id: 116747023328600141 + m_Localized: Strum Leniency (No Notes) m_Metadata: m_Items: [] - - m_Id: 92875663112265729 - m_Localized: Strum Leniency + - m_Id: 116747023328600142 + m_Localized: The amount of time a note can be strummed before it enters the hit + window and it still receive the strum. Strumming earlier than this will cause + an overstrum. m_Metadata: m_Items: [] - - m_Id: 92875663112265730 - m_Localized: Strum Leniency (No Notes) + - m_Id: 116747023328600143 + m_Localized: Bass Volume m_Metadata: m_Items: [] - - m_Id: 93261075366404096 - m_Localized: Hit Window Ratio + - m_Id: 116747023328600144 + m_Localized: Adjusts the song's bass guitar track volume. Only does something + if the song is multi-track. m_Metadata: m_Items: [] - - m_Id: 93261075383181312 - m_Localized: Hit Window + - m_Id: 116747023328600145 + m_Localized: Star Power Claps m_Metadata: m_Items: [] - - m_Id: 93261075383181313 - m_Localized: The amount of time a hopo is allowed to take a strum input. Strum - after this time and it will overstrum. + - m_Id: 116747023328600146 + m_Localized: Enables claps to the beat while Star Power is active. m_Metadata: m_Items: [] - - m_Id: 93261075383181314 - m_Localized: Dynamic Hit Window + - m_Id: 116747023328600147 + m_Localized: Crowd Volume m_Metadata: m_Items: [] - - m_Id: 93261075387375616 - m_Localized: The timing window adjusts in size depending on how close together - the notes are. The faster the notes are, the smaller the window becomes (guitar - only). + - m_Id: 116747023328600148 + m_Localized: Adjusts the song's crowd track volume. Only does something if the + song is multi-track. m_Metadata: m_Items: [] - - m_Id: 93261075387375617 - m_Localized: The amount of time a strum can be inputted before fretting the correct - note. Fretting after this time will overstrum. + - m_Id: 116747023328600149 + m_Localized: Drums Volume m_Metadata: m_Items: [] - - m_Id: 93261075387375618 - m_Localized: The amount of time a note can be strummed before it enters the hit - window and it still receive the strum. Strumming earlier than this will cause - an overstrum. + - m_Id: 116747023328600150 + m_Localized: Adjusts the song's drum track volume. Only does something if the + song is multi-track. m_Metadata: m_Items: [] - - m_Id: 93261605039890432 - m_Localized: The hit window's front to back ratio. 0 will bring the hit window - fully backwards, 1 will keep it in the center, and 2 will move it to the front. + - m_Id: 116747023328600151 + m_Localized: Guitar Volume m_Metadata: m_Items: [] - - m_Id: 98954526460338176 - m_Localized: Keep Song Info Visible + - m_Id: 116747023328600152 + m_Localized: Adjusts the song's guitar track volume. Only does something if the + song is multi-track. m_Metadata: m_Items: [] - - m_Id: 98954526485504000 - m_Localized: If enabled, it keeps the song info visible throughout the entire - song. Otherwise, it will fade out after 10 seconds. + - m_Id: 116747023328600153 + m_Localized: Keys Volume m_Metadata: m_Items: [] - - m_Id: 111744086983954432 - m_Localized: Star Power Claps + - m_Id: 116747023328600154 + m_Localized: Adjusts the song's keys track volume. Only does something if the + song is multi-track. m_Metadata: m_Items: [] - - m_Id: 111744428001841152 - m_Localized: Enables claps to the beat while Star Power is active. + - m_Id: 116747023328600155 + m_Localized: Master Music Volume m_Metadata: m_Items: [] - - m_Id: 114727832880271360 - m_Localized: Disable Global Backgrounds + - m_Id: 116747023328600156 + m_Localized: Adjusts the song's volume as a whole. m_Metadata: m_Items: [] - - m_Id: 114727863477719040 - m_Localized: Disables custom backgrounds from your venue folder and shows the - ones in songs instead. + - m_Id: 116747023328600157 + m_Localized: Microphone Sensitivity (Db) + m_Metadata: + m_Items: [] + - m_Id: 116747023328600158 + m_Localized: Adjusts your microphone's sensitivity in decibels. Lower values + are more sensitive. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600159 + m_Localized: Music Player Volume + m_Metadata: + m_Items: [] + - m_Id: 116747023328600160 + m_Localized: Adjusts the volume of the music that plays in the main menu. Set + to "0" to disable. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600161 + m_Localized: Mute On Miss + m_Metadata: + m_Items: [] + - m_Id: 116747023328600162 + m_Localized: Mutes a specific stem when you miss on that instrument. Only does + something if the song is multi-track. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600163 + m_Localized: Preview Volume + m_Metadata: + m_Items: [] + - m_Id: 116747023328600164 + m_Localized: The preview volume while in the music library. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600165 + m_Localized: Rhythm Volume + m_Metadata: + m_Items: [] + - m_Id: 116747023328600166 + m_Localized: Adjusts the song's rhythm guitar track volume. Only does something + if the song is multi-track. In some song formats, this may also be the bass + guitar. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600167 + m_Localized: SFX Volume + m_Metadata: + m_Items: [] + - m_Id: 116747023328600168 + m_Localized: Adjusts the game's sound effect volume, such as when gaining a star, + or activating starpower. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600169 + m_Localized: Backing Track Volume + m_Metadata: + m_Items: [] + - m_Id: 116747023328600170 + m_Localized: Adjusts the song's backing track volume. These are all of the instruments + that are not included in the multi-track. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600171 + m_Localized: Chipmunk Speed + m_Metadata: + m_Items: [] + - m_Id: 116747023328600172 + m_Localized: Disables pitch correction when playing songs at a fast or slow speed + which may lead to some... interesting results. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600173 + m_Localized: Use Starpower SFX + m_Metadata: + m_Items: [] + - m_Id: 116747023328600174 + m_Localized: If enabled, it will add reverb to stems where the player has starpower + enabled. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600175 + m_Localized: Use Whammy FX + m_Metadata: + m_Items: [] + - m_Id: 116747023328600176 + m_Localized: Vocal Monitoring Volume + m_Metadata: + m_Items: [] + - m_Id: 116747023328600177 + m_Localized: Adjusts the feedback you hear when singing. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600178 + m_Localized: Vocals Volume + m_Metadata: + m_Items: [] + - m_Id: 116747023328600179 + m_Localized: Adjusts the song's vocal track volume. Only does something if the + song is multi-track. + m_Metadata: + m_Items: [] + - m_Id: 116747023328600180 + m_Localized: Whammy Oversample Factor + m_Metadata: + m_Items: [] + - m_Id: 116747023328600181 + m_Localized: Whammy Pitch Shift Amount (semitones) + m_Metadata: + m_Items: [] + - m_Id: 116831000492105728 + m_Localized: All Settings + m_Metadata: + m_Items: [] + - m_Id: 116831000513077248 + m_Localized: Lighting Peripherals + m_Metadata: + m_Items: [] + - m_Id: 116841933557850112 + m_Localized: Debug and Developer + m_Metadata: + m_Items: [] + - m_Id: 116844061357629440 + m_Localized: Open Executable Path + m_Metadata: + m_Items: [] + - m_Id: 116844061361823744 + m_Localized: Open Persistent Data Path + m_Metadata: + m_Items: [] + - m_Id: 116844061361823745 + m_Localized: Export + m_Metadata: + m_Items: [] + - m_Id: 116844061361823746 + m_Localized: Paths and Folders + m_Metadata: + m_Items: [] + - m_Id: 116844061366018048 + m_Localized: File Management m_Metadata: m_Items: [] references: diff --git a/Assets/packages.config b/Assets/packages.config index 81dd92b45..ec460c8ff 100644 --- a/Assets/packages.config +++ b/Assets/packages.config @@ -9,4 +9,5 @@ + \ No newline at end of file diff --git a/YARG.sln.DotSettings b/YARG.sln.DotSettings index f90b3fc85..158e418a4 100644 --- a/YARG.sln.DotSettings +++ b/YARG.sln.DotSettings @@ -1,4 +1,5 @@  + DMX HOPO True True