Merge pull request #3 from SepComet/StartMenu

StartMenu
This commit is contained in:
SepComet 2026-02-12 22:00:42 +08:00 committed by GitHub
commit 65d7c511e4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
172 changed files with 12365 additions and 1827 deletions

6
.gitignore vendored
View File

@ -76,8 +76,7 @@ crashlytics-build.properties
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
# Temporary auto-generated Android Assets # Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta /[Aa]ssets/[Ss]treamingAssets/
/[Aa]ssets/[Ss]treamingAssets/aa/*
/AGENTS.md /AGENTS.md
/GameDesign.md /GameDesign.md
@ -93,3 +92,6 @@ crashlytics-build.properties
~$*.xlsb ~$*.xlsb
/数据表/__pycache__ /数据表/__pycache__
/Release
/AssetBundles

View File

@ -104,7 +104,7 @@ namespace UnityGameFramework.Editor
} }
EditorGUI.EndDisabledGroup(); EditorGUI.EndDisabledGroup();
int frameRate = EditorGUILayout.IntSlider("Frame Rate", m_FrameRate.intValue, 1, 120); int frameRate = EditorGUILayout.IntSlider("Frame Rate", m_FrameRate.intValue, 1, 240);
if (frameRate != m_FrameRate.intValue) if (frameRate != m_FrameRate.intValue)
{ {
if (EditorApplication.isPlaying) if (EditorApplication.isPlaying)

View File

@ -1,76 +1,76 @@
//------------------------------------------------------------ // //------------------------------------------------------------
// Game Framework // // Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved. // // Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/ // // Homepage: https://gameframework.cn/
// Feedback: mailto:ellan@gameframework.cn // // Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------ // //------------------------------------------------------------
//
using UnityEditor; // using UnityEditor;
using UnityGameFramework.Runtime; // using UnityGameFramework.Runtime;
//
namespace UnityGameFramework.Editor // namespace UnityGameFramework.Editor
{ // {
[CustomEditor(typeof(LocalizationComponent))] // [CustomEditor(typeof(LocalizationComponent))]
internal sealed class LocalizationComponentInspector : GameFrameworkInspector // internal sealed class LocalizationComponentInspector : GameFrameworkInspector
{ // {
private SerializedProperty m_EnableLoadDictionaryUpdateEvent = null; // private SerializedProperty m_EnableLoadDictionaryUpdateEvent = null;
private SerializedProperty m_EnableLoadDictionaryDependencyAssetEvent = null; // private SerializedProperty m_EnableLoadDictionaryDependencyAssetEvent = null;
private SerializedProperty m_CachedBytesSize = null; // private SerializedProperty m_CachedBytesSize = null;
//
private HelperInfo<LocalizationHelperBase> m_LocalizationHelperInfo = new HelperInfo<LocalizationHelperBase>("Localization"); // private HelperInfo<LocalizationHelperBase> m_LocalizationHelperInfo = new HelperInfo<LocalizationHelperBase>("Localization");
//
public override void OnInspectorGUI() // public override void OnInspectorGUI()
{ // {
base.OnInspectorGUI(); // base.OnInspectorGUI();
//
serializedObject.Update(); // serializedObject.Update();
//
LocalizationComponent t = (LocalizationComponent)target; // LocalizationComponent t = (LocalizationComponent)target;
//
EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); // EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
{ // {
EditorGUILayout.PropertyField(m_EnableLoadDictionaryUpdateEvent); // EditorGUILayout.PropertyField(m_EnableLoadDictionaryUpdateEvent);
EditorGUILayout.PropertyField(m_EnableLoadDictionaryDependencyAssetEvent); // EditorGUILayout.PropertyField(m_EnableLoadDictionaryDependencyAssetEvent);
m_LocalizationHelperInfo.Draw(); // m_LocalizationHelperInfo.Draw();
EditorGUILayout.PropertyField(m_CachedBytesSize); // EditorGUILayout.PropertyField(m_CachedBytesSize);
} // }
EditorGUI.EndDisabledGroup(); // EditorGUI.EndDisabledGroup();
//
if (EditorApplication.isPlaying && IsPrefabInHierarchy(t.gameObject)) // if (EditorApplication.isPlaying && IsPrefabInHierarchy(t.gameObject))
{ // {
EditorGUILayout.LabelField("Language", t.Language.ToString()); // EditorGUILayout.LabelField("Language", t.Language.ToString());
EditorGUILayout.LabelField("System Language", t.SystemLanguage.ToString()); // EditorGUILayout.LabelField("System Language", t.SystemLanguage.ToString());
EditorGUILayout.LabelField("Dictionary Count", t.DictionaryCount.ToString()); // EditorGUILayout.LabelField("Dictionary Count", t.DictionaryCount.ToString());
EditorGUILayout.LabelField("Cached Bytes Size", t.CachedBytesSize.ToString()); // EditorGUILayout.LabelField("Cached Bytes Size", t.CachedBytesSize.ToString());
} // }
//
serializedObject.ApplyModifiedProperties(); // serializedObject.ApplyModifiedProperties();
//
Repaint(); // Repaint();
} // }
//
protected override void OnCompileComplete() // protected override void OnCompileComplete()
{ // {
base.OnCompileComplete(); // base.OnCompileComplete();
//
RefreshTypeNames(); // RefreshTypeNames();
} // }
//
private void OnEnable() // private void OnEnable()
{ // {
m_EnableLoadDictionaryUpdateEvent = serializedObject.FindProperty("m_EnableLoadDictionaryUpdateEvent"); // m_EnableLoadDictionaryUpdateEvent = serializedObject.FindProperty("m_EnableLoadDictionaryUpdateEvent");
m_EnableLoadDictionaryDependencyAssetEvent = serializedObject.FindProperty("m_EnableLoadDictionaryDependencyAssetEvent"); // m_EnableLoadDictionaryDependencyAssetEvent = serializedObject.FindProperty("m_EnableLoadDictionaryDependencyAssetEvent");
m_CachedBytesSize = serializedObject.FindProperty("m_CachedBytesSize"); // m_CachedBytesSize = serializedObject.FindProperty("m_CachedBytesSize");
//
m_LocalizationHelperInfo.Init(serializedObject); // m_LocalizationHelperInfo.Init(serializedObject);
//
RefreshTypeNames(); // RefreshTypeNames();
} // }
//
private void RefreshTypeNames() // private void RefreshTypeNames()
{ // {
m_LocalizationHelperInfo.Refresh(); // m_LocalizationHelperInfo.Refresh();
serializedObject.ApplyModifiedProperties(); // serializedObject.ApplyModifiedProperties();
} // }
} // }
} // }

View File

@ -1,4 +0,0 @@
Game.Id
Star Force
Scene.Menu1
Scene.Main2

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 44c8db52241385c45bbb14a1718f17bf
timeCreated: 1528026123
licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -2,14 +2,14 @@
<UnityGameFramework> <UnityGameFramework>
<ResourceBuilder> <ResourceBuilder>
<Settings> <Settings>
<InternalResourceVersion>0</InternalResourceVersion> <InternalResourceVersion>1</InternalResourceVersion>
<Platforms>1</Platforms> <Platforms>1</Platforms>
<AssetBundleCompression>1</AssetBundleCompression> <AssetBundleCompression>1</AssetBundleCompression>
<CompressionHelperTypeName>UnityGameFramework.Runtime.DefaultCompressionHelper</CompressionHelperTypeName> <CompressionHelperTypeName>UnityGameFramework.Runtime.DefaultCompressionHelper</CompressionHelperTypeName>
<AdditionalCompressionSelected>True</AdditionalCompressionSelected> <AdditionalCompressionSelected>True</AdditionalCompressionSelected>
<ForceRebuildAssetBundleSelected>False</ForceRebuildAssetBundleSelected> <ForceRebuildAssetBundleSelected>False</ForceRebuildAssetBundleSelected>
<BuildEventHandlerTypeName>StarForce.Editor.StarForceBuildEventHandler</BuildEventHandlerTypeName> <BuildEventHandlerTypeName>StarForce.Editor.StarForceBuildEventHandler</BuildEventHandlerTypeName>
<OutputDirectory></OutputDirectory> <OutputDirectory>D:/Learn/GameLearn/UnityProjects/Biography of Li Jian/AssetBundles</OutputDirectory>
<OutputPackageSelected>True</OutputPackageSelected> <OutputPackageSelected>True</OutputPackageSelected>
<OutputFullSelected>True</OutputFullSelected> <OutputFullSelected>True</OutputFullSelected>
<OutputPackedSelected>True</OutputPackedSelected> <OutputPackedSelected>True</OutputPackedSelected>

View File

@ -2,23 +2,16 @@
<UnityGameFramework> <UnityGameFramework>
<ResourceCollection> <ResourceCollection>
<Resources> <Resources>
<Resource Name="Configs" FileSystem="GameData" LoadType="0" Packed="True" ResourceGroups="Base" />
<Resource Name="DataTables" FileSystem="GameData" LoadType="0" Packed="True" ResourceGroups="Base" /> <Resource Name="DataTables" FileSystem="GameData" LoadType="0" Packed="True" ResourceGroups="Base" />
<Resource Name="Entities" FileSystem="Resources" LoadType="0" Packed="True" />
<Resource Name="Fonts" FileSystem="UI" LoadType="0" Packed="True" ResourceGroups="Base" /> <Resource Name="Fonts" FileSystem="UI" LoadType="0" Packed="True" ResourceGroups="Base" />
<Resource Name="Localization/Dictionaries" Variant="en-us" FileSystem="UI" LoadType="0" Packed="True" ResourceGroups="Base" />
<Resource Name="Localization/Dictionaries" Variant="ko-kr" FileSystem="UI" LoadType="0" Packed="True" ResourceGroups="Base" />
<Resource Name="Localization/Dictionaries" Variant="zh-cn" FileSystem="UI" LoadType="0" Packed="True" ResourceGroups="Base" />
<Resource Name="Localization/Dictionaries" Variant="zh-tw" FileSystem="UI" LoadType="0" Packed="True" ResourceGroups="Base" />
<Resource Name="Materials" FileSystem="Resources" LoadType="0" Packed="True" />
<Resource Name="Meshes" FileSystem="Resources" LoadType="0" Packed="True" />
<Resource Name="Music/About" FileSystem="Resources" LoadType="0" Packed="True" ResourceGroups="Music" /> <Resource Name="Music/About" FileSystem="Resources" LoadType="0" Packed="True" ResourceGroups="Music" />
<Resource Name="Music/Background" FileSystem="Resources" LoadType="0" Packed="True" ResourceGroups="Music" /> <Resource Name="Music/Background" FileSystem="Resources" LoadType="0" Packed="True" ResourceGroups="Music" />
<Resource Name="Music/Menu" FileSystem="Resources" LoadType="0" Packed="True" ResourceGroups="Music" /> <Resource Name="Music/Menu" FileSystem="Resources" LoadType="0" Packed="True" ResourceGroups="Music" />
<Resource Name="Scenes" FileSystem="Resources" LoadType="0" Packed="True" /> <Resource Name="Scenes" FileSystem="Resources" LoadType="0" Packed="True" />
<Resource Name="SceneSettings" LoadType="0" Packed="True" />
<Resource Name="Sounds" FileSystem="Resources" LoadType="0" Packed="True" /> <Resource Name="Sounds" FileSystem="Resources" LoadType="0" Packed="True" />
<Resource Name="Textures" FileSystem="Resources" LoadType="0" Packed="True" />
<Resource Name="UI/UIForms" FileSystem="UI" LoadType="0" Packed="True" /> <Resource Name="UI/UIForms" FileSystem="UI" LoadType="0" Packed="True" />
<Resource Name="UI/UIItems" LoadType="0" Packed="True" />
<Resource Name="UI/UISounds" FileSystem="UI" LoadType="0" Packed="True" /> <Resource Name="UI/UISounds" FileSystem="UI" LoadType="0" Packed="True" />
<Resource Name="UI/UISprites/Common" FileSystem="UI" LoadType="0" Packed="True" /> <Resource Name="UI/UISprites/Common" FileSystem="UI" LoadType="0" Packed="True" />
<Resource Name="UI/UISprites/Icons" FileSystem="UI" LoadType="0" Packed="True" /> <Resource Name="UI/UISprites/Icons" FileSystem="UI" LoadType="0" Packed="True" />
@ -26,133 +19,58 @@
</Resources> </Resources>
<Assets> <Assets>
<Asset Guid="0179316b5fc7c2946a67c5877c02fc30" ResourceName="UI/UISprites/Common" /> <Asset Guid="0179316b5fc7c2946a67c5877c02fc30" ResourceName="UI/UISprites/Common" />
<Asset Guid="01ce90464744bbb40a9d235bdcc27328" ResourceName="UI/UIForms" />
<Asset Guid="04d7dde7615d71b4db1a0c8d67a62e95" ResourceName="UI/UIForms" /> <Asset Guid="04d7dde7615d71b4db1a0c8d67a62e95" ResourceName="UI/UIForms" />
<Asset Guid="04dbc0581071c254ea6564b2ff06ff9b" ResourceName="Textures" />
<Asset Guid="093f8873cfe371d41b854ed9fb6bff69" ResourceName="Music/About" /> <Asset Guid="093f8873cfe371d41b854ed9fb6bff69" ResourceName="Music/About" />
<Asset Guid="0963e6c65b2b1f74d9f455e21901e2dc" ResourceName="Textures" />
<Asset Guid="0992f89f84d762f478fd32f8225168b0" ResourceName="Entities" />
<Asset Guid="09966b19e546cc94aa84d0743cb2a83d" ResourceName="UI/UIForms" />
<Asset Guid="0a65a68c01a76ea4b8b574827a6467aa" ResourceName="UI/UISprites/Common" /> <Asset Guid="0a65a68c01a76ea4b8b574827a6467aa" ResourceName="UI/UISprites/Common" />
<Asset Guid="0ed73dc47f4cb38489020d05e9f02c99" ResourceName="Materials" /> <Asset Guid="0bbb3a6d1e6bb8b4a9b4d8f0510d9c63" ResourceName="UI/UIItems" />
<Asset Guid="0f995b3145e0e7247a42da6cef1dbf23" ResourceName="Materials" />
<Asset Guid="1053b0070685be347ab58587156842dc" ResourceName="Localization/Dictionaries" ResourceVariant="zh-tw" />
<Asset Guid="11e27c26ac87b40f0a62ec40d7261989" ResourceName="Entities" />
<Asset Guid="1478894bc9a1ed241b05b0862a7b8bce" ResourceName="Textures" />
<Asset Guid="14869ac0d4433f04db1704e39d03412e" ResourceName="Localization/Dictionaries" ResourceVariant="en-us" />
<Asset Guid="156d241f796508c4da4fc354a7fbf5a8" ResourceName="UI/UISprites/Common" /> <Asset Guid="156d241f796508c4da4fc354a7fbf5a8" ResourceName="UI/UISprites/Common" />
<Asset Guid="160925a6fe2664f2a978566b819f0af0" ResourceName="Entities" />
<Asset Guid="185f97f18bd603a478461ce9c08bd039" ResourceName="Materials" />
<Asset Guid="1b4bad6cea5a94611b21f9757fe41444" ResourceName="Materials" />
<Asset Guid="1be4472894949437694aead55c6da60f" ResourceName="Sounds" /> <Asset Guid="1be4472894949437694aead55c6da60f" ResourceName="Sounds" />
<Asset Guid="1c89236d45255234ebd1d39657ff7e02" ResourceName="Textures" />
<Asset Guid="1cfe02ffd0b74854ea5bcd1a3c63ac3c" ResourceName="Materials" />
<Asset Guid="1d46a17a95a444c08830612bc1146d1d" ResourceName="Materials" />
<Asset Guid="1e0350b97c61bfb4a91c62d756d01727" ResourceName="Materials" />
<Asset Guid="236433a27ce40a7429b87d14d8fa3035" ResourceName="UI/UISprites/Common" /> <Asset Guid="236433a27ce40a7429b87d14d8fa3035" ResourceName="UI/UISprites/Common" />
<Asset Guid="239366f83979ffa48a45dac2f0f1e8cb" ResourceName="DataTables" />
<Asset Guid="24ca310f92a6796408f1db7647ec4e55" ResourceName="UI/UISprites/Common" /> <Asset Guid="24ca310f92a6796408f1db7647ec4e55" ResourceName="UI/UISprites/Common" />
<Asset Guid="2768a9a4c8d289840918dcb879705893" ResourceName="Meshes" />
<Asset Guid="2cb5eef4d7d7bf6459dd13a3f8d90246" ResourceName="Textures" />
<Asset Guid="315e8ed2db27c254cb3366ff0793cd90" ResourceName="DataTables" />
<Asset Guid="3455fe69f7ddc4604b95bf9b0a1e88d7" ResourceName="Entities" />
<Asset Guid="352da872791696c48af3b21132e3e3c3" ResourceName="DataTables" /> <Asset Guid="352da872791696c48af3b21132e3e3c3" ResourceName="DataTables" />
<Asset Guid="372a8b1e52bedc64b9207b12d167afaa" ResourceName="DataTables" /> <Asset Guid="378604b840f56ae49831978cf0e0a6ea" ResourceName="DataTables" />
<Asset Guid="3aa539b1e46111d4299a83c73ebe762c" ResourceName="UI/UIForms" /> <Asset Guid="3b1611489367200459a07da915578b6a" ResourceName="SceneSettings" />
<Asset Guid="3be3fac3611f4584695662c4889f722d" ResourceName="UI/UISprites/Common" /> <Asset Guid="3be3fac3611f4584695662c4889f722d" ResourceName="UI/UISprites/Common" />
<Asset Guid="3dc7455402dfa462b89a4bbd513955e9" ResourceName="Sounds" /> <Asset Guid="3dc7455402dfa462b89a4bbd513955e9" ResourceName="Sounds" />
<Asset Guid="3e504a46a8fcec34db3c4776530c6eb2" ResourceName="Textures" />
<Asset Guid="3f54fcfdac53aec42ae18a6a1c6d8cb1" ResourceName="UI/UISprites/Common" /> <Asset Guid="3f54fcfdac53aec42ae18a6a1c6d8cb1" ResourceName="UI/UISprites/Common" />
<Asset Guid="4473d81b14ddb0143addf0e6050d8491" ResourceName="Scenes" /> <Asset Guid="42fee552f83943645beb47cf7093927a" ResourceName="DataTables" />
<Asset Guid="44c8db52241385c45bbb14a1718f17bf" ResourceName="Configs" />
<Asset Guid="4a17d2c656f5c6b44a31e3ee547a76b0" ResourceName="DataTables" />
<Asset Guid="4c3865b2ac420cd46a9cde6ab468d016" ResourceName="Materials" />
<Asset Guid="4db6a299939bfe94893585eb387f577a" ResourceName="DataTables" />
<Asset Guid="4f688097e85071841a2c3ba165000c20" ResourceName="Textures" />
<Asset Guid="5282f20eba4d44213820e21af8481932" ResourceName="Meshes" />
<Asset Guid="56b8df63bbad60749a69e38bc687fadf" ResourceName="UI/UISprites/Common" /> <Asset Guid="56b8df63bbad60749a69e38bc687fadf" ResourceName="UI/UISprites/Common" />
<Asset Guid="578af1667322bab45b652b79a40bb4fb" ResourceName="Materials" /> <Asset Guid="59ac12de6091b7741bc2819cf790146f" ResourceName="UI/UIForms" />
<Asset Guid="583ff7026dac91849b7c7b2468ba456b" ResourceName="Materials" /> <Asset Guid="5ae1171af6ab9b646b7a915598c657f1" ResourceName="Scenes" />
<Asset Guid="5dcd89912e222bf4c87f76db4044bc5e" ResourceName="Localization/Dictionaries" ResourceVariant="ko-kr" />
<Asset Guid="62af9e5c8f39cfa49af9e10ccf42f1da" ResourceName="UI/UISprites/Common" /> <Asset Guid="62af9e5c8f39cfa49af9e10ccf42f1da" ResourceName="UI/UISprites/Common" />
<Asset Guid="638ff8ae4a0d15047839cd265d3bc296" ResourceName="Music/Background" /> <Asset Guid="638ff8ae4a0d15047839cd265d3bc296" ResourceName="Music/Background" />
<Asset Guid="63fe6ff9ab9e1433f8db4ebd940f2442" ResourceName="Materials" /> <Asset Guid="639c98846a76d624cbac99ade4a1e1a3" ResourceName="Scenes" />
<Asset Guid="64f3bb52c6a54854688fcc656af2b1c9" ResourceName="DataTables" /> <Asset Guid="66fa61c3dfce3444fb3239ac93e6e75d" ResourceName="UI/UIForms" />
<Asset Guid="68d252316715f9f4fbb327802325e2e2" ResourceName="UI/UIItems" />
<Asset Guid="6cbc2c323b77f804fb958fa4eca33998" ResourceName="UI/UISprites/Common" /> <Asset Guid="6cbc2c323b77f804fb958fa4eca33998" ResourceName="UI/UISprites/Common" />
<Asset Guid="6d9b42ac01f24bf4d98923573f103575" ResourceName="Textures" />
<Asset Guid="6db0c8354d868834abf29840037591b1" ResourceName="Textures" />
<Asset Guid="6e023ca4283b3a7469cd61d24c83048c" ResourceName="Textures" />
<Asset Guid="6e3730451fa077346abd4ac642ea71d8" ResourceName="Textures" />
<Asset Guid="6e5d026bf0652ed4380f6a66f4aa26c5" ResourceName="Textures" />
<Asset Guid="71646ebaae78d43aeb8b53cacdb69671" ResourceName="Textures" />
<Asset Guid="72e76810224064300b7d32e8322a5d12" ResourceName="Sounds" /> <Asset Guid="72e76810224064300b7d32e8322a5d12" ResourceName="Sounds" />
<Asset Guid="738bdf56857a65f479c367c7b62c4ad7" ResourceName="Entities" /> <Asset Guid="75da5a4ba56425747be081b9b396ba4e" ResourceName="UI/UIForms" />
<Asset Guid="77cbb7c5404c10242ab59953e0746314" ResourceName="Fonts" /> <Asset Guid="77cbb7c5404c10242ab59953e0746314" ResourceName="Fonts" />
<Asset Guid="7d5f7699d6d1d48e485ac71126e12061" ResourceName="Entities" /> <Asset Guid="788b17ff3aef4cd4fb6c808826c875e5" ResourceName="DataTables" />
<Asset Guid="7e91cd9bad7babf4b975882a4b7453cb" ResourceName="Textures" />
<Asset Guid="7eae0d2701845a54aa570b07c55dab44" ResourceName="Textures" />
<Asset Guid="7f5aee8da226edf4991598327cb32ce0" ResourceName="UI/UISprites/Logos" /> <Asset Guid="7f5aee8da226edf4991598327cb32ce0" ResourceName="UI/UISprites/Logos" />
<Asset Guid="7fd11dc5d29076d469d414dec2818f11" ResourceName="Configs" /> <Asset Guid="7f72e35a938b99d478b47012eacff084" ResourceName="UI/UIItems" />
<Asset Guid="834bfaee90a9d4e04b1e8c1ca22cc88e" ResourceName="Entities" /> <Asset Guid="87ba2cae099325c4bb0121cd8df50f43" ResourceName="DataTables" />
<Asset Guid="836be25be3e1e8c41ae5545bc8a9a4d7" ResourceName="Textures" /> <Asset Guid="99d811b0183246646a2ce8df996f4bca" ResourceName="Fonts" />
<Asset Guid="8940b037a9b441c4cbd3d2b446838424" ResourceName="Materials" />
<Asset Guid="8b1acacd22538f34cb85287a0781ea5e" ResourceName="DataTables" />
<Asset Guid="8cf749fdfa5edc3478d16893efeaa0eb" ResourceName="Entities" />
<Asset Guid="8e114ded6a865324588170636872943c" ResourceName="DataTables" />
<Asset Guid="8e27380ee68aa4a219b4db9018e7da31" ResourceName="Materials" />
<Asset Guid="9143e2b62ad50488482f9b73672fc331" ResourceName="Entities" />
<Asset Guid="955000b4d1441470e8cbf94f483228b5" ResourceName="Materials" />
<Asset Guid="97b1f8b25cca2bc458cb9d6127c8d186" ResourceName="Materials" />
<Asset Guid="97d117308cf86924289e81e7e71dd5dd" ResourceName="DataTables" />
<Asset Guid="9afa958d6d8235941b9badb42aae4370" ResourceName="Meshes" />
<Asset Guid="9b433f0bb7fef6f4085c316a0d88c307" ResourceName="DataTables" />
<Asset Guid="9be2e1e45f4edd74c8764538ad306b78" ResourceName="Localization/Dictionaries" ResourceVariant="zh-cn" />
<Asset Guid="9c3961f379234354e813d7b38146424d" ResourceName="DataTables" />
<Asset Guid="9c3faac13c8ced84a9f3018303b7bb98" ResourceName="DataTables" />
<Asset Guid="9ddab293e2a8af3499dac05f5fd6169c" ResourceName="Meshes" />
<Asset Guid="9f847ec5e66e03e4ead1d3c5f7b510e8" ResourceName="UI/UISprites/Common" /> <Asset Guid="9f847ec5e66e03e4ead1d3c5f7b510e8" ResourceName="UI/UISprites/Common" />
<Asset Guid="a019ae3af8e864616b85773c509f5285" ResourceName="Sounds" /> <Asset Guid="a019ae3af8e864616b85773c509f5285" ResourceName="Sounds" />
<Asset Guid="a23eef5e20ff8cb46adf33491fc443fb" ResourceName="Materials" />
<Asset Guid="a33e23ae848110243820cda82120b105" ResourceName="DataTables" />
<Asset Guid="a6d58f54ce5934781962a4f887e834f3" ResourceName="Entities" />
<Asset Guid="a71f8bb1b1b2c51438e2bafc884cb02c" ResourceName="DataTables" /> <Asset Guid="a71f8bb1b1b2c51438e2bafc884cb02c" ResourceName="DataTables" />
<Asset Guid="a7b030cffa2dc44478c14e49a22771c2" ResourceName="Materials" />
<Asset Guid="a8c07bbe04fdaf04b80e27f651a8edd6" ResourceName="UI/UISprites/Common" /> <Asset Guid="a8c07bbe04fdaf04b80e27f651a8edd6" ResourceName="UI/UISprites/Common" />
<Asset Guid="ab45c3f613f388d43bbf43ec05eb92e2" ResourceName="UI/UISprites/Common" /> <Asset Guid="ab45c3f613f388d43bbf43ec05eb92e2" ResourceName="UI/UISprites/Common" />
<Asset Guid="ab4774faf71b57a40a29a9e902403fe3" ResourceName="DataTables" />
<Asset Guid="abd1565e9e268f04cac3631d022b4ace" ResourceName="Entities" />
<Asset Guid="ad56aae2bb0f2ce4a86711287e14e223" ResourceName="DataTables" />
<Asset Guid="ae6a7f967521769458b0913fa39caaf4" ResourceName="Textures" />
<Asset Guid="afc18fc39ade3744397c0c993b57be53" ResourceName="Entities" />
<Asset Guid="b031b4f2980561542a7f7ba41391edc3" ResourceName="Scenes" />
<Asset Guid="b0c7cf51d3fecb446ab93bf854419715" ResourceName="Materials" />
<Asset Guid="b2cebe04343227945bab3729ca9a3493" ResourceName="DataTables" />
<Asset Guid="ba157ba55f72c424a9e88f3c029997c4" ResourceName="Textures" />
<Asset Guid="baedbbad82997f445a8cb4da210404e0" ResourceName="Meshes" />
<Asset Guid="bbfd75fe6fe00e1448fe988173ede7f9" ResourceName="UI/UIForms" />
<Asset Guid="bf75b984df8a84987bcf3a8bf6e2862d" ResourceName="Sounds" /> <Asset Guid="bf75b984df8a84987bcf3a8bf6e2862d" ResourceName="Sounds" />
<Asset Guid="c547624e174de984882f0a14b4bb32e1" ResourceName="Materials" />
<Asset Guid="c58c9afddbd36d14d837fa218d772996" ResourceName="Materials" />
<Asset Guid="c7d1e11dd37634b48a9dd4012b8e4306" ResourceName="UI/UISounds" /> <Asset Guid="c7d1e11dd37634b48a9dd4012b8e4306" ResourceName="UI/UISounds" />
<Asset Guid="caa829ab2ffc71340a69253afdf58365" ResourceName="Music/Menu" /> <Asset Guid="caa829ab2ffc71340a69253afdf58365" ResourceName="Music/Menu" />
<Asset Guid="cadd0764941c8b646ae79b51d0ea8285" ResourceName="UI/UISprites/Common" /> <Asset Guid="cadd0764941c8b646ae79b51d0ea8285" ResourceName="UI/UISprites/Common" />
<Asset Guid="cccff1c0cc661424294ed55e531c767b" ResourceName="UI/UIForms" />
<Asset Guid="cfe53cf384344bd47a8680f8c5f97a7b" ResourceName="DataTables" /> <Asset Guid="cfe53cf384344bd47a8680f8c5f97a7b" ResourceName="DataTables" />
<Asset Guid="d9808401c68af274a8edfbed3d1b53c7" ResourceName="Meshes" />
<Asset Guid="db58965402f12ed47b4dad61a9e48c9d" ResourceName="UI/UISprites/Icons" /> <Asset Guid="db58965402f12ed47b4dad61a9e48c9d" ResourceName="UI/UISprites/Icons" />
<Asset Guid="e0792649e7774a24d8e7cceba0231c61" ResourceName="DataTables" /> <Asset Guid="dde468eff36cc784fa023279ae4d4d33" ResourceName="SceneSettings" />
<Asset Guid="e5ca26c53b6ab8a46b52817008d7c7fa" ResourceName="UI/UISprites/Icons" /> <Asset Guid="e5ca26c53b6ab8a46b52817008d7c7fa" ResourceName="UI/UISprites/Icons" />
<Asset Guid="e82837c9099f69a48b48fc44eb8d119d" ResourceName="UI/UISprites/Common" /> <Asset Guid="e82837c9099f69a48b48fc44eb8d119d" ResourceName="UI/UISprites/Common" />
<Asset Guid="e830964cdb85ff3429bca484c16bab44" ResourceName="UI/UISounds" /> <Asset Guid="e830964cdb85ff3429bca484c16bab44" ResourceName="UI/UISounds" />
<Asset Guid="e85864330b68dde498dcb6e8711815d3" ResourceName="UI/UISprites/Common" /> <Asset Guid="e85864330b68dde498dcb6e8711815d3" ResourceName="UI/UISprites/Common" />
<Asset Guid="eabb37cb6d738b443b398b701a64cd88" ResourceName="Textures" />
<Asset Guid="f2f4df0b7211e4c42a5638273525d8ee" ResourceName="UI/UISprites/Common" /> <Asset Guid="f2f4df0b7211e4c42a5638273525d8ee" ResourceName="UI/UISprites/Common" />
<Asset Guid="f2f97a713beae744181ba934f9c4113a" ResourceName="DataTables" />
<Asset Guid="f36c72c738c55f741afcd674a0b1245f" ResourceName="Materials" />
<Asset Guid="f438a72a91e1c3c4a9ced40888ffec96" ResourceName="UI/UISprites/Icons" /> <Asset Guid="f438a72a91e1c3c4a9ced40888ffec96" ResourceName="UI/UISprites/Icons" />
<Asset Guid="f4ec271e525e14ca9927a07e6a2e153d" ResourceName="Entities" />
<Asset Guid="f6db5bbdfe0e9894798706814cd6b336" ResourceName="Textures" />
<Asset Guid="fd3cbf51780694849b9b019b36a3938e" ResourceName="Textures" />
<Asset Guid="fdb5edd099d06b045af609ba3172400a" ResourceName="DataTables" />
<Asset Guid="fedd25a3c60e7ae499fc6efab9ee180b" ResourceName="Entities" />
</Assets> </Assets>
</ResourceCollection> </ResourceCollection>
</UnityGameFramework> </UnityGameFramework>

View File

@ -1,6 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 7fd11dc5d29076d469d414dec2818f11 guid: 87ba2cae099325c4bb0121cd8df50f43
TextScriptImporter: TextScriptImporter:
externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 315e8ed2db27c254cb3366ff0793cd90
timeCreated: 1528026124
licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 42fee552f83943645beb47cf7093927a
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -4,5 +4,4 @@
# 场景编号 备注 资源名称 背景音乐编号 # 场景编号 备注 资源名称 背景音乐编号
1 菜单场景 Menu 1 1 菜单场景 Menu 1
2 战斗场景 Main 2 2 战斗场景 Main 2
3 压力测试场景 StressTest 0 3 GameplayA 0
4 GameplayA 0

View File

@ -1,9 +0,0 @@
# 声音配置表
# Id AssetName Priority Loop Volume SpatialBlend MaxDistance
# int string int bool float float float
# 声音编号 策划备注 资源名称 优先级默认0128最高-128最低 是否循环 音量0~1 声音空间混合量0为2D1为3D中间值混合效果 声音最大距离
10000 玩家子弹 weapon_player 0 False 1 0 100
10001 敌人子弹 weapon_enemy 0 False 1 0 100
20000 玩家爆炸 explosion_player 0 False 1 0 100
20001 敌人爆炸 explosion_enemy 0 False 1 0 100
20002 小行星爆炸 explosion_asteroid 0 False 1 0 100

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 372a8b1e52bedc64b9207b12d167afaa
timeCreated: 1528026124
licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -2,7 +2,7 @@
# Id AssetName UIGroupName AllowMultiInstance PauseCoveredUIForm # Id AssetName UIGroupName AllowMultiInstance PauseCoveredUIForm
# int string string bool bool # int string string bool bool
# 界面编号 策划备注 资源名称 界面组名称 是否允许多个界面实例 是否暂停被其覆盖的界面 # 界面编号 策划备注 资源名称 界面组名称 是否允许多个界面实例 是否暂停被其覆盖的界面
1 弹出框 DialogForm Default True True 1 弹出框 DialogForm Dialog True True
100 主菜单 MenuForm Default False True 100 主菜单 MenuForm Default False True
101 设置 SettingForm Default False True 101 设置 SettingForm Default False True
102 关于 AboutForm Default False True 102 关于 AboutForm Default False True

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: f2f97a713beae744181ba934f9c4113a
timeCreated: 1528026124
licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -132,8 +132,8 @@ Material:
- _Stencil: 0 - _Stencil: 0
- _StencilComp: 8 - _StencilComp: 8
- _StencilOp: 0 - _StencilOp: 0
- _StencilReadMask: 255 - _StencilReadMask: 1
- _StencilWriteMask: 255 - _StencilWriteMask: 0
- _TextureHeight: 4096 - _TextureHeight: 4096
- _TextureWidth: 4096 - _TextureWidth: 4096
- _UnderlayDilate: 0 - _UnderlayDilate: 0
@ -168,9 +168,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3}
m_Name: MainTMPFont m_Name: MainTMPFont
m_EditorClassIdentifier: m_EditorClassIdentifier:
hashCode: -1438885570 hashCode: 1106704785
material: {fileID: -1106088975554028259} material: {fileID: -1106088975554028259}
materialHashCode: -1897074850 materialHashCode: -1461255791
m_Version: 1.1.0 m_Version: 1.1.0
m_SourceFontFileGUID: 376d7b8f751da3646930f65eab02a204 m_SourceFontFileGUID: 376d7b8f751da3646930f65eab02a204
m_SourceFontFile_EditorRef: {fileID: 12800000, guid: 376d7b8f751da3646930f65eab02a204, m_SourceFontFile_EditorRef: {fileID: 12800000, guid: 376d7b8f751da3646930f65eab02a204,

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: c4b7102b2e334264398178de3d6325b4 guid: 6b5df98c9d4986e4f90d7262b4d2d604
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -0,0 +1,297 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &203844586
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 203844589}
- component: {fileID: 203844588}
- component: {fileID: 203844587}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &203844587
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 203844586}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 3
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_LightLayerMask: 1
m_RenderingLayers: 1
m_CustomShadowLayers: 0
m_ShadowLayerMask: 1
m_ShadowRenderingLayers: 1
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 1
--- !u!108 &203844588
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 203844586}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &203844589
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 203844586}
serializedVersion: 2
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &1160234425
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1160234427}
- component: {fileID: 1160234426}
m_Layer: 0
m_Name: Global Volume
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1160234426
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1160234425}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IsGlobal: 1
priority: 0
blendDistance: 0
weight: 1
sharedProfile: {fileID: 11400000, guid: dde468eff36cc784fa023279ae4d4d33, type: 2}
--- !u!4 &1160234427
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1160234425}
serializedVersion: 2
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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 203844589}
- {fileID: 1160234427}

View File

@ -1,6 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 3c721a41db518484e9a1771952725489 guid: 5ae1171af6ab9b646b7a915598c657f1
folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -0,0 +1,104 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-32820517437979890
MonoBehaviour:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3}
m_Name: Bloom
m_EditorClassIdentifier:
active: 1
skipIterations:
m_OverrideState: 0
m_Value: 1
threshold:
m_OverrideState: 0
m_Value: 0.9
intensity:
m_OverrideState: 1
m_Value: 1
scatter:
m_OverrideState: 0
m_Value: 0.7
clamp:
m_OverrideState: 0
m_Value: 65472
tint:
m_OverrideState: 0
m_Value: {r: 1, g: 1, b: 1, a: 1}
highQualityFiltering:
m_OverrideState: 0
m_Value: 0
downscale:
m_OverrideState: 0
m_Value: 0
maxIterations:
m_OverrideState: 0
m_Value: 6
dirtTexture:
m_OverrideState: 0
m_Value: {fileID: 0}
dimension: 1
dirtIntensity:
m_OverrideState: 0
m_Value: 0
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
m_Name: GlobalVolumeProfile
m_EditorClassIdentifier:
components:
- {fileID: 1881579288749618558}
- {fileID: -32820517437979890}
--- !u!114 &1881579288749618558
MonoBehaviour:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3}
m_Name: Tonemapping
m_EditorClassIdentifier:
active: 1
mode:
m_OverrideState: 1
m_Value: 1
neutralHDRRangeReductionMode:
m_OverrideState: 0
m_Value: 2
acesPreset:
m_OverrideState: 0
m_Value: 3
hueShiftAmount:
m_OverrideState: 0
m_Value: 0
detectPaperWhite:
m_OverrideState: 0
m_Value: 0
paperWhite:
m_OverrideState: 0
m_Value: 300
detectBrightnessLimits:
m_OverrideState: 0
m_Value: 1
minNits:
m_OverrideState: 0
m_Value: 0.005
maxNits:
m_OverrideState: 0
m_Value: 1000

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 707360a9c581a4bd7aa53bfeb1429f71 guid: dde468eff36cc784fa023279ae4d4d33
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 11400000 mainObjectFileID: 11400000

View File

@ -5,6 +5,7 @@
// Feedback: mailto:ellan@gameframework.cn // Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------ //------------------------------------------------------------
using Definition.DataStruct;
using GameFramework; using GameFramework;
using StarForce; using StarForce;
using UI; using UI;

View File

@ -1,5 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using DataTable; using DataTable;
using Definition;
using Definition.Enum; using Definition.Enum;
using Event; using Event;
using GameFramework.DataTable; using GameFramework.DataTable;
@ -15,8 +16,6 @@ namespace CustomComponent
{ {
#region Property #region Property
[SerializeField] private float _playingSpeed = 1.0f;
private const int DialogChapterDivisor = 1000; private const int DialogChapterDivisor = 1000;
private const int LineChapterDivisor = 100000000; private const int LineChapterDivisor = 100000000;
private const int LineDialogDivisor = 100000; private const int LineDialogDivisor = 100000;
@ -37,8 +36,6 @@ namespace CustomComponent
private bool _isInitialized; private bool _isInitialized;
private bool _isPlaying; private bool _isPlaying;
public float PlayingSpeed => _playingSpeed;
public bool IsInitialized => _isInitialized; public bool IsInitialized => _isInitialized;
public bool IsPlaying => _isPlaying; public bool IsPlaying => _isPlaying;
@ -215,7 +212,8 @@ namespace CustomComponent
_formContext.DialogId = dialogRow.Id; _formContext.DialogId = dialogRow.Id;
_formContext.DialogTitle = dialogRow.Title; _formContext.DialogTitle = dialogRow.Title;
_formContext.DialogUIMode = dialogRow.UIMode; _formContext.DialogUIMode = dialogRow.UIMode;
_formContext.PlayingSpeed = Mathf.Max(0f, _playingSpeed); _formContext.PlayingSpeed = (DialogPlayingSpeed)GameEntry.Setting.GetInt(Constant.Setting.DialogPlayingSpeed);
_formContext.DialogWindowAlpha = (DialogWindowAlpha)GameEntry.Setting.GetInt(Constant.Setting.DialogWindowAlpha);
_currentLineIndex = 0; _currentLineIndex = 0;
ApplyLineToContext(dialogLines[_currentLineIndex], _currentLineIndex, dialogLines.Count); ApplyLineToContext(dialogLines[_currentLineIndex], _currentLineIndex, dialogLines.Count);
@ -355,7 +353,6 @@ namespace CustomComponent
_formContext.Direction = lineRow.Direction; _formContext.Direction = lineRow.Direction;
_formContext.Text = lineRow.Text; _formContext.Text = lineRow.Text;
_formContext.Emphasis = lineRow.Emphasis; _formContext.Emphasis = lineRow.Emphasis;
_formContext.PlayingSpeed = Mathf.Max(0f, _playingSpeed);
_formContext.LineIndex = lineIndex; _formContext.LineIndex = lineIndex;
_formContext.TotalLines = totalLines; _formContext.TotalLines = totalLines;
_formContext.IsLastLine = lineIndex >= totalLines - 1; _formContext.IsLastLine = lineIndex >= totalLines - 1;

View File

@ -1,17 +1,4 @@
//------------------------------------------------------------ using System.IO;
// Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/
// Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------
// 此文件由工具自动生成,请勿直接修改。
// 生成时间2021-06-16 21:54:35.591
//------------------------------------------------------------
using GameFramework;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text; using System.Text;
using UnityEngine; using UnityEngine;
using UnityGameFramework.Runtime; using UnityGameFramework.Runtime;
@ -21,7 +8,7 @@ namespace DataTable
/// <summary> /// <summary>
/// 音乐配置表。 /// 音乐配置表。
/// </summary> /// </summary>
public class DRMusic : DataRowBase public class DRBGM : DataRowBase
{ {
private int m_Id = 0; private int m_Id = 0;

View File

@ -1,7 +1,4 @@
using GameFramework; using System.IO;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text; using System.Text;
using UnityEngine; using UnityEngine;
using UnityGameFramework.Runtime; using UnityGameFramework.Runtime;
@ -11,7 +8,7 @@ namespace DataTable
/// <summary> /// <summary>
/// 声音配置表。 /// 声音配置表。
/// </summary> /// </summary>
public class DRUISound : DataRowBase public class DRSE : DataRowBase
{ {
private int m_Id = 0; private int m_Id = 0;

View File

@ -1,127 +0,0 @@
using System.IO;
using System.Text;
using UnityGameFramework.Runtime;
namespace DataTable
{
/// <summary>
/// 声音配置表。
/// </summary>
public class DRSound : DataRowBase
{
private int m_Id = 0;
/// <summary>
/// 获取声音编号。
/// </summary>
public override int Id
{
get
{
return m_Id;
}
}
/// <summary>
/// 获取资源名称。
/// </summary>
public string AssetName
{
get;
private set;
}
/// <summary>
/// 获取优先级默认0128最高-128最低
/// </summary>
public int Priority
{
get;
private set;
}
/// <summary>
/// 获取是否循环。
/// </summary>
public bool Loop
{
get;
private set;
}
/// <summary>
/// 获取音量0~1
/// </summary>
public float Volume
{
get;
private set;
}
/// <summary>
/// 获取声音空间混合量0为2D1为3D中间值混合效果
/// </summary>
public float SpatialBlend
{
get;
private set;
}
/// <summary>
/// 获取声音最大距离。
/// </summary>
public float MaxDistance
{
get;
private set;
}
public override bool ParseDataRow(string dataRowString, object userData)
{
string[] columnStrings = dataRowString.Split(DataTableExtension.DataSplitSeparators);
for (int i = 0; i < columnStrings.Length; i++)
{
columnStrings[i] = columnStrings[i].Trim(DataTableExtension.DataTrimSeparators);
}
int index = 0;
index++;
m_Id = int.Parse(columnStrings[index++]);
index++;
AssetName = columnStrings[index++];
Priority = int.Parse(columnStrings[index++]);
Loop = bool.Parse(columnStrings[index++]);
Volume = float.Parse(columnStrings[index++]);
SpatialBlend = float.Parse(columnStrings[index++]);
MaxDistance = float.Parse(columnStrings[index++]);
GeneratePropertyArray();
return true;
}
public override bool ParseDataRow(byte[] dataRowBytes, int startIndex, int length, object userData)
{
using (MemoryStream memoryStream = new MemoryStream(dataRowBytes, startIndex, length, false))
{
using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8))
{
m_Id = binaryReader.Read7BitEncodedInt32();
AssetName = binaryReader.ReadString();
Priority = binaryReader.Read7BitEncodedInt32();
Loop = binaryReader.ReadBoolean();
Volume = binaryReader.ReadSingle();
SpatialBlend = binaryReader.ReadSingle();
MaxDistance = binaryReader.ReadSingle();
}
}
GeneratePropertyArray();
return true;
}
private void GeneratePropertyArray()
{
}
}
}

View File

@ -1,9 +0,0 @@
fileFormatVersion: 2
guid: 5479812568543994bbbcdbee6c42fce1
folderAsset: yes
timeCreated: 1528026148
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,86 +0,0 @@
//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/
// Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------
using Definition;
using GameFramework.Debugger;
using GameFramework.Localization;
using UnityEngine;
using UnityGameFramework.Runtime;
namespace StarForce
{
public class ChangeLanguageDebuggerWindow : IDebuggerWindow
{
private Vector2 m_ScrollPosition = Vector2.zero;
private bool m_NeedRestart = false;
public void Initialize(params object[] args)
{
}
public void Shutdown()
{
}
public void OnEnter()
{
}
public void OnLeave()
{
}
public void OnUpdate(float elapseSeconds, float realElapseSeconds)
{
if (m_NeedRestart)
{
m_NeedRestart = false;
UnityGameFramework.Runtime.GameEntry.Shutdown(ShutdownType.Restart);
}
}
public void OnDraw()
{
m_ScrollPosition = GUILayout.BeginScrollView(m_ScrollPosition);
{
DrawSectionChangeLanguage();
}
GUILayout.EndScrollView();
}
private void DrawSectionChangeLanguage()
{
GUILayout.Label("<b>Change Language</b>");
GUILayout.BeginHorizontal("box");
{
if (GUILayout.Button("Chinese Simplified", GUILayout.Height(30)))
{
GameEntry.Localization.Language = Language.ChineseSimplified;
SaveLanguage();
}
if (GUILayout.Button("Chinese Traditional", GUILayout.Height(30)))
{
GameEntry.Localization.Language = Language.ChineseTraditional;
SaveLanguage();
}
if (GUILayout.Button("English", GUILayout.Height(30)))
{
GameEntry.Localization.Language = Language.English;
SaveLanguage();
}
}
GUILayout.EndHorizontal();
}
private void SaveLanguage()
{
GameEntry.Setting.SetString(Constant.Setting.Language, GameEntry.Localization.Language.ToString());
GameEntry.Setting.Save();
m_NeedRestart = true;
}
}
}

View File

@ -11,15 +11,18 @@ namespace Definition
{ {
public static class Setting public static class Setting
{ {
public const string Language = "Setting.Language"; public const string BGMVolume = "Setting.BGMVolume";
public const string SoundGroupMuted = "Setting.{0}Muted"; public const string SEVolume = "Setting.SEVolume";
public const string SoundGroupVolume = "Setting.{0}Volume";
public const string MusicMuted = "Setting.MusicMuted"; public const string AllowShake = "Setting.AllowShake";
public const string MusicVolume = "Setting.MusicVolume"; public const string AllowBlink = "Setting.AllowBlink";
public const string SoundMuted = "Setting.SoundMuted"; public const string DialogWindowAlpha = "Setting.DialogWindowAlpha";
public const string SoundVolume = "Setting.SoundVolume"; public const string DialogPlayingSpeed = "Setting.PlayingSpeed";
public const string UISoundMuted = "Setting.UISoundMuted";
public const string UISoundVolume = "Setting.UISoundVolume"; public const string ScreenSolution = "Setting.ScreenSolution";
public const string ScreenWindow = "Setting.ScreenWindow";
public const string VSync = "Setting.VSync";
public const string AntiAliasing = "Setting.AntiAliasing";
} }
} }
} }

View File

@ -5,7 +5,7 @@
// Feedback: mailto:ellan@gameframework.cn // Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------ //------------------------------------------------------------
namespace StarForce namespace Definition.DataStruct
{ {
public class BuildInfo public class BuildInfo
{ {

View File

@ -0,0 +1,69 @@
using Definition.Enum;
namespace Definition.DataStruct
{
public struct GameSetting
{
#region SoundConfig
/// <summary>
/// 音乐音量
/// </summary>
public float BGMVolume { get; set; }
/// <summary>
/// 音效音量
/// </summary>
public float SEVolume { get; set; }
#endregion
#region GameConfig
/// <summary>
/// 允许画面震动
/// </summary>
public bool AllowShake { get; set; }
/// <summary>
/// 允许画面闪光
/// </summary>
public bool AllowBlink { get; set; }
/// <summary>
/// 对话窗口透明度
/// </summary>
public DialogWindowAlpha DialogWindowAlpha { get; set; }
/// <summary>
/// 对话播放速度
/// </summary>
public DialogPlayingSpeed DialogPlayingSpeed { get; set; }
#endregion
#region ScreenConfig
/// <summary>
/// 屏幕分辨率
/// </summary>
public ScreenResolutionType ScreenResolution { get; set; }
/// <summary>
/// 屏幕窗口模式
/// </summary>
public ScreenWindowType ScreenWindow { get; set; }
/// <summary>
/// 垂直同步
/// </summary>
public bool VSync { get; set; }
/// <summary>
/// 抗锯齿
/// </summary>
public bool AntiAliasing { get; set; }
#endregion
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: fca4b405240141ae845bc6cbf5f7f9d2
timeCreated: 1770692998

View File

@ -5,7 +5,7 @@
// Feedback: mailto:ellan@gameframework.cn // Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------ //------------------------------------------------------------
namespace StarForce namespace Definition.DataStruct
{ {
public class VersionInfo public class VersionInfo
{ {

View File

@ -1,4 +1,4 @@
namespace Scene namespace Definition.Enum
{ {
public enum SceneId : byte public enum SceneId : byte
{ {
@ -6,8 +6,6 @@ namespace Scene
Menu = 1, Menu = 1,
Main = 2, Main = 2,
StressTest = 3, GameplayA = 3
GameplayA = 4
} }
} }

View File

@ -0,0 +1,34 @@
namespace Definition.Enum
{
public enum DialogPlayingSpeed: byte
{
Slow,
Medium,
Fast,
}
public enum DialogWindowAlpha : byte
{
None,
Low,
Medium,
High
}
public enum ScreenResolutionType : byte
{
_1280x720,
_1366x768,
_1600x900,
_1920x1080,
_2560x1440,
_2560x1600
}
public enum ScreenWindowType : byte
{
Borderless,
FullScreen,
Windowed,
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2f0f253e843b439ea057d9c2fac08bee
timeCreated: 1770691231

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: ea2618629fd6bbd40a9dda07b40a0094 guid: f8a21bc21c2e2c9499f273702a5ee70d
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: d81d2a322c2e93948b4d5aa7e36c99f2 guid: 2fb9e4e2d5a6060459c5cc2eccd01021
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 8cb383e8977814343a630c164eed6c51 guid: 73d2bbb90d12eb640a9c31f53f797f63
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -0,0 +1,25 @@
using GameFramework;
using GameFramework.Event;
namespace Event
{
public class MenuContinueEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuContinueEventArgs).GetHashCode();
public override int Id => EventId;
public MenuContinueEventArgs()
{
}
public static MenuContinueEventArgs Create()
{
return ReferencePool.Acquire<MenuContinueEventArgs>();
}
public override void Clear()
{
}
}
}

View File

@ -1,8 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: fc0abcc42a26c844d91d422da22eb94d guid: a104dcc8130e0c448ae99e6e3b54f289
timeCreated: 1528026147
licenseType: Pro
MonoImporter: MonoImporter:
externalObjects: {}
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 0 executionOrder: 0

View File

@ -0,0 +1,25 @@
using GameFramework;
using GameFramework.Event;
namespace Event
{
public class MenuExitEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuExitEventArgs).GetHashCode();
public override int Id => EventId;
public MenuExitEventArgs()
{
}
public static MenuExitEventArgs Create()
{
return ReferencePool.Acquire<MenuExitEventArgs>();
}
public override void Clear()
{
}
}
}

View File

@ -1,8 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 278a7992e66d1ea4081597614f912f3d guid: b795b7493e19a03488a29937318df5e7
timeCreated: 1528026148
licenseType: Pro
MonoImporter: MonoImporter:
externalObjects: {}
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 0 executionOrder: 0

View File

@ -0,0 +1,25 @@
using GameFramework;
using GameFramework.Event;
namespace Event
{
public class MenuSettingEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuSettingEventArgs).GetHashCode();
public override int Id => EventId;
public MenuSettingEventArgs()
{
}
public static MenuSettingEventArgs Create()
{
return ReferencePool.Acquire<MenuSettingEventArgs>();
}
public override void Clear()
{
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 04ec642391ce9de45bea3806a121fd76
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,25 @@
using GameFramework;
using GameFramework.Event;
namespace Event
{
public class MenuStartEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(MenuStartEventArgs).GetHashCode();
public override int Id => EventId;
public MenuStartEventArgs()
{
}
public static MenuStartEventArgs Create()
{
return ReferencePool.Acquire<MenuStartEventArgs>();
}
public override void Clear()
{
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: de3b954ecd2a5b649944ca31f0c80b94
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
using Definition.DataStruct;
using GameFramework;
using GameFramework.Event;
namespace Event
{
public class SettingSaveEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(SettingSaveEventArgs).GetHashCode();
public override int Id => EventId;
public GameSetting GameSettings;
public SettingSaveEventArgs()
{
}
public static SettingSaveEventArgs Create(GameSetting gameSetting)
{
var args = ReferencePool.Acquire<SettingSaveEventArgs>();
args.GameSettings = gameSetting;
return args;
}
public override void Clear()
{
GameSettings = new GameSetting();
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3f6cbbeb839bda744b56d83cd6ccde75
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 3c1a6b69591248579f9cade5744deae0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 3232d5f1486b49029ab0a7f5db041bd0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,10 +1,10 @@
using CustomUtility; using CustomUtility;
using DataTable; using DataTable;
using Definition; using Definition;
using Definition.Enum;
using GameFramework.DataTable; using GameFramework.DataTable;
using GameFramework.Event; using GameFramework.Event;
using Scene; using Sound;
using StarForce;
using UnityGameFramework.Runtime; using UnityGameFramework.Runtime;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>; using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
@ -57,7 +57,8 @@ namespace Procedure
return; return;
} }
GameEntry.Scene.LoadScene(AssetUtility.GetSceneAsset(drScene.AssetName), Constant.AssetPriority.SceneAsset, this); GameEntry.Scene.LoadScene(AssetUtility.GetSceneAsset(drScene.AssetName), Constant.AssetPriority.SceneAsset,
this);
_backgroundMusicId = drScene.BackgroundMusicId; _backgroundMusicId = drScene.BackgroundMusicId;
} }
@ -83,6 +84,9 @@ namespace Procedure
SceneId sceneId = (SceneId)_nextSceneId; SceneId sceneId = (SceneId)_nextSceneId;
switch (sceneId) switch (sceneId)
{ {
case SceneId.Menu:
ChangeState<ProcedureMenu>(procedureOwner);
break;
case SceneId.GameplayA: case SceneId.GameplayA:
ChangeState<ProcedureCombine>(procedureOwner); ChangeState<ProcedureCombine>(procedureOwner);
break; break;
@ -105,7 +109,7 @@ namespace Procedure
if (_backgroundMusicId > 0) if (_backgroundMusicId > 0)
{ {
GameEntry.Sound.PlayMusic(_backgroundMusicId); GameEntry.Sound.PlayBGM(_backgroundMusicId);
} }
_isChangeSceneComplete = true; _isChangeSceneComplete = true;
@ -141,7 +145,8 @@ namespace Procedure
return; return;
} }
Log.Info("Load scene '{0}' dependency asset '{1}', count '{2}/{3}'.", ne.SceneAssetName, ne.DependencyAssetName, ne.LoadedCount.ToString(), ne.TotalCount.ToString()); Log.Info("Load scene '{0}' dependency asset '{1}', count '{2}/{3}'.", ne.SceneAssetName,
ne.DependencyAssetName, ne.LoadedCount.ToString(), ne.TotalCount.ToString());
} }
} }
} }

View File

@ -5,6 +5,7 @@
// Feedback: mailto:ellan@gameframework.cn // Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------ //------------------------------------------------------------
using Definition.DataStruct;
using GameFramework; using GameFramework;
using GameFramework.Event; using GameFramework.Event;
using GameFramework.Resource; using GameFramework.Resource;

View File

@ -1,7 +1,5 @@
using GameFramework.Localization; using Definition;
using System; using Sound;
using Definition;
using StarForce;
using UnityGameFramework.Runtime; using UnityGameFramework.Runtime;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>; using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
@ -18,18 +16,9 @@ namespace Procedure
// 构建信息:发布版本时,把一些数据以 Json 的格式写入 Assets/GameMain/Configs/BuildInfo.txt供游戏逻辑读取 // 构建信息:发布版本时,把一些数据以 Json 的格式写入 Assets/GameMain/Configs/BuildInfo.txt供游戏逻辑读取
GameEntry.BuiltinData.InitBuildInfo(); GameEntry.BuiltinData.InitBuildInfo();
// 语言配置:设置当前使用的语言,如果不设置,则默认使用操作系统语言
InitLanguageSettings();
// 变体配置:根据使用的语言,通知底层加载对应的资源变体
InitCurrentVariant();
// 声音配置:根据用户配置数据,设置即将使用的声音选项
InitSoundSettings();
// 默认字典:加载默认字典文件 Assets/GameMain/Configs/DefaultDictionary.xml // 默认字典:加载默认字典文件 Assets/GameMain/Configs/DefaultDictionary.xml
// 此字典文件记录了资源更新前使用的各种语言的字符串,会随 App 一起发布,故不可更新 // 此字典文件记录了资源更新前使用的各种语言的字符串,会随 App 一起发布,故不可更新
GameEntry.BuiltinData.InitDefaultDictionary(); // GameEntry.BuiltinData.InitDefaultDictionary();
} }
protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds) protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds)
@ -39,89 +28,5 @@ namespace Procedure
// 运行一帧即切换到 Splash 展示流程 // 运行一帧即切换到 Splash 展示流程
ChangeState<ProcedureSplash>(procedureOwner); ChangeState<ProcedureSplash>(procedureOwner);
} }
private void InitLanguageSettings()
{
if (GameEntry.Base.EditorResourceMode && GameEntry.Base.EditorLanguage != Language.Unspecified)
{
// 编辑器资源模式直接使用 Inspector 上设置的语言
return;
}
Language language = GameEntry.Localization.Language;
if (GameEntry.Setting.HasSetting(Constant.Setting.Language))
{
try
{
string languageString = GameEntry.Setting.GetString(Constant.Setting.Language);
language = (Language)Enum.Parse(typeof(Language), languageString);
}
catch
{
}
}
if (language != Language.English
&& language != Language.ChineseSimplified
&& language != Language.ChineseTraditional
&& language != Language.Korean)
{
// 若是暂不支持的语言,则使用英语
language = Language.English;
GameEntry.Setting.SetString(Constant.Setting.Language, language.ToString());
GameEntry.Setting.Save();
}
GameEntry.Localization.Language = language;
Log.Info("Init language settings complete, current language is '{0}'.", language.ToString());
}
private void InitCurrentVariant()
{
if (GameEntry.Base.EditorResourceMode)
{
// 编辑器资源模式不使用 AssetBundle也就没有变体了
return;
}
string currentVariant = null;
switch (GameEntry.Localization.Language)
{
case Language.English:
currentVariant = "en-us";
break;
case Language.ChineseSimplified:
currentVariant = "zh-cn";
break;
case Language.ChineseTraditional:
currentVariant = "zh-tw";
break;
case Language.Korean:
currentVariant = "ko-kr";
break;
default:
currentVariant = "zh-cn";
break;
}
GameEntry.Resource.SetCurrentVariant(currentVariant);
Log.Info("Init current variant complete.");
}
private void InitSoundSettings()
{
GameEntry.Sound.Mute("Music", GameEntry.Setting.GetBool(Constant.Setting.MusicMuted, false));
GameEntry.Sound.SetVolume("Music", GameEntry.Setting.GetFloat(Constant.Setting.MusicVolume, 0.3f));
GameEntry.Sound.Mute("Sound", GameEntry.Setting.GetBool(Constant.Setting.SoundMuted, false));
GameEntry.Sound.SetVolume("Sound", GameEntry.Setting.GetFloat(Constant.Setting.SoundVolume, 1f));
GameEntry.Sound.Mute("UISound", GameEntry.Setting.GetBool(Constant.Setting.UISoundMuted, false));
GameEntry.Sound.SetVolume("UISound", GameEntry.Setting.GetFloat(Constant.Setting.UISoundVolume, 1f));
Log.Info("Init sound settings complete.");
}
} }
} }

View File

@ -1,13 +1,19 @@
using GameFramework; using System;
using GameFramework;
using GameFramework.Event; using GameFramework.Event;
using GameFramework.Resource; using GameFramework.Resource;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using CustomUtility; using CustomUtility;
using DataTable; using DataTable;
using Definition; using Definition;
using Definition.Enum;
using Setting;
using Sound;
using TMPro; using TMPro;
using UI; using UI;
using UnityEngine; using UnityEngine;
using UnityEngine.Rendering;
using UnityGameFramework.Runtime; using UnityGameFramework.Runtime;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>; using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
@ -18,11 +24,10 @@ namespace Procedure
public static readonly string[] DataTableNames = new string[] public static readonly string[] DataTableNames = new string[]
{ {
"Entity", "Entity",
"Music", "BGM",
"Scene", "Scene",
"Sound",
"UIForm", "UIForm",
"UISound", "SE",
"Dialog", "Dialog",
"DialogLine" "DialogLine"
}; };
@ -71,15 +76,12 @@ namespace Procedure
} }
} }
procedureOwner.SetData<VarInt32>("NextSceneId", GameEntry.Config.GetInt("Scene.GameplayA")); procedureOwner.SetData<VarInt32>("NextSceneId", (int)SceneId.Menu);
ChangeState<ProcedureChangeScene>(procedureOwner); ChangeState<ProcedureChangeScene>(procedureOwner);
} }
private void PreloadResources() private void PreloadResources()
{ {
// Preload configs
LoadConfig("DefaultConfig");
// Preload data tables // Preload data tables
foreach (string dataTableName in DataTableNames) foreach (string dataTableName in DataTableNames)
{ {
@ -87,18 +89,13 @@ namespace Procedure
} }
// Preload dictionaries // Preload dictionaries
LoadDictionary("Default"); // LoadDictionary("Default");
// Preload fonts // Preload fonts
LoadFont("MainFont"); LoadFont("MainFont");
LoadTMPFont("MainTMPFont"); LoadTMPFont("MainTMPFont");
}
private void LoadConfig(string configName) LoadSetting();
{
string configAssetName = AssetUtility.GetConfigAsset(configName, false);
_loadedFlag.Add(configAssetName, false);
GameEntry.Config.ReadData(configAssetName, this);
} }
private void LoadDataTable(string dataTableName) private void LoadDataTable(string dataTableName)
@ -118,37 +115,114 @@ namespace Procedure
private void LoadFont(string fontName) private void LoadFont(string fontName)
{ {
_loadedFlag.Add(Utility.Text.Format("Font.{0}", fontName), false); _loadedFlag.Add(Utility.Text.Format("Font.{0}", fontName), false);
GameEntry.Resource.LoadAsset(AssetUtility.GetFontAsset(fontName), Constant.AssetPriority.FontAsset, new LoadAssetCallbacks( GameEntry.Resource.LoadAsset(AssetUtility.GetFontAsset(fontName), Constant.AssetPriority.FontAsset,
new LoadAssetCallbacks(
(assetName, asset, duration, userData) => (assetName, asset, duration, userData) =>
{ {
_loadedFlag[Utility.Text.Format("Font.{0}", fontName)] = true; _loadedFlag[Utility.Text.Format("Font.{0}", fontName)] = true;
UGuiForm.SetMainFont((Font)asset); UGuiForm.SetMainFont((Font)asset);
Log.Info("Load font '{0}' OK.", fontName); Log.Info("Load font '{0}' OK.", fontName);
}, },
(assetName, status, errorMessage, userData) => (assetName, status, errorMessage, userData) =>
{ {
Log.Error("Can not load font '{0}' from '{1}' with error message '{2}'.", fontName, assetName, errorMessage); Log.Error("Can not load font '{0}' from '{1}' with error message '{2}'.", fontName, assetName,
errorMessage);
})); }));
} }
private void LoadTMPFont(string fontName) private void LoadTMPFont(string fontName)
{ {
_loadedFlag.Add(Utility.Text.Format("Font.{0}", fontName), false); _loadedFlag.Add(Utility.Text.Format("Font.{0}", fontName), false);
GameEntry.Resource.LoadAsset(AssetUtility.GetTMPFontAsset(fontName), Constant.AssetPriority.FontAsset, new LoadAssetCallbacks( GameEntry.Resource.LoadAsset(AssetUtility.GetTMPFontAsset(fontName), Constant.AssetPriority.FontAsset,
new LoadAssetCallbacks(
(assetName, asset, duration, userData) => (assetName, asset, duration, userData) =>
{ {
_loadedFlag[Utility.Text.Format("Font.{0}", fontName)] = true; _loadedFlag[Utility.Text.Format("Font.{0}", fontName)] = true;
UGuiForm.SetMainTMPFont((TMP_FontAsset)asset); UGuiForm.SetMainTMPFont((TMP_FontAsset)asset);
Log.Info("Load font '{0}' OK.", fontName); Log.Info("Load font '{0}' OK.", fontName);
}, },
(assetName, status, errorMessage, userData) => (assetName, status, errorMessage, userData) =>
{ {
Log.Error("Can not load font '{0}' from '{1}' with error message '{2}'.", fontName, assetName, errorMessage); Log.Error("Can not load font '{0}' from '{1}' with error message '{2}'.", fontName, assetName,
errorMessage);
})); }));
} }
private void LoadSetting()
{
var setting = GameEntry.Setting.GetGameSetting();
GameEntry.Sound.SetVolume("BGM", setting.BGMVolume);
GameEntry.Sound.SetVolume("SE", setting.SEVolume);
ScreenResolutionType resolution = setting.ScreenResolution;
int width = 0, height = 0;
switch (resolution)
{
case ScreenResolutionType._1280x720:
width = 1280;
height = 720;
break;
case ScreenResolutionType._1366x768:
width = 1366;
height = 768;
break;
case ScreenResolutionType._1600x900:
width = 1600;
height = 900;
break;
case ScreenResolutionType._1920x1080:
width = 1920;
height = 1080;
break;
case ScreenResolutionType._2560x1440:
width = 2560;
height = 1440;
break;
case ScreenResolutionType._2560x1600:
width = 2560;
height = 1600;
break;
default:
throw new ArgumentOutOfRangeException();
}
ScreenWindowType resolutionWindow = setting.ScreenWindow;
switch (resolutionWindow)
{
case ScreenWindowType.FullScreen:
Screen.SetResolution(width, height, FullScreenMode.ExclusiveFullScreen);
break;
case ScreenWindowType.Borderless:
Screen.SetResolution(width, height, FullScreenMode.FullScreenWindow);
break;
case ScreenWindowType.Windowed:
Screen.SetResolution(width, height, FullScreenMode.Windowed);
break;
default:
throw new ArgumentOutOfRangeException();
}
Application.targetFrameRate = -1;
QualitySettings.vSyncCount = setting.VSync ? 1 : 0;
if (setting.AntiAliasing)
{
foreach (var asset in GraphicsSettings.allConfiguredRenderPipelines)
{
if (asset.name == "URP-AntiAliasing") GraphicsSettings.renderPipelineAsset = asset;
}
}
else
{
foreach (var asset in GraphicsSettings.allConfiguredRenderPipelines)
{
if (asset.name == "URP-Normal") GraphicsSettings.renderPipelineAsset = asset;
}
}
}
#region Event Hanlders
private void OnLoadConfigSuccess(object sender, GameEventArgs e) private void OnLoadConfigSuccess(object sender, GameEventArgs e)
{ {
LoadConfigSuccessEventArgs ne = (LoadConfigSuccessEventArgs)e; LoadConfigSuccessEventArgs ne = (LoadConfigSuccessEventArgs)e;
@ -169,7 +243,8 @@ namespace Procedure
return; return;
} }
Log.Error("Can not load config '{0}' from '{1}' with error message '{2}'.", ne.ConfigAssetName, ne.ConfigAssetName, ne.ErrorMessage); Log.Error("Can not load config '{0}' from '{1}' with error message '{2}'.", ne.ConfigAssetName,
ne.ConfigAssetName, ne.ErrorMessage);
} }
private void OnLoadDataTableSuccess(object sender, GameEventArgs e) private void OnLoadDataTableSuccess(object sender, GameEventArgs e)
@ -192,7 +267,8 @@ namespace Procedure
return; return;
} }
Log.Error("Can not load data table '{0}' from '{1}' with error message '{2}'.", ne.DataTableAssetName, ne.DataTableAssetName, ne.ErrorMessage); Log.Error("Can not load data table '{0}' from '{1}' with error message '{2}'.", ne.DataTableAssetName,
ne.DataTableAssetName, ne.ErrorMessage);
} }
private void OnLoadDictionarySuccess(object sender, GameEventArgs e) private void OnLoadDictionarySuccess(object sender, GameEventArgs e)
@ -215,7 +291,10 @@ namespace Procedure
return; return;
} }
Log.Error("Can not load dictionary '{0}' from '{1}' with error message '{2}'.", ne.DictionaryAssetName, ne.DictionaryAssetName, ne.ErrorMessage); Log.Error("Can not load dictionary '{0}' from '{1}' with error message '{2}'.", ne.DictionaryAssetName,
ne.DictionaryAssetName, ne.ErrorMessage);
} }
#endregion
} }
} }

View File

@ -1,7 +1,6 @@
using Scene; using Definition.Enum;
using System.Collections.Generic; using System.Collections.Generic;
using CustomComponent; using CustomComponent;
using Definition.Enum;
using Event; using Event;
using GameFramework.Event; using GameFramework.Event;
using UI; using UI;

View File

@ -0,0 +1,18 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ProcedureMain : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b86c72387528b8e4993ed9c395825d0a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,210 @@
using System;
using Definition.DataStruct;
using Definition.Enum;
using Event;
using GameFramework.Event;
using GameFramework.Fsm;
using GameFramework.Procedure;
using Setting;
using Sound;
using UI;
using UnityEngine;
using UnityEngine.Rendering;
using UnityGameFramework.Runtime;
namespace Procedure
{
public class ProcedureMenu : ProcedureBase
{
public override bool UseNativeDialog => false;
private MenuFormController _menuFormController;
private SettingFormController _settingFormController;
private const string SettingPrefix = "Setting.";
private bool _gameStarted = false;
private void StartGame()
{
if (_gameStarted) return;
_gameStarted = true;
}
private void LoadGame()
{
}
private void OpenSettingForm()
{
if (_settingFormController == null)
{
_settingFormController = new SettingFormController();
}
var settingContext = new SettingFormContext
{
Setting = GameEntry.Setting.GetGameSetting()
};
_settingFormController.OpenUI(settingContext);
}
private void ExitGame()
{
Application.Quit();
}
#region FSM
protected override void OnEnter(IFsm<IProcedureManager> procedureOwner)
{
base.OnEnter(procedureOwner);
var e = GameEntry.Event;
e.Subscribe(MenuStartEventArgs.EventId, MenuStart);
e.Subscribe(MenuContinueEventArgs.EventId, MenuContinue);
e.Subscribe(MenuSettingEventArgs.EventId, MenuSetting);
e.Subscribe(MenuExitEventArgs.EventId, MenuExit);
e.Subscribe(SettingSaveEventArgs.EventId, SettingSave);
_menuFormController = new MenuFormController();
_menuFormController.OpenUI(new MenuFormContext());
}
protected override void OnLeave(IFsm<IProcedureManager> procedureOwner, bool isShutdown)
{
_menuFormController?.CloseUI();
_settingFormController?.CloseUI();
var e = GameEntry.Event;
e.Unsubscribe(MenuStartEventArgs.EventId, MenuStart);
e.Unsubscribe(MenuContinueEventArgs.EventId, MenuContinue);
e.Unsubscribe(MenuSettingEventArgs.EventId, MenuSetting);
e.Unsubscribe(MenuExitEventArgs.EventId, MenuExit);
e.Unsubscribe(SettingSaveEventArgs.EventId, SettingSave);
base.OnLeave(procedureOwner, isShutdown);
}
protected override void OnUpdate(IFsm<IProcedureManager> procedureOwner, float elapseSeconds,
float realElapseSeconds)
{
base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
if (_gameStarted)
{
procedureOwner.SetData<VarInt32>("NextSceneId", (int)SceneId.GameplayA);
ChangeState<ProcedureChangeScene>(procedureOwner);
}
}
#endregion
#region Event Handlers
private void MenuStart(object sender, GameEventArgs e)
{
if (!(e is MenuStartEventArgs)) return;
StartGame();
}
private void MenuContinue(object sender, GameEventArgs e)
{
if (!(e is MenuContinueEventArgs)) return;
LoadGame();
}
private void MenuSetting(object sender, GameEventArgs e)
{
if (!(e is MenuSettingEventArgs)) return;
OpenSettingForm();
}
private void MenuExit(object sender, GameEventArgs e)
{
if (!(e is MenuExitEventArgs)) return;
ExitGame();
}
private void SettingSave(object sender, GameEventArgs e)
{
if (!(e is SettingSaveEventArgs args)) return;
GameEntry.Sound.SetVolume("BGM", args.GameSettings.BGMVolume);
GameEntry.Sound.SetVolume("SE", args.GameSettings.SEVolume);
ScreenResolutionType resolution = args.GameSettings.ScreenResolution;
int width = 0, height = 0;
switch (resolution)
{
case ScreenResolutionType._1280x720:
width = 1280;
height = 720;
break;
case ScreenResolutionType._1366x768:
width = 1366;
height = 768;
break;
case ScreenResolutionType._1600x900:
width = 1600;
height = 900;
break;
case ScreenResolutionType._1920x1080:
width = 1920;
height = 1080;
break;
case ScreenResolutionType._2560x1440:
width = 2560;
height = 1440;
break;
case ScreenResolutionType._2560x1600:
width = 2560;
height = 1600;
break;
default:
throw new ArgumentOutOfRangeException();
}
ScreenWindowType resolutionWindow = args.GameSettings.ScreenWindow;
switch (resolutionWindow)
{
case ScreenWindowType.FullScreen:
Screen.SetResolution(width, height, FullScreenMode.ExclusiveFullScreen);
break;
case ScreenWindowType.Borderless:
Screen.SetResolution(width, height, FullScreenMode.FullScreenWindow);
break;
case ScreenWindowType.Windowed:
Screen.SetResolution(width, height, FullScreenMode.Windowed);
break;
default:
throw new ArgumentOutOfRangeException();
}
if (args.GameSettings.AntiAliasing)
{
foreach (var asset in GraphicsSettings.allConfiguredRenderPipelines)
{
if (asset.name == "URP-AntiAliasing") GraphicsSettings.renderPipelineAsset = asset;
}
}
else
{
foreach (var asset in GraphicsSettings.allConfiguredRenderPipelines)
{
if (asset.name == "URP-Normal") GraphicsSettings.renderPipelineAsset = asset;
}
}
Application.targetFrameRate = -1;
QualitySettings.vSyncCount = args.GameSettings.VSync ? 1 : 0;
GameEntry.Setting.SaveSetting(args.GameSettings);
}
#endregion
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a8c39c93ba7eab0478a50fc0b1370458
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: ae5528a06773f5a45b75a99f619c2e22 guid: 3a0a74a6b4e028e43942f2ea78733e72
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -0,0 +1,50 @@
using System.Data;
using Definition;
using Definition.DataStruct;
using Definition.Enum;
using UnityGameFramework.Runtime;
namespace Setting
{
public static class SettingExtension
{
public static GameSetting GetGameSetting(this SettingComponent setting)
{
var data = new GameSetting
{
BGMVolume = setting.GetFloat(Constant.Setting.BGMVolume, 0.6f),
SEVolume = setting.GetFloat(Constant.Setting.SEVolume, 0.6f),
AllowShake = setting.GetBool(Constant.Setting.AllowShake, true),
AllowBlink = setting.GetBool(Constant.Setting.AllowBlink, true),
DialogWindowAlpha = (DialogWindowAlpha)setting.GetInt(Constant.Setting.DialogWindowAlpha, 2),
DialogPlayingSpeed = (DialogPlayingSpeed)setting.GetInt(Constant.Setting.DialogPlayingSpeed, 1),
ScreenResolution = (ScreenResolutionType)setting.GetInt(Constant.Setting.ScreenSolution, 1),
ScreenWindow = (ScreenWindowType)setting.GetInt(Constant.Setting.ScreenWindow, 2),
VSync = setting.GetBool(Constant.Setting.VSync, true),
AntiAliasing = setting.GetBool(Constant.Setting.AntiAliasing, true)
};
return data;
}
public static void SaveSetting(this SettingComponent setting, GameSetting data)
{
setting.SetFloat(Constant.Setting.BGMVolume, data.BGMVolume);
setting.SetFloat(Constant.Setting.SEVolume, data.SEVolume);
setting.SetBool(Constant.Setting.AllowShake, data.AllowShake);
setting.SetBool(Constant.Setting.AllowBlink, data.AllowBlink);
setting.SetInt(Constant.Setting.DialogWindowAlpha, (int)data.DialogWindowAlpha);
setting.SetInt(Constant.Setting.DialogPlayingSpeed, (int)data.DialogPlayingSpeed);
setting.SetInt(Constant.Setting.ScreenSolution, (int)data.ScreenResolution);
setting.SetInt(Constant.Setting.ScreenWindow, (int)data.ScreenWindow);
setting.SetBool(Constant.Setting.VSync, data.VSync);
setting.SetBool(Constant.Setting.AntiAliasing, data.AntiAliasing);
setting.Save();
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: acd08b891a6e4844eb115250d0af9b61
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,33 +1,25 @@
//------------------------------------------------------------ using CustomUtility;
// Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/
// Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------
using CustomUtility;
using DataTable; using DataTable;
using Definition; using Definition;
using Entity; using Entity;
using GameFramework;
using GameFramework.DataTable; using GameFramework.DataTable;
using GameFramework.Sound; using GameFramework.Sound;
using UnityGameFramework.Runtime; using UnityGameFramework.Runtime;
namespace StarForce namespace Sound
{ {
public static class SoundExtension public static class SoundExtension
{ {
private const float FadeVolumeDuration = 1f; private const float FadeVolumeDuration = 1f;
private static int? s_MusicSerialId = null; private static int? s_MusicSerialId = null;
public static int? PlayMusic(this SoundComponent soundComponent, int musicId, object userData = null) public static int? PlayBGM(this SoundComponent soundComponent, int musicId, object userData = null)
{ {
soundComponent.StopMusic(); soundComponent.StopMusic();
IDataTable<DRMusic> dtMusic = GameEntry.DataTable.GetDataTable<DRMusic>(); IDataTable<DRBGM> dtMusic = GameEntry.DataTable.GetDataTable<DRBGM>();
DRMusic drMusic = dtMusic.GetDataRow(musicId); DRBGM drBgm = dtMusic.GetDataRow(musicId);
if (drMusic == null) if (drBgm == null)
{ {
Log.Warning("Can not load music '{0}' from data table.", musicId.ToString()); Log.Warning("Can not load music '{0}' from data table.", musicId.ToString());
return null; return null;
@ -39,7 +31,8 @@ namespace StarForce
playSoundParams.VolumeInSoundGroup = 1f; playSoundParams.VolumeInSoundGroup = 1f;
playSoundParams.FadeInSeconds = FadeVolumeDuration; playSoundParams.FadeInSeconds = FadeVolumeDuration;
playSoundParams.SpatialBlend = 0f; playSoundParams.SpatialBlend = 0f;
s_MusicSerialId = soundComponent.PlaySound(AssetUtility.GetMusicAsset(drMusic.AssetName), "Music", Constant.AssetPriority.MusicAsset, playSoundParams, null, userData); s_MusicSerialId = soundComponent.PlaySound(AssetUtility.GetMusicAsset(drBgm.AssetName), "BGM",
Constant.AssetPriority.MusicAsset, playSoundParams, null, userData);
return s_MusicSerialId; return s_MusicSerialId;
} }
@ -54,28 +47,10 @@ namespace StarForce
s_MusicSerialId = null; s_MusicSerialId = null;
} }
public static int? PlaySound(this SoundComponent soundComponent, int soundId, EntityBase bindingEntity = null, object userData = null) public static int? PlaySE(this SoundComponent soundComponent, int uiSoundId, object userData = null)
{ {
IDataTable<DRSound> dtSound = GameEntry.DataTable.GetDataTable<DRSound>(); IDataTable<DRSE> dtUISound = GameEntry.DataTable.GetDataTable<DRSE>();
DRSound drSound = dtSound.GetDataRow(soundId); DRSE drUISound = dtUISound.GetDataRow(uiSoundId);
if (drSound == null)
{
Log.Warning("Can not load sound '{0}' from data table.", soundId.ToString());
return null;
}
PlaySoundParams playSoundParams = PlaySoundParams.Create();
playSoundParams.Priority = drSound.Priority;
playSoundParams.Loop = drSound.Loop;
playSoundParams.VolumeInSoundGroup = drSound.Volume;
playSoundParams.SpatialBlend = drSound.SpatialBlend;
return soundComponent.PlaySound(AssetUtility.GetSoundAsset(drSound.AssetName), "Sound", Constant.AssetPriority.SoundAsset, playSoundParams, bindingEntity != null ? bindingEntity.Entity : null, userData);
}
public static int? PlayUISound(this SoundComponent soundComponent, int uiSoundId, object userData = null)
{
IDataTable<DRUISound> dtUISound = GameEntry.DataTable.GetDataTable<DRUISound>();
DRUISound drUISound = dtUISound.GetDataRow(uiSoundId);
if (drUISound == null) if (drUISound == null)
{ {
Log.Warning("Can not load UI sound '{0}' from data table.", uiSoundId.ToString()); Log.Warning("Can not load UI sound '{0}' from data table.", uiSoundId.ToString());
@ -87,46 +62,8 @@ namespace StarForce
playSoundParams.Loop = false; playSoundParams.Loop = false;
playSoundParams.VolumeInSoundGroup = drUISound.Volume; playSoundParams.VolumeInSoundGroup = drUISound.Volume;
playSoundParams.SpatialBlend = 0f; playSoundParams.SpatialBlend = 0f;
return soundComponent.PlaySound(AssetUtility.GetUISoundAsset(drUISound.AssetName), "UISound", Constant.AssetPriority.UISoundAsset, playSoundParams, userData); return soundComponent.PlaySound(AssetUtility.GetUISoundAsset(drUISound.AssetName), "SE",
} Constant.AssetPriority.UISoundAsset, playSoundParams, userData);
public static bool IsMuted(this SoundComponent soundComponent, string soundGroupName)
{
if (string.IsNullOrEmpty(soundGroupName))
{
Log.Warning("Sound group is invalid.");
return true;
}
ISoundGroup soundGroup = soundComponent.GetSoundGroup(soundGroupName);
if (soundGroup == null)
{
Log.Warning("Sound group '{0}' is invalid.", soundGroupName);
return true;
}
return soundGroup.Mute;
}
public static void Mute(this SoundComponent soundComponent, string soundGroupName, bool mute)
{
if (string.IsNullOrEmpty(soundGroupName))
{
Log.Warning("Sound group is invalid.");
return;
}
ISoundGroup soundGroup = soundComponent.GetSoundGroup(soundGroupName);
if (soundGroup == null)
{
Log.Warning("Sound group '{0}' is invalid.", soundGroupName);
return;
}
soundGroup.Mute = mute;
GameEntry.Setting.SetBool(Utility.Text.Format(Constant.Setting.SoundGroupMuted, soundGroupName), mute);
GameEntry.Setting.Save();
} }
public static float GetVolume(this SoundComponent soundComponent, string soundGroupName) public static float GetVolume(this SoundComponent soundComponent, string soundGroupName)
@ -164,7 +101,7 @@ namespace StarForce
soundGroup.Volume = volume; soundGroup.Volume = volume;
GameEntry.Setting.SetFloat(Utility.Text.Format(Constant.Setting.SoundGroupVolume, soundGroupName), volume); GameEntry.Setting.SetFloat($"Setting.{soundGroup}Volume", volume);
GameEntry.Setting.Save(); GameEntry.Setting.Save();
} }
} }

View File

@ -4,7 +4,7 @@ namespace UI
{ {
public class DialogFormContext : UIContext public class DialogFormContext : UIContext
{ {
public float PlayingSpeed = 1f; public DialogPlayingSpeed PlayingSpeed = DialogPlayingSpeed.Medium;
public int ChapterId = 0; public int ChapterId = 0;
public int DialogId = 0; public int DialogId = 0;
@ -22,5 +22,7 @@ namespace UI
public int LineIndex = -1; public int LineIndex = -1;
public int TotalLines = 0; public int TotalLines = 0;
public bool IsLastLine = false; public bool IsLastLine = false;
public DialogWindowAlpha DialogWindowAlpha = DialogWindowAlpha.Medium;
} }
} }

View File

@ -0,0 +1,7 @@
namespace UI
{
public class MenuFormContext : UIContext
{
public bool HasGameData = false;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d8cdd22c948028246b9d1d7afd80f08c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,13 @@
using System.Collections;
using System.Collections.Generic;
using Definition.DataStruct;
using UnityEngine;
namespace UI
{
public class SettingFormContext : UIContext
{
public SettingFormController Controller;
public GameSetting Setting;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c2754dbcd65873f4b9d3f579c12cef58
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More