重构整个项目的恐龙游戏逻辑;添加mvvm框架,并把ui更改为mvvm形式触发;测试项目无问题,完美运行;修复下拉刷新列表的一个bug

master
zxl 2024-04-24 17:52:34 +08:00
parent 080367fd4c
commit 8dc299f5f9
285 changed files with 15884 additions and 998 deletions

View File

@ -5,15 +5,56 @@
</component>
<component name="ChangeListManager">
<list default="true" id="d018256f-8250-4025-b60e-7cdf03f0e7e0" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/HallSceneMallUI.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.TestF/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.TestF/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/GameRes/Prefabs/UI/GameSceneJiaohuUI.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/GameRes/Prefabs/UI/GameSceneJiaohuUI.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Editor/GenResourcePathEditor/GenResourcePathEditor.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Editor/GenResourcePathEditor/GenResourcePathEditor.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/GameRes/Prefabs/UI/GameMallUI.prefab" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/GameRes/Prefabs/UI/GameMallUI.prefab.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/GameRes/Prefabs/UI/GameSceneHelpUI.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/GameRes/Prefabs/UI/GameSceneHelpUI.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/GameRes/Prefabs/UI/GameSceneMainUI.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/GameRes/Prefabs/UI/GameSceneMainUI.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Fonts/MSYH SDF.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Fonts/MSYH SDF.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Init.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/Init.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/AssetConstPath/AssetPathConst.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/AssetConstPath/AssetPathConst.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/BFS/BFSManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/BFS/BFSManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Boss/IBoss.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Boss/IBoss.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Boss/IBossManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Boss/IBossManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Data/StoreData.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Data/StoreData.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Game.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Game.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/LoadingGameSceneProcedure.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/LoadingGameSceneProcedure.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Player/Player.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Player/Player.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Player/PlayerInfo.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Player/PlayerInfo.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Player/PlayerManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Player/PlayerManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/EnterGameSceneProcedure.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/EnterGameSceneProcedure.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/GameSceneKillPlayerProcedure.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/GameSceneKillPlayerProcedure.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/GameSceneLogicProcedure.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/GameSceneLogicProcedure.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/LoadingGameSceneProcedure.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Procedure/Logic/LoadingGameSceneProcedure.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Procedure/ProcedureType.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Procedure/ProcedureType.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/ResourceManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/ResourceManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Room/IRoomManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Room/IRoomManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Room/Room.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Room/Room.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Test.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Test.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameMallUI.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameMallUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/HallSceneMallUI.cs.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameSceneHelpUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GameSceneHelpUI.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameSceneHelpUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GameSceneHelpUI.cs.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameSceneMainUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GameSceneMainUI.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameSceneMainUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GameSceneMainUI.cs.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameSceneResultUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GameSceneResultUI.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameSceneResultUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GameSceneResultUI.cs.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameStorePurchaseUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GameStorePurchaseUI.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameStorePurchaseUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GameStorePurchaseUI.cs.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GlobalLogOnlyAppUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GlobalLogOnlyAppUI.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/GlobalLogOnlyAppUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/GlobalLogOnlyAppUI.cs.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/InputNameUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/InputNameUI.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/Logic/InputNameUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UILogic/InputNameUI.cs.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/UIInfo.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UIInfo.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/UIType.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/UIType.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/View/ScrollRect/ScrollRectUpdateView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/View/ScrollRect/ScrollRectUpdateViewBase.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/View/ScrollRect/ScrollRectUpdateView.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/View/ScrollRect/ScrollRectUpdateViewBase.cs.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Bundles/Android/DefaultPackage/Simulate/PackageManifest_DefaultPackage_Simulate.bytes" beforeDir="false" afterPath="$PROJECT_DIR$/Bundles/Android/DefaultPackage/Simulate/PackageManifest_DefaultPackage_Simulate.bytes" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Bundles/Android/DefaultPackage/Simulate/PackageManifest_DefaultPackage_Simulate.hash" beforeDir="false" afterPath="$PROJECT_DIR$/Bundles/Android/DefaultPackage/Simulate/PackageManifest_DefaultPackage_Simulate.hash" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Bundles/Android/DefaultPackage/Simulate/PackageManifest_DefaultPackage_Simulate.json" beforeDir="false" afterPath="$PROJECT_DIR$/Bundles/Android/DefaultPackage/Simulate/PackageManifest_DefaultPackage_Simulate.json" afterDir="false" />
@ -31,22 +72,28 @@
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/17d9ce77f27a4bd2afb5ba32c9bea97646ac00/4f/abdfd757/NullReferenceException.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/6f8115a8e2e045b29e5fa190e193ec1c27800/63/c27df556/Animator.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/82a2fd073ee449928e161903460426d72ae00/6d/8897fd91/TweenExtensions.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/88e4733ac7bc4ae1b496735e6b83bbd346ac00/34/9d27fe83/AwaitTaskContinuation.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/88e4733ac7bc4ae1b496735e6b83bbd346ac00/74/612c8d45/Delegate.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/a655008de92846458baa16d876fb23c4171c00/2e/e215c7f1/Object.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/af9ee0c5a8cb435a8fc77f3f1c1a3657ac310/ce/b1370294/JsonConvert.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/ba783288ca164d3099898a8819fcec1c159e00/4c/fede1808/LogType.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/c701cc3cda1a4e70a8e00519d656ac5a9600/51/db4885bf/HideReferenceObjectPickerAttribute.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d8e27b9b2bf34338bc0a9edd46a39109174200/7a/25a2652e/Behaviour.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d8e27b9b2bf34338bc0a9edd46a39109174200/b9/e602cb14/Object.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d8e27b9b2bf34338bc0a9edd46a39109174200/da/bd8ed098/Debug.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d8e27b9b2bf34338bc0a9edd46a39109174200/df/fa0e801d/Component.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/MVVM/Views/ZTestView.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/ManagerBase.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/RayCast/MouseInput.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/RayCast/MouseInputManager.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/UI/Logic/InputNameUI.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/UI/UILogic/InputNameUI.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/UILoading.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.tuyoogame.yooasset@2.1.0/Runtime/ResourceManager/Handle/AssetHandle.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.tuyoogame.yooasset@2.1.0/Runtime/ResourcePackage/ResourcePackage.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.tuyoogame.yooasset@2.1.0/Runtime/YooAssets.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.tuyoogame.yooasset@2.1.0/Runtime/YooAssetsExtension.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs" root0="SKIP_HIGHLIGHTING" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 2
@ -79,6 +126,14 @@
}
}</component>
<component name="RunManager" selected="Attach to Unity Editor.Attach to Unity Editor">
<configuration name="Standalone Player" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="$PROJECT_DIR$/../../UnityPackage/testf\TestF.exe" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="D:\UnityPackage\testf" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<method v="2" />
</configuration>
<configuration name="Standalone Player" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="$PROJECT_DIR$/../../UnityPackage/testf\TestF.exe" />
<option name="PROGRAM_PARAMETERS" value="" />
@ -95,6 +150,22 @@
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<method v="2" />
</configuration>
<configuration name="Start Unity" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\2021.3.22f1\Editor\Unity.exe" />
<option name="PROGRAM_PARAMETERS" value="-projectPath D:\UnityProject\TestF -debugCodeOptimization" />
<option name="WORKING_DIRECTORY" value="D:\UnityProject\TestF" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<method v="2" />
</configuration>
<configuration name="Unit Tests (batch mode)" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\2021.3.22f1\Editor\Unity.exe" />
<option name="PROGRAM_PARAMETERS" value="-runTests -batchmode -projectPath D:\UnityProject\TestF -testResults Logs/results.xml -testPlatform EditMode -debugCodeOptimization" />
<option name="WORKING_DIRECTORY" value="D:\UnityProject\TestF" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<method v="2" />
</configuration>
<configuration name="Unit Tests (batch mode)" type="RunUnityExe" factoryName="Unity Executable">
<option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\2021.3.22f1\Editor\Unity.exe" />
<option name="PROGRAM_PARAMETERS" value="-runTests -batchmode -projectPath D:\UnityProject\TestF -testResults Logs/results.xml -testPlatform EditMode -debugCodeOptimization" />
@ -113,6 +184,26 @@
</option>
<method v="2" />
</configuration>
<configuration name="Attach to Unity Editor &amp; Play" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="UNITY_ATTACH_AND_PLAY" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost">
<option name="allowRunningInParallel" value="false" />
<option name="listenPortForConnections" value="false" />
<option name="pid" />
<option name="projectPathOnTarget" />
<option name="selectedOptions">
<list />
</option>
<method v="2" />
</configuration>
<configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" ignored-value-for-modified-check="14784">
<option name="allowRunningInParallel" value="false" />
<option name="listenPortForConnections" value="false" />
<option name="pid" value="14784" />
<option name="projectPathOnTarget" />
<option name="selectedOptions">
<list />
</option>
<method v="2" />
</configuration>
<configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" ignored-value-for-modified-check="6416">
<option name="allowRunningInParallel" value="false" />
<option name="listenPortForConnections" value="false" />
@ -156,7 +247,12 @@
<workItem from="1712970454393" duration="2331000" />
<workItem from="1713157360030" duration="477000" />
<workItem from="1713231899305" duration="22728000" />
<workItem from="1713317972236" duration="11657000" />
<workItem from="1713317972236" duration="11773000" />
<workItem from="1713595910135" duration="11692000" />
<workItem from="1713747772663" duration="28331000" />
<workItem from="1713834522920" duration="9992000" />
<workItem from="1713920918706" duration="15903000" />
<workItem from="1713940533652" duration="11509000" />
</task>
<servers />
</component>
@ -184,32 +280,6 @@
</properties>
<option name="timeStamp" value="1" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameSceneHelpUI.cs</url>
<line>25</line>
<properties documentPath="D:\UnityProject\TestF\Assets\Scripts\UI\Logic\GameSceneHelpUI.cs" initialLine="25" containingFunctionPresentation="Method 'ClickSureButton'">
<startOffsets>
<option value="543" />
</startOffsets>
<endOffsets>
<option value="570" />
</endOffsets>
</properties>
<option name="timeStamp" value="6" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/Assets/Scripts/UI/Logic/GameMallUI.cs</url>
<line>102</line>
<properties documentPath="D:\UnityProject\TestF\Assets\Scripts\UI\Logic\GameMallUI.cs" initialLine="101" containingFunctionPresentation="Method 'RefreshData'">
<startOffsets>
<option value="3557" />
</startOffsets>
<endOffsets>
<option value="3590" />
</endOffsets>
</properties>
<option name="timeStamp" value="9" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/Assets/Scripts/JSON/AnalyzeJSON.cs</url>
<line>11</line>

