diff --git a/Assets/BallancePhysics/Plugins/iOS/libbphysics.dylib.meta b/Assets/BallancePhysics/Plugins/iOS/libbphysics.dylib.meta new file mode 100644 index 00000000..5419e071 --- /dev/null +++ b/Assets/BallancePhysics/Plugins/iOS/libbphysics.dylib.meta @@ -0,0 +1,80 @@ +fileFormatVersion: 2 +guid: 7c4b98d6754582045a268bd4f70dadc2 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + Exclude iOS: 0 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + iPhone: iOS + second: + enabled: 1 + settings: + AddToEmbeddedBinaries: true + CPU: ARM64 + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BallancePhysics/Plugins/macOS.meta b/Assets/BallancePhysics/Plugins/macOS.meta new file mode 100644 index 00000000..7ecd5594 --- /dev/null +++ b/Assets/BallancePhysics/Plugins/macOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc03573a49369aa4f8ed331c49334013 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/BallancePhysics/Plugins/macOS/libbphysics.dylib.meta b/Assets/BallancePhysics/Plugins/macOS/libbphysics.dylib.meta new file mode 100644 index 00000000..21ceb5ee --- /dev/null +++ b/Assets/BallancePhysics/Plugins/macOS/libbphysics.dylib.meta @@ -0,0 +1,80 @@ +fileFormatVersion: 2 +guid: 3e2077a93ef954e4aa4913cfab71129e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux64: 1 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 1 + Exclude iOS: 1 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: OSX + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + iPhone: iOS + second: + enabled: 0 + settings: + AddToEmbeddedBinaries: false + CPU: AnyCPU + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Game/Materials/Game/Floor_Side.mat b/Assets/Game/Materials/Game/Floor_Side.mat index 8624822b..e584a191 100644 --- a/Assets/Game/Materials/Game/Floor_Side.mat +++ b/Assets/Game/Materials/Game/Floor_Side.mat @@ -79,7 +79,7 @@ Material: - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _AmbientColor: {r: 0.254717, g: 0.254717, b: 0.254717, a: 1} + - _AmbientColor: {r: 0.3137255, g: 0.3137255, b: 0.3137255, a: 1} - _Color: {r: 1, g: 1, b: 1, a: 1} - _Emission: {r: 0.1981132, g: 0.1981132, b: 0.1981132, a: 1} - _EmissionColor: {r: 0.40784314, g: 0.40784314, b: 0.40784314, a: 1} diff --git a/Assets/Game/Materials/Game/Modul_13_Metal.mat b/Assets/Game/Materials/Game/Modul_13_Metal.mat index 0f693f42..aa50fb85 100644 --- a/Assets/Game/Materials/Game/Modul_13_Metal.mat +++ b/Assets/Game/Materials/Game/Modul_13_Metal.mat @@ -79,7 +79,7 @@ Material: - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _AmbientColor: {r: 0, g: 0, b: 0, a: 1} + - _AmbientColor: {r: 0.11320752, g: 0.11320752, b: 0.11320752, a: 1} - _Color: {r: 1, g: 1, b: 1, a: 1} - _Emission: {r: 0.254717, g: 0.254717, b: 0.254717, a: 1} - _EmissionColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 1} diff --git a/Assets/Game/PackageDef.xml b/Assets/Game/PackageDef.xml index ea89dc85..e03be0fa 100644 --- a/Assets/Game/PackageDef.xml +++ b/Assets/Game/PackageDef.xml @@ -3,17 +3,14 @@ Ballance Core Ballance - Ballance 基础系统包,包含全部自带基础球与基础机关 - - Ballance 基础系统包,包含全部自带基础球与基础机关,是所有MOD的基础依赖,不可卸载。 - - PackageLogo.png + {core.package.Introduction} + {core.package.Description} https://imengyu.top/ballanceProject https://imengyu.top/ https://imengyu.top/ballanceProject/doc {internal.core.versionName} - + PackageEntry diff --git a/Assets/Game/PackageEntry.lua b/Assets/Game/PackageEntry.lua index cd4d4757..da388c06 100644 --- a/Assets/Game/PackageEntry.lua +++ b/Assets/Game/PackageEntry.lua @@ -14,5 +14,5 @@ return { CoreUnload() return true end, - PackageVersion = 16, + PackageVersion = 17, } diff --git a/Assets/Game/PackageLanguageRes.xml b/Assets/Game/PackageLanguageRes.xml index b380b055..e0d50773 100644 --- a/Assets/Game/PackageLanguageRes.xml +++ b/Assets/Game/PackageLanguageRes.xml @@ -76,6 +76,7 @@ https://github.com/imengyu/ballance/issues/ 向我们反馈错误 游玩此关卡 预览此关卡 刷新 + 未知 文件不存在 正在加载,请稍后 在左侧选择一个你要加载的关卡 @@ -105,6 +106,16 @@ https://github.com/imengyu/ballance/issues/ 向我们反馈错误 不信任并删除 查看模组信息 此模组没有依赖额外的模组 + 访问项目主页 + 访问文档 + 访问作者主页 + 模组信息 + 模组简介 + 模组依赖的模组 + 包名 + 版本 + 作者 + 安装和更新时间 核心模组无法卸载或禁用 你希望卸载模组吗?它将立即从游戏中卸载。模组文件将被删除,无法恢复! 卸载模组提示 @@ -187,6 +198,7 @@ Ballance 平衡球 是一款滚球游戏。 Restart Level Quit Tip + Unknow Continue Back To Menu About Project @@ -240,10 +252,10 @@ Ballance 平衡球 是一款滚球游戏。 VeryHigh Ultra Level load failed - Level developer: you can press F12 to enter the console to view more error information. + Level developer: you can press F12 to open console to view more error information. Player: if this is a level made by a third party player, you can feed back error information to the producer. -If this is the game's own level, you can click "Submit bug" or visit -https://github.com/imengyu/ballance/issues/ Feedback errors to us +If this is the game's original level, you can click "Submit bug" or visit +https://github.com/imengyu/ballance/issues/ Feedback errors to us. Submit bug Copy error message @@ -258,13 +270,13 @@ https://github.com/imengyu/ballance/issues/ Feedback errors to us Loading, please wait Select a level you want to load on the left It looks like you haven't installed any custom levels. Visit the help documentation to learn how to install custom levels - This level does not rely on additional modules + This level does not rely on any additional modules This level depends on {0} additional modules and has been loaded successfully This level depends on {0} additional modules, {1} failed to load Try to enable all dependencies for this level All dependencies of level {0} ({1}) - Dependent version too low - Do not support automatic download or enable Depends now, please manually open or install. + Dependency version too low + We do not support automatic download or enable dependency now, please open or install manually. Enable all modules Disable all modules Save changes @@ -275,13 +287,23 @@ https://github.com/imengyu/ballance/issues/ Feedback errors to us Discard changes The module {0} was not found and does not appear to be installed here. Optional - This module does not depend on additional modules + This module does not depend on any additional modules Module {0} is trying to load a c# module. Do you want to allow it? - Module c# module has full file access rights. If allowed, this module will be able to access your personal files and modify the settings of your computer. Therefore, it is dangerous to load this module. Please confirm whether this module is officially downloaded before loading. If you do not trust this module, please do not load it. + Module in c# is poweful and dangerous. If allowed, this module will be able to access your personal files and modify the settings of your computer. Therefore, it is dangerous to load this module. Please confirm whether this module is officially downloaded before loading. If you do not trust this module, please do not load it. Trust and load Distrust Distrust and delete View module information + Visit project home page + Visit document page + Visit author's home page + Module information + Module introduction + Module dependencies + Package name + Version + Author + Installation and update time Core module cannot be uninstalled or disabled Do you want to uninstall the module? It will be uninstalled from the game immediately. The module file will be deleted and cannot be recovered! Uninstall module tip @@ -343,6 +365,7 @@ Quit the tutorial with "RETURN" ... 確定 + 未知 取消 重啓遊戲 继续 @@ -443,73 +466,84 @@ https://github.com/imengyu/ballance/issues/ 向我們迴響錯誤 不信任 不信任並删除 查看模組資訊 + 訪問項目主頁 + 訪問檔案 + 訪問作者主頁 + 模組資訊 + 模組簡介 + 模組依賴的模組 + 包名 + 版本 + 作者 + 安裝和更新時間 覈心模組無法卸載或禁用 你希望卸載模組嗎? 它將立即從遊戲中卸載。 模組檔案將被删除,無法恢復! 卸載模組提示 - 欢迎来到 Ballance! -游戏教程: -您可以随时使用“ESC”键停止或退出游戏。 -你可以按“回车”键继续游戏教程,或按“Q”键退出教程。 + 歡迎來到 Ballance! +遊戲教程: +您可以隨時使用“ESC”鍵停止或退出遊戲。 +你可以按“回車”鍵繼續遊戲教程,或按“Q”鍵退出教程。 + - 视图旋转: -按住左“SHIFT”键并使用“LEFT”或“RIGHT”箭头键将视图旋转90°。 + 視圖旋轉: +按住左“SHIFT”鍵並使用“LEFT”或“RIGHT”箭頭鍵將視圖旋轉90°。 -按“回车”键继续... +按“回車”鍵繼續… - 俯瞰视图: -按住“空格键”以升高摄像机,你可以看的更高。 + 俯瞰視圖: +按住“空白鍵”以升高攝像機,你可以看的更高。 -按“回车”键继续... +按“回車”鍵繼續… - 移动球: -请将视线转向前方,直到看到前面有两座塔楼的轨道。 -使用“箭头”键(不带“SHIFT”)向前、向后、向左和向右移动球。 + 移動球: +請將視線轉向前方,直到看到前面有兩座塔樓的軌道。 +使用“箭頭”鍵(不帶“SHIFT”)向前、向後、向左和向右移動球。 请沿着这条路走! - 额外生命球: -如果你从轨道上掉下来,你就会失去一条生命。你的剩余生命将显示在屏幕的右下角。通过碰撞“额外生命球”,你可以获得额外的生命。 + 額外生命球: +如果你從軌道上掉下來,你就會失去一條生命。 你的剩餘生命將顯示在荧幕的右下角。 通過碰撞“額外生命球”,你可以獲得額外的生命。 -按“回车”键继续... +按“回車”鍵繼續… - 变球器: -通过使用“变球器”,你可以改变球的材质。变球器显示的材料表示变球器的类型。 + 變球器: +通過使用“變球器”,你可以改變球的材質。 變球器顯示的資料表示變球器的類型。 -这是一个石质变球器。 +這是一個石質變球器。 -按“回车”键继续... +按“回車”鍵繼續… - 这个斜坡太陡了,不能用石球! + 這個斜坡太陡了,不能用石球! -找一个木制变球器,再试一次。 +找一個木制變球器,再試一次。 -提示:转动视图(SHIFT+LEFT/RIGHT),以获得更好的方向。向后滚动可能很危险! +提示:轉動視圖(SHIFT+LEFT/RIGHT),以獲得更好的方向。 向後滾動可能很危險! -按“回车”键继续... +按“回車”鍵繼續… - 额外分数球: + 額外分數球: -左边的显示屏显示的是你的实际时间点,在比赛中时间点会不断减少。你可以通过多拿一个分数球来提高分数。 +左邊的顯示幕顯示的是你的實際時間點,在比賽中時間點會不斷减少。 你可以通過多拿一個分數球來提高分數。 -按“回车”键继续... +按“回車”鍵繼續… - 检查点: + 檢查點: -这是你必须通过的第一个检查点。 +這是你必須通過的第一個檢查點。 -如果你在游戏中失去了生命,你可以从最后一个检查点继续游戏。 +如果你在遊戲中失去了生命,你可以從最後一個檢查點繼續遊戲。 -按“回车”键继续... +按“回車”鍵繼續… - 最后有一些提示: + 最後有一些提示: -如果你在某个时候遇到困难或需要一些技术帮助,请查看“Ballance HTML帮助”,它可以通过Windows开始菜单访问(不是在游戏期间!)。 +如果你在某個時候遇到困難或需要一些科技幫助,請查看“Ballance HTML幫助”,它可以通過Windows開始菜單訪問(不是在遊戲期間!)。 -额外提示:上面是原版提示。如果你遇到了游戏的BUG或是有新的建议,请前往项目 https://github.com/imengyu/ballance/issues/ 向我们提交 Issues 反馈错误。 +額外提示:上面是原版提示。 如果你遇到了遊戲的BUG或是有新的建議,請前往項目 https://github.com/imengyu/ballance/issues/ 向我們提交Issues迴響錯誤。 -欢迎前往 Ballance 吧讨论游戏! +歡迎前往Ballance吧討論遊戲! -按“回车”键退出教程... +按“回車”鍵退出教程… \ No newline at end of file diff --git a/Assets/Game/PackageLanguageResPre.xml b/Assets/Game/PackageLanguageResPre.xml new file mode 100644 index 00000000..6865a473 --- /dev/null +++ b/Assets/Game/PackageLanguageResPre.xml @@ -0,0 +1,14 @@ + + + Ballance 基础系统包,包含全部自带基础球与基础机关 + Ballance 基础系统包,包含全部自带基础球与基础机关,是所有MOD的基础依赖,不可卸载。 + + + Ballance Basic system package, including all basic balls and basic moduls. + Ballance The basic system package, including all basic balls and basic moduls, is the basic dependency of all MODS and cannot be unloaded. + + + Ballance 基礎系統包,包含全部自帶基礎球與基礎機關 + Ballance 基礎系統包,包含全部自帶基礎球與基礎機關,是所有MOD的基礎依賴,不可卸載。 + + \ No newline at end of file diff --git a/Assets/Game/PackageLanguageResPre.xml.meta b/Assets/Game/PackageLanguageResPre.xml.meta new file mode 100644 index 00000000..8b834b2e --- /dev/null +++ b/Assets/Game/PackageLanguageResPre.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0947985b67f1e2143bf9b4a777d95084 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Game/Prefabs/MenuLevel/GameMenuLevel.prefab b/Assets/Game/Prefabs/MenuLevel/GameMenuLevel.prefab index 121b55dc..6cd4694a 100644 --- a/Assets/Game/Prefabs/MenuLevel/GameMenuLevel.prefab +++ b/Assets/Game/Prefabs/MenuLevel/GameMenuLevel.prefab @@ -572,8 +572,6 @@ MonoBehaviour: componentClassVal: QuickOutline LuaPublicVars: [] ExecuteOrder: 100 - CreateStore: 0 - CreateActionStore: 0 DebugLoadScript: 0 ManualInputScript: 0 UpdateDelta: 0 @@ -1027,8 +1025,6 @@ MonoBehaviour: componentClassVal: QuickOutline LuaPublicVars: [] ExecuteOrder: 100 - CreateStore: 0 - CreateActionStore: 0 DebugLoadScript: 0 ManualInputScript: 0 UpdateDelta: 0 @@ -1841,8 +1837,6 @@ MonoBehaviour: componentClassVal: UnityEngine.Skybox LuaPublicVars: [] ExecuteOrder: 0 - CreateStore: 0 - CreateActionStore: 0 DebugLoadScript: 0 ManualInputScript: 0 UpdateDelta: 0 @@ -2965,7 +2959,7 @@ MeshRenderer: - {fileID: 2100000, guid: 58fb8afde889e3a47b0c0aa81369e51e, type: 2} - {fileID: 2100000, guid: 021e6d404dff278449c9a6ec25168d78, type: 2} - {fileID: 2100000, guid: f43392ce4e49f8a42afea694c4f24221, type: 2} - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 021e6d404dff278449c9a6ec25168d78, type: 2} - {fileID: 2100000, guid: dfdbf6b88917baf4a8268d4474f026a1, type: 2} m_StaticBatchInfo: firstSubMesh: 0 @@ -3668,8 +3662,6 @@ MonoBehaviour: componentClassVal: QuickOutline LuaPublicVars: [] ExecuteOrder: 100 - CreateStore: 0 - CreateActionStore: 0 DebugLoadScript: 0 ManualInputScript: 0 UpdateDelta: 0 diff --git a/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Paper.mat b/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Paper.mat index 66f32a29..40d29910 100644 --- a/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Paper.mat +++ b/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Paper.mat @@ -8,7 +8,7 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: I_Floor_Trafo_Paper - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Shader: {fileID: 4800000, guid: 3f618483035616b4ab7450077e0f0fc3, type: 3} m_ShaderKeywords: _EMISSION m_LightmapFlags: 0 m_EnableInstancingVariants: 0 @@ -61,6 +61,7 @@ Material: - _Cutoff: 0.5 - _DetailNormalMapScale: 1 - _DstBlend: 0 + - _Gloss: 0 - _GlossMapScale: 1 - _Glossiness: 0 - _GlossyReflections: 1 @@ -74,6 +75,9 @@ Material: - _UVSec: 0 - _ZWrite: 1 m_Colors: + - _AmbientColor: {r: 0, g: 0, b: 0, a: 1} - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Emission: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} - _EmissionColor: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} + - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Stone.mat b/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Stone.mat index 521c11c8..7450c207 100644 --- a/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Stone.mat +++ b/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Stone.mat @@ -8,7 +8,7 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: I_Floor_Trafo_Stone - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Shader: {fileID: 4800000, guid: 3f618483035616b4ab7450077e0f0fc3, type: 3} m_ShaderKeywords: _EMISSION m_LightmapFlags: 0 m_EnableInstancingVariants: 0 @@ -74,6 +74,8 @@ Material: - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 0.6799573, g: 0.754717, b: 0.7035137, a: 1} + - _AmbientColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Emission: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} - _EmissionColor: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Wood.mat b/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Wood.mat index 6a2dcedc..ef9c8220 100644 --- a/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Wood.mat +++ b/Assets/Game/Prefabs/MenuLevel/Materials/I_Floor_Trafo_Wood.mat @@ -8,7 +8,7 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: I_Floor_Trafo_Wood - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Shader: {fileID: 4800000, guid: 3f618483035616b4ab7450077e0f0fc3, type: 3} m_ShaderKeywords: _EMISSION m_LightmapFlags: 0 m_EnableInstancingVariants: 0 @@ -74,6 +74,8 @@ Material: - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 0.74509805, g: 0.74509805, b: 0.74509805, a: 1} + - _AmbientColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Emission: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} - _EmissionColor: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Game/Prefabs/UI/Comps/LicensesView.prefab b/Assets/Game/Prefabs/UI/Comps/LicensesView.prefab index 3f3897c2..8c89d2e4 100644 --- a/Assets/Game/Prefabs/UI/Comps/LicensesView.prefab +++ b/Assets/Game/Prefabs/UI/Comps/LicensesView.prefab @@ -128,7 +128,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, y: -260.9306} + m_AnchoredPosition: {x: 0, y: -277.96466} m_SizeDelta: {x: -15, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2807647604940549922 diff --git a/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManager.prefab b/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManager.prefab index e898b9ff..c06ed9f0 100644 --- a/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManager.prefab +++ b/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManager.prefab @@ -977,7 +977,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4929648224336437860, guid: 7b75ab1b54ff10c42baedf9c01273fc2, type: 3} propertyPath: m_SizeDelta.x - value: 182.7151 + value: 235.7268 objectReference: {fileID: 0} - target: {fileID: 4929648224336437860, guid: 7b75ab1b54ff10c42baedf9c01273fc2, type: 3} propertyPath: m_SizeDelta.y @@ -1013,7 +1013,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4929648224336437860, guid: 7b75ab1b54ff10c42baedf9c01273fc2, type: 3} propertyPath: m_AnchoredPosition.x - value: -105.93756 + value: -132.44336 objectReference: {fileID: 0} - target: {fileID: 4929648224336437860, guid: 7b75ab1b54ff10c42baedf9c01273fc2, type: 3} propertyPath: m_AnchoredPosition.y diff --git a/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManagerInfo.prefab b/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManagerInfo.prefab index ebfd9be2..a266bce5 100644 --- a/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManagerInfo.prefab +++ b/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManagerInfo.prefab @@ -90,7 +90,7 @@ GameObject: m_Component: - component: {fileID: 3558193766457469014} - component: {fileID: 2315324392554894780} - - component: {fileID: 3324407643552874729} + - component: {fileID: 6837220499803584816} m_Layer: 5 m_Name: Text m_TagString: Untagged @@ -126,7 +126,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1007053598776219981} m_CullTransparentMesh: 1 ---- !u!114 &3324407643552874729 +--- !u!114 &6837220499803584816 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -135,11 +135,11 @@ MonoBehaviour: m_GameObject: {fileID: 1007053598776219981} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.9433962, g: 0.9433962, b: 0.9433962, a: 1} + 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 @@ -148,10 +148,10 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 1 m_BestFit: 0 - m_MinSize: 10 + m_MinSize: 1 m_MaxSize: 40 m_Alignment: 3 m_AlignByGeometry: 0 @@ -159,7 +159,10 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6A21\u5757\u5305\u4F9D\u8D56" + m_Text: core.ui.PackageManagerPackageDependsTitle + m_ResourceKey: core.ui.PackageManagerPackageDependsTitle + m_DefaultString: core.ui.PackageManagerPackageDependsTitle + m_I18N: 1 --- !u!1 &1338224019408911202 GameObject: m_ObjectHideFlags: 0 @@ -216,7 +219,7 @@ GameObject: m_Component: - component: {fileID: 3715330489481786062} - component: {fileID: 2208646336497539107} - - component: {fileID: 7938845326648821194} + - component: {fileID: 6797485303306200448} m_Layer: 5 m_Name: Text m_TagString: Untagged @@ -252,7 +255,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3368164149007754694} m_CullTransparentMesh: 1 ---- !u!114 &7938845326648821194 +--- !u!114 &6797485303306200448 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -261,11 +264,11 @@ MonoBehaviour: m_GameObject: {fileID: 3368164149007754694} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.9433962, g: 0.9433962, b: 0.9433962, a: 1} + 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 @@ -274,10 +277,10 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 1 m_BestFit: 0 - m_MinSize: 10 + m_MinSize: 1 m_MaxSize: 40 m_Alignment: 0 m_AlignByGeometry: 0 @@ -285,7 +288,10 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6A21\u5757\u5305\u4FE1\u606F" + m_Text: core.ui.PackageManagerPackageInfoTitle + m_ResourceKey: core.ui.PackageManagerPackageInfoTitle + m_DefaultString: core.ui.PackageManagerPackageInfoTitle + m_I18N: 1 --- !u!1 &3407000872406341096 GameObject: m_ObjectHideFlags: 0 @@ -392,7 +398,7 @@ GameObject: m_Component: - component: {fileID: 8224286833927862827} - component: {fileID: 8012354895128841177} - - component: {fileID: 867733636684733677} + - component: {fileID: 3804704535377199046} m_Layer: 5 m_Name: LinkVisitSite m_TagString: Untagged @@ -417,8 +423,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 319.00003, y: -93.570206} - m_SizeDelta: {x: 95.13861, y: 18.148895} + m_AnchoredPosition: {x: 464.06, y: -93.570206} + m_SizeDelta: {x: 169, y: 18.1489} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8012354895128841177 CanvasRenderer: @@ -428,7 +434,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3607339828516256912} m_CullTransparentMesh: 0 ---- !u!114 &867733636684733677 +--- !u!114 &3804704535377199046 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -437,11 +443,11 @@ MonoBehaviour: m_GameObject: {fileID: 3607339828516256912} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.11743506, g: 0.54140437, b: 0.8584906, a: 1} + m_Color: {r: 0.20392156, g: 0.6043041, b: 1, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -455,13 +461,16 @@ MonoBehaviour: m_BestFit: 0 m_MinSize: 10 m_MaxSize: 40 - m_Alignment: 0 + m_Alignment: 4 m_AlignByGeometry: 0 - m_RichText: 0 + m_RichText: 1 m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u8BBF\u95EE\u9879\u76EE\u4E3B\u9875" + m_Text: core.ui.PackageManagerLinkVisitSite + m_ResourceKey: core.ui.PackageManagerLinkVisitSite + m_DefaultString: core.ui.PackageManagerLinkVisitSite + m_I18N: 1 --- !u!1 &4437186607832663621 GameObject: m_ObjectHideFlags: 0 @@ -472,7 +481,7 @@ GameObject: m_Component: - component: {fileID: 8477553235962835896} - component: {fileID: 1685330220910910703} - - component: {fileID: 6723705101114283208} + - component: {fileID: 2629652076992699127} m_Layer: 5 m_Name: LinkVisiAuthor m_TagString: Untagged @@ -497,8 +506,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 226, y: -93.570206} - m_SizeDelta: {x: 91.5132, y: 18.148895} + m_AnchoredPosition: {x: 312.81354, y: -93.570206} + m_SizeDelta: {x: 139.1931, y: 18.1489} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1685330220910910703 CanvasRenderer: @@ -508,7 +517,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4437186607832663621} m_CullTransparentMesh: 0 ---- !u!114 &6723705101114283208 +--- !u!114 &2629652076992699127 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -517,11 +526,11 @@ MonoBehaviour: m_GameObject: {fileID: 4437186607832663621} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.11743506, g: 0.54140437, b: 0.8584906, a: 1} + m_Color: {r: 0.20392156, g: 0.6043041, b: 1, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -535,13 +544,16 @@ MonoBehaviour: m_BestFit: 0 m_MinSize: 10 m_MaxSize: 40 - m_Alignment: 0 + m_Alignment: 4 m_AlignByGeometry: 0 - m_RichText: 0 + m_RichText: 1 m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u8BBF\u95EE\u4F5C\u8005\u4E3B\u9875" + m_Text: core.ui.PackageManagerLinkVisiAuthor + m_ResourceKey: core.ui.PackageManagerLinkVisiAuthor + m_DefaultString: core.ui.PackageManagerLinkVisiAuthor + m_I18N: 1 --- !u!1 &4750873995848041752 GameObject: m_ObjectHideFlags: 0 @@ -795,7 +807,7 @@ GameObject: m_Component: - component: {fileID: 6339799434414060760} - component: {fileID: 3689566135633551474} - - component: {fileID: 2713203503430226542} + - component: {fileID: 6623588000619280051} m_Layer: 5 m_Name: LinkVisitDoc m_TagString: Untagged @@ -820,8 +832,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 151.35999, y: -93.570206} - m_SizeDelta: {x: 66.84711, y: 18.148895} + m_AnchoredPosition: {x: 181.18, y: -93.570206} + m_SizeDelta: {x: 128.71, y: 18.1489} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3689566135633551474 CanvasRenderer: @@ -831,7 +843,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5026221092236355734} m_CullTransparentMesh: 0 ---- !u!114 &2713203503430226542 +--- !u!114 &6623588000619280051 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -840,11 +852,11 @@ MonoBehaviour: m_GameObject: {fileID: 5026221092236355734} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.11743506, g: 0.54140437, b: 0.8584906, a: 1} + m_Color: {r: 0.20392156, g: 0.6043041, b: 1, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -858,13 +870,16 @@ MonoBehaviour: m_BestFit: 0 m_MinSize: 10 m_MaxSize: 40 - m_Alignment: 0 + m_Alignment: 4 m_AlignByGeometry: 0 - m_RichText: 0 + m_RichText: 1 m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u8BBF\u95EE\u6587\u6863" + m_Text: core.ui.PackageManagerLinkVisitDoc + m_ResourceKey: core.ui.PackageManagerLinkVisitDoc + m_DefaultString: core.ui.PackageManagerLinkVisitDoc + m_I18N: 1 --- !u!1 &5145038699663561173 GameObject: m_ObjectHideFlags: 0 @@ -1064,7 +1079,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6A21\u5757\u5305\u8BF4\u660E\u6587\u5B57" + m_Text: Text --- !u!114 &1537866429997363037 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1165,7 +1180,7 @@ GameObject: m_Component: - component: {fileID: 8661218636114386092} - component: {fileID: 3929552540043305579} - - component: {fileID: 5006887958698740781} + - component: {fileID: 8737270227254644022} m_Layer: 5 m_Name: Text m_TagString: Untagged @@ -1201,7 +1216,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7971647092195922300} m_CullTransparentMesh: 1 ---- !u!114 &5006887958698740781 +--- !u!114 &8737270227254644022 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1210,11 +1225,11 @@ MonoBehaviour: m_GameObject: {fileID: 7971647092195922300} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.9433962, g: 0.9433962, b: 0.9433962, a: 1} + 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 @@ -1223,10 +1238,10 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 1 m_BestFit: 0 - m_MinSize: 10 + m_MinSize: 1 m_MaxSize: 40 m_Alignment: 3 m_AlignByGeometry: 0 @@ -1234,7 +1249,10 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6A21\u5757\u5305\u8BF4\u660E" + m_Text: core.ui.PackageManagerPackageIntroductionTitle + m_ResourceKey: core.ui.PackageManagerPackageIntroductionTitle + m_DefaultString: core.ui.PackageManagerPackageIntroductionTitle + m_I18N: 1 --- !u!1 &8476152238159757152 GameObject: m_ObjectHideFlags: 0 @@ -1667,6 +1685,10 @@ PrefabInstance: propertyPath: m_ReadOnly value: 1 objectReference: {fileID: 0} + - target: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + propertyPath: m_Placeholder + value: + objectReference: {fileID: 4590836493564400401} - target: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} propertyPath: m_TargetGraphic value: @@ -1779,8 +1801,52 @@ PrefabInstance: propertyPath: m_Text value: "\u672A\u77E5" objectReference: {fileID: 0} - m_RemovedComponents: [] + m_RemovedComponents: + - {fileID: 8868489735775207577, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + - {fileID: 7841337561336204235, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} +--- !u!1 &440735749876168464 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3192773861735761333, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + m_PrefabInstance: {fileID: 3049724460447216293} + m_PrefabAsset: {fileID: 0} +--- !u!114 &531750065734355481 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 440735749876168464} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7169812, g: 0.7169812, b: 0.7169812, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: core.ui.PackageManagerPackageAuthor + m_ResourceKey: core.ui.PackageManagerPackageAuthor + m_DefaultString: core.ui.PackageManagerPackageAuthor + m_I18N: 1 --- !u!114 &910405946076482538 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 2805924397415430479, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} @@ -1792,6 +1858,48 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &2992071551853036109 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 276748194762076392, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + m_PrefabInstance: {fileID: 3049724460447216293} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4590836493564400401 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2992071551853036109} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5471698, g: 0.5471698, b: 0.5471698, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: core.ui.Unknow + m_ResourceKey: core.ui.Unknow + m_DefaultString: core.ui.Unknow + m_I18N: 1 --- !u!114 &4421402011430194999 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} @@ -1827,6 +1935,10 @@ PrefabInstance: propertyPath: m_ReadOnly value: 1 objectReference: {fileID: 0} + - target: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + propertyPath: m_Placeholder + value: + objectReference: {fileID: 856105778914466356} - target: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} propertyPath: m_TargetGraphic value: @@ -1933,9 +2045,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8868489735775207577, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} propertyPath: m_Text - value: "\u672A\u77E5" + value: objectReference: {fileID: 0} - m_RemovedComponents: [] + m_RemovedComponents: + - {fileID: 8868489735775207577, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + - {fileID: 7841337561336204235, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} --- !u!114 &1632848887340037376 stripped MonoBehaviour: @@ -1948,6 +2062,48 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &2023995157798357498 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3192773861735761333, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + m_PrefabInstance: {fileID: 3484007334022679631} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7018771043992282947 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023995157798357498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7169812, g: 0.7169812, b: 0.7169812, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: core.ui.PackageManagerPackageInstallTime + m_ResourceKey: core.ui.PackageManagerPackageInstallTime + m_DefaultString: core.ui.PackageManagerPackageInstallTime + m_I18N: 1 --- !u!114 &2832935410944913885 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} @@ -1959,6 +2115,48 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &3715077382789479591 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 276748194762076392, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + m_PrefabInstance: {fileID: 3484007334022679631} + m_PrefabAsset: {fileID: 0} +--- !u!114 &856105778914466356 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3715077382789479591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5471698, g: 0.5471698, b: 0.5471698, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: core.ui.Unknow + m_ResourceKey: core.ui.Unknow + m_DefaultString: core.ui.Unknow + m_I18N: 1 --- !u!224 &6210281867210299799 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 7383357205461439960, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} @@ -2009,7 +2207,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3510988253724056833, guid: 38d86cc1785d7774f87dab7495bf034d, type: 3} propertyPath: m_AnchoredPosition.y - value: -240.5 + value: -238 objectReference: {fileID: 0} - target: {fileID: 3510995815674773279, guid: 38d86cc1785d7774f87dab7495bf034d, type: 3} propertyPath: m_Sprite @@ -2149,7 +2347,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8905980744782028926, guid: 38d86cc1785d7774f87dab7495bf034d, type: 3} propertyPath: m_Size - value: 0.9922945 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8905980744782028926, guid: 38d86cc1785d7774f87dab7495bf034d, type: 3} propertyPath: m_Value @@ -2361,6 +2559,10 @@ PrefabInstance: propertyPath: m_ReadOnly value: 1 objectReference: {fileID: 0} + - target: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + propertyPath: m_Placeholder + value: + objectReference: {fileID: 3854812533423316487} - target: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} propertyPath: m_TargetGraphic value: @@ -2467,15 +2669,59 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8868489735775207577, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} propertyPath: m_Text - value: "\u672A\u77E5" + value: objectReference: {fileID: 0} - m_RemovedComponents: [] + m_RemovedComponents: + - {fileID: 8868489735775207577, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + - {fileID: 7841337561336204235, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} --- !u!224 &1048230844254410568 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 7383357205461439960, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} m_PrefabInstance: {fileID: 7564609368788681360} m_PrefabAsset: {fileID: 0} +--- !u!1 &4951117133906200357 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3192773861735761333, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + m_PrefabInstance: {fileID: 7564609368788681360} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8061857784395230623 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4951117133906200357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7169812, g: 0.7169812, b: 0.7169812, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: core.ui.PackageManagerPackageName + m_ResourceKey: core.ui.PackageManagerPackageName + m_DefaultString: core.ui.PackageManagerPackageName + m_I18N: 1 --- !u!114 &5623379082028891103 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 2805924397415430479, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} @@ -2487,6 +2733,48 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &7723058871416910456 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 276748194762076392, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + m_PrefabInstance: {fileID: 7564609368788681360} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3854812533423316487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7723058871416910456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5471698, g: 0.5471698, b: 0.5471698, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: core.ui.Unknow + m_ResourceKey: core.ui.Unknow + m_DefaultString: core.ui.Unknow + m_I18N: 1 --- !u!114 &9219943404870696706 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} @@ -2517,6 +2805,10 @@ PrefabInstance: propertyPath: m_ReadOnly value: 1 objectReference: {fileID: 0} + - target: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + propertyPath: m_Placeholder + value: + objectReference: {fileID: 826684137542825562} - target: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} propertyPath: m_TargetGraphic value: @@ -2625,7 +2917,9 @@ PrefabInstance: propertyPath: m_Text value: "\u672A\u77E5" objectReference: {fileID: 0} - m_RemovedComponents: [] + m_RemovedComponents: + - {fileID: 8868489735775207577, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + - {fileID: 7841337561336204235, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} --- !u!224 &1386187360729777315 stripped RectTransform: @@ -2643,6 +2937,48 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &6414617512891077838 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3192773861735761333, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + m_PrefabInstance: {fileID: 8451653743689519483} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3146745058992675807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6414617512891077838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7169812, g: 0.7169812, b: 0.7169812, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: core.ui.PackageManagerPackageVersion + m_ResourceKey: core.ui.PackageManagerPackageVersion + m_DefaultString: core.ui.PackageManagerPackageVersion + m_I18N: 1 --- !u!114 &7080639121681476841 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1659916801191460242, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} @@ -2654,3 +2990,45 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &8547123222425952659 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 276748194762076392, guid: 60482dae29f31784dabab5006d3a7acd, type: 3} + m_PrefabInstance: {fileID: 8451653743689519483} + m_PrefabAsset: {fileID: 0} +--- !u!114 &826684137542825562 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8547123222425952659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01d6c0e7bae391c40a7009033c5ceb90, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5471698, g: 0.5471698, b: 0.5471698, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: core.ui.Unknow + m_ResourceKey: core.ui.Unknow + m_DefaultString: core.ui.Unknow + m_I18N: 1 diff --git a/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManagerTrust.prefab b/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManagerTrust.prefab index c6172000..7aa01416 100644 --- a/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManagerTrust.prefab +++ b/Assets/Game/Prefabs/UI/ManagerUI/PagePackageManagerTrust.prefab @@ -441,7 +441,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_SizeDelta.x - value: 223.65 + value: 302.7991 objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_SizeDelta.y @@ -477,7 +477,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_AnchoredPosition.y @@ -566,7 +566,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_SizeDelta.x - value: 223.65 + value: 302.7991 objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_SizeDelta.y @@ -602,7 +602,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 1.0000036 objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_AnchoredPosition.y @@ -691,7 +691,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_SizeDelta.x - value: 223.65 + value: 302.7991 objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_SizeDelta.y @@ -727,7 +727,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 1.0000036 objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_AnchoredPosition.y @@ -816,7 +816,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_SizeDelta.x - value: 223.65 + value: 302.7991 objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_SizeDelta.y @@ -852,7 +852,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 1.0000036 objectReference: {fileID: 0} - target: {fileID: 2163045131142455082, guid: c40ae3053d23f714491047c9cbd60554, type: 3} propertyPath: m_AnchoredPosition.y diff --git a/Assets/Game/Scripts/Debug/ModulDebug.lua b/Assets/Game/Scripts/Debug/ModulDebug.lua index 51e590bc..d071c76d 100644 --- a/Assets/Game/Scripts/Debug/ModulDebug.lua +++ b/Assets/Game/Scripts/Debug/ModulDebug.lua @@ -138,10 +138,6 @@ function ModulCustomDebug() button = ui.transform:Find('ButtonQuit'):GetComponent(UnityEngine.UI.Button) button.onClick:AddListener(function () ui.gameObject:SetActive(false) - - - - GameManager:QuitGame() end); button = ui.transform:Find('ButtonBackup'):GetComponent(UnityEngine.UI.Button) diff --git a/Assets/Game/Scripts/GamePlay/CamManager.lua b/Assets/Game/Scripts/GamePlay/CamManager.lua index 137cb75a..cb913125 100644 --- a/Assets/Game/Scripts/GamePlay/CamManager.lua +++ b/Assets/Game/Scripts/GamePlay/CamManager.lua @@ -322,9 +322,9 @@ function CamManager:SetTarget(target, noUpdatePos) if noUpdatePos then self.CamFollow:SetTargetWithoutUpdatePos(target) else - self.Target = target + self.CamFollow.Target = target end - self.CamFollow.Target = target + self.Target = target self.EventCamFollowTargetChanged:Emit(target) return self end diff --git a/Assets/Game/Scripts/LevelBuilder/LevelBuilder.lua b/Assets/Game/Scripts/LevelBuilder/LevelBuilder.lua index 909e079b..ee20da2a 100644 --- a/Assets/Game/Scripts/LevelBuilder/LevelBuilder.lua +++ b/Assets/Game/Scripts/LevelBuilder/LevelBuilder.lua @@ -477,9 +477,9 @@ function LevelBuilder:_LoadLevelInternal() body:EnableContractEventCallback() body.EnableCollisionEvent = true - body:AddCollDetection(GamePlay.BallSoundManager:GetSoundCollIDByName('WoodenFlap'), 0.2, 10, 0.5, 0.1) - body:AddCollDetection(GamePlay.BallSoundManager:GetSoundCollIDByName('Wood'), 0.2, 10, 0.5, 0.1) - body:AddCollDetection(GamePlay.BallSoundManager:GetSoundCollIDByName('WoodOnlyHit'), 0.2, 10, 0.5, 0.1) + body:AddCollDetection(GamePlay.BallSoundManager:GetSoundCollIDByName('WoodenFlap'), 0.1, 8, 0.5, 0.1) + body:AddCollDetection(GamePlay.BallSoundManager:GetSoundCollIDByName('Wood'), 0.1, 8, 0.5, 0.1) + body:AddCollDetection(GamePlay.BallSoundManager:GetSoundCollIDByName('WoodOnlyHit'), 0.1, 8, 0.5, 0.1) --撞击处理回调 ---@param col_id number ---@param speed_precent number diff --git a/Assets/Game/Scripts/Moduls/PE_Balloon.lua b/Assets/Game/Scripts/Moduls/PE_Balloon.lua index d321e208..6790a2e7 100644 --- a/Assets/Game/Scripts/Moduls/PE_Balloon.lua +++ b/Assets/Game/Scripts/Moduls/PE_Balloon.lua @@ -183,7 +183,7 @@ function PE_Balloon:Active() _SoundLastSector.spatialBlend = 0 _SoundLastSector:Play() - GamePlay.MusicManager:DisableInSec(15) + GamePlay.MusicManager:DisableInSec(70) Yield(WaitForSeconds(5)) --该音乐播放5秒后淡出 diff --git a/Assets/Game/Scripts/Native/Editor/Modding/PackagePacker.cs b/Assets/Game/Scripts/Native/Editor/Modding/PackagePacker.cs index b73844cf..906735c3 100644 --- a/Assets/Game/Scripts/Native/Editor/Modding/PackagePacker.cs +++ b/Assets/Game/Scripts/Native/Editor/Modding/PackagePacker.cs @@ -17,7 +17,6 @@ class PackagePacker private static string projModDirPath = ""; private static string projLogoFile = ""; private static string packPackageName = ""; - private static string packLogoName = ""; private static bool packShouldCompile = true; private static bool packContainCSharp = false; @@ -109,6 +108,7 @@ private static void DoSolvePackageDef(TextAsset packDefFile) projPath = Directory.GetCurrentDirectory().Replace("\\", "/") + "/"; projModDefFile = projPath + AssetDatabase.GetAssetPath(packDefFile); projModDirPath = projPath + Path.GetDirectoryName(AssetDatabase.GetAssetPath(packDefFile)); + projLogoFile = projModDirPath + Path.DirectorySeparatorChar + "PackageLogo.png"; //模块信息处理 XmlDocument packDefXmlDoc = new XmlDocument(); @@ -127,15 +127,6 @@ private static void DoSolvePackageDef(TextAsset packDefFile) if (attribute.Name == "packageName") packPackageName = attribute.Value; } - foreach (XmlNode nodec in node.ChildNodes) - { - if (nodec.Name == "Logo") - { - packLogoName = nodec.InnerText; - projLogoFile = projModDirPath + Path.DirectorySeparatorChar + nodec.InnerText; - break; - } - } break; } else if (node.Name == "CompileLuaCode") @@ -159,9 +150,12 @@ private static void DoSolveBallancePack(string dirTargetPath, string bundlePath, ZipUtils.AddFileToZip(zipStream, bundlePath + ".assetbundle.manifest", "/assets/" + Path.GetFileName(bundlePath) + ".assetbundle.manifest", ref crc); ZipUtils.AddFileToZip(zipStream, projModDefFile, projModDirPath.Length, ref crc); + //添加I18脚本 + var i18nRes = projModDirPath + Path.DirectorySeparatorChar + "PackageLanguageResPre.xml"; + if (File.Exists(i18nRes)) ZipUtils.AddFileToZip(zipStream, i18nRes, projModDirPath.Length, ref crc); + //添加logo图片 if (File.Exists(projLogoFile)) ZipUtils.AddFileToZip(zipStream, projLogoFile, projModDirPath.Length, ref crc); - else Debug.LogWarning("模块的 Logo 没有找到:" + projLogoFile); //添加lua代码 int i = 0, len = allLuaPath.Count; @@ -185,9 +179,19 @@ private static void DoSolveBallancePack(string dirTargetPath, string bundlePath, else ZipUtils.AddFileToZip(zipStream, path, "/class" + path.Substring(basePath.Length), ref crc); i++; } + //编译C#代码 if(packContainCSharp && allCsPath.Count > 0) { - //TODO: 编译C#代码 + EditorUtility.DisplayProgressBar("请稍后", "正在编译C#代码", 0.5F); + + if(CSharpCompiler.CompileToCsharpDll(packPackageName, projModDirPath + Path.DirectorySeparatorChar + "/Native", true)) { + var dll = projModDirPath + Path.DirectorySeparatorChar + "Native.dll"; + if (File.Exists(dll)) ZipUtils.AddFileToZip(zipStream, dll, projModDirPath.Length, ref crc); + } else { + Debug.LogError("编译 DLL 失败。"); + } + + EditorUtility.ClearProgressBar(); } zipStream.Finish(); diff --git a/Assets/Game/Scripts/Native/Editor/Modding/WindowPackageMaker.cs b/Assets/Game/Scripts/Native/Editor/Modding/WindowPackageMaker.cs index 054ebf52..31129a6c 100644 --- a/Assets/Game/Scripts/Native/Editor/Modding/WindowPackageMaker.cs +++ b/Assets/Game/Scripts/Native/Editor/Modding/WindowPackageMaker.cs @@ -160,8 +160,23 @@ private void Make() xml.Save(folderPath + "/PackageDef.xml"); - if(this.PackageType == GamePackageType.Module && GenEntryCodeTemplate) - File.Copy(GamePathManager.DEBUG_PACKAGE_FOLDER + "/template_PackageEntry.lua", folderPath + "/" + this.EntryCode); + if(this.PackageType == GamePackageType.Module && GenEntryCodeTemplate) { + File.Copy(GamePathManager.DEBUG_PACKAGE_FOLDER + "/template_PackageEntry.lua", folderPath + "/" + this.EntryCode); + if (this.ContainCSharp) { + Directory.CreateDirectory(folderPath + "/Native"); + File.WriteAllText(folderPath + "/Native/PackageEntry.cs", string.Format(@" +namespace {0} +{ + public class PackageEntry + { + public bool Main() { + //Your mod logic + return true; + } + } +}", modPackageName)); + } + } File.Copy(GamePathManager.DEBUG_PACKAGE_FOLDER + "/template_PackageLogo.png", folderPath + "/PackageLogo.png"); diff --git a/Assets/Game/Scripts/Native/Small/FreeCamera.cs b/Assets/Game/Scripts/Native/Small/FreeCamera.cs index 7d1b9530..ffb5e076 100644 --- a/Assets/Game/Scripts/Native/Small/FreeCamera.cs +++ b/Assets/Game/Scripts/Native/Small/FreeCamera.cs @@ -123,6 +123,9 @@ private void UpdateSkyBox() private bool moveCam = false; private Vector3 currentVelocity = Vector3.zero; private Camera mainCam; +#if (UNITY_IPHONE || UNITY_ANDROID) && !UNITY_EDITOR + private int lastDownTouchId = 0; +#endif private void Awake() { diff --git a/Assets/Game/Scripts/Native/UI/PackageManagerUIControl.cs b/Assets/Game/Scripts/Native/UI/PackageManagerUIControl.cs index a9de90c8..4ce80201 100644 --- a/Assets/Game/Scripts/Native/UI/PackageManagerUIControl.cs +++ b/Assets/Game/Scripts/Native/UI/PackageManagerUIControl.cs @@ -289,7 +289,7 @@ private void Save() { //保存状态 gamePackageManager.SavePackageRegisterInfo(); //重启游戏 - GameManager.Instance.QuitGame(); + GameManager.Instance.RestartGame(); } else { gameUIManager.BackPreviusPage(); } diff --git a/Assets/Game/Scripts/UI/SettingsUIControl.lua b/Assets/Game/Scripts/UI/SettingsUIControl.lua index 7d74c55c..803c7bcc 100644 --- a/Assets/Game/Scripts/UI/SettingsUIControl.lua +++ b/Assets/Game/Scripts/UI/SettingsUIControl.lua @@ -247,7 +247,7 @@ function BindSettingsUI(MessageCenter) end) --重启游戏 - MessageCenter:SubscribeEvent('BtnRestartGameClick', function () GameManager.Instance:QuitGame() end) + MessageCenter:SubscribeEvent('BtnRestartGameClick', function () GameManager.Instance:RestartGame() end) end \ No newline at end of file diff --git a/Assets/Packages/com.imengyu.demo/PackageDef.xml b/Assets/Packages/com.imengyu.demo/PackageDef.xml index 8628b5c5..bb679efd 100644 --- a/Assets/Packages/com.imengyu.demo/PackageDef.xml +++ b/Assets/Packages/com.imengyu.demo/PackageDef.xml @@ -1,11 +1,10 @@ - + 计时器模组 imengyu 一个计算并显示游戏过关时间的MOD 一个计算并显示游戏过关时间的MOD, 是Ballance重制版的示例MOD,你可以通过这个简单的MOD来了解如何制作MOD。]]> - PackageLogo.png https://github.com/imenmgyu/Ballanc https://imengyu.top https://github.com/imenmgyu/Ballance diff --git a/Assets/Packages/core.assets.skys/PackageDef.xml b/Assets/Packages/core.assets.skys/PackageDef.xml index b0247617..67d372bf 100644 --- a/Assets/Packages/core.assets.skys/PackageDef.xml +++ b/Assets/Packages/core.assets.skys/PackageDef.xml @@ -1,11 +1,10 @@ - 天空盒资源包 + {core.assets.skys.package.Name} Ballance - 天空盒资源包,包含原版游戏的12种天空盒 - 天空盒资源包,包含原版游戏的12种天空盒 - PackageLogo.jpg + {core.assets.skys.package.Introduction} + {core.assets.skys.package.Description} https://imengyu.top https://imengyu.top https://imengyu.top diff --git a/Assets/Packages/core.assets.skys/PackageDef.xml.meta b/Assets/Packages/core.assets.skys/PackageDef.xml.meta index 23dc58a4..5d257eb1 100644 --- a/Assets/Packages/core.assets.skys/PackageDef.xml.meta +++ b/Assets/Packages/core.assets.skys/PackageDef.xml.meta @@ -3,5 +3,5 @@ guid: 4214303064e6206478fca3962fc29055 TextScriptImporter: externalObjects: {} userData: - assetBundleName: - assetBundleVariant: + assetBundleName: core.assets.skys + assetBundleVariant: assetbundle diff --git a/Assets/Packages/core.assets.skys/PackageLanguageResPre.xml b/Assets/Packages/core.assets.skys/PackageLanguageResPre.xml new file mode 100644 index 00000000..6678dc0e --- /dev/null +++ b/Assets/Packages/core.assets.skys/PackageLanguageResPre.xml @@ -0,0 +1,17 @@ + + + 天空盒资源包 + 天空盒资源包,包含原版游戏的12种天空盒 + 天空盒资源包,包含原版游戏的12种天空盒 + + + Skybox resource pack + Sky box resource package, including 12 kinds of sky boxes of the original game + Sky box resource package, including 12 kinds of sky boxes of the original game + + + 天空盒資源包 + 天空盒資源包,包含原版遊戲的12種天空盒 + 天空盒資源包,包含原版遊戲的12種天空盒 + + \ No newline at end of file diff --git a/Assets/Packages/core.assets.skys/PackageLanguageResPre.xml.meta b/Assets/Packages/core.assets.skys/PackageLanguageResPre.xml.meta new file mode 100644 index 00000000..8ffce18e --- /dev/null +++ b/Assets/Packages/core.assets.skys/PackageLanguageResPre.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0923d98df8c8f0348b802fabe27d1036 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/core.assets.skys/PackageLogo.jpg b/Assets/Packages/core.assets.skys/PackageLogo.jpg deleted file mode 100644 index 7f0df73a..00000000 Binary files a/Assets/Packages/core.assets.skys/PackageLogo.jpg and /dev/null differ diff --git a/Assets/Packages/core.assets.skys/PackageLogo.png b/Assets/Packages/core.assets.skys/PackageLogo.png new file mode 100644 index 00000000..bcdba6ab Binary files /dev/null and b/Assets/Packages/core.assets.skys/PackageLogo.png differ diff --git a/Assets/Packages/core.assets.skys/PackageLogo.jpg.meta b/Assets/Packages/core.assets.skys/PackageLogo.png.meta similarity index 57% rename from Assets/Packages/core.assets.skys/PackageLogo.jpg.meta rename to Assets/Packages/core.assets.skys/PackageLogo.png.meta index 026fb299..613431b3 100644 --- a/Assets/Packages/core.assets.skys/PackageLogo.jpg.meta +++ b/Assets/Packages/core.assets.skys/PackageLogo.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: a6e882d8e8505d441b6dfa0f747130ae +guid: 1e8f885256d555849b63f65e8d6da910 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 10 + serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -23,6 +23,8 @@ TextureImporter: isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -31,16 +33,16 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: 1 - wrapV: 1 - wrapW: -1 - nPOTScale: 0 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 lightmap: 0 compressionQuality: 50 - spriteMode: 1 + spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -49,14 +51,18 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 1 + alphaIsTransparency: 0 spriteTessellationDetail: -1 - textureType: 8 + textureType: 0 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform @@ -70,55 +76,20 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: WebGL - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] outline: [] physicsShape: [] bones: [] - spriteID: 5e97eb03825dee720800000000000000 + spriteID: internalID: 0 vertices: [] indices: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Packages/core.sounds.music/PackageDef.xml b/Assets/Packages/core.sounds.music/PackageDef.xml index d11e2877..eccd9686 100644 --- a/Assets/Packages/core.sounds.music/PackageDef.xml +++ b/Assets/Packages/core.sounds.music/PackageDef.xml @@ -1,11 +1,10 @@ - 原版音乐包 + {core.sounds.music.package.Name} Ballance - 原版音乐资源包 - 原版音乐资源包, 包含原版游戏的全部背景音乐资源 - PackageLogo.jpg + {core.sounds.music.package.Introduction} + {core.sounds.music.package.Description} https://imengyu.top/ballanceProject https://imengyu.top/ballanceProject https://imengyu.top/ballanceProject diff --git a/Assets/Packages/core.sounds.music/PackageDef.xml.meta b/Assets/Packages/core.sounds.music/PackageDef.xml.meta index 7ce33302..c8d750a4 100644 --- a/Assets/Packages/core.sounds.music/PackageDef.xml.meta +++ b/Assets/Packages/core.sounds.music/PackageDef.xml.meta @@ -3,5 +3,5 @@ guid: 43ad64d293ebf3044b8979886f1dbeaf TextScriptImporter: externalObjects: {} userData: - assetBundleName: - assetBundleVariant: + assetBundleName: core.sounds.music + assetBundleVariant: assetbundle diff --git a/Assets/Packages/core.sounds.music/PackageLanguageResPre.xml b/Assets/Packages/core.sounds.music/PackageLanguageResPre.xml new file mode 100644 index 00000000..c892b03b --- /dev/null +++ b/Assets/Packages/core.sounds.music/PackageLanguageResPre.xml @@ -0,0 +1,17 @@ + + + 原版音乐包 + 原版音乐资源包 + 原版音乐资源包, 包含原版游戏的全部背景音乐资源 + + + Original music pack + Original music resource pack + This is ballance's original music resource package, which contains all the background music resources of the original game + + + 原版音樂包 + 原版音樂資源包 + 原版音樂資源包,包含原版遊戲的全部背景音樂資源 + + \ No newline at end of file diff --git a/Assets/Packages/core.sounds.music/PackageLanguageResPre.xml.meta b/Assets/Packages/core.sounds.music/PackageLanguageResPre.xml.meta new file mode 100644 index 00000000..cec4200f --- /dev/null +++ b/Assets/Packages/core.sounds.music/PackageLanguageResPre.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 89007c666c85c5040ac2e10e4850ddb6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/core.sounds.music/PackageLogo.jpg.meta b/Assets/Packages/core.sounds.music/PackageLogo.jpg.meta index 098fe6eb..40725f2b 100644 --- a/Assets/Packages/core.sounds.music/PackageLogo.jpg.meta +++ b/Assets/Packages/core.sounds.music/PackageLogo.jpg.meta @@ -24,6 +24,7 @@ TextureImporter: streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -32,12 +33,12 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: -1 - wrapV: -1 - wrapW: -1 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 nPOTScale: 1 lightmap: 0 compressionQuality: 50 @@ -88,9 +89,10 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 userData: - assetBundleName: - assetBundleVariant: + assetBundleName: core.sounds.music + assetBundleVariant: assetbundle diff --git a/Assets/Packages/core.sounds/PackageDef.xml b/Assets/Packages/core.sounds/PackageDef.xml index a0fb4d04..0057d461 100644 --- a/Assets/Packages/core.sounds/PackageDef.xml +++ b/Assets/Packages/core.sounds/PackageDef.xml @@ -1,13 +1,10 @@ - 声音资源包 + {core.sounds.package.Name} Ballance - 声音资源包 - - 声音资源包。包含原版游戏的全部游戏音效。 - - PackageLogo.png + {core.sounds.package.Introduction} + {core.sounds.package.Description} https://imengyu.top/ballanceProject https://imengyu.top/ballanceProject https://imengyu.top/ballanceProject diff --git a/Assets/Packages/core.sounds/PackageDef.xml.meta b/Assets/Packages/core.sounds/PackageDef.xml.meta index 5e14f7bf..a95ec909 100644 --- a/Assets/Packages/core.sounds/PackageDef.xml.meta +++ b/Assets/Packages/core.sounds/PackageDef.xml.meta @@ -3,5 +3,5 @@ guid: 06e0093e996bae748bc95a3a70d3155f TextScriptImporter: externalObjects: {} userData: - assetBundleName: - assetBundleVariant: + assetBundleName: core.sounds + assetBundleVariant: assetbundle diff --git a/Assets/Packages/core.sounds/PackageLanguageResPre.xml b/Assets/Packages/core.sounds/PackageLanguageResPre.xml new file mode 100644 index 00000000..40ffb698 --- /dev/null +++ b/Assets/Packages/core.sounds/PackageLanguageResPre.xml @@ -0,0 +1,17 @@ + + + 声音资源包 + 声音资源包 + 声音资源包。包含原版游戏的全部游戏音效。 + + + Sound resource package + Sound resource package + Sound resource pack. Contains all the game sound effects of the original game. + + + 聲音資源包 + 聲音資源包 + 聲音資源包。 包含原版遊戲的全部遊戲音效。 + + \ No newline at end of file diff --git a/Assets/Packages/core.sounds/PackageLanguageResPre.xml.meta b/Assets/Packages/core.sounds/PackageLanguageResPre.xml.meta new file mode 100644 index 00000000..911b120e --- /dev/null +++ b/Assets/Packages/core.sounds/PackageLanguageResPre.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b1f7934624c6cc44c84cafbfc7f4a09b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/core.sounds/PackageLogo.png.meta b/Assets/Packages/core.sounds/PackageLogo.png.meta index 8c404dcb..f42c93f4 100644 --- a/Assets/Packages/core.sounds/PackageLogo.png.meta +++ b/Assets/Packages/core.sounds/PackageLogo.png.meta @@ -24,6 +24,7 @@ TextureImporter: streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -32,12 +33,12 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: -1 - wrapV: -1 - wrapW: -1 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 nPOTScale: 1 lightmap: 0 compressionQuality: 50 @@ -88,9 +89,10 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 userData: - assetBundleName: - assetBundleVariant: + assetBundleName: core.sounds + assetBundleVariant: assetbundle diff --git a/Assets/Packages/template_PackageDef.xml b/Assets/Packages/template_PackageDef.xml index d70d3c49..8ab238bd 100644 --- a/Assets/Packages/template_PackageDef.xml +++ b/Assets/Packages/template_PackageDef.xml @@ -22,7 +22,6 @@ 一个模块]]> - PackageLogo.png https://yourwebsite.com https://yourwebsite.com https://yourwebsite.com @@ -64,6 +63,7 @@ Module diff --git a/Assets/Scenes/MainScense.unity b/Assets/Scenes/MainScense.unity index 77ee9302..142171b2 100644 --- a/Assets/Scenes/MainScense.unity +++ b/Assets/Scenes/MainScense.unity @@ -274,6 +274,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 2024946136} m_Modifications: + - target: {fileID: 3715326137320221484, guid: bd7e600d2cecbdd44ae3131bb1544ec5, type: 3} + propertyPath: m_Text + value: + objectReference: {fileID: 0} - target: {fileID: 7059145561469175277, guid: bd7e600d2cecbdd44ae3131bb1544ec5, type: 3} propertyPath: m_Name value: GameGlobalIngameLoading @@ -694,7 +698,7 @@ MonoBehaviour: DebugSetFrameRate: 1 DebugEnableLuaDebugger: 0 DebugLuaDebugger: 1 - DebugType: 2 + DebugType: 0 DebugInitPackages: - Enable: 1 PackageName: core.sounds diff --git a/Assets/System/Resources/SystemPackageDef.xml b/Assets/System/Resources/SystemPackageDef.xml index 0ea6280e..ae28a58a 100644 --- a/Assets/System/Resources/SystemPackageDef.xml +++ b/Assets/System/Resources/SystemPackageDef.xml @@ -3,11 +3,8 @@ System Core Ballance - 基础游戏系统包 - - 基础游戏系统包。Ballance System 基础代码,是所有MOD的基础依赖,不可卸载。 - - PackageLogo.png + Basic game system package + Ballance system basic code is the basic dependency of all MODS and cannot be uninstalled. https://imengyu.top/ballanceProject https://imengyu.top/ https://imengyu.top/ballanceProject/doc diff --git a/Assets/System/Scripts/Config/GameConst.cs b/Assets/System/Scripts/Config/GameConst.cs index 7189050d..6a716381 100644 --- a/Assets/System/Scripts/Config/GameConst.cs +++ b/Assets/System/Scripts/Config/GameConst.cs @@ -24,17 +24,17 @@ public static class GameConst /// 游戏版本 /// [LuaApiDescription("游戏版本")] - public const string GameVersion = "0.9.1"; + public const string GameVersion = "0.9.3"; /// /// 游戏编译版本 /// [LuaApiDescription("游戏编译版本")] - public const int GameBulidVersion = 16; + public const int GameBulidVersion = 17; /// /// 游戏编译版本 /// [LuaApiDescription("游戏编译版本")] - public const string GameBulidDate = "2022.04.24"; + public const string GameBulidDate = "2022.05.03"; #region Unity 环境静态常量 diff --git a/Assets/System/Scripts/Editor/CSharp.meta b/Assets/System/Scripts/Editor/CSharp.meta new file mode 100644 index 00000000..6b2e1ea4 --- /dev/null +++ b/Assets/System/Scripts/Editor/CSharp.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 43cabc246f5818a4c9075182c58a5236 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/System/Scripts/Editor/CSharp/CSharpCompiler.cs b/Assets/System/Scripts/Editor/CSharp/CSharpCompiler.cs new file mode 100644 index 00000000..e6b88630 --- /dev/null +++ b/Assets/System/Scripts/Editor/CSharp/CSharpCompiler.cs @@ -0,0 +1,81 @@ +using System.Text; +using System.IO; +using Ballance2.Utils; +using UnityEditor; +using UnityEngine; + +namespace Ballance2.Editor.Lua +{ + public static class CSharpCompiler + { + public static bool CompileToCsharpDll(string dllName, string sourceDir, bool withDebugInfo) + { + var argument = string.Format("/target:library /out:{0}.dll /warn:0{1} /nologo *.cs", dllName, withDebugInfo ? "" : " /debug"); + + #region Process + StringBuilder output = new StringBuilder(); + StringBuilder error = new StringBuilder(); + bool success = false; + try + { + var process = new System.Diagnostics.Process(); + process.StartInfo.FileName = "csc"; + process.StartInfo.Arguments = argument; + process.StartInfo.WorkingDirectory = sourceDir; + process.StartInfo.UseShellExecute = false; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.RedirectStandardError = true; + process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; + + using (var outputWaitHandle = new System.Threading.AutoResetEvent(false)) + using (var errorWaitHandle = new System.Threading.AutoResetEvent(false)) + { + process.OutputDataReceived += (sender, e) => + { + if (e.Data == null) + { + outputWaitHandle.Set(); + } + else + { + output.AppendLine(e.Data); + } + }; + process.ErrorDataReceived += (sender, e) => + { + if (e.Data == null) + { + errorWaitHandle.Set(); + } + else + { + error.AppendLine(e.Data); + } + }; + // http://stackoverflow.com/questions/139593/processstartinfo-hanging-on-waitforexit-why + process.Start(); + + process.BeginOutputReadLine(); + process.BeginErrorReadLine(); + + const int timeout = 30; + if (process.WaitForExit(timeout * 1000) && + outputWaitHandle.WaitOne(timeout * 1000) && + errorWaitHandle.WaitOne(timeout * 1000)) + { + success = (process.ExitCode == 0); + } + } + } + catch (System.Exception ex) + { + Debug.LogError("Exception: " + ex.ToString()); + } + if (!success) + Debug.LogError(error.ToString()); + #endregion + + return success; + } + } +} \ No newline at end of file diff --git a/Assets/System/Scripts/Editor/CSharp/CSharpCompiler.cs.meta b/Assets/System/Scripts/Editor/CSharp/CSharpCompiler.cs.meta new file mode 100644 index 00000000..39d16f0d --- /dev/null +++ b/Assets/System/Scripts/Editor/CSharp/CSharpCompiler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a52a0e193423fe04bb9f7a69a1154b27 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/System/Scripts/GameSystem.cs b/Assets/System/Scripts/GameSystem.cs index ff638c1f..eaf11e5b 100644 --- a/Assets/System/Scripts/GameSystem.cs +++ b/Assets/System/Scripts/GameSystem.cs @@ -301,12 +301,12 @@ public static void Destroy() if (IsRestart) { - System.GC.Collect(); - PreInit(); - IsRestart = false; - Init(); + //Restart game + #if UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX + System.Diagnostics.Process.Start(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName); + #endif } - else QuitPlayer(); + QuitPlayer(); } } /// diff --git a/Assets/System/Scripts/Package/EditorOnly/GameEditorCorePackage.cs b/Assets/System/Scripts/Package/EditorOnly/GameEditorCorePackage.cs index 360b2cb4..b22c7adc 100644 --- a/Assets/System/Scripts/Package/EditorOnly/GameEditorCorePackage.cs +++ b/Assets/System/Scripts/Package/EditorOnly/GameEditorCorePackage.cs @@ -7,6 +7,7 @@ using System.Xml; using Ballance2.Services.Debug; using Ballance2.Services; +using Ballance2.Res; /* * Copyright(c) 2021 mengyu @@ -30,5 +31,8 @@ public GameEditorCorePackage(string packageRealPath) { PackageName = GamePackageManager.CORE_PACKAGE_NAME; PackageFilePath = packageRealPath; } + + protected override string DebugFolder => GamePathManager.DEBUG_CORE_FOLDER; + } } diff --git a/Assets/System/Scripts/Package/EditorOnly/GameEditorDebugPackage.cs b/Assets/System/Scripts/Package/EditorOnly/GameEditorDebugPackage.cs index 53748b0c..08a29b77 100644 --- a/Assets/System/Scripts/Package/EditorOnly/GameEditorDebugPackage.cs +++ b/Assets/System/Scripts/Package/EditorOnly/GameEditorDebugPackage.cs @@ -50,12 +50,23 @@ public override async Task LoadInfo(string filePath) { PackageDef = new XmlDocument(); PackageDef.Load(defPath); + XmlNode nodePackage = PackageDef.SelectSingleNode("Package"); + XmlAttribute attributeName = nodePackage.Attributes["name"]; + PackageName = attributeName.Value; } catch (Exception e) { GameErrorChecker.SetLastErrorAndLog(GameError.PackageIncompatible, TAG, "Format error in PackageDef.xml : " + e); return false; } + try + { + PreLoadI18NResource(null); + } + catch (Exception e) + { + Log.W(TAG, "Pre load language failed : " + e); + } UpdateTime = File.GetLastWriteTime(defPath); if(ReadInfo(PackageDef)) { @@ -162,6 +173,9 @@ public override Assembly LoadCodeCSharp(string pathorname) } return base.LoadCodeCSharp(pathorname); } + + protected virtual string DebugFolder => GamePathManager.DEBUG_PACKAGE_FOLDER; + public override T GetAsset(string pathorname) { #if UNITY_EDITOR @@ -169,7 +183,11 @@ public override T GetAsset(string pathorname) return UnityEditor.AssetDatabase.LoadAssetAtPath(pathorname); else { - var asset = UnityEditor.AssetDatabase.LoadAssetAtPath(GamePathManager.DEBUG_PACKAGE_FOLDER + "/" + PackageName + "/" + pathorname); + + var path = DebugFolder + "/" + PackageName + "/" + pathorname; + var asset = UnityEditor.AssetDatabase.LoadAssetAtPath(path); + if (asset == null && pathorname.Contains(".")) + asset = UnityEditor.AssetDatabase.LoadAssetAtPath(Path.GetFileNameWithoutExtension(path)); if (asset == null && !pathorname.Contains("/") && !pathorname.Contains("\\")) { string fullPath = GetFullPathByName(pathorname); diff --git a/Assets/System/Scripts/Package/GameAssetBundlePackage.cs b/Assets/System/Scripts/Package/GameAssetBundlePackage.cs index 3dbdc174..0bb7f503 100644 --- a/Assets/System/Scripts/Package/GameAssetBundlePackage.cs +++ b/Assets/System/Scripts/Package/GameAssetBundlePackage.cs @@ -51,6 +51,8 @@ public override async Task LoadInfo(string filePath) } else { + PreLoadI18NResource(null); + TextAsset modDefTextAsset = AssetBundle.LoadAsset("PackageDef.xml"); if (modDefTextAsset == null || string.IsNullOrEmpty(modDefTextAsset.text)) { diff --git a/Assets/System/Scripts/Package/GamePackage.cs b/Assets/System/Scripts/Package/GamePackage.cs index 45d31015..549a04ea 100644 --- a/Assets/System/Scripts/Package/GamePackage.cs +++ b/Assets/System/Scripts/Package/GamePackage.cs @@ -63,13 +63,12 @@ public virtual Task LoadInfo(string filePath) [DoNotToLua] public virtual async Task LoadPackage() { - FixBundleShader(); + //FixBundleShader(); LoadI18NResource(); //模块代码环境初始化 if (Type == GamePackageType.Module) return await LoadPackageCodeBase(); - return true; } [DoNotToLua] @@ -249,22 +248,22 @@ protected async Task LoadPackageCodeBase() { if(!pm.GetTrustPackageDialogResult()) { //用户拒绝了加载 GameErrorChecker.LastError = GameError.AccessDenined; - Log.E(TAG, "用户拒绝了加载模块 " + PackageName); + Log.E(TAG, "[C#] 用户拒绝了加载模块 " + PackageName); return false; } } //加载C#程序集 - CSharpAssembly = LoadCodeCSharp(EntryCode); + CSharpAssembly = LoadCodeCSharp(PackageName + ".dll"); if (CSharpAssembly == null) { - Log.E(TAG, "无法加载DLL:" + EntryCode); + Log.E(TAG, "[C#] 无法加载DLL:" + PackageName + ".dll"); return false; } Type type = CSharpAssembly.GetType("PackageEntry"); if (type == null) { - Log.W(TAG, "未找到 PackageEntry "); + Log.W(TAG, "[C#] 未找到 PackageEntry "); GameErrorChecker.LastError = GameError.ClassNotFound; return false; } @@ -274,16 +273,20 @@ protected async Task LoadPackageCodeBase() { MethodInfo methodInfo = type.GetMethod("Main"); //根据方法名获取MethodInfo对象 if (type == null) { - Log.W(TAG, "未找到 PackageEntry.Main()"); + Log.W(TAG, "[C#] 未找到 PackageEntry.Main()"); GameErrorChecker.LastError = GameError.FunctionNotFound; } else { object b = methodInfo.Invoke(CSharpPackageEntry, new object[] { this }); - if (b is bool && !((bool)b)) + if (b is bool) { - Log.W(TAG, "模块 PackageEntry.Main 返回了错误"); - GameErrorChecker.LastError = GameError.ExecutionFailed; + if(!((bool)b)) + { + Log.W(TAG, "[C#] 模块 PackageEntry.Main 返回了错误"); + GameErrorChecker.LastError = GameError.ExecutionFailed; + return false; + } } } } @@ -300,7 +303,7 @@ protected async Task LoadPackageCodeBase() { { Log.E(TAG, "模块初始化返回了错误"); GameErrorChecker.LastError = GameError.ExecutionFailed; - return (bool)b; + return false; } } @@ -780,7 +783,7 @@ protected bool ReadInfo(XmlDocument xml) PackageVersion = VerConverter(attributeVersion.Value); //BaseInfo - BaseInfo = new GamePackageBaseInfo(nodeBaseInfo); + BaseInfo = new GamePackageBaseInfo(nodeBaseInfo, this); //Compatibility XmlNode nodeCompatibility = nodePackage.SelectSingleNode("Compatibility"); @@ -1164,6 +1167,35 @@ private void FixBundleShader() } } #endif + + } + + private Dictionary preI18NResource = new Dictionary(); + + /// + /// 在当前模块中预加载的国际化语言资源寻找字符串 + /// + /// 键 + /// 返回国际化字符串,如果未找到,则返回null + [LuaApiDescription("在当前模块中预加载的国际化语言资源寻找字符串", "返回国际化字符串,如果未找到,则返回null")] + [LuaApiParamDescription("key", "键")] + public string GetPackageI18NResourceInPre(string key) { + if(preI18NResource.TryGetValue(key, out var s)) + return s; + return null; + } + + /// + /// 预加载国际化语言资源 + /// + protected void PreLoadI18NResource(string resString) { + if (resString != null) + preI18NResource = I18NProvider.PreLoadLanguageResources(resString); + else { + var res = GetTextAsset("PackageLanguageResPre.xml"); + if (res != null) + preI18NResource = I18NProvider.PreLoadLanguageResources(res.text); + } } /// /// 加载模块的国际化语言资源 diff --git a/Assets/System/Scripts/Package/GameZipPackage.cs b/Assets/System/Scripts/Package/GameZipPackage.cs index 77241a81..e85f62b4 100644 --- a/Assets/System/Scripts/Package/GameZipPackage.cs +++ b/Assets/System/Scripts/Package/GameZipPackage.cs @@ -37,8 +37,6 @@ public override async Task LoadInfo(string filePath) { PackageFilePath = PathUtils.FixFilePathScheme(filePath); - bool defFileLoadSuccess = false; - bool defFileFounded = false; ZipInputStream zip = null; MemoryStream ms = null; @@ -68,30 +66,36 @@ public override async Task LoadInfo(string filePath) UpdateTime = File.GetLastWriteTime(PackageFilePath); + XmlDocument packageDef = null; + Sprite logo = null; + + //搜索zip内容 ZipEntry theEntry; while ((theEntry = zip.GetNextEntry()) != null) { if (theEntry.Name == "/PackageDef.xml" || theEntry.Name == "PackageDef.xml") - { - defFileFounded = true; - defFileLoadSuccess = await LoadPackageDefInZip(zip, theEntry); - } - else if (BaseInfo != null && - (theEntry.Name == "/" + BaseInfo.Logo || theEntry.Name == BaseInfo.Logo)) - LoadLogoInZip(zip, theEntry); + packageDef = await LoadPackageDefInZip(zip, theEntry); //加载定义文件 + else if (theEntry.Name == "/PackageLanguageResPre.xml" || theEntry.Name == "PackageLanguageResPre.xml") + await LoadPackageLanguageResPreInZip(zip, theEntry); //加载语言文件 + else if (theEntry.Name == "/PackageLogo.png" || theEntry.Name == "PackageLogo.png") + logo = await LoadLogoInZip(zip, theEntry); //加载图标 } zip.Close(); zip.Dispose(); - if (!defFileFounded) + if (packageDef == null) { GameErrorChecker.SetLastErrorAndLog(GameError.PackageDefNotFound, TAG, "PackageDef.xml not found"); LoadError = "模块并不包含 PackageDef.xml"; return false; + } + else + { + bool res = ReadInfo(packageDef); + BaseInfo.LogoTexture = logo; + return res; } - - return defFileLoadSuccess; } catch(Exception e) { GameErrorChecker.SetLastErrorAndLog(GameError.ExecutionFailed, TAG, "加载异常 " + e.ToString()); @@ -162,10 +166,12 @@ public override async Task LoadPackage() } else if (theEntry.Name.StartsWith("class/")) { - await LoadCodeAsset(zip, theEntry); + LoadCodeAsset(zip, theEntry); } } + Log.D(TAG, "Load {0} code asset", packageCodeAsset.Count); + if(assetbundleFound) result = await base.LoadPackage(); else @@ -184,7 +190,7 @@ public override async Task LoadPackage() return false; } - private async Task LoadPackageDefInZip(ZipInputStream zip, ZipEntry theEntry) + private async Task LoadPackageDefInZip(ZipInputStream zip, ZipEntry theEntry) { MemoryStream ms = await ZipUtils.ReadZipFileToMemoryAsync(zip); @@ -200,7 +206,7 @@ private async Task LoadPackageDefInZip(ZipInputStream zip, ZipEntry theEnt catch (System.Exception e) { GameErrorChecker.SetLastErrorAndLog(GameError.PackageIncompatible, TAG, "Format error in PackageDef.xml : " + e + "\nCheck content: " + content); - return false; + return null; } finally { @@ -208,26 +214,44 @@ private async Task LoadPackageDefInZip(ZipInputStream zip, ZipEntry theEnt ms.Dispose(); } - return ReadInfo(PackageDef); + return PackageDef; } - private void LoadLogoInZip(ZipInputStream zip, ZipEntry theEntry) + private async Task LoadPackageLanguageResPreInZip(ZipInputStream zip, ZipEntry theEntry) + { + MemoryStream ms = await ZipUtils.ReadZipFileToMemoryAsync(zip); + try + { + PreLoadI18NResource(StringUtils.GetUtf8Bytes(StringUtils.FixUtf8BOM(ms.ToArray()))); + } + catch + { + return false; + } + finally + { + ms.Close(); + ms.Dispose(); + } + return true; + } + private async Task LoadLogoInZip(ZipInputStream zip, ZipEntry theEntry) { try { Texture2D texture2D = new Texture2D(128, 128); - MemoryStream ms = ZipUtils.ReadZipFileToMemory(zip); + MemoryStream ms = await ZipUtils.ReadZipFileToMemoryAsync(zip); texture2D.LoadImage(ms.ToArray()); ms.Close(); ms.Dispose(); - BaseInfo.LogoTexture = Sprite.Create(texture2D, + return Sprite.Create(texture2D, new Rect(Vector2.zero, new Vector2(texture2D.width, texture2D.height)), new Vector2(0.5f, 0.5f)); } catch (Exception e) { - BaseInfo.LogoTexture = null; Log.E(TAG, "在加载模块的 Logo {0} 失败\n错误信息:{1}", BaseInfo.Logo, e.ToString()); + return null; } } @@ -261,9 +285,9 @@ private async Task LoadAssetBundleToMemoryInZipAsync(ZipInputStream zip, Z Log.D(TAG, "AssetBundle {0} loaded", theEntry.Name); return true; } - private async Task LoadCodeAsset(ZipInputStream zip, ZipEntry theEntry) + private void LoadCodeAsset(ZipInputStream zip, ZipEntry theEntry) { - MemoryStream ms = await ZipUtils.ReadZipFileToMemoryAsync(zip); + MemoryStream ms = ZipUtils.ReadZipFileToMemory(zip); var codeAssetStorage = new CodeAssetStorage(StringUtils.FixUtf8BOM(ms.ToArray()), theEntry.Name, PackageFilePath + "/" + theEntry.Name); var key = theEntry.Name; diff --git a/Assets/System/Scripts/Package/Info/GamePackageInfo.cs b/Assets/System/Scripts/Package/Info/GamePackageInfo.cs index 69508918..4b2b3eee 100644 --- a/Assets/System/Scripts/Package/Info/GamePackageInfo.cs +++ b/Assets/System/Scripts/Package/Info/GamePackageInfo.cs @@ -89,26 +89,26 @@ public enum GamePackageStatus [LuaApiDescription("模块基础信息")] public class GamePackageBaseInfo { + private GamePackage package; + [DoNotToLua] - public GamePackageBaseInfo(XmlNode xmlNodeBaseInfo) + public GamePackageBaseInfo(XmlNode xmlNodeBaseInfo, GamePackage package) { + this.package = package; if (xmlNodeBaseInfo != null) for (int i = 0; i < xmlNodeBaseInfo.ChildNodes.Count; i++) { switch (xmlNodeBaseInfo.ChildNodes[i].Name) { - case "Name": Name = xmlNodeBaseInfo.ChildNodes[i].InnerText; break; - case "Author": Author = FixCdData(xmlNodeBaseInfo.ChildNodes[i].InnerText); break; - case "Introduction": Introduction = FixCdData(xmlNodeBaseInfo.ChildNodes[i].InnerXml); break; - case "Logo": Logo = xmlNodeBaseInfo.ChildNodes[i].InnerText; break; - case "Link": Link = xmlNodeBaseInfo.ChildNodes[i].InnerText; break; - case "DocLink": DocLink = xmlNodeBaseInfo.ChildNodes[i].InnerText; break; - case "AuthorLink": AuthorLink = xmlNodeBaseInfo.ChildNodes[i].InnerText; break; - case "Description": Description = FixCdData(xmlNodeBaseInfo.ChildNodes[i].InnerText); break; - case "VersionName": - VersionName = xmlNodeBaseInfo.ChildNodes[i].InnerText == "{internal.core.versionName}" ? GameConst.GameVersion : - FixCdData(xmlNodeBaseInfo.ChildNodes[i].InnerText); - break; + case "Name": Name = CheckAndGetI18NString(xmlNodeBaseInfo.ChildNodes[i].InnerText); break; + case "Author": Author = FixCdData(CheckAndGetI18NString(xmlNodeBaseInfo.ChildNodes[i].InnerText)); break; + case "Introduction": Introduction = FixCdData(CheckAndGetI18NString(xmlNodeBaseInfo.ChildNodes[i].InnerXml)); break; + case "Logo": Logo = CheckAndGetI18NString(xmlNodeBaseInfo.ChildNodes[i].InnerText); break; + case "Link": Link = CheckAndGetI18NString(xmlNodeBaseInfo.ChildNodes[i].InnerText); break; + case "DocLink": DocLink = CheckAndGetI18NString(xmlNodeBaseInfo.ChildNodes[i].InnerText); break; + case "AuthorLink": AuthorLink = CheckAndGetI18NString(xmlNodeBaseInfo.ChildNodes[i].InnerText); break; + case "Description": Description = FixCdData(CheckAndGetI18NString(xmlNodeBaseInfo.ChildNodes[i].InnerText)); break; + case "VersionName": VersionName = FixCdData(CheckAndGetI18NString(xmlNodeBaseInfo.ChildNodes[i].InnerText)); break; case "Dependencies": for (int j = 0, jc = xmlNodeBaseInfo.ChildNodes[i].ChildNodes.Count; j < jc; j++) { @@ -121,6 +121,19 @@ public GamePackageBaseInfo(XmlNode xmlNodeBaseInfo) } } + private string CheckAndGetI18NString(string x) + { + if (x.StartsWith("{") && x.EndsWith("}")) { + var key = x.Substring(1, x.Length - 2); + if (key == "internal.core.versionName") + return GameConst.GameVersion; + else { + var str = package.GetPackageI18NResourceInPre(key); + return str == null ? "[unknow:" + key + "]" : str; + } + } + return x; + } private string FixCdData(string x) { if (x.Length > 12 && x.StartsWith("")) diff --git a/Assets/System/Scripts/Res/GamePathManager.cs b/Assets/System/Scripts/Res/GamePathManager.cs index 21b31125..3bb47d58 100644 --- a/Assets/System/Scripts/Res/GamePathManager.cs +++ b/Assets/System/Scripts/Res/GamePathManager.cs @@ -40,6 +40,8 @@ public static class GamePathManager [LuaApiDescription("调试关卡存放路径")] public const string DEBUG_LEVEL_FOLDER = "Assets/Levels"; + public const string DEBUG_CORE_FOLDER = "Assets/Game"; + private static string _DEBUG_PATH = ""; private static string _DEBUG_OUTPUT_PATH = ""; diff --git a/Assets/System/Scripts/Services/DebugTools/DebugInit.cs b/Assets/System/Scripts/Services/DebugTools/DebugInit.cs index c5ea4aad..15de2cbe 100644 --- a/Assets/System/Scripts/Services/DebugTools/DebugInit.cs +++ b/Assets/System/Scripts/Services/DebugTools/DebugInit.cs @@ -5,6 +5,7 @@ using Ballance2.UI.Core; using Ballance2.Utils; using UnityEngine; +using UnityEngine.UI; namespace Ballance2.DebugTools { @@ -48,9 +49,9 @@ public static void InitSystemDebug() { GameManager.Instance.GameDebugCommandServer.RegisterCommand("quit-dev", (keyword, fullCmd, argsCount, args) => { UnInitSystemDebug(); GameManager.Instance.GameSettings.SetBool("DebugMode", false); - GameUIManager.GlobalConfirmWindow("退出开发者模式后必须重启游戏才能生效", "提示", () => { - GameManager.Instance.QuitGame(); - }, () => {}, "重启游戏"); + GameUIManager.GlobalConfirmWindow("After exiting developer mode, you must restart the game to take effect", "Tip", () => { + GameManager.Instance.RestartGame(); + }, () => {}, "Restart game"); return true; }, 0, "quit-dev > 退出开发者模式"); diff --git a/Assets/System/Scripts/Services/DebugTools/DebugStat.cs b/Assets/System/Scripts/Services/DebugTools/DebugStat.cs index 05d2b440..041f84f9 100644 --- a/Assets/System/Scripts/Services/DebugTools/DebugStat.cs +++ b/Assets/System/Scripts/Services/DebugTools/DebugStat.cs @@ -146,7 +146,7 @@ private void AppendLoadToStat(LogLevel level, string tag, string message) { if(logStatItems.Count >= 10) logStatItems.RemoveAt(0); - string str = string.Format("{1}/{2} {3}", Log.GetLogColor(level), Log.LogLevelToString(level), tag, message); + string str = string.Format("{1}/{2} {3}", Log.GetLogColor(level), Log.LogLevelToString(level), tag, message.Replace('\n', ' ')); logStatItems.Add(str); StringBuilder sb = new StringBuilder(); diff --git a/Assets/System/Scripts/Services/DebugTools/DebugWindow.cs b/Assets/System/Scripts/Services/DebugTools/DebugWindow.cs index 949c19ab..aa7d4d93 100644 --- a/Assets/System/Scripts/Services/DebugTools/DebugWindow.cs +++ b/Assets/System/Scripts/Services/DebugTools/DebugWindow.cs @@ -85,7 +85,7 @@ private void Start() message = message.Substring(0, 32767); var logColor = Log.GetLogColor(level); - var t = string.Format("{1}/{2} {3}", Log.GetLogColor(level), Log.LogLevelToString(level), tag, message); + var t = string.Format("{1}/{2} {3}", Log.GetLogColor(level), Log.LogLevelToString(level), tag, message); var newEle = CloneUtils.CloneNewObjectWithParent(LogItemPrefab, this.LogContentView); var text = newEle.GetComponent(); @@ -268,7 +268,7 @@ public void OnShowMemInfoCheckChange() public void CopyStacktrace() { UnityEngine.GUIUtility.systemCopyBuffer = LogStacktraceText.text; - GameUIManager.GlobalToast("已复制到剪贴板", 1); + GameUIManager.GlobalToast("Copied!", 1); } //执行命令 public void ExecCommand() diff --git a/Assets/System/Scripts/Services/GameManager.cs b/Assets/System/Scripts/Services/GameManager.cs index 6a03bcb6..3faeb4c5 100644 --- a/Assets/System/Scripts/Services/GameManager.cs +++ b/Assets/System/Scripts/Services/GameManager.cs @@ -605,6 +605,11 @@ private void InitCommands() QuitGame(); return false; }, 0, "quit > 退出游戏"); + srv.RegisterCommand("restart-game", (keyword, fullCmd, argsCount, args) => + { + RestartGame(); + return false; + }, 0, "restart-game > 重启游戏"); srv.RegisterCommand("s", (keyword, fullCmd, argsCount, args) => { var type = (string)args[0]; diff --git a/Assets/System/Scripts/Services/I18N/I18NProvider.cs b/Assets/System/Scripts/Services/I18N/I18NProvider.cs index 754f48bc..66ac039d 100644 --- a/Assets/System/Scripts/Services/I18N/I18NProvider.cs +++ b/Assets/System/Scripts/Services/I18N/I18NProvider.cs @@ -26,38 +26,16 @@ namespace Ballance2.Services.I18N public static class I18NProvider { private const string TAG = "I18NProvider"; - private class I18NLanguagePack - { - public SystemLanguage Language; - public Dictionary LanguageValues = new Dictionary(); - } private static SystemLanguage currentLanguage = SystemLanguage.ChineseSimplified; - private static I18NLanguagePack currentLanguagePack = null; - - private static Dictionary languagePacks = new Dictionary(); - - private static I18NLanguagePack GetOrAddLanguagePack(SystemLanguage language) - { - if (languagePacks.TryGetValue(language, out var v)) return v; - else - { - v = new I18NLanguagePack(); - v.Language = language; - languagePacks[language] = v; - return v; - } - } + private static Dictionary LanguageValues = new Dictionary(); //由GameManager调用 [LuaApiDescription("由GameManager调用。不要调用")] public static void ClearAllLanguageResources() { currentLanguage = SystemLanguage.ChineseSimplified; - currentLanguagePack = null; - foreach (var v in languagePacks) - v.Value.LanguageValues.Clear(); - languagePacks.Clear(); + LanguageValues.Clear(); } /// @@ -80,9 +58,8 @@ public static bool LoadLanguageResources(string xmlAssets) var nodeLanguageName = nodeLanguage.Attributes["name"]; if (nodeLanguage.Name == "Language" && nodeLanguageName != null) { - if (System.Enum.TryParse(nodeLanguageName.Value, true, out var languageName)) + if (System.Enum.TryParse(nodeLanguageName.Value, true, out var languageName) && languageName == currentLanguage) { - var languagePack = GetOrAddLanguagePack(languageName); //Search Text node foreach (XmlElement nodeText in nodeLanguage.ChildNodes) { @@ -90,12 +67,11 @@ public static bool LoadLanguageResources(string xmlAssets) if (nodeText.Name == "Text" && nodeTextName != null && !string.IsNullOrEmpty(nodeTextName.Value) && !string.IsNullOrEmpty(nodeText.InnerXml)) { - languagePack.LanguageValues[nodeTextName.Value] = nodeText.InnerXml; + LanguageValues[nodeTextName.Value] = nodeText.InnerXml; } } + break; } - else - Log.E(TAG, "Language name value \"" + nodeLanguageName.Value + "\" is not a valid language type name."); } } return true; @@ -106,6 +82,52 @@ public static bool LoadLanguageResources(string xmlAssets) } return false; } + /// + /// 预加载语言定义文件 + /// + /// 语言定义XML字符串 + /// 加载是否成功 + [LuaApiDescription("加载语言定义文件", "加载是否成功")] + [LuaApiParamDescription("xmlAssets", "语言定义XML字符串")] + public static Dictionary PreLoadLanguageResources(string xmlAssets) + { + Dictionary LanguageValues = new Dictionary(); + try + { + XmlDocument doc = new XmlDocument(); + doc.LoadXml(xmlAssets); + XmlElement root = doc.DocumentElement; + //Search Language node + foreach (XmlElement nodeLanguage in root.ChildNodes) + { + var nodeLanguageName = nodeLanguage.Attributes["name"]; + if (nodeLanguage.Name == "Language" && nodeLanguageName != null) + { + if (nodeLanguageName.Value == currentLanguage.ToString()) + { + //Search Text node + foreach (XmlElement nodeText in nodeLanguage.ChildNodes) + { + var nodeTextName = nodeText.Attributes["name"]; + if (nodeText.Name == "Text" && nodeTextName != null + && !string.IsNullOrEmpty(nodeTextName.Value) && !string.IsNullOrEmpty(nodeText.InnerXml)) + { + LanguageValues[nodeTextName.Value] = nodeText.InnerXml; + } + } + break; + } + } + } + return LanguageValues; + } + catch (XmlException e) + { + Log.E(TAG, "LoadLanguageResources failed: " + e.ToString()); + } + return null; + } + /// /// 加载语言定义文件 /// @@ -127,10 +149,7 @@ public static bool LoadLanguageResources(TextAsset xmlAssets) public static void SetCurrentLanguage(SystemLanguage language) { if (currentLanguage != language) - { currentLanguage = language; - } - currentLanguagePack = GetOrAddLanguagePack(language); } /// /// 获取当前游戏语言 @@ -143,34 +162,16 @@ public static SystemLanguage GetCurrentLanguage() } /// - /// 使用当前系统语言获取语言字符串 + /// 获取语言字符串 /// /// 字符串键值 /// 如果找到对应键值字符串,则返回字符串,否则返回null - [LuaApiDescription("使用当前系统语言获取语言字符串", "如果找到对应键值字符串,则返回字符串,否则返回null")] + [LuaApiDescription("获取语言字符串", "如果找到对应键值字符串,则返回字符串,否则返回null")] [LuaApiParamDescription("key", "字符串键值")] public static string GetLanguageString(string key) { - return GetLanguageString(key, currentLanguage); - } - /// - /// 使用指定语言获取语言字符串 - /// - /// 字符串键值 - /// 指定语言 - /// 如果找到对应键值字符串,则返回字符串,否则返回null - [LuaApiDescription("使用指定语言获取语言字符串", "如果找到对应键值字符串,则返回字符串,否则返回null")] - [LuaApiParamDescription("key", "字符串键值")] - [LuaApiParamDescription("lang", "指定语言")] - public static string GetLanguageString(string key, SystemLanguage lang) - { - if (lang == currentLanguage) - if (currentLanguagePack != null && currentLanguagePack.LanguageValues.TryGetValue(key, out var s)) return s; - else - { - var pack = GetOrAddLanguagePack(lang); - if (pack.LanguageValues.TryGetValue(key, out var s1)) return s1; - } + if(LanguageValues.TryGetValue(key, out var s1)) + return s1; return null; } } diff --git a/Assets/System/Scripts/UI/CoreUI/GameGlobalIngameLoading.cs b/Assets/System/Scripts/UI/CoreUI/GameGlobalIngameLoading.cs index 5e6c9571..2768c53c 100644 --- a/Assets/System/Scripts/UI/CoreUI/GameGlobalIngameLoading.cs +++ b/Assets/System/Scripts/UI/CoreUI/GameGlobalIngameLoading.cs @@ -6,7 +6,7 @@ namespace Ballance2.UI.Utils public class GameGlobalIngameLoading : MonoBehaviour { public Text TextStatus; - private int currentLogObserver = 0; + /* private int currentLogObserver = 0; private void OnEnable() { TextStatus.text = ""; @@ -19,6 +19,6 @@ private void OnDisable() { Log.UnRegisterLogObserver(currentLogObserver); currentLogObserver = 0; } - } + } */ } } \ No newline at end of file diff --git a/Assets/System/Scripts/Utils/StringUtils.cs b/Assets/System/Scripts/Utils/StringUtils.cs index 2957d073..e5a15eef 100644 --- a/Assets/System/Scripts/Utils/StringUtils.cs +++ b/Assets/System/Scripts/Utils/StringUtils.cs @@ -342,8 +342,8 @@ public static byte[] FixUtf8BOM(byte[] buffer) && buffer[2] == bomBuffer[2]) { byte[] bomBufferFixed = new byte[bomBuffer.Length - 3]; - for (int i = 0; i < bomBuffer.Length - 3; i++) - bomBufferFixed[i] = bomBuffer[i + 3]; + for (int i = 0; i < buffer.Length - 3; i++) + bomBufferFixed[i] = buffer[i + 3]; return bomBufferFixed; } return buffer; diff --git a/docs/LuaApi/cs-api/class/Ballance2.Game.CamFollow.md b/docs/LuaApi/cs-api/class/Ballance2.Game.CamFollow.md index 5e8760b3..dca7e629 100644 --- a/docs/LuaApi/cs-api/class/Ballance2.Game.CamFollow.md +++ b/docs/LuaApi/cs-api/class/Ballance2.Game.CamFollow.md @@ -9,18 +9,35 @@ |名称|类型|说明| |---|---|---| -|Follow|boolean |指定摄像机跟随球是否开启| -|Look|boolean |指定摄像机看着球是否开启| -|LookSmoothTarget|[Transform](https://docs.unity3d.com/ScriptReference/Transform.html) |指定当前平滑移动跟踪的目标| -|CameraTransform|[Transform](https://docs.unity3d.com/ScriptReference/Transform.html) |指定当前跟踪的目标| -|SmoothTime|number [float](../types.md)|摄像机平滑移动的时间| -|SmoothTimeY|number [float](../types.md)|摄像机平滑移动的时间| -|SmoothToTargetTime|number [float](../types.md)|| +|SmoothTime|[Vector3](https://docs.unity3d.com/ScriptReference/Vector3.html) || +|CamTargetSmoothTime|[Vector3](https://docs.unity3d.com/ScriptReference/Vector3.html) || +|CamLookTargetSmoothTime|[Vector3](https://docs.unity3d.com/ScriptReference/Vector3.html) || +|CamLookTarget|[Transform](https://docs.unity3d.com/ScriptReference/Transform.html) || +|CamTarget|[Transform](https://docs.unity3d.com/ScriptReference/Transform.html) || +|CamOrient|[Transform](https://docs.unity3d.com/ScriptReference/Transform.html) || +|CamPos|[Transform](https://docs.unity3d.com/ScriptReference/Transform.html) || +|InGameCam|[Camera](https://docs.unity3d.com/ScriptReference/Camera.html) || +|cameraMovePosGetPosTime|number [float](../types.md)|| ## 属性 |名称|类型|说明| |---|---|---| +|Follow|boolean |指定摄像机跟随球是否开启| +|Look|boolean |指定摄像机看着球是否开启| |Target|[Transform](https://docs.unity3d.com/ScriptReference/Transform.html) |指定当前跟踪的目标| ## 方法 + + +### SetTargetWithoutUpdatePos(t) + +设置跟踪的目标,不更新位置 + + +#### 参数 + + +`t` [Transform](https://docs.unity3d.com/ScriptReference/Transform.html)
+ + diff --git a/docs/LuaApi/cs-api/class/Ballance2.Game.GuiStats.md b/docs/LuaApi/cs-api/class/Ballance2.Game.GuiStats.md index 489e98ab..24ab244d 100644 --- a/docs/LuaApi/cs-api/class/Ballance2.Game.GuiStats.md +++ b/docs/LuaApi/cs-api/class/Ballance2.Game.GuiStats.md @@ -33,6 +33,7 @@ statPos:Delete() |---|---|---| |text|[Text](https://docs.unity3d.com/ScriptReference/UI.Text.html) |如果使用Text模式,请设置要设置数据文字的目标Text| |SetToText|boolean |是否使用Text模式,否则使用GUI模式,Text模式会将最终数据文字设置到Text上,而GUI模式是直接调用GUI显示在屏幕上| +|UpdateTime|number [float](../types.md)|每隔多少秒更新一次文字| |DisplayArea|[Rect](https://docs.unity3d.com/ScriptReference/Rect.html) |如果使用GUI模式,你可以通过设置这个来控制GUI显示区域| ## 方法 diff --git a/docs/LuaApi/cs-api/class/Ballance2.Game.GuiStatsValue.md b/docs/LuaApi/cs-api/class/Ballance2.Game.GuiStatsValue.md index 3b30dbe2..e7d85c62 100644 --- a/docs/LuaApi/cs-api/class/Ballance2.Game.GuiStatsValue.md +++ b/docs/LuaApi/cs-api/class/Ballance2.Game.GuiStatsValue.md @@ -34,7 +34,7 @@ GUI显示状态的条目 #### 参数 -`v` [Vector2](https://docs.unity3d.com/ScriptReference/Vector2.html)
条目的 Vector3 数据 +`v` [Vector3](https://docs.unity3d.com/ScriptReference/Vector3.html)
条目的 Vector3 数据 diff --git a/docs/LuaApi/cs-api/class/Ballance2.Game.SpeedMeter.md b/docs/LuaApi/cs-api/class/Ballance2.Game.SpeedMeter.md index 3085f01b..eb4b0746 100644 --- a/docs/LuaApi/cs-api/class/Ballance2.Game.SpeedMeter.md +++ b/docs/LuaApi/cs-api/class/Ballance2.Game.SpeedMeter.md @@ -9,13 +9,17 @@ |名称|类型|说明| |---|---|---| -|Enabled|boolean |是否要开始测速| |Target|[Transform](https://docs.unity3d.com/ScriptReference/Transform.html) |测速的目标,如果为空,则对当前物体测速| |MaxSpeed|number [float](../types.md)|相对速度计算的最大值| |MinSpeed|number [float](../types.md)|相对速度计算的最小值| |NowRelativeSpeed|number [float](../types.md)|相对速度 0-1, 即 (NowAbsoluteSpeed - MinSpeed) / (MaxSpeed - MinSpeed)| |NowAbsoluteSpeed|number [float](../types.md)|绝对速度 m/s | |Callback|`回调` SpeedMeterDelegate(meter: [SpeedMeter](./Ballance2.Game.SpeedMeter.md)) |检查回调, 通过设置这个回调,可以每帧获取一次速度值| +## 属性 + +|名称|类型|说明| +|---|---|---| +|Enabled|boolean |是否要开始测速| ## 方法 diff --git a/docs/LuaApi/cs-api/class/Ballance2.Package.GamePackage.md b/docs/LuaApi/cs-api/class/Ballance2.Package.GamePackage.md index 28146206..22dbb6e3 100644 --- a/docs/LuaApi/cs-api/class/Ballance2.Package.GamePackage.md +++ b/docs/LuaApi/cs-api/class/Ballance2.Package.GamePackage.md @@ -595,6 +595,23 @@ boolean
返回是否找到对应脚本 [Assembly](https://docs.microsoft.com/zh-cn/dotnet/api/System.Reflection.Assembly)
如果加载成功则返回已加载的Assembly,否则将抛出异常,若当前环境并不支持加载,则返回null +### GetPackageI18NResourceInPre(key) + +在当前模块中预加载的国际化语言资源寻找字符串 + + +#### 参数 + + +`key` string
键 + + + +#### 返回值 + +string
返回国际化字符串,如果未找到,则返回null + + ### AddCustomProp(name, data) 添加自定义数据 diff --git a/docs/LuaApi/cs-api/class/Ballance2.Res.GamePathManager.md b/docs/LuaApi/cs-api/class/Ballance2.Res.GamePathManager.md index ac1a1508..02394cee 100644 --- a/docs/LuaApi/cs-api/class/Ballance2.Res.GamePathManager.md +++ b/docs/LuaApi/cs-api/class/Ballance2.Res.GamePathManager.md @@ -11,6 +11,7 @@ |---|---|---| |DEBUG_PACKAGE_FOLDER|string |调试模组包存放路径| |DEBUG_LEVEL_FOLDER|string |调试关卡存放路径| +|DEBUG_CORE_FOLDER|string || ## 属性 |名称|类型|说明| diff --git a/docs/LuaApi/cs-api/class/Ballance2.Services.GameManager.md b/docs/LuaApi/cs-api/class/Ballance2.Services.GameManager.md index a45e4f85..8389ea81 100644 --- a/docs/LuaApi/cs-api/class/Ballance2.Services.GameManager.md +++ b/docs/LuaApi/cs-api/class/Ballance2.Services.GameManager.md @@ -25,6 +25,7 @@ GameManager.Instance |GameMainLuaState|`SLua.LuaSvr+MainState` |获取游戏全局Lua虚拟机| |GameDebugCommandServer|[GameDebugCommandServer](./Ballance2.Services.GameDebugCommandServer.md) |获取调试命令控制器。可以获取全局 GameDebugCommandServer 单例,你可以通过它来注册你的调试命令。| |GameLight|[Light](https://docs.unity3d.com/ScriptReference/Light.html) |获取全局灯光实例。这是一个全局照亮的环境光, 与游戏内的主光源是同一个。| +|GameTimeMachine|[GameTimeMachine](./Ballance2.Services.GameTimeMachine.md) |GameTimeMachine 的一个实例。| |DebugMode|boolean |获取或者设置当前是否处于开发者模式| ## 方法 diff --git a/docs/LuaApi/cs-api/class/Ballance2.Services.GameTimeMachine.md b/docs/LuaApi/cs-api/class/Ballance2.Services.GameTimeMachine.md index 4b36f6da..3780e976 100644 --- a/docs/LuaApi/cs-api/class/Ballance2.Services.GameTimeMachine.md +++ b/docs/LuaApi/cs-api/class/Ballance2.Services.GameTimeMachine.md @@ -5,6 +5,11 @@ TimeMachine提供了另一种方式,实现类似MonoBehaviour中的Update之类的方法的功能。以便于我们在某些场合更方便的编写时间驱动的代码。 +## 字段 + +|名称|类型|说明| +|---|---|---| +|FixedUpdateTick|number [int](../types.md)|| ## 方法 diff --git a/docs/LuaApi/cs-api/class/Ballance2.Services.I18N.I18NProvider.md b/docs/LuaApi/cs-api/class/Ballance2.Services.I18N.I18NProvider.md index 7d2582cb..cdd1e291 100644 --- a/docs/LuaApi/cs-api/class/Ballance2.Services.I18N.I18NProvider.md +++ b/docs/LuaApi/cs-api/class/Ballance2.Services.I18N.I18NProvider.md @@ -33,7 +33,7 @@ boolean
加载是否成功 -### `静态` LoadLanguageResources(xmlAssets) +### `静态` PreLoadLanguageResources(xmlAssets) 加载语言定义文件 @@ -41,58 +41,58 @@ boolean
加载是否成功 #### 参数 -`xmlAssets` [TextAsset](https://docs.unity3d.com/ScriptReference/TextAsset.html)
语言定义XML资源文件 +`xmlAssets` string
语言定义XML字符串 #### 返回值 -boolean
加载是否成功 +table
加载是否成功 -### `静态` SetCurrentLanguage(language) +### `静态` LoadLanguageResources(xmlAssets) -设置当前游戏语言。此函数只能设置语言至设置,无法立即生效,必须重启游戏才能生效。 +加载语言定义文件 #### 参数 -`language` number [SystemLanguage](https://docs.unity3d.com/ScriptReference/SystemLanguage.html)
语言 +`xmlAssets` [TextAsset](https://docs.unity3d.com/ScriptReference/TextAsset.html)
语言定义XML资源文件 +#### 返回值 -### `静态` GetCurrentLanguage() +boolean
加载是否成功 -获取当前游戏语言 +### `静态` SetCurrentLanguage(language) -#### 返回值 +设置当前游戏语言。此函数只能设置语言至设置,无法立即生效,必须重启游戏才能生效。 -number [SystemLanguage](https://docs.unity3d.com/ScriptReference/SystemLanguage.html)
+#### 参数 -### `静态` GetLanguageString(key) -使用当前系统语言获取语言字符串 +`language` number [SystemLanguage](https://docs.unity3d.com/ScriptReference/SystemLanguage.html)
语言 -#### 参数 -`key` string
字符串键值 +### `静态` GetCurrentLanguage() +获取当前游戏语言 #### 返回值 -string
如果找到对应键值字符串,则返回字符串,否则返回null +number [SystemLanguage](https://docs.unity3d.com/ScriptReference/SystemLanguage.html)
-### `静态` GetLanguageString(key, lang) +### `静态` GetLanguageString(key) -使用指定语言获取语言字符串 +获取语言字符串 #### 参数 @@ -100,8 +100,6 @@ string
如果找到对应键值字符串,则返回字符串,否则返 `key` string
字符串键值 -`lang` number [SystemLanguage](https://docs.unity3d.com/ScriptReference/SystemLanguage.html)
指定语言 - #### 返回值 diff --git a/docs/LuaApi/cs-api/class/BallancePhysics.Wapper.PhysicsEnvironment.md b/docs/LuaApi/cs-api/class/BallancePhysics.Wapper.PhysicsEnvironment.md index 6a7be9e6..da938954 100644 --- a/docs/LuaApi/cs-api/class/BallancePhysics.Wapper.PhysicsEnvironment.md +++ b/docs/LuaApi/cs-api/class/BallancePhysics.Wapper.PhysicsEnvironment.md @@ -12,6 +12,7 @@ |DeleteAllSurfacesWhenDestroy|boolean |是否在销毁环境时自动删除所有碰撞层| |Simulate|boolean |是否启用模拟| |AutoCreate|boolean |是否自动创建| +|PhysicsFactorFinalValue|number [float](../types.md)|获取物理力大小系数。| ## 属性 |名称|类型|说明| @@ -21,6 +22,7 @@ |PhysicsTime|number [float](../types.md)|获取上一帧的物理执行时间 (秒)| |PhysicsActiveBodies|number [int](../types.md)|获取当前激活的物理对象个数| |PhysicsBodies|number [int](../types.md)|获取当前所有的物理对象个数| +|PhysicsSimuateTime|number [double](../types.md)|获取当前模拟的物理时间| |PhysicsConstantPushBodies|number [int](../types.md)|获取当前正在恒力推动的物理对象个数| |PhysicsFallCollectBodies|number [int](../types.md)|获取当前坠落回收物理对象个数| |PhysicsFixedBodies|number [int](../types.md)|获取当前固定物理对象个数| diff --git a/docs/LuaApi/cs-api/class/BallancePhysics.Wapper.PhysicsObject.md b/docs/LuaApi/cs-api/class/BallancePhysics.Wapper.PhysicsObject.md index 8483950b..1df26e68 100644 --- a/docs/LuaApi/cs-api/class/BallancePhysics.Wapper.PhysicsObject.md +++ b/docs/LuaApi/cs-api/class/BallancePhysics.Wapper.PhysicsObject.md @@ -52,6 +52,7 @@ Ballance 物理物体组件 |EnableGravity|boolean |获取当前物体上是否启用了重力| |EnableCollisionEvent|boolean |获取或设置当前物体上是否启用碰撞事件| |EnableConstantForce|boolean |是否启用施加在这个物体上的恒力| +|ContractCacheString|string || ## 方法