View File

@ -0,0 +1,18 @@
using System.Collections.Generic;
using Game.MVVM.Model;
using Sirenix.OdinInspector.Editor;
namespace Editor.GenResourcePathEditor
{
public class GenConfigEditor : OdinEditorWindow
{
[UnityEditor.MenuItem("Tool/ZC/GenConfigEditor")]
private static void OpenWindow()
{
GetWindow<GenConfigEditor>().Show();
}
public List<MallStoreItem> storeItems = new List<MallStoreItem>();
public List<MallScrollItem> scrollItems = new List<MallScrollItem>();
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: aa1a9ed5bd5a4a65aa99956591b62ec2
timeCreated: 1713922795

View File

@ -3,14 +3,13 @@ using System.IO;
using System.Text;
using Sirenix.OdinInspector;
using Sirenix.OdinInspector.Editor;
using UnityEditor;
using UnityEngine;
namespace Editor.GenResourcePathEditor
{
public class GenResourcePathEditor : OdinEditorWindow
{
[MenuItem("Tool/ZC/GenResourcePathEditor")]
[UnityEditor.MenuItem("Tool/ZC/GenResourcePathEditor")]
private static void OpenWindow()
{
GetWindow<GenResourcePathEditor>().Show();

View File

@ -644,6 +644,8 @@ GameObject:
m_Component:
- component: {fileID: 8147848902739232314}
- component: {fileID: 2194549472847266646}
- component: {fileID: 7330289837143714749}
- component: {fileID: 8936306396004867506}
m_Layer: 0
m_Name: manag
m_TagString: Untagged
@ -682,6 +684,32 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4159528952153368361}
m_CullTransparentMesh: 1
--- !u!225 &7330289837143714749
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4159528952153368361}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!114 &8936306396004867506
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4159528952153368361}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b2a1576886b942d5866e816a58683a50, type: 3}
m_Name:
m_EditorClassIdentifier:
destroyOnHide: 0
btnBack: {fileID: 4600810836833673666}
--- !u!1 &5425567504663934153
GameObject:
m_ObjectHideFlags: 0

View File

@ -32,7 +32,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1162980212873795129}
m_RootOrder: -2
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -152,7 +152,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 34451301792257562}
m_RootOrder: -2
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -228,7 +228,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 169421807864461812}
m_RootOrder: -2
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -305,7 +305,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3530584219335281082}
m_RootOrder: -2
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -402,7 +402,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5021768597369727541}
m_RootOrder: -2
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -480,7 +480,7 @@ RectTransform:
- {fileID: 169421807864461812}
- {fileID: 808545014624253490}
m_Father: {fileID: 3530584219335281082}
m_RootOrder: -2
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
@ -556,7 +556,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5021768597369727541}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -631,7 +631,7 @@ RectTransform:
m_Children:
- {fileID: 5021768597369727541}
m_Father: {fileID: 3016463072486918917}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -669,7 +669,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1841947078590863046}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -747,7 +747,7 @@ RectTransform:
m_Children:
- {fileID: 1841947078590863046}
m_Father: {fileID: 2081815618460512524}
m_RootOrder: -2
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -872,7 +872,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 34451301792257562}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -1009,7 +1009,7 @@ RectTransform:
m_Children:
- {fileID: 4413202423940604268}
m_Father: {fileID: 2081815618460512524}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -1077,6 +1077,8 @@ GameObject:
m_Component:
- component: {fileID: 3530584219335281082}
- component: {fileID: 5484834207614550145}
- component: {fileID: 8569804701476922707}
- component: {fileID: 3404393095991727767}
m_Layer: 0
m_Name: bg
m_TagString: Untagged
@ -1103,7 +1105,7 @@ RectTransform:
- {fileID: 1162980212873795129}
- {fileID: 7300865430058259294}
m_Father: {fileID: 6860014877856783422}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -1118,6 +1120,38 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5600304962310771334}
m_CullTransparentMesh: 1
--- !u!225 &8569804701476922707
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5600304962310771334}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!114 &3404393095991727767
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5600304962310771334}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 431c37659f9447f3979a0d3b97090759, type: 3}
m_Name:
m_EditorClassIdentifier:
destroyOnHide: 0
btnBack: {fileID: 6361402193510103780}
btnHelp: {fileID: 5474059756712756043}
btnInvestment: {fileID: 1413790542302626778}
txtJinBei: {fileID: 8446278274530464895}
txtMessage: {fileID: 548527743232522306}
dropdown: {fileID: 1806200061776889088}
imgTips: {fileID: 5658871724288701685}
--- !u!1 &5648420523924267466
GameObject:
m_ObjectHideFlags: 0
@ -1150,7 +1184,7 @@ RectTransform:
m_Children:
- {fileID: 5835846045980824188}
m_Father: {fileID: 3530584219335281082}
m_RootOrder: -2
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@ -1228,7 +1262,7 @@ RectTransform:
- {fileID: 733979832953439748}
- {fileID: 2619756866620182203}
m_Father: {fileID: 3530584219335281082}
m_RootOrder: -2
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -1303,7 +1337,7 @@ RectTransform:
m_Children:
- {fileID: 1633020055586823971}
m_Father: {fileID: 7473532737897809580}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -1344,7 +1378,7 @@ RectTransform:
m_Children:
- {fileID: 3530584219335281082}
m_Father: {fileID: 0}
m_RootOrder: -1
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -1448,7 +1482,7 @@ RectTransform:
- {fileID: 3016463072486918917}
- {fileID: 7473532737897809580}
m_Father: {fileID: 169421807864461812}
m_RootOrder: -2
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
@ -1556,7 +1590,7 @@ RectTransform:
- {fileID: 5005820590705638588}
- {fileID: 5312001759260669511}
m_Father: {fileID: 4413202423940604268}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -1643,7 +1677,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3530584219335281082}
m_RootOrder: -2
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -1767,7 +1801,7 @@ RectTransform:
- {fileID: 2057438661113781037}
- {fileID: 2081815618460512524}
m_Father: {fileID: 1162980212873795129}
m_RootOrder: -2
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}
@ -1906,7 +1940,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3530584219335281082}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@ -2026,7 +2060,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3401631729630773585}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -2161,7 +2195,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5021768597369727541}
m_RootOrder: -2
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -2296,7 +2330,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 169421807864461812}
m_RootOrder: -2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}

View File

@ -0,0 +1,525 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1788726950227655613
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1417898116430425098}
- component: {fileID: 8205531383661772612}
- component: {fileID: 436909684374948031}
- component: {fileID: 7843749286513618667}
- component: {fileID: 7359500424275333889}
m_Layer: 0
m_Name: HallSceneMainUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1417898116430425098
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1788726950227655613}
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: 4143984083668355473}
m_Father: {fileID: 0}
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 &8205531383661772612
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1788726950227655613}
m_CullTransparentMesh: 1
--- !u!114 &436909684374948031
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1788726950227655613}
m_Enabled: 0
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: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 0
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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!225 &7843749286513618667
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1788726950227655613}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!114 &7359500424275333889
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1788726950227655613}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: aa6c9b462319459ca494d7979967fc65, type: 3}
m_Name:
m_EditorClassIdentifier:
font: {fileID: 0}
--- !u!1 &4007338668054806973
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1199607059942834578}
- component: {fileID: 3843768131448087614}
- component: {fileID: 2816900982250888421}
- component: {fileID: 5019730432964340068}
- component: {fileID: 3974158138585058736}
- component: {fileID: 7775336711658822170}
m_Layer: 0
m_Name: hallSceneMainItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1199607059942834578
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4007338668054806973}
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: 3513092011782190106}
m_Father: {fileID: 4143984083668355473}
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: 200, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3843768131448087614
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4007338668054806973}
m_CullTransparentMesh: 1
--- !u!114 &2816900982250888421
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4007338668054806973}
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: 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!114 &5019730432964340068
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4007338668054806973}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 2816900982250888421}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!225 &3974158138585058736
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4007338668054806973}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!114 &7775336711658822170
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4007338668054806973}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c9056a66734142248f187646c79d8da1, type: 3}
m_Name:
m_EditorClassIdentifier:
destroyOnHide: 0
btn: {fileID: 5019730432964340068}
txtName: {fileID: 4112732130943538633}
--- !u!1 &4362869369184544319
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3513092011782190106}
- component: {fileID: 1003766320610544442}
- component: {fileID: 4112732130943538633}
m_Layer: 0
m_Name: txt_Name
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3513092011782190106
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4362869369184544319}
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: 1199607059942834578}
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 &1003766320610544442
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4362869369184544319}
m_CullTransparentMesh: 1
--- !u!114 &4112732130943538633
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4362869369184544319}
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: "\u6D4B\u8BD5"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 77aa97af632c6664fba601ee0bd95449, type: 2}
m_sharedMaterial: {fileID: -8700875382889012724, guid: 77aa97af632c6664fba601ee0bd95449, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4278190080
m_fontColor: {r: 0, g: 0, b: 0, 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: 40
m_fontSizeBase: 40
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
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: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
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!1 &5055259099480063549
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4143984083668355473}
- component: {fileID: 335782580949288644}
- component: {fileID: 6452389263210223416}
- component: {fileID: 96990276657789933}
- component: {fileID: 629794600947725730}
- component: {fileID: 850883379100661419}
m_Layer: 0
m_Name: hallSceneMainMenuView
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4143984083668355473
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5055259099480063549}
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: 1199607059942834578}
m_Father: {fileID: 1417898116430425098}
m_RootOrder: 0
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: 200}
m_Pivot: {x: 0, y: 0}
--- !u!222 &335782580949288644
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5055259099480063549}
m_CullTransparentMesh: 1
--- !u!114 &6452389263210223416
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5055259099480063549}
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!114 &96990276657789933
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5055259099480063549}
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: 4
m_Spacing: 10
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!225 &629794600947725730
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5055259099480063549}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!114 &850883379100661419
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5055259099480063549}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 62d049c58ac444539356c873c6cc16a9, type: 3}
m_Name:
m_EditorClassIdentifier:
destroyOnHide: 0
parentTrans: {fileID: 4143984083668355473}
itemView: {fileID: 7775336711658822170}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f7c5ee18df3601a499fcb7d35bb51def
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1149,7 +1149,7 @@ GameObject:
- component: {fileID: 4481098500885992545}
- component: {fileID: 2188655184802836331}
m_Layer: 0
m_Name: Item
m_Name: btnBack
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -1995,7 +1995,7 @@ RectTransform:
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 10, y: 49.999985}
m_SizeDelta: {x: 0, y: 150}
m_SizeDelta: {x: 144.01, y: 150}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &4481098501707021569
CanvasRenderer:
@ -2144,7 +2144,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: 0.000018119812, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 183}
m_Pivot: {x: 0, y: 1}
--- !u!114 &428774475261682361
@ -2185,7 +2185,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2fafe2cfe61f6974895a912c3755e8f1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_AllowSwitchOff: 1
m_AllowSwitchOff: 0
--- !u!1 &4481098501802080359
GameObject:
m_ObjectHideFlags: 0
@ -2336,7 +2336,7 @@ RectTransform:
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 10, y: -0.0000076293945}
m_SizeDelta: {x: 0, y: 53.498}
m_SizeDelta: {x: 144.01, y: 53.498}
m_Pivot: {x: 0, y: 0}
--- !u!222 &4481098501971714288
CanvasRenderer:
@ -2459,13 +2459,15 @@ GameObject:
m_Component:
- component: {fileID: 3903976971879949461}
- component: {fileID: 480958851224040803}
- component: {fileID: 8828262994403599718}
- component: {fileID: 780194271078289705}
m_Layer: 0
m_Name: storeItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &3903976971879949461
RectTransform:
m_ObjectHideFlags: 0
@ -2482,9 +2484,9 @@ RectTransform:
m_Father: {fileID: 4481098501785207803}
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_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 160, y: -91.5}
m_SizeDelta: {x: 300, y: 150}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &480958851224040803
@ -2535,6 +2537,34 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
m_IsOn: 1
--- !u!225 &8828262994403599718
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6885642855762525541}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!114 &780194271078289705
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6885642855762525541}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 25a38cfa71a84c85b723b0542c9e193a, type: 3}
m_Name:
m_EditorClassIdentifier:
destroyOnHide: 0
imgIcon: {fileID: 6746935151477445796}
txtName: {fileID: 1752995713751783845}
tog: {fileID: 480958851224040803}
--- !u!1 &7545803632814288325
GameObject:
m_ObjectHideFlags: 0
@ -2595,7 +2625,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 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
@ -2925,13 +2955,15 @@ GameObject:
- component: {fileID: 7928957441832648412}
- component: {fileID: 7928957441832648410}
- component: {fileID: 7928957441832648411}
- component: {fileID: 7964732187364997627}
- component: {fileID: 3302069347505927241}
m_Layer: 5
m_Name: viewItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &7928957441832648412
RectTransform:
m_ObjectHideFlags: 0
@ -2949,9 +2981,9 @@ RectTransform:
m_Father: {fileID: 7928957442934523519}
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_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 540, y: -75}
m_SizeDelta: {x: 1080, y: 150}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7928957441832648410
@ -2992,6 +3024,35 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!225 &7964732187364997627
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7928957441832648413}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!114 &3302069347505927241
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7928957441832648413}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b711267792c1417e817ef93d82d7ea57, type: 3}
m_Name:
m_EditorClassIdentifier:
destroyOnHide: 0
imgIcon: {fileID: 4481098500870881251}
txtName: {fileID: 4481098501707021570}
txtCount: {fileID: 4481098501971714289}
btnBuy: {fileID: 4481098500081607321}
--- !u!1 &7928957441947421987
GameObject:
m_ObjectHideFlags: 0
@ -3552,7 +3613,7 @@ GameObject:
- component: {fileID: 7928957442961362437}
- component: {fileID: 7928957442961362438}
- component: {fileID: 7928957442961362440}
- component: {fileID: 7928957442961362436}
- component: {fileID: 2527774106171497770}
m_Layer: 5
m_Name: scrollRect
m_TagString: Untagged
@ -3651,7 +3712,7 @@ MonoBehaviour:
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!114 &7928957442961362436
--- !u!114 &2527774106171497770
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -3660,7 +3721,7 @@ MonoBehaviour:
m_GameObject: {fileID: 7928957442961362441}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c91182ec4ce7d0547a2687f389d91290, type: 3}
m_Script: {fileID: 11500000, guid: 0c1d79864e8e4d2f830f3776f759d2d4, type: 3}
m_Name:
m_EditorClassIdentifier:
contentTransform: {fileID: 7928957442934523519}
@ -3812,8 +3873,9 @@ GameObject:
- component: {fileID: 8626313007004970772}
- component: {fileID: 5328268359970419041}
- component: {fileID: 5598178627790453731}
- component: {fileID: 4747937505425389406}
m_Layer: 0
m_Name: GameMallUI
m_Name: HallSceneMallUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -3903,3 +3965,20 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
font: {fileID: 0}
--- !u!114 &4747937505425389406
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8896865161160366394}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 87bfb15fc74f41218d1a7549c321b32d, type: 3}
m_Name:
m_EditorClassIdentifier:
destroyOnHide: 0
scrollRectUpdateView: {fileID: 2527774106171497770}
storeItemParent: {fileID: 4481098501785207803}
storeItem: {fileID: 6885642855762525541}
btnBack: {fileID: 2188655184802836331}

View File

@ -0,0 +1,125 @@
%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: 3
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 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_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
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: 0
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: 2
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
accuratePlacement: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1c7e643baad163046834e3a651e1381f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -1088,6 +1088,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 73a6f02cb4eb431190225bd497c5ae76, type: 3}
m_Name:
m_EditorClassIdentifier:
str: {fileID: 0}
str1:
startTr: {fileID: 1000386969}
endTr: {fileID: 74717501}
--- !u!4 &2142424751

View File

@ -11,13 +11,15 @@ public const string Assets_GameRes_Prefabs_Room_杂物室 = "Assets/GameRes/Pref
public const string Assets_GameRes_Prefabs_Room_ = "Assets/GameRes/Prefabs/Room/沙慕龙阁.prefab";
public const string Assets_GameRes_Prefabs_Room_殿 = "Assets/GameRes/Prefabs/Room/英雄圣殿.prefab";
public const string Assets_GameRes_Prefabs_Room_ = "Assets/GameRes/Prefabs/Room/训练堂.prefab";
public const string Assets_GameRes_Prefabs_UI_GameMallUI = "Assets/GameRes/Prefabs/UI/GameMallUI.prefab";
public const string Assets_GameRes_Prefabs_UI_GameSceneHelpUI = "Assets/GameRes/Prefabs/UI/GameSceneHelpUI.prefab";
public const string Assets_GameRes_Prefabs_UI_GameSceneMainUI = "Assets/GameRes/Prefabs/UI/GameSceneMainUI.prefab";
public const string Assets_GameRes_Prefabs_UI_GameSceneResultUI = "Assets/GameRes/Prefabs/UI/GameSceneResultUI.prefab";
public const string Assets_GameRes_Prefabs_UI_GameStorePurchaseUI = "Assets/GameRes/Prefabs/UI/GameStorePurchaseUI.prefab";
public const string Assets_GameRes_Prefabs_UI_GlobalLogOnlyAppUI = "Assets/GameRes/Prefabs/UI/GlobalLogOnlyAppUI.prefab";
public const string Assets_GameRes_Prefabs_UI_HallSceneMainUI = "Assets/GameRes/Prefabs/UI/HallSceneMainUI.prefab";
public const string Assets_GameRes_Prefabs_UI_HallSceneMallUI = "Assets/GameRes/Prefabs/UI/HallSceneMallUI.prefab";
public const string Assets_GameRes_Prefabs_UI_InputNameUI = "Assets/GameRes/Prefabs/UI/InputNameUI.prefab";
public const string Assets_GameRes_Prefabs_UI_LoadingGameSceneUI = "Assets/GameRes/Prefabs/UI/LoadingGameSceneUI.prefab";
public const string Assets_GameRes_Scene_Game = "Assets/GameRes/Scene/Game.unity";
public const string Assets_GameRes_Scene_Hall = "Assets/GameRes/Scene/Hall.unity";
}

View File

@ -9,7 +9,7 @@ namespace Game.Pathfinding
public interface IBFSManager
{
List<WayPoint> FindPath(Vector2 startPos, Vector2 endPos);
List<WayPoint> FindPath(Vector2 endPos);
// List<WayPoint> FindPath(Vector2 endPos);
Node<WayPoint> GetNode(Vector2 position);
// void Test(Vector2 position);
@ -18,7 +18,6 @@ namespace Game.Pathfinding
public class BFSManager : ManagerBase, IBFSManager
{
private BFS<WayPoint> bfs;
private IPlayerManager _playerManager;
protected override void OnInit()
{
@ -33,8 +32,6 @@ namespace Game.Pathfinding
// findPath.GetDatas(wayPoints);
// Debug.Log($"Indices:{string.Join(',', findPath.GetNodes().Select(x => x.index))}");
// Debug.Log($"Positions:{string.Join(',', findPath.GetNodes().Select(x => x.data.position))}");
this._playerManager = Game.playerManager;
}
protected override void OnUpdate(float dateTime)
@ -57,29 +54,19 @@ namespace Game.Pathfinding
return wayPoints;
}
public List<WayPoint> FindPath(Vector2 endPos)
{
var player = this._playerManager.currentPlayer;
var pos = player.self.transform.position;
var startPos = new Vector2(pos.x, pos.y);
var beginNode = GetNode(bfs, startPos);
var endNode = GetNode(bfs, endPos);
// UnityEngine.Debug.Log($"frome {beginNode.index} to {endNode.index} ");
var findPath = bfs.FindPath(beginNode, endNode);
var wayPoints = new List<WayPoint>();
findPath.GetDatas(wayPoints);
return wayPoints;
}
// public void Test(Vector2 endPos)
// {
// var player = this._playerManager.currentPlayer;
// var pos = player.self.transform.position;
// var startPos = new Vector2(pos.x, pos.y);
// var beginNode = GetNode(bfs, startPos);
// var endNode = GetNode(bfs, endPos);
// public List<WayPoint> FindPath(Vector2 endPos)
// {
// var player = this._playerManager.currentPlayer;
// var pos = player.self.transform.position;
// var startPos = new Vector2(pos.x, pos.y);
// var beginNode = GetNode(bfs, startPos);
// var endNode = GetNode(bfs, endPos);
//// UnityEngine.Debug.Log($"frome {beginNode.index} to {endNode.index} ");
// }
// var findPath = bfs.FindPath(beginNode, endNode);
// var wayPoints = new List<WayPoint>();
// findPath.GetDatas(wayPoints);
// return wayPoints;
// }
[CanBeNull]
public Node<WayPoint> GetNode(Vector2 position)

View File

@ -1,39 +0,0 @@
using System.Collections.Generic;
using UnityEditorInternal.VersionControl;
namespace Game.Data
{
[System.Serializable]
public class StoreData
{
public long id;
public string storeName;
public List<StoreDataItem> list;
public StoreData(long id, string storeName, List<StoreDataItem> list)
{
this.id = id;
this.storeName = storeName;
this.list = list;
}
}
[System.Serializable]
public class StoreDataItem
{
public long id;
public string name;
public string desc;
public float price;
public int count;
public StoreDataItem(long id, string name, string desc, float price, int count)
{
this.id = id;
this.name = name;
this.desc = desc;
this.price = price;
this.count = count;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 91f017b223784a9fb5fb8f422e9a566c
timeCreated: 1713232741

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ceed7aca8c40494cad97381da7f0d54c
timeCreated: 1713926428

View File

@ -16,11 +16,9 @@ namespace Game.Boss
BossInfo info { get; }
IRoom room { get; }
bool isMoving { get; }
void SetGameObject(GameObject gameObject, IRoom room);
UniTask<float> WaitMoveRoomAndKillAsync(CancellationToken token);
// UniTask<bool> MoveAsync(List<WayPoint> wayPoint, CancellationToken token);
void Init();
void Dispose();
}
@ -36,12 +34,14 @@ namespace Game.Boss
private IRoom _room;
private bool _isMoving;
private BossInfo _info;
private IBFSManager _bfsManager;
private BossData _data;
public string name => this._name;
public GameObject self => this._self;
public BossData data { get; }
public BossData data => this._data;
public BossInfo info => this._info;
@ -49,7 +49,7 @@ namespace Game.Boss
public bool isMoving => this._isMoving;
public void SetGameObject(GameObject gameObject, IRoom room)
public Boss(GameObject gameObject, IRoom room, IBFSManager bfs)
{
this._self = gameObject;
this._name = room.roomName;
@ -57,11 +57,14 @@ namespace Game.Boss
this._info = gameObject.GetComponent<BossInfo>();
this._info.SetBoss(this);
this._isMoving = true;
this._bfsManager = bfs;
this._data = new BossData();
this._isMoving = false;
}
public async UniTask<float> WaitMoveRoomAndKillAsync(CancellationToken token)
{
var wayPoints = Game.bfsManager.FindPath(this._info.birthPoint, _room.roomInfo.room_Center);
var wayPoints = this._bfsManager.FindPath(this._info.birthPoint, _room.roomInfo.room_Center);
await this.MoveAsync(wayPoints, token);
Debug.Log("Move finish !!!");
await this._info.Kill(token);
@ -70,14 +73,11 @@ namespace Game.Boss
private async UniTask<bool> MoveAsync(List<WayPoint> wayPoint, CancellationToken token)
{
if (!this._isMoving) return false;
_isMoving = false;
// var endPos = this._room.roomInfo.GetJoinPosition();
// await this._info.MoveAsync(wayPoint, endPos, token);
if (this._isMoving) return false;
_isMoving = true;
await this._info.MoveAsync(wayPoint, token);
this._isMoving = true;
this._isMoving = false;
return true;
}
@ -88,6 +88,12 @@ namespace Game.Boss
public virtual void Dispose()
{
this._info.Dispose();
GameObject.Destroy(this._self);
this._room = null;
this._isMoving = false;
this._info = null;
this._bfsManager = null;
this._self = null;
}
}
}

View File

@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Threading;
using Cysharp.Threading.Tasks;
using Game.Pathfinding;
using Game.Room;
using UnityEngine;
@ -9,6 +10,7 @@ namespace Game.Boss
public interface IBossManager
{
IReadOnlyList<IBoss> bosses { get; }
IBFSManager bfsManager { get; }
UniTask MoveToKillPlayerAsync(IReadOnlyList<IRoom> rooms, CancellationToken token);
void DeleteBoss();
@ -17,17 +19,25 @@ namespace Game.Boss
public class BossManager : ManagerBase, IBossManager
{
private List<IBoss> _bosses;
private IBFSManager _bfsManager;
private string bossAssetName = AssetConstPath.Assets_GameRes_Prefabs_Role_boss1;
public IReadOnlyList<IBoss> bosses => this._bosses;
public IBFSManager bfsManager => this._bfsManager;
public BossManager(IBFSManager bfsManager)
{
this._bfsManager = bfsManager;
}
public async UniTask MoveToKillPlayerAsync(IReadOnlyList<IRoom> rooms, CancellationToken token)
{
this._bosses = new List<IBoss>();
foreach (var room in rooms)
{
IBoss boss = new Boss();
var gameObject = Game.resourceManager.LoadGameObjectSync(AssetConstPath.Assets_GameRes_Prefabs_Role_boss1);
boss.SetGameObject(gameObject, room);
var gameObject = Game.resourceManager.LoadGameObjectSync(bossAssetName);
IBoss boss = new Boss(gameObject, room, this._bfsManager);
boss.Init();
_bosses.Add(boss);
}
@ -53,5 +63,18 @@ namespace Game.Boss
this._bosses.Clear();
}
protected override void OnDispose()
{
base.OnDispose();
if (this._bosses != null)
foreach (var boss in this._bosses)
{
boss.Dispose();
}
this._bfsManager = null;
this._bosses = null;
}
}
}

View File

@ -0,0 +1,276 @@
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using Game.Boss;
using Game.Pathfinding;
using Game.Player;
using Game.RayCast;
using Game.Room;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace Game.Dinosaurs
{
public class DinosaursGameManager : IDinosaursGameManager
{
// private bool isInit;
private bool isPlaying;
private bool isInBalance;
private float currentTime = 0f;
private float bossRefreshTime = 20f;
private GameSceneMainUI sceneMainUI;
private BFSManager _bfsManager;
private MouseInputManager _mouseInputManager;
private BossManager _bossManager;
private PlayerManager _playerManager;
private RoomManager _roomManager;
public IBFSManager bfsManager => this._bfsManager;
public IMouseInputManager mouseInputManager => this._mouseInputManager;
public IBossManager bossManager => this._bossManager;
public IPlayerManager playerManager => this._playerManager;
public IRoomManager roomManager => this._roomManager;
public IPlayer currentPlayer => this._playerManager.currentPlayer;
public IRoom room => this._roomManager.currentRoom;
public DinosaursGameManager()
{
this._bfsManager = new BFSManager();
this._mouseInputManager = new MouseInputManager();
this._bossManager = new BossManager(this.bfsManager);
this._playerManager = new PlayerManager(this.bfsManager);
this._roomManager = new RoomManager();
}
public void Init()
{
this._bfsManager.Init();
this._mouseInputManager.Init();
this._bossManager.Init();
this._playerManager.Init();
this._roomManager.Init();
}
public void StartGame()
{
this.isInBalance = false;
this.isPlaying = true;
this.currentTime = 0;
//
this.LoadGameSceneAsync().Forget();
EventManager.Instance.Subscribe(InputObjectFinishEventArgs.EventId, InputObjectFinishEvent);
sceneMainUI = Game.uiManager.GetUI<GameSceneMainUI>(UIType.GameSceneMainUI);
}
#region StartGame
async UniTask LoadGameSceneAsync()
{
await Game.resourceManager.LoadSceneAsync(AssetConstPath.Assets_GameRes_Scene_Game, LoadSceneMode.Additive);
EventManager.Instance.FireNow(this, new LoadingGameSceneFinishEventArgs(true));
var player = this._playerManager.CreatePlayer(Game.currentPlayerData.name, Game.currentPlayerData.jinBei);
this._playerManager.SetCurrentPlayer(player);
EventManager.Instance.FireNow(this, new InitCurrentPlayerDataEventArgs(player));
player.self.transform.position = new Vector3(-9.6f, -10.3f);
Game.uiManager.ShowUI(UIType.GameSceneMainUI);
await this.CreateRoomAsync();
}
async UniTask CreateRoomAsync()
{
var room = this._roomManager.CreateRoom(RoomType., AssetConstPath.Assets_GameRes_Prefabs_Room_);
this._roomManager.CreateRoom(RoomType., AssetConstPath.Assets_GameRes_Prefabs_Room_);
this._roomManager.CreateRoom(RoomType., AssetConstPath.Assets_GameRes_Prefabs_Room_);
this._roomManager.CreateRoom(RoomType., AssetConstPath.Assets_GameRes_Prefabs_Room_);
this._roomManager.CreateRoom(RoomType., AssetConstPath.Assets_GameRes_Prefabs_Room_);
this._roomManager.CreateRoom(RoomType., AssetConstPath.Assets_GameRes_Prefabs_Room_);
this._roomManager.CreateRoom(RoomType., AssetConstPath.Assets_GameRes_Prefabs_Room_);
this._roomManager.CreateRoom(RoomType., AssetConstPath.Assets_GameRes_Prefabs_Room_);
this._roomManager.CreateRoom(RoomType.殿, AssetConstPath.Assets_GameRes_Prefabs_Room_殿);
var player = this._playerManager.currentPlayer;
await player.WaitMoveRoomAsync(room, default);
this.CreateOtherPlayer();
// Game.procedureManager.ChangeProcedure(ProcedureType.GameSceneLogicProcedure);
}
void CreateOtherPlayer()
{
}
#endregion
public void UpdateGame(float time)
{
this._bfsManager.Update(time);
this._mouseInputManager.Update(time);
this._bossManager.Update(time);
this._playerManager.Update(time);
this._roomManager.Update(time);
if (this.isInBalance || !isPlaying) return;
WaitTimeGoNext();
}
void WaitTimeGoNext()
{
this.currentTime += Time.deltaTime;
string content = $"({(int)(this.bossRefreshTime - currentTime)}) 恐龙即将出现!";
sceneMainUI.UpdateMessage(content);
if (this.currentTime >= this.bossRefreshTime)
{
this.WaitBalance().Forget();
return;
// Game.procedureManager.ChangeProcedure(ProcedureType.GameSceneKillPlayerProcedure);
}
}
async UniTask WaitBalance()
{
this.isInBalance = true;
string content = $"恐龙出没!";
sceneMainUI.UpdateMessage(content);
var roomData = this._roomManager.GetAllRandomRoom();
await this._bossManager.MoveToKillPlayerAsync(roomData.killRoom, default);
this._bossManager.DeleteBoss();
float jinBei = 0;
foreach (var room in roomData.killRoom)
{
jinBei += room.roomData.jinBeiCount;
}
Debug.Log($"杀掉了随机房间玩家,金贝数量总和为:{jinBei}");
List<IPlayer> players = new List<IPlayer>();
foreach (var room in roomData.survivorRoom)
{
foreach (var roomPlayer in room.players)
{
Debug.Log($"幸存者:{roomPlayer.playerName}");
players.Add(roomPlayer);
}
}
if (players.Count > 0)
jinBei /= players.Count;
Debug.Log($"胜利总金贝: is {jinBei}");
EventManager.Instance.FireNow(this, new JinBeiSettlementEventArgs(players, jinBei));
var resultUI = Game.uiManager.GetUI<GameSceneResultUI>(UIType.GameSceneResultUI);
if (players.Contains(this._playerManager.currentPlayer))
resultUI.SetResult($"恭喜你躲避成功,胜利总金贝:{jinBei},你得到的金贝:{jinBei}", true);
else
resultUI.SetResult($"躲避失败,胜利总金贝:{jinBei}你得到的金贝0", false);
//TODO:
UniTask.Create(async () => { await this._roomManager.QuitAllRoomAsync(default); });
this.currentTime = 0;
this.isInBalance = false;
await this.WaitShowResultAsync();
}
async UniTask WaitShowResultAsync()
{
var showUI = Game.uiManager.ShowUI(UIType.GameSceneResultUI);
var resultUI = showUI as GameSceneResultUI;
await resultUI.WaitShowAndCloseResultAsync(default);
Game.uiManager.CloseLast();
}
public void PauseGame()
{
this.isPlaying = false;
this._bfsManager.Pause();
this._mouseInputManager.Pause();
this._bossManager.Pause();
this._playerManager.Pause();
this._roomManager.Pause();
}
public void ResumeGame()
{
this.isPlaying = true;
this._bfsManager.Resume();
this._mouseInputManager.Resume();
this._bossManager.Resume();
this._playerManager.Resume();
this._roomManager.Resume();
}
public void StopGame()
{
this._mouseInputManager.Dispose();
this._bossManager.Dispose();
this._playerManager.Dispose();
this._roomManager.Dispose();
}
public void Dispose()
{
EventManager.Instance.Unsubscribe(InputObjectFinishEventArgs.EventId, InputObjectFinishEvent);
this._bfsManager.Dispose();
this._mouseInputManager.Dispose();
this._bossManager.Dispose();
this._playerManager.Dispose();
this._roomManager.Dispose();
this._bfsManager = null;
this._mouseInputManager = null;
this._bossManager = null;
this._playerManager = null;
this._roomManager = null;
}
private void InputObjectFinishEvent(object sender, GameEventArgs e)
{
if (this._playerManager.currentPlayer.isMoving)
{
Debug.Log("Player is moveing");
return;
}
if (this.isInBalance)
{
Debug.Log("in balanceing !");
return;
}
if (!this.isPlaying)
{
Debug.Log("the game is paused !");
return;
}
var args = e as InputObjectFinishEventArgs;
var inputData = args.data as MouseInputData;
var roomInfo = inputData.go.GetComponent<RoomInfo>();
this._roomManager.SetCurrentRoom(roomInfo.roomType);
UniTask.Create(async () => { await this._roomManager.JoinRoomAsync(roomInfo.roomType, this._playerManager.currentPlayer, default); });
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 38fd9f08b4fd433291ca9a5b89616c6b
timeCreated: 1713926882

View File

@ -0,0 +1,27 @@
using Game.Boss;
using Game.Pathfinding;
using Game.Player;
using Game.RayCast;
using Game.Room;
namespace Game.Dinosaurs
{
public interface IDinosaursGameManager
{
IBFSManager bfsManager { get; }
IMouseInputManager mouseInputManager { get; }
IBossManager bossManager { get; }
IPlayerManager playerManager { get; }
IRoomManager roomManager { get; }
IPlayer currentPlayer { get; }
IRoom room { get; }
void Init();
void StartGame();
void UpdateGame(float time);
void PauseGame();
void ResumeGame();
void StopGame();
void Dispose();
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2a58edd6249d49b3ae7bba7c653c7d00
timeCreated: 1713926448

View File

@ -14,10 +14,10 @@ namespace Game.Player
PlayerData playerData { get; }
IRoom room { get; }
bool isMoving { get; }
void SetGameObject(GameObject gameObject, string name, float jinbei);
void SetRoom(IRoom roo);
bool IsCanDelete { get; }
UniTask<bool> WaitMoveRoomAsync(IRoom roo, CancellationToken token);
UniTask<bool> MoveAsync(List<WayPoint> wayPoint, CancellationToken token);
void JumpToRoom(IRoom room);
void Init();
void Dispose();
}
@ -31,6 +31,8 @@ namespace Game.Player
PlayerInfo playerInfo;
private bool _isMoving;
private IBFSManager _bfsManager;
public string playerName => this._playerData.playerName;
public GameObject self => this._self;
@ -41,24 +43,37 @@ namespace Game.Player
public bool isMoving => this._isMoving;
public void SetGameObject(GameObject gameObject, string name, float jinbei)
public bool IsCanDelete
{
this._self = gameObject;
this._playerData = new PlayerData(name, jinbei, 100);
get
{
if (this.isMoving || this._room.roomType != RoomType.)
return false;
return true;
}
}
public Player(string name, float jinBei, GameObject go, IBFSManager bfs)
{
this._playerData = new PlayerData(name, jinBei, 100);
this._bfsManager = bfs;
// view
this._self = go;
playerInfo = this._self.GetComponent<PlayerInfo>();
playerInfo.SetPlayer(this);
this._isMoving = false;
}
public void SetRoom(IRoom roo)
{
this._room?.Quit(this);
this._room = roo;
// EventManager.Instance.FireNow(this, new PlayerMoveToRoomEventArgs(this, this._room));
}
// public void SetGo(GameObject gameObject)
// {
// this._self = gameObject;
//
// // view
// playerInfo = this._self.GetComponent<PlayerInfo>();
// playerInfo.SetPlayer(this);
// this._isMoving = false;
// }
public async UniTask<bool> WaitMoveRoomAsync(IRoom roo, CancellationToken token)
{
@ -66,7 +81,7 @@ namespace Game.Player
this._room = roo;
// EventManager.Instance.FireNow(this, new PlayerMoveToRoomEventArgs(this, this._room));
var wayPoints = Game.bfsManager.FindPath(_room.roomInfo.room_Center);
var wayPoints = this._bfsManager.FindPath(this._self.transform.position, _room.roomInfo.room_Center);
await UniTask.Yield();
var moveAsync = await this.MoveAsync(wayPoints, token);
@ -74,7 +89,16 @@ namespace Game.Player
return moveAsync;
}
public async UniTask<bool> MoveAsync(List<WayPoint> wayPoint, CancellationToken token)
public void JumpToRoom(IRoom room)
{
this._room?.Quit(this);
this._room = room;
var endPos = this._room.roomInfo.GetJoinPosition();
playerInfo.JumpTo(endPos);
}
private async UniTask<bool> MoveAsync(List<WayPoint> wayPoint, CancellationToken token)
{
if (this._isMoving) return false;
@ -96,7 +120,13 @@ namespace Game.Player
{
EventManager.Instance.Unsubscribe(PlayerJinBeiChange_ToPlayerEventArgs.EventId, PlayerJinbeiChangeEvent);
EventManager.Instance.Unsubscribe(ReturnPlayerJinBeiEventArgs.EventId, ReturnPlayerJinBeiEvent);
this._room = null;
this.playerInfo = null;
this._isMoving = false;
this._playerData = null;
GameObject.DestroyImmediate(this.self);
this._self = null;
}
private void ReturnPlayerJinBeiEvent(object sender, GameEventArgs e)

View File

@ -63,6 +63,11 @@ namespace Game.Player
// Debug.Log($"time is {time}, await time is {delayTimeSpan}");
}
public void JumpTo(Vector2 endPos)
{
transform.position = endPos;
}
#region Add Test
private float startTime; // 开始移动的时间

View File

@ -1,19 +1,29 @@
using System.Collections.Generic;
using Game.Pathfinding;
using Game.Room;
using UnityEngine;
namespace Game.Player
{
public class PlayerManager : ManagerBase, IPlayerManager
{
private Dictionary<string, IPlayer> _players = new Dictionary<string, IPlayer>();
private Dictionary<string, IPlayer> _players;
private IPlayer _currentPlayer;
private string assetName = AssetConstPath.Assets_GameRes_Prefabs_Role_player1;
public IPlayer currentPlayer => this._currentPlayer;
private IBFSManager _bfsManager;
protected override void OnInit()
{
base.OnInit();
}
public PlayerManager(IBFSManager bfsManager)
{
_players = new Dictionary<string, IPlayer>();
this._currentPlayer = null;
this._bfsManager = bfsManager;
}
public void SetCurrentPlayer(IPlayer player)
@ -21,11 +31,11 @@ namespace Game.Player
this._currentPlayer ??= player;
}
public IPlayer CreatePlayer(string playerName, string location, float jinbei)
public IPlayer CreatePlayer(string playerName, float jinbei)
{
var gameObject = Game.resourceManager.LoadGameObjectSync(location);
IPlayer player = new Player();
player.SetGameObject(gameObject, playerName, jinbei);
var gameObject = Game.resourceManager.LoadGameObjectSync(assetName);
IPlayer player = new Player(playerName, jinbei, gameObject, this._bfsManager);
this._players.Add(playerName, player);
player.Init();
return player;
@ -41,8 +51,25 @@ namespace Game.Player
if (this._players.TryGetValue(playerName, out var player))
{
player.Dispose();
this._players.Remove(playerName);
}
}
public void DeleteAllPlayer()
{
foreach (var playersValue in this._players.Values)
{
playersValue.Dispose();
}
this._players.Clear();
}
protected override void OnDispose()
{
base.OnDispose();
this.DeleteAllPlayer();
}
}
public interface IPlayerManager
@ -51,11 +78,15 @@ namespace Game.Player
void SetCurrentPlayer(IPlayer player);
//
IPlayer CreatePlayer(string playerName, string assetName, float jinbei);
IPlayer CreatePlayer(string playerName, float jinbei);
// IPlayer InsPlayer(string assetName);
IPlayer GetPlayer(string playerName);
void DeletePlayer(string playerName);
void DeleteAllPlayer();
// void DeleteInsPlayer(IPlayer player);
}
}

View File

@ -18,6 +18,7 @@ namespace Game.Room
bool QuitRoom(RoomType roomType, IPlayer player);
UniTask QuitAllRoomAsync(CancellationToken token);
void DeleteRoom(RoomType roomType);
void DeleteAllRoom();
}
public class RoomManager : ManagerBase, IRoomManager
@ -39,6 +40,7 @@ namespace Game.Room
{
base.OnDispose();
EventManager.Instance.Unsubscribe(RoomJinBeiChangeEventArgs.EventId, RoomJinBeiChangeEvent);
this.DeleteAllRoom();
}
private void RoomJinBeiChangeEvent(object sender, GameEventArgs e)
@ -185,6 +187,13 @@ namespace Game.Room
if (this._rooms.TryGetValue(roomType, out var room))
room.Dispose();
}
public void DeleteAllRoom()
{
foreach (var room in this._rooms.Values)
room.Dispose();
this._rooms.Clear();
}
}
public struct RandomRoomData

View File

@ -22,7 +22,6 @@ namespace Game.Room
List<IPlayer> QuitAndClearAll();
// float ClearAll();
void Dispose();
bool InvestmentJinBei(IPlayer player, float jinbei);
@ -64,6 +63,7 @@ namespace Game.Room
this._roomData.jinBeiCallback -= this._roomInfo.UpdateNumber;
this._roomData.Reset();
GameObject.Destroy(this.self);
this.self = null;
this._roomInfo = null;
this._roomData = null;

View File

@ -0,0 +1,15 @@
namespace Game
{
public class BackHallSSceneEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(BackHallSSceneEventArgs).GetHashCode();
public override int Id => EventId;
public string sceneName { get; }
public BackHallSSceneEventArgs(string sceneName)
{
this.sceneName = sceneName;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d4330053b44e451f80816d677de2ed20
timeCreated: 1713923241

View File

@ -0,0 +1,17 @@
namespace Game
{
public class HallSceneClickMenuEventArgs : GameEventArgs
{
public static readonly int EventId = typeof(HallSceneClickMenuEventArgs).GetHashCode();
public override int Id => EventId;
public string menuId { get; }
public string menuName { get; }
public HallSceneClickMenuEventArgs(string id, string name)
{
this.menuId = id;
this.menuName = name;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d4625758f19147e699b7132717cf07ea
timeCreated: 1713604993

View File

@ -1,6 +1,7 @@
using System;
using Cysharp.Threading.Tasks;
using Game.Boss;
using Game.Dinosaurs;
using Game.Pathfinding;
using Game.Player;
using Game.RayCast;
@ -11,6 +12,21 @@ using UnityEngine.Serialization;
namespace Game
{
public class GlobalPlayerData
{
public string name;
public long id;
public float jinBei;
// ....
public GlobalPlayerData(string name, long id, float jinBei)
{
this.name = name;
this.id = id;
this.jinBei = jinBei;
}
}
public class Game : MonoBehaviour
{
private static Game _game;
@ -18,11 +34,6 @@ namespace Game
private UIManager _uiManager;
private ResourceManager _resourceManager;
private ProcedureManager _procedureManager;
private PlayerManager _playerManager;
private BFSManager _bfsManager;
private RoomManager _roomManager;
private MouseInputManager _mouseInputManager;
private BossManager _bossManager;
[SerializeField] private LoadType _loadType1 = LoadType.Editor;
[SerializeField] private float time;
@ -31,11 +42,7 @@ namespace Game
public static IProcedureManager procedureManager => _game._procedureManager;
public static IResourceManager resourceManager => _game._resourceManager;
public static IUIManager uiManager => _game._uiManager;
public static IPlayerManager playerManager => _game._playerManager;
public static IBFSManager bfsManager => _game._bfsManager;
public static IRoomManager roomManager => _game._roomManager;
public static IMouseInputManager mouseInputManager => _game._mouseInputManager;
public static IBossManager bossManager => _game._bossManager;
public static GlobalPlayerData currentPlayerData;
private void Awake()
{
@ -46,20 +53,10 @@ namespace Game
this._uiManager = new UIManager();
this._resourceManager = new ResourceManager();
this._procedureManager = new ProcedureManager();
this._playerManager = new PlayerManager();
this._bfsManager = new BFSManager();
this._roomManager = new RoomManager();
this._mouseInputManager = new MouseInputManager();
this._bossManager = new BossManager();
this._resourceManager.Init();
this._uiManager.Init();
this._procedureManager.Init();
this._playerManager.Init();
this._bfsManager.Init();
this._roomManager.Init();
this._mouseInputManager.Init();
this._bossManager.Init();
}
private void Start()
@ -73,28 +70,30 @@ namespace Game
{
await _resourceManager.InitLoadModeAsync(_loadType1);
Game.uiManager.CreateUI(UIType.GlobalLogOnlyAppUI, AssetConstPath.Assets_GameRes_Prefabs_UI_GlobalLogOnlyAppUI, UILayer.High);
this.OnCreateUI();
//#if !UNITY_EDITOR
// Game.uiManager.ShowUI(UIType.GlobalLogOnlyAppUI);
//#endif
this.OnCreateUI();
this._procedureManager.StartProcedure(ProcedureType.LoadingGameSceneProcedure);
this._procedureManager.StartProcedure(ProcedureType.LoadingHallSceneProcedure);
return "11";
}).Forget();
}
private void OnCreateUI()
{
Game.uiManager.CreateUI(UIType.GlobalLogOnlyAppUI, AssetConstPath.Assets_GameRes_Prefabs_UI_GlobalLogOnlyAppUI, UILayer.High);
CommonHelper.AddAppLog("start create ui !");
Game.uiManager.CreateUI(UIType.InputNameUI, AssetConstPath.Assets_GameRes_Prefabs_UI_InputNameUI, UILayer.Mid);
Game.uiManager.CreateUI(UIType.GameSceneHelpUI, AssetConstPath.Assets_GameRes_Prefabs_UI_GameSceneHelpUI, UILayer.High);
Game.uiManager.CreateUI(UIType.GameSceneMainUI, AssetConstPath.Assets_GameRes_Prefabs_UI_GameSceneMainUI, UILayer.Low);
Game.uiManager.CreateUI(UIType.GameSceneResultUI, AssetConstPath.Assets_GameRes_Prefabs_UI_GameSceneResultUI, UILayer.High);
Game.uiManager.CreateUI(UIType.GameMallUI, AssetConstPath.Assets_GameRes_Prefabs_UI_GameMallUI, UILayer.Mid);
Game.uiManager.CreateUI(UIType.GameStorePurchaseUI, AssetConstPath.Assets_GameRes_Prefabs_UI_GameStorePurchaseUI, UILayer.Mid);
Game.uiManager.CreateUI(UIType.HallSceneMainUI, AssetConstPath.Assets_GameRes_Prefabs_UI_HallSceneMainUI, UILayer.Mid);
Game.uiManager.CreateUI(UIType.HallSceneMallUI, AssetConstPath.Assets_GameRes_Prefabs_UI_HallSceneMallUI, UILayer.Mid);
CommonHelper.AddAppLog("create ui finish !");
}
@ -106,10 +105,6 @@ namespace Game
this._resourceManager.Update(time);
this._uiManager.Update(time);
this._procedureManager.Update(time);
this._bfsManager.Update(time);
this._playerManager.Update(time);
this._roomManager.Update(time);
this._bossManager.Update(this.time);
}
private void OnDestroy()
@ -117,10 +112,6 @@ namespace Game
this._resourceManager.Dispose();
this._uiManager.Dispose();
this._procedureManager.Dispose();
this._bfsManager.Dispose();
this._playerManager.Dispose();
this._roomManager.Dispose();
this._bossManager.Dispose();
}
}
}

8
Assets/Scripts/MVVM.meta Normal file
View File

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

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 349520f91bf7b1e448b0c476ad2fbcf3
folderAsset: yes
timeCreated: 1462802152
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 2c877c284c673754b80698e4da080811
folderAsset: yes
timeCreated: 1462847090
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEditor;
namespace uMVVM.Sources.Infrastructure
{
public class BindableProperty<T>
{
public delegate void ValueChangedHandler(T oldValue, T newValue);
public ValueChangedHandler OnValueChanged;
private T _value;
public T Value
{
get
{
return _value;
}
set
{
if (!Equals(_value, value))
{
T old = _value;
_value = value;
ValueChanged(old, _value);
}
}
}
private void ValueChanged(T oldValue, T newValue)
{
if (OnValueChanged != null)
{
OnValueChanged(oldValue, newValue);
}
}
public override string ToString()
{
return (Value != null ? Value.ToString() : "null");
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: cd59cc99e53031a46acb8c553a0570b1
timeCreated: 1462847094
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,104 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assets.Sources.Core.DataBinding
{
public class ObservableList<T>:IList<T>
{
public delegate void ValueChangedHandler(List<T> oldValue, List<T> newValue); public ValueChangedHandler OnValueChanged;
public delegate void AddHandler(T instance);
public AddHandler OnAdd;
public delegate void InsertHandler(int index,T instance);
public InsertHandler OnInsert;
public delegate void RemoveHandler(T instance);
public RemoveHandler OnRemove;
//预先初始化,防止空异常
private List<T> _value=new List<T>(); public List<T> Value { get { return _value; } set { if (!Equals(_value, value)) { var old = _value; _value = value; ValueChanged(old, _value); } } } private void ValueChanged(List<T> oldValue, List<T> newValue) { if (OnValueChanged != null) { OnValueChanged(oldValue, newValue); } }
public IEnumerator<T> GetEnumerator()
{
return _value.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public void Add(T item)
{
_value.Add(item);
if (OnAdd != null)
{
OnAdd(item);
}
}
public void Clear()
{
_value.Clear();
}
public bool Contains(T item)
{
return _value.Contains(item);
}
public void CopyTo(T[] array, int arrayIndex)
{
_value.CopyTo(array, arrayIndex);
}
public bool Remove(T item)
{
if (_value.Remove(item))
{
if (OnRemove != null)
{
OnRemove(item);
}
return true;
}
return false;
}
public int Count
{
get { return _value.Count; }
}
public bool IsReadOnly { get; private set; }
public int IndexOf(T item)
{
return _value.IndexOf(item);
}
public void Insert(int index, T item)
{
_value.Insert(index,item);
if (OnInsert!=null)
{
OnInsert(index, item);
}
}
public void RemoveAt(int index)
{
_value.RemoveAt(index);
}
public T this[int index]
{
get { return _value[index]; }
set { _value[index] = value; }
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 305a956d4073d254992136a1db512305
timeCreated: 1490715195
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,74 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using uMVVM.Sources.Infrastructure;
using UnityEditor;
namespace Assets.Sources.Core.DataBinding
{
public class PropertyBinder<T> where T:ViewModelBase
{
private delegate void BindHandler(T viewmodel);
private delegate void UnBindHandler(T viewmodel);
private readonly List<BindHandler> _binders=new List<BindHandler>();
private readonly List<UnBindHandler> _unbinders=new List<UnBindHandler>();
public void Add<TProperty>(string name,BindableProperty<TProperty>.ValueChangedHandler valueChangedHandler )
{
var fieldInfo = typeof(T).GetField(name, BindingFlags.Instance | BindingFlags.Public);
if (fieldInfo == null)
{
throw new Exception(string.Format("Unable to find bindableproperty field '{0}.{1}'", typeof(T).Name, name));
}
_binders.Add(viewmodel =>
{
GetPropertyValue<TProperty>(name, viewmodel, fieldInfo).OnValueChanged += valueChangedHandler;
});
_unbinders.Add(viewModel =>
{
GetPropertyValue<TProperty>(name, viewModel, fieldInfo).OnValueChanged -= valueChangedHandler;
});
}
private BindableProperty<TProperty> GetPropertyValue<TProperty>(string name, T viewModel,FieldInfo fieldInfo)
{
var value = fieldInfo.GetValue(viewModel);
BindableProperty<TProperty> bindableProperty = value as BindableProperty<TProperty>;
if (bindableProperty == null)
{
throw new Exception(string.Format("Illegal bindableproperty field '{0}.{1}' ", typeof(T).Name, name));
}
return bindableProperty;
}
public void Bind(T viewmodel)
{
if (viewmodel!=null)
{
for (int i = 0; i < _binders.Count; i++)
{
_binders[i](viewmodel);
}
}
}
public void Unbind(T viewmodel)
{
if (viewmodel!=null)
{
for (int i = 0; i < _unbinders.Count; i++)
{
_unbinders[i](viewmodel);
}
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: cbb3d28eb726afd46a3773a347e64b8c
timeCreated: 1490267903
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace uMVVM.Sources.Infrastructure
{
public class ViewModelBase
{
private bool _isInitialized;
public ViewModelBase ParentViewModel { get; set; }
public bool IsRevealed { get; private set; }
public bool IsRevealInProgress { get; private set; }
public bool IsHideInProgress { get; private set ; }
protected virtual void OnInitialize()
{
}
public virtual void OnStartReveal()
{
IsRevealInProgress = true;
//在开始显示的时候进行初始化操作
if (!_isInitialized)
{
OnInitialize();
_isInitialized = true;
}
}
public virtual void OnFinishReveal()
{
IsRevealInProgress = false;
IsRevealed = true;
}
public virtual void OnStartHide()
{
IsHideInProgress = true;
}
public virtual void OnFinishHide()
{
IsHideInProgress = false;
IsRevealed = false;
}
public virtual void OnDestory()
{
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1a070ca5270bd76409dd374c2273e41b
timeCreated: 1462850181
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using uMVVM.Sources.Infrastructure;
namespace Assets.Sources.Core.DataBinding
{
public static class ViewModelBaseExtensions
{
public static IEnumerable<T> Ancestors<T>(this ViewModelBase origin) where T : ViewModelBase
{
if (origin==null)
{
yield break;
}
var parentViewModel = origin.ParentViewModel;
while (parentViewModel!=null)
{
var castedViewModel = parentViewModel as T;
if (castedViewModel != null)
{
yield return castedViewModel;
}
parentViewModel = parentViewModel.ParentViewModel;
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: d035d403ab891344e84e5199e4e58cc6
timeCreated: 1490671823
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 395037f58851dbc46b162c16b8ab50c9
folderAsset: yes
timeCreated: 1490866455
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assets.Sources.Core.Factory
{
public enum FactoryType
{
Singleton,
Transient,
Pool
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 37f96d19cf677f44fb6ceee04d03d2b9
timeCreated: 1490874300
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assets.Sources.Core.Factory
{
public interface IObjectFactory
{
object AcquireObject(string className);
object AcquireObject(Type type);
object AcquireObject<TInstance>() where TInstance : class, new();
void ReleaseObject(object obj);
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5c08b770ca568c940bf9e8aae1615066
timeCreated: 1490866455
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,132 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Assets.Sources.Core.Infrastructure;
namespace Assets.Sources.Core.Factory
{
public class PoolObjectFactory : IObjectFactory
{
/// <summary>
/// 封装的PoolData
/// </summary>
private class PoolData
{
public bool InUse { get; set; }
public object Obj { get; set; }
}
private readonly List<PoolData> _pool;
private readonly int _max;
/// <summary>
/// 如果超过了容器大小,是否限制
/// </summary>
private readonly bool _limit;
public PoolObjectFactory(int max, bool limit)
{
_max = max;
_limit = limit;
_pool = new List<PoolData>();
}
private PoolData GetPoolData(object obj)
{
lock (_pool)
{
for (var i = 0; i < _pool.Count; i++)
{
var p = _pool[i];
if (p.Obj == obj)
{
return p;
}
}
}
return null;
}
/// <summary>
/// 获取对象池中的真正对象
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
private object GetObject(Type type)
{
lock (_pool)
{
if (_pool.Count > 0)
{
if (_pool[0].Obj.GetType() != type)
{
throw new Exception(string.Format("the Pool Factory only for Type :{0}", _pool[0].Obj.GetType().Name));
}
}
for (var i = 0; i < _pool.Count; i++)
{
var p = _pool[i];
if (!p.InUse)
{
p.InUse = true;
return p.Obj;
}
}
if (_pool.Count >= _max && _limit)
{
throw new Exception("max limit is arrived.");
}
object obj = Activator.CreateInstance(type, false);
var p1 = new PoolData
{
InUse = true,
Obj = obj
};
_pool.Add(p1);
return obj;
}
}
private void PutObject(object obj)
{
var p = GetPoolData(obj);
if (p != null)
{
p.InUse = false;
}
}
public object AcquireObject(Type type)
{
return GetObject(type);
}
public object AcquireObject(string className)
{
return AcquireObject(TypeFinder.ResolveType(className));
}
public object AcquireObject<TInstance>() where TInstance : class, new()
{
return AcquireObject(typeof(TInstance));
}
public void ReleaseObject(object obj)
{
if (_pool.Count > _max)
{
if (obj is IDisposable)
{
((IDisposable)obj).Dispose();
}
var p = GetPoolData(obj);
lock (_pool)
{
_pool.Remove(p);
}
return;
}
PutObject(obj);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 644f9ab715df8b44192a90b603f638b4
timeCreated: 1490866455
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,69 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Assets.Sources.Core.Infrastructure;
namespace Assets.Sources.Core.Factory
{
public class SingletonObjectFactory:IObjectFactory
{
/// <summary>
/// 共享的字典不会因为不同的SingletonObjectFactory对象返回不唯一的实例对象
/// </summary>
private static Dictionary<Type,object> _cachedObjects = null;
private static readonly object _lock=new object();
private Dictionary<Type, object> CachedObjects
{
get
{
lock (_lock)
{
if (_cachedObjects==null)
{
_cachedObjects=new Dictionary<Type, object>();
}
return _cachedObjects;
}
}
}
public object AcquireObject(string className)
{
return AcquireObject(TypeFinder.ResolveType(className));
}
public object AcquireObject(Type type)
{
if (CachedObjects.ContainsKey(type))
{
return CachedObjects[type];
}
lock (_lock)
{
CachedObjects.Add(type,Activator.CreateInstance(type,false));
return CachedObjects[type];
}
}
public object AcquireObject<TInstance>() where TInstance:class,new()
{
var type = typeof(TInstance);
if (CachedObjects.ContainsKey(type))
{
return CachedObjects[type];
}
lock (_lock)
{
var instance=new TInstance();
CachedObjects.Add(type, instance);
return CachedObjects[type];
}
}
public void ReleaseObject(object obj)
{
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5068147eb6b07a741877fc3dccfbaf17
timeCreated: 1490866455
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,30 @@
using System;
using Assets.Sources.Core.Infrastructure;
namespace Assets.Sources.Core.Factory
{
public class TransientObjectFactory : IObjectFactory
{
public object AcquireObject(string className)
{
return AcquireObject(TypeFinder.ResolveType(className));
}
public object AcquireObject(Type type)
{
var obj = Activator.CreateInstance(type, false);
return obj;
}
public object AcquireObject<TInstance>() where TInstance : class, new()
{
var instance = new TInstance();
return instance;
}
public void ReleaseObject(object obj)
{
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4909cc92ac1d01248b885b2dcb8fe8e8
timeCreated: 1490866455
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: cf587652ee240da47b8b04b6bd0b0101
folderAsset: yes
timeCreated: 1490506711
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
namespace Assets.Sources.Core.Infrastructure
{
public class HexConverter
{
// Note that Color32 and Color implictly convert to each other. You may pass a Color object to this method without first casting it.
public static string ColorToHex(Color32 color)
{
string hex = color.r.ToString("X2") + color.g.ToString("X2") + color.b.ToString("X2") + color.a.ToString("X2");
return hex;
}
public static Color HexToColor(string hex)
{
hex = hex.Replace("0x", "");//in case the string is formatted 0xFFFFFF
hex = hex.Replace("#", "");//in case the string is formatted #FFFFFF
byte a = 255;//assume fully visible unless specified in hex
byte r = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
byte g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
byte b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
//Only use alpha if the string has enough characters
if (hex.Length == 8)
{
a = byte.Parse(hex.Substring(6, 2), System.Globalization.NumberStyles.HexNumber);
}
return new Color32(r, g, b, a);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 8624bc005fb30a3479b9e5ea4c2eb5cd
timeCreated: 1490604395
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assets.Sources.Core.Infrastructure
{
public enum HttpMethod
{
Get,
Post
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 3745aa66047e47c4bb97f1218434cfcf
timeCreated: 1496579321
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assets.Sources.Core.Infrastructure
{
public class HttpUtility
{
public static string BuildParameters<T>(T instance, StringBuilder sb) where T:class,new()
{
foreach (var property in instance.GetType().GetProperties())
{
var propertyName = property.Name;
var value = property.GetValue(instance, null);
sb.Append(propertyName + "=" + value + "&");
}
return sb.ToString().TrimEnd('&');
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: fefd1d4b16c78b14982b1e304f7357a9
timeCreated: 1496829504
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assets.Sources.Core.Infrastructure
{
public interface ISerializer
{
string Serialize<T>(T obj, bool readableOutput = false) where T : class, new();
T Deserialize<T>(string json) where T : class, new();
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b621a83bc270c884690ec68e3d9e2887
timeCreated: 1490595769
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,45 @@
using System;
using System.Security.Cryptography;
using System.Text;
namespace uMVVM.Sources.Infrastructure
{
public class MD5Helper
{
public static string GetMd5Hash(MD5 md5Hash, string input)
{
// Convert the input string to a byte array and compute the hash.
var data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
// Create a new Stringbuilder to collect the bytes
// and create a string.
var sBuilder = new StringBuilder();
// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for (var i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
// Return the hexadecimal string.
return sBuilder.ToString();
}
// Verify a hash against a string.
public static bool VerifyMd5Hash(MD5 md5Hash, string input, string hash)
{
// Hash the input.
var hashOfInput = GetMd5Hash(md5Hash, input);
// Create a StringComparer an compare the hashes.
var comparer = StringComparer.OrdinalIgnoreCase;
if (0 == comparer.Compare(hashOfInput, hash))
{
return true;
}
return false;
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 726a141a3a8d2154e8843764e05864a9
timeCreated: 1496842299
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assets.Sources.Core.Repository
{
[AttributeUsage(AttributeTargets.Property)]
public class RepositoryKey : Attribute
{
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 53cf2435a0fc3d04d97d28756d3fecbd
timeCreated: 1490926260
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assets.Sources.Core.Infrastructure
{
[System.Serializable]
public class Response<T>
{
public List<T> Items;
public T Item
{
get
{
if (Items != null && Items.Count == 1)
{
return Items[0];
}
return default(T);
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 24fca29aef4026c4bbfc810afc92cad1
timeCreated: 1496829504
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 17a61c72a282fdd428bbc014915c5649
timeCreated: 1490926770
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
namespace Assets.Sources.Core.Infrastructure
{
public class SerializerJson:ISerializer
{
public static readonly SerializerJson Instance=new SerializerJson();
private SerializerJson()
{
}
public string Serialize<T>(T obj, bool readableOutput = false) where T : class, new()
{
throw new NotImplementedException();
}
public T Deserialize<T>(string json) where T : class, new()
{
return JsonUtility.FromJson<T>(json);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 3baccd95e1e28204ea205fc38ee45a96
timeCreated: 1496839397
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,73 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using UnityEngine;
namespace Assets.Sources.Core.Infrastructure
{
public class SerializerXml : ISerializer
{
public static readonly SerializerXml Instance = new SerializerXml();
private readonly XmlWriterSettings _settingsForCompactOutput = new XmlWriterSettings()
{
OmitXmlDeclaration = true
};
private readonly XmlWriterSettings _settingsForReadableOutput = new XmlWriterSettings
{
OmitXmlDeclaration = true,
Indent = true,
IndentChars = " ",
NewLineChars = "\r\n",
NewLineHandling = NewLineHandling.Replace
};
public static readonly List<Type> ExtraTypes = new List<Type>();
public string Serialize<T>(T obj, bool readableOutput = false) where T : class, new()
{
try
{
var xmlSerializer = new XmlSerializer(obj.GetType(), ExtraTypes.ToArray());
using (StringWriter writer = new StringWriter())
{
XmlWriterSettings settings = (readableOutput ? _settingsForReadableOutput : _settingsForCompactOutput);
using (XmlWriter xmlWriter = XmlWriter.Create(writer, settings))
{
xmlSerializer.Serialize(xmlWriter, obj);
string xml = writer.ToString();
return xml;
}
}
}
catch (Exception e)
{
Debug.LogError("Unable to serialize ");
throw new Exception(e.ToString());
}
}
public T Deserialize<T>(string xml) where T : class, new()
{
try
{
var xmlSerializer = new XmlSerializer(typeof(T));
using (TextReader reader = new StringReader(xml))
{
T obj = (T)xmlSerializer.Deserialize(reader);
return obj;
}
}
catch (Exception e)
{
Debug.LogError("Unable to deserialize");
throw new Exception(e.ToString());
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5b06cdf6fac92f747a3a3f7aa0566298
timeCreated: 1490926260
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
namespace Assets.Sources.Core.Infrastructure
{
/// <summary> /// 继承自该类,实现 Unity MonoBehaviour 单例模式. /// </summary>
public class Singleton<T>:MonoBehaviour where T:MonoBehaviour
{
private static T _instance;
private static bool _applicationIsQuitting=false;
protected Singleton()
{
}
public static T Instance
{
get
{
if (_instance==null && !_applicationIsQuitting)
{
_instance = Create();
}
return _instance;
}
}
private static T Create()
{
var go=new GameObject(typeof(T).Name,typeof(T));
DontDestroyOnLoad(go);
return go.GetComponent<T>();
}
protected virtual void OnApplicationQuit()
{
if (_instance == null) return;
Destroy(_instance.gameObject);
_instance = null;
}
protected virtual void OnDestory()
{
_applicationIsQuitting = true;
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: dc6c031c4e7724246a9e90086465cf05
timeCreated: 1496493131
licenseType: Pro
MonoImporter:
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