临时提交

This commit is contained in:
PC-20230316NUNE\Administrator 2024-10-12 20:37:11 +08:00
parent a16d51d033
commit edafe4a058
118 changed files with 10862 additions and 733 deletions

View File

@ -1011,6 +1011,14 @@
<Project>{33448493-9d07-9e6d-e65e-d48b790a1dbf}</Project>
<Name>StompyRobot.SRF.Editor</Name>
</ProjectReference>
<ProjectReference Include="HotSamples.csproj">
<Project>{d19923e9-71a3-f5e1-00b9-865a2997ed43}</Project>
<Name>HotSamples</Name>
</ProjectReference>
<ProjectReference Include="SHFrame.Editor.csproj">
<Project>{d9a8422d-46f3-a631-fce7-ee1cfe4cbcd7}</Project>
<Name>SHFrame.Editor</Name>
</ProjectReference>
<ProjectReference Include="UniTask.csproj">
<Project>{bf8742e6-eee2-4cf6-3e82-d12e15802154}</Project>
<Name>UniTask</Name>

View File

@ -907,6 +907,14 @@
<Project>{33448493-9d07-9e6d-e65e-d48b790a1dbf}</Project>
<Name>StompyRobot.SRF.Editor</Name>
</ProjectReference>
<ProjectReference Include="HotSamples.csproj">
<Project>{d19923e9-71a3-f5e1-00b9-865a2997ed43}</Project>
<Name>HotSamples</Name>
</ProjectReference>
<ProjectReference Include="SHFrame.Editor.csproj">
<Project>{d9a8422d-46f3-a631-fce7-ee1cfe4cbcd7}</Project>
<Name>SHFrame.Editor</Name>
</ProjectReference>
<ProjectReference Include="UniTask.csproj">
<Project>{bf8742e6-eee2-4cf6-3e82-d12e15802154}</Project>
<Name>UniTask</Name>

View File

@ -75,66 +75,6 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Shared\Scripts\SimpleElevator.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\App.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\DApplication.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\GActionEnum.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\GAPI.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\GEvent.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Main.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\JNGFrameSystem.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\JNGStateServerSystem.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\Tile\JNGTileClientSystem.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\Tile\JNGTileServerSystem.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\Tile\JNGTileSlaveServerSystem.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\CServer.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGClient.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGClientGroup.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGServer.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGServer.Game.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGTileClient.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\JNGGame.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\JNGSocket.cs" />
<Compile Include="Assets\Scripts\Samples\Debug\MapVisualize.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\DStateBasisData.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\EDBossDataSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\EDNodeDataSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\EDPlayerDataSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\GDataBaseSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\NetDataEnum.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Input\DInputSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Input\IDPlayer.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Input\IDPlayer2.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Input\IDWorld.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\EDContexts.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\EDEntityBasis.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Components\EDMoveComponent.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Controller\EDBossController.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Controller\EDPlayerController.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\EDEntityComponent.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Lookup\EDBossLookup.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Lookup\EDNodeLookup.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Lookup\EDPlayerLookup.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Contexts\EDBossContext.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Contexts\EDNodeContext.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Contexts\EDPlayerContext.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\EDBoss.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\EDNode.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\EDPlayer.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\DGBasisSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Logic\DBossSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Logic\DPlayerSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Logic\DWorldSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Usual\DDataSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Usual\DMapSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\DViewSystem.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\Entity\VDBoss.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\Entity\VDNodes.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\Entity\VDPlayers.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\VDEntityBasis.cs" />
<Compile Include="Assets\Scripts\Samples\Proto\GActionMessage.cs" />
<Compile Include="Assets\Scripts\Samples\Service\JNGResService.cs" />
<Compile Include="Assets\Scripts\Samples\TextMain.cs" />
<Compile Include="Assets\Scripts\Samples\UI\DMainUI.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\BSP\ESplitType.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\Collections\CollectionExtensions.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\PathFinder\IPathFinder.cs" />
@ -142,11 +82,14 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcFilledVolumeRasterization.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarQuaternion.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\Numerics\RcVecUtils.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGServer.Game.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Collector\ICollector.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.VisualDebugging.Unity\src\GameObjectDestroyExtension.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\Geom\RcChunkyTriMeshNode.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\Io\Compress\IDtTileCacheCompressorFactory.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Components\EDMoveComponent.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Util\RandomUtil.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Input\IDWorld.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Entity\Exceptions\EntityDoesNotHaveComponentException.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\BaseType\LMatrix3x3.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarRect.cs" />
@ -154,7 +97,9 @@
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Group\IGroup.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\Numerics\RcMatrix4x4f.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\App\Tile\JNSSTileTool.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\App.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\LUT\LUTAsin.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGClientGroup.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\DtTileCacheBuilder.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarVector3.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\CameraMagnets\CameraMagnetTargetController.cs" />
@ -168,11 +113,13 @@
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Shared\Scripts\PlayerMoveOnSphere.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Entity\Exceptions\EntityAlreadyHasComponentException.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\Anywhere Door\TagChanger.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\AudioModule\AudioGroupConfig.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\Entity\JNEntity.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\EntityIndex\PrimaryEntityIndex.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\AudioModule\AudioGroupConfig.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\EDBoss.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\PathFinder\TrianglePointPath.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Version\Version.IVersionHelper.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\Tile\JNGTileClientSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Util\JsonUtil.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\IJNSyncId.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcProcess.cs" />
@ -184,6 +131,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Network\Action\NActionEnum.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtConvexConvexIntersection.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\IDtPolygonByCircleConstraint.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\VDEntityBasis.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Shared\Scripts\ActivateCameraWithDistance.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcRand.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtQueryDefaultFilter.cs" />
@ -195,6 +143,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtDetailTriEdgeFlags.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\DotRecastController.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarDecimal.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\DGBasisSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\Geom\SimpleInputGeomProvider.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\Fsm\FsmModule.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarVector2.cs" />
@ -218,34 +167,42 @@
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Utility\DefaultHelper\DefaultVersionHelper.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\RcNavMeshBuildSettings.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarGameObject.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\Entity\VDNodes.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarTexture.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\Io\DtTileCacheSetHeader.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\NavMesh\NavTriangle.Extension.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcConvexVolumeTool.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Main.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\EntityIndex\EntityIndex.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\ObjectPool\IObjectPoolManager.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.VisualDebugging.Unity\src\DebugSystems\SystemInfo.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\EDBossDataSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtNodeQueue.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Entity\Exceptions\EntityIsNotRetainedByOwnerException.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Contexts\EDPlayerContext.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\ObjectPool\IObjectPool.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\GenericVariable.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarVector4.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\Collections\RcStackArray512.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\Geometry\GeometryUtil.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\JNGFrameSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\Io\DtTileCacheReader.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcAtomicInteger.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Collector\Collector.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\ClimbTrajectory.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\BaseType\LAxis3D.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtCrowdAgentDebugInfo.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\DApplication.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\DotRecastRoot.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Net\Socket\Runtime\Core\CloseEventArgs.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\PathFinder\IndexedAStarPathFinder.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Net\Socket\Runtime\Core\WebSocketState.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtSegInterval.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Net\Socket\Runtime\Core\OpenEventArgs.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\DViewSystem.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\GameTime\GameTime.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.CodeGeneration.Attributes\src\EntityIndex\EntityIndexType.cs" />
<Compile Include="Assets\Scripts\Samples\TextMain.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.CodeGeneration.Attributes\src\EventAttribute.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\ObjectPool\ObjectPoolModule.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.CodeGeneration.Attributes\src\FlagPrefixAttribute.cs" />
@ -257,8 +214,10 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Builder\SampleAreaModifications.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\Entity\Component\JNEntityLookup.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.VisualDebugging.Unity\src\ContextObserver\ContextObserverExtension.cs" />
<Compile Include="Assets\Scripts\Samples\UI\DMainUI.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Collector\TriggerOnEvent.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\BaseType\LVector3Int.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\EDContexts.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcPotentialDiagonalComparer.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\View\IViewData.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\App\State\JNSStateClientService.cs" />
@ -271,8 +230,8 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\System\SViewSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\EntityIndex\EntityIndexException.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Gizmos\RcSphereGizmo.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Util\Timers.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Utility\Utility.Path.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Util\Timers.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\GraphMeta.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcThrowHelper.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\DtCompressedTileFlags.cs" />
@ -293,6 +252,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtSegment.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Net\Socket\Runtime\Core\ErrorEventArgs.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Context\Exceptions\ContextDoesNotContainEntityException.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Lookup\EDPlayerLookup.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcLayerSweepSpan.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\BSP\SplitLine.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\Buffers\RcCyclicBuffer.cs" />
@ -333,6 +293,7 @@
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarTransform.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\AudioModule\AudioCategory.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\Collections\RcStackArray16.cs" />
<Compile Include="Assets\HotMain\ConsoleToScreen.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\AudioModule\AudioModuleImp.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\IJNSyncCycle.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\JumpLink.cs" />
@ -343,17 +304,18 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\Entity\Component\JNComponent.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcCrowdAgentTrail.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\TrajectorySampler.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Event\EventListener.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Net\Socket\Runtime\Implementation\WebGL\WebSocket.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\NavMesh\NavTriangle.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarDateTime.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcScopedTimer.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\CameraMagnets\CameraMagnetProperty.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\JNGSocket.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Colliders\DtCompositeCollider.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtMeshTile.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Context\IContext.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtPolyTypes.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarString.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Logic\DWorldSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\NavMesh\IGraph.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\EntitasException.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\Io\DtMeshDataWriter.cs" />
@ -365,12 +327,15 @@
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\ObjectPool\ObjectBase.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\Io\DtWriter.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\NavMeshGroundSampler.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\GActionEnum.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Colliders\DtBoxCollider.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\App\State\JNSStateServerService.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\PathFinder\Funnel.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtPathQueue.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGClient.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\BossCamera\CustomLockCameraY.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcSpan.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGTileClient.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\NodeIndexReader.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Gizmos\RcCompositeGizmo.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtCrowdTelemetry.cs" />
@ -390,11 +355,12 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\IRcRand.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\UnityAStarPathfindingReader.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Matcher\Matcher.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\DStateBasisData.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtFindPathOptions.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Utility\Utility.Http.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarColor32.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Input\IDPlayer2.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcCompactSpanBuilder.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Event\EventDispatcher.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcMath.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcPartitionType.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Util\NetTool.cs" />
@ -410,8 +376,10 @@
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Matcher\MatcherException.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcByteUtils.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Matcher\Interfaces\IMatcher.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Usual\DMapSystem.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\ReferencePool\ReferencePool.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Net\Socket\Runtime\Core\Opcode.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Contexts\EDNodeContext.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Gizmos\RcTrimeshGizmo.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Entity\IAERC.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.VisualDebugging.Unity\src\Entity\EntityBehaviour.cs" />
@ -430,6 +398,8 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Network\JNServerBase.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Entity\Entity.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtNodePool.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Contexts\EDBossContext.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\EDPlayer.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\ModuleCore\Module.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Utility\DefaultHelper\DefaultJsonHelper.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\DtVoxelQuery.cs" />
@ -446,6 +416,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtCrowdAgentUpdateFlags.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcTileTool.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Gizmos\RcGizmo.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\NetDataEnum.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Context\Exceptions\ContextEntityIndexDoesNotExistException.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcSpanPool.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Context\Exceptions\ContextStillHasRetainedEntitiesException.cs" />
@ -459,8 +430,10 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\DtTempContour.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\PathFinder\TriangleEdgeGraphPath.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.CodeGeneration.Attributes\src\CustomEntityIndexAttribute.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\JumpLinkBuilder.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Net\Socket\Runtime\Core\MessageEventArgs.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\JumpLinkBuilder.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\GEvent.cs" />
<Compile Include="Assets\HybridCLRGenerate\AOTGenericReferences.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\GraphMetaReader.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Gizmos\RcGizmoHelper.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtCrowdAgentState.cs" />
@ -471,6 +444,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\IRcToolable.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Io\DtVoxelTile.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\Io\NavMeshTileHeader.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Controller\EDPlayerController.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtRaycastHit.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\GraphMeshData.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcObjImporter.cs" />
@ -478,6 +452,8 @@
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Log\Log.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtConnectPoly.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\BVItemZComparer.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\Entity\VDPlayers.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\JNGServer.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\Geom\DefaultInputGeomProvider.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.CodeGeneration.Attributes\src\ContextAttribute.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\NavMesh\NavMeshData.cs" />
@ -498,6 +474,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\Geom\RcOffMeshConnection.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Colliders\DtTrimeshCollider.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\PrimerLUT.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\EDEntityComponent.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\NodeLink2.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\Entity\JNContexts.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Io\DtVoxelFile.cs" />
@ -505,10 +482,10 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\LUT\LUTAcos.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\ObjExporter.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Matcher\Interfaces\IAnyOfMatcher.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Event\EventArgs.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\ModuleCore\ShutdownType.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcBuilderConfig.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcAxis.cs" />
<Compile Include="Assets\Scripts\Samples\Debug\MapVisualize.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\Procedure\ProcedureModule.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarDouble.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Utility\Utility.File.cs" />
@ -519,6 +496,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\JNBaseSystem.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarByteArray.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Net\Socket\Runtime\Implementation\NoWebGL\WebSocket.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\EDNode.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\BVTreeCreator.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcVoxelizations.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtCrowdConst.cs" />
@ -541,18 +519,22 @@
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\ReferencePool\MemoryPoolExtension.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcCrowdToolMode.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Entitas\JNLookup.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\EDEntityBasis.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\BaseType\LAxis2D.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\System\Data\SStateDataSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\Geom\BoundsItemXComparer.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\GraphConnectionReader.cs" />
<Compile Include="Assets\Scripts\Samples\Game\View\Entity\VDBoss.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\PolyQueryInvoker.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcConvexUtils.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Utility\DefaultHelper\DefaultTextHelper.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\Trigger volumes\GenericTrigger.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtNavMeshQuery.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\EDNodeDataSystem.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Utility\Utility.Reflection.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\PathFinder\IHeuristic.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\LinkBuilder.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\Tile\JNGTileSlaveServerSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcContext.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\ReferencePool\ReferencePool.ReferenceCollection.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.CodeGeneration.Attributes\src\EntityIndex\AbstractEntityIndexAttribute.cs" />
@ -565,11 +547,12 @@
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.VisualDebugging.Unity\src\Entity\DontDrawComponentAttribute.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Colliders\DtCollider.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\Meta.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\NodeLink2Reader.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\Fsm\IFsmManager.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\NodeLink2Reader.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtPathQuery.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\DtTileCacheStorageParams.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Io\DtVoxelFileWriter.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\GAPI.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcJumpLinkBuilderTool.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\LRandom.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.CodeGeneration.Attributes\src\EntityIndex\EntityIndexAttribute.cs" />
@ -592,6 +575,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\BaseType\LRect.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\GameModule.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\Io\IOUtils.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\JNGStateServerSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcDirtyEntry.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Systems\Interfaces\ITearDownSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\GroundSegment.cs" />
@ -600,13 +584,17 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\BSP\BspTree.UnityExt.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Version\Version.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\Geometry\Ray.cs" />
<Compile Include="Assets\Scripts\Samples\Proto\GActionMessage.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtUtils.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcConfig.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Group\GroupSingleEntityException.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Group\GroupExtension.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtNavMesh.cs" />
<Compile Include="Assets\Scripts\Samples\Service\JNGResService.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Lookup\EDBossLookup.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\Io\Compress\DtTileCacheFastLzCompressor.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcCommons.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Input\DInputSystem.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\ReferencePool\IReference.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Utility\Utility.Text.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\Geom\IInputGeomProvider.cs" />
@ -622,6 +610,7 @@
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\DataStruct\TypeNamePair.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\BossCamera\BossLookAt.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtMoveRequestState.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Sync\Tile\JNGTileServerSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\DtLayerMonotoneRegion.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\Procedure\ProcedureBase.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\BaseType\LVector2.cs" />
@ -635,13 +624,14 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\IRcBuilderProgressListener.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\Io\DtMeshDataReader.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\BVItemXComparer.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Controller\EDBossController.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Context\ContextExtension.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.VisualDebugging.Unity\src\ContextObserver\ContextObserver.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\Fsm\Fsm.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcDynamicColliderShape.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\ObjectPool\ObjectPoolBase.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\PathFinder\NodeBinaryHeap.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Event\EventUtil.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\GDataBaseSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\Geom\BoundsItemYComparer.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Net\Socket\Runtime\Implementation\WebGL\WebSocketManager.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Collector\TriggerOnEventMatcherExtension.cs" />
@ -658,6 +648,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\EdgeSampler.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\Numerics\RcVec3f.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcCrowdAgentData.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\CServer\CServer.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtStraightPath.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarMaterial.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\Collections\RcImmutableArray.Listable.cs" />
@ -676,13 +667,16 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\System\Data\STileDataSystem.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Shared\Scripts\PlayerMovePhysics.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\Collections\RcImmutableArray.Minimal.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\Entity\Nodes\Component\Lookup\EDNodeLookup.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\DualTarget\MoveAimTarget.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\IDtQueryHeuristic.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Builder\SoloNavMeshBuilder.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\EdgeSamplerFactory.cs" />
<Compile Include="Assets\HotMain\LoadDll.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\GenMapConfigHelper.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.CodeGeneration.Attributes\src\CleanupAttribute.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\Fsm\IFsm.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Logic\DBossSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\NavMesh\TriangleEdge.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Util\JAPI.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\Io\DtNavMeshParamsReader.cs" />
@ -692,6 +686,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\BVItem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Matcher\Interfaces\ICompoundMatcher.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtCrowdNeighbour.cs" />
<Compile Include="Assets\HotMain\YooAssetDefault.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\App\Tile\Entity\JNTileContext.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcTestNavMeshTool.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\AudioModule\AudioModule.cs" />
@ -702,6 +697,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcPartition.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\DtPoly.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Network\JNTCPServer.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Input\IDPlayer.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcContourHoleComparer.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Util\NoThread\Interlocked.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcBuilderResult.cs" />
@ -720,6 +716,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\DtDynamicNavMeshConfig.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Util\MeshData.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.TileCache\DtTileCacheLayerBuildResult.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Logic\DPlayerSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Geom\DemoInputGeomProvider.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Colliders\IDtCollider.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcCompactSpan.cs" />
@ -728,8 +725,8 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\LUT\LUTSin.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcJumpLinkBuilderToolConfig.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\App\Tile\Entity\Component\JNTileComponent.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcDirectory.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarCharArray.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcDirectory.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\IComponent.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcCompacts.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtCrowd.cs" />
@ -758,6 +755,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcArrays.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\Entity\JNContext.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\JumpSegmentBuilder.cs" />
<Compile Include="Assets\Scripts\Samples\AppGame\Systems\JNGGame.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Math\BaseType\LFloat.Extension.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Variable\VarUnityObject.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour\Io\DtNavMeshParamWriter.cs" />
@ -777,8 +775,8 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtPathQueryResult.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\GameFrameworkEventArgs.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Extensions\CollectionExtension.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Gizmos\RcCylinderGizmo.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\AudioModule\AudioType.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast.Toolset\Gizmos\RcCylinderGizmo.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Group\GroupEvent.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Util\Singleton.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\2DPathFinding\NavMesh\PathFinder\TriangleHeuristic.cs" />
@ -791,6 +789,7 @@
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\GraphMeshDataReader.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcEdge.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Colliders\DtConvexTrimeshCollider.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Data\State\EDPlayerDataSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Core\RcAtomicFloat.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Shared\Scripts\InputSystemHelper.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Network\Proto\NActionMessage.cs" />
@ -804,12 +803,13 @@
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\2D\LoseSightWhenTargetsFallsOffThePlatform.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas.CodeGeneration.Attributes\src\UniqueAttribute.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtLocalBoundary.cs" />
<Compile Include="Assets\Scripts\Samples\Game\Logic\System\Usual\DDataSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Recast\RcRegions.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Context\IContexts.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Util\ToUtil.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtObstacleAvoidanceParams.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\App\Frame\JNSyncFrameService.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Core\Utility\Utility.Marshal.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\App\Frame\JNSyncFrameService.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Runtime\Sync\System\Data\SFrameDataSystem.cs" />
<Compile Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\Extensions\EntitasStringExtension.cs" />
<Compile Include="Assets\UsePlugins\SHFrame\Runtime\Modules\AudioModule\IAudioModule.cs" />
@ -839,6 +839,7 @@
<None Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\FadeOutNearbyObjects\FadeOut.shader" />
<None Include="Assets\Resources\Battle\Map\NavMesh\Map_1001.navmesh.json" />
<None Include="Assets\Packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.xml" />
<None Include="Assets\HybridCLRGenerate\link.xml" />
<None Include="Assets\UsePlugins\JNGame\Plugins\Entitas\Entitas\src\version.txt" />
<None Include="Assets\Packages\TouchSocket.2.0.16\LICENSE.txt" />
<None Include="Assets\Packages\System.Text.Json.6.0.0\lib\netstandard2.0\System.Text.Json.xml" />
@ -1679,6 +1680,14 @@
<Project>{33448493-9d07-9e6d-e65e-d48b790a1dbf}</Project>
<Name>StompyRobot.SRF.Editor</Name>
</ProjectReference>
<ProjectReference Include="HotSamples.csproj">
<Project>{d19923e9-71a3-f5e1-00b9-865a2997ed43}</Project>
<Name>HotSamples</Name>
</ProjectReference>
<ProjectReference Include="SHFrame.Editor.csproj">
<Project>{d9a8422d-46f3-a631-fce7-ee1cfe4cbcd7}</Project>
<Name>SHFrame.Editor</Name>
</ProjectReference>
<ProjectReference Include="UniTask.csproj">
<Project>{bf8742e6-eee2-4cf6-3e82-d12e15802154}</Project>
<Name>UniTask</Name>
@ -1704,9 +1713,6 @@
<Name>UniTask.DOTween</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="Assets\Scripts\HotSamples\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 185f6993d5150494d98da50e26cb1c25, type: 3}
m_Name: AssetBundleCollectorSetting
m_EditorClassIdentifier:
ShowPackageView: 0
ShowPackageView: 1
ShowEditorAlias: 0
UniqueBundleName: 0
Packages:
@ -24,12 +24,12 @@ MonoBehaviour:
AutoCollectShaders: 1
IgnoreRuleName: NormalIgnoreRule
Groups:
- GroupName: Script
- GroupName: Dll
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/HotAssets/Script
- CollectPath: Assets/HotAssets/HotDlls
CollectorGUID: dac7bc99d1e678248a1a3539ac15a567
CollectorType: 0
AddressRuleName: AddressByFileName

Binary file not shown.

View File

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

View File

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

Binary file not shown.

View File

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

Binary file not shown.

View File

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

View File

@ -0,0 +1,152 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1097140889740049220
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5162205910739773445}
- component: {fileID: 9141581918561402549}
m_Layer: 0
m_Name: HotPrefab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5162205910739773445
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1097140889740049220}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 96621009899838245}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &9141581918561402549
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1097140889740049220}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0bb5513bdb814e24499f3e520ec6cdf0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &4315455410363331238
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 96621009899838245}
- component: {fileID: 5454149831640709325}
- component: {fileID: 6484354210178095013}
- component: {fileID: 3227209449509042593}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &96621009899838245
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4315455410363331238}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5162205910739773445}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &5454149831640709325
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4315455410363331238}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &6484354210178095013
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4315455410363331238}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &3227209449509042593
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4315455410363331238}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}

View File

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

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8485a1946fd21c049b9fc51a6a56623b
guid: 7867acaf3f62b684e8ee2bb3444cdbe0
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -0,0 +1,53 @@
using System.Collections.Generic;
using UnityEngine;
public class ConsoleToScreen : MonoBehaviour
{
const int maxLines = 50;
const int maxLineLength = 120;
private string _logStr = "";
private readonly List<string> _lines = new();
public int fontSize = 15;
void OnEnable() { Application.logMessageReceived += Log; }
void OnDisable() { Application.logMessageReceived -= Log; }
public void Log(string logString, string stackTrace, LogType type)
{
foreach (var line in logString.Split('\n'))
{
if (line.Length <= maxLineLength)
{
_lines.Add(line);
continue;
}
var lineCount = line.Length / maxLineLength + 1;
for (int i = 0; i < lineCount; i++)
{
if ((i + 1) * maxLineLength <= line.Length)
{
_lines.Add(line.Substring(i * maxLineLength, maxLineLength));
}
else
{
_lines.Add(line.Substring(i * maxLineLength, line.Length - i * maxLineLength));
}
}
}
if (_lines.Count > maxLines)
{
_lines.RemoveRange(0, _lines.Count - maxLines);
}
// _lines.Add(stackTrace);
_logStr = string.Join("\n", _lines);
}
void OnGUI()
{
GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity,
new Vector3(Screen.width / 1200.0f, Screen.height / 800.0f, 1.0f));
GUI.Label(new Rect(10, 10, 800, 370), _logStr, new GUIStyle { fontSize = 10 });
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: dae197cb1d1228547a2af3254650955a
guid: f75d46640fcd41f49a2bc14a946c16cf
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -0,0 +1,339 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &790008994
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 790008996}
- component: {fileID: 790008995}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &790008995
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 790008994}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &790008996
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 790008994}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &1371947665
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1371947668}
- component: {fileID: 1371947667}
- component: {fileID: 1371947666}
- component: {fileID: 1371947669}
- component: {fileID: 1371947670}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &1371947666
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1371947665}
m_Enabled: 1
--- !u!20 &1371947667
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1371947665}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &1371947668
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1371947665}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1371947669
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1371947665}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f75d46640fcd41f49a2bc14a946c16cf, type: 3}
m_Name:
m_EditorClassIdentifier:
fontSize: 36
--- !u!114 &1371947670
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1371947665}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 21612b697232f004dbebce22c0000dd8, type: 3}
m_Name:
m_EditorClassIdentifier:
PlayMode: 0

View File

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

View File

@ -0,0 +1,297 @@
using HybridCLR;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using HotMain;
using UnityEngine;
using UnityEngine.Networking;
using YooAsset;
/// <summary>
/// 脚本工作流程:
/// 1.下载资源用YooAsset资源框架进行下载
/// 1资源文件ab包等
/// 2热更新dll
/// 3) AOT泛型补充元数据dll
/// 2.给AOT dll补充元数据通过RuntimeApi.LoadMetadataForAOTAssembly()
/// 3.通过实例化一个prefab运行热更新代码
/// </summary>
public class LoadDll : MonoBehaviour
{
/// <summary>
/// 资源系统运行模式
/// </summary>
public EPlayMode PlayMode = EPlayMode.OfflinePlayMode;
//补充元数据dll的列表
//通过RuntimeApi.LoadMetadataForAOTAssembly()函数来补充AOT泛型的原始元数据
public static List<string> AOTMetaAssemblyNames { get; } = new List<string>()
{
"mscorlib.dll",
"System.dll",
"System.Core.dll",
};
void Start()
{
//StartCoroutine(DownLoadAssets(this.StartGame));
StartCoroutine(DownLoadAssetsByYooAssets(this.StartGame));
}
private static Dictionary<string, byte[]> s_assetDatas = new Dictionary<string, byte[]>();
public static byte[] GetAssetData(string dllName)
{
return s_assetDatas[dllName];
}
private string GetWebRequestPath(string asset)
{
var path = $"{Application.streamingAssetsPath}/{asset}";
if (!path.Contains("://"))
{
path = "file://" + path;
}
if (path.EndsWith(".dll"))
{
path += ".bytes";
}
return path;
}
IEnumerator DownLoadAssetsByYooAssets(Action onDownloadComplete)
{
// 1.初始化资源系统
YooAssets.Initialize();
string packageName = "DefaultPackage";
// 创建默认的资源包
var package = YooAssets.TryGetPackage(packageName) ?? YooAssets.CreatePackage(packageName);
// 设置该资源包为默认的资源包可以使用YooAssets相关加载接口加载该资源包内容。
YooAssets.SetDefaultPackage(package);
if (PlayMode == EPlayMode.EditorSimulateMode)
{
Debug.Log("编辑器模式");
//编辑器模拟模式
var initParameters = new EditorSimulateModeParameters();
initParameters.EditorFileSystemParameters =
FileSystemParameters.CreateDefaultEditorFileSystemParameters(
EditorSimulateModeHelper.SimulateBuild(EDefaultBuildPipeline.ScriptableBuildPipeline, "DefaultPackage")
);
yield return package.InitializeAsync(initParameters);
}
else if (PlayMode == EPlayMode.HostPlayMode)
{
Debug.Log("在线模式");
// 注意GameQueryServices.cs 太空战机的脚本类详细见StreamingAssetsHelper.cs
string defaultHostServer = "http://127.0.0.1/CDN/Android/v1.0";
string fallbackHostServer = "http://127.0.0.1/CDN/Android/v1.0";
IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer);
var cacheFileSystem = FileSystemParameters.CreateDefaultCacheFileSystemParameters(remoteServices);
var buildinFileSystem = FileSystemParameters.CreateDefaultBuildinFileSystemParameters();
var initParameters = new HostPlayModeParameters();
initParameters.BuildinFileSystemParameters = buildinFileSystem;
initParameters.CacheFileSystemParameters = cacheFileSystem;
yield return package.InitializeAsync(initParameters);
}
else if (PlayMode == EPlayMode.OfflinePlayMode)
{
Debug.Log("离线模式");
// var buildinFileSystem = FileSystemParameters.CreateDefaultBuildinRawFileSystemParameters();
// var initParameters = new OfflinePlayModeParameters();
// initParameters.BuildinFileSystemParameters = buildinFileSystem;
// yield return package.InitializeAsync(initParameters);
// var initParametersOfflinePlayMode = new OfflinePlayModeParameters();
// yield return package.InitializeAsync(initParametersOfflinePlayMode);
var createParameters = new OfflinePlayModeParameters();
createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(new FileStreamDecryption());
yield return package.InitializeAsync(createParameters);
}
//2.获取资源版本
var operation = package.RequestPackageVersionAsync();
yield return operation;
if (operation.Status != EOperationStatus.Succeed)
{
//更新失败
Debug.LogError(operation.Error);
//TODO
yield break;
}
string PackageVersion = operation.PackageVersion;
//3.更新补丁清单
var operation2 = package.UpdatePackageManifestAsync(PackageVersion);
yield return operation2;
if (operation2.Status != EOperationStatus.Succeed)
{
//更新失败
Debug.LogError(operation2.Error);
//TODO:
yield break;
}
//4.下载补丁包
yield return Download();
//TODO:判断是否下载成功...
var assets = new List<string>
{
"HotSamples.dll",
}.Concat(AOTMetaAssemblyNames);
foreach (var asset in assets)
{
var handle = package.LoadRawFileAsync(asset);
yield return handle;
byte[] fileData = handle.GetRawFileData();
s_assetDatas[asset] = fileData;
Debug.Log($"dll:{asset} size:{fileData.Length}");
}
onDownloadComplete();
}
IEnumerator Download()
{
int downloadingMaxNum = 10;
int failedTryAgain = 3;
int timeout = 60;
var package = YooAssets.GetPackage("DefaultPackage");
var downloader = package.CreateResourceDownloader(downloadingMaxNum, failedTryAgain, timeout);
//没有需要下载的资源
if (downloader.TotalDownloadCount == 0)
{
yield break;
}
//需要下载的文件总数和总大小
int totalDownloadCount = downloader.TotalDownloadCount;
long totalDownloadBytes = downloader.TotalDownloadBytes;
//注册回调方法
downloader.OnDownloadErrorCallback = OnDownloadErrorFunction;
downloader.OnDownloadProgressCallback = OnDownloadProgressUpdateFunction;
downloader.OnDownloadOverCallback = OnDownloadOverFunction;
downloader.OnStartDownloadFileCallback = OnStartDownloadFileFunction;
//开启下载
downloader.BeginDownload();
yield return downloader;
//检测下载结果
if (downloader.Status == EOperationStatus.Succeed)
{
//下载成功
Debug.Log("更新完成!");
//TODO:
}
else
{
//下载失败
Debug.LogError("更新失败!");
//TODO:
}
}
/// <summary>
/// 开始下载
/// </summary>
/// <param name="fileName"></param>
/// <param name="sizeBytes"></param>
/// <exception cref="NotImplementedException"></exception>
private void OnStartDownloadFileFunction(string fileName, long sizeBytes)
{
Debug.Log(string.Format("开始下载:文件名:{0}, 文件大小:{1}", fileName, sizeBytes));
}
/// <summary>
/// 下载完成
/// </summary>
/// <param name="isSucceed"></param>
/// <exception cref="NotImplementedException"></exception>
private void OnDownloadOverFunction(bool isSucceed)
{
Debug.Log("下载" + (isSucceed ? "成功" : "失败"));
}
/// <summary>
/// 更新中
/// </summary>
/// <param name="totalDownloadCount"></param>
/// <param name="currentDownloadCount"></param>
/// <param name="totalDownloadBytes"></param>
/// <param name="currentDownloadBytes"></param>
/// <exception cref="NotImplementedException"></exception>
private void OnDownloadProgressUpdateFunction(int totalDownloadCount, int currentDownloadCount, long totalDownloadBytes, long currentDownloadBytes)
{
Debug.Log(string.Format("文件总数:{0}, 已下载文件数:{1}, 下载总大小:{2}, 已下载大小:{3}", totalDownloadCount, currentDownloadCount, totalDownloadBytes, currentDownloadBytes));
}
/// <summary>
/// 下载出错
/// </summary>
/// <param name="fileName"></param>
/// <param name="error"></param>
/// <exception cref="NotImplementedException"></exception>
private void OnDownloadErrorFunction(string fileName, string error)
{
Debug.LogError(string.Format("下载出错:文件名:{0}, 错误信息:{1}", fileName, error));
}
void StartGame()
{
LoadMetadataForAOTAssemblies();
#if !UNITY_EDITOR
System.Reflection.Assembly.Load(GetAssetData("HotSamples.dll"));
#endif
//委托加载方式加载prefab
var package = YooAssets.GetPackage("DefaultPackage");
AssetHandle handle = package.LoadAssetAsync<GameObject>("HotPrefab");
handle.Completed += Handle_Completed;
//AssetBundle prefabAb = AssetBundle.LoadFromMemory(GetAssetData("prefabs"));
//GameObject testPrefab = Instantiate(prefabAb.LoadAsset<GameObject>("HotUpdatePrefab.prefab"));
}
private void Handle_Completed(AssetHandle obj)
{
GameObject go = obj.InstantiateSync();
Debug.Log($"Prefab name is {go.name}");
}
/// <summary>
/// 为aot assembly加载原始metadata 这个代码放aot或者热更新都行。
/// 一旦加载后如果AOT泛型函数对应native实现不存在则自动替换为解释模式执行
/// </summary>
private static void LoadMetadataForAOTAssemblies()
{
/// 注意补充元数据是给AOT dll补充元数据而不是给热更新dll补充元数据。
/// 热更新dll不缺元数据不需要补充如果调用LoadMetadataForAOTAssembly会返回错误
///
HomologousImageMode mode = HomologousImageMode.SuperSet;
foreach (var aotDllName in AOTMetaAssemblyNames)
{
byte[] dllBytes = GetAssetData(aotDllName);
// 加载assembly对应的dll会自动为它hook。一旦aot泛型函数的native函数不存在用解释器版本代码
LoadImageErrorCode err = RuntimeApi.LoadMetadataForAOTAssembly(dllBytes, mode);
Debug.Log($"LoadMetadataForAOTAssembly:{aotDllName}. mode:{mode} ret:{err}");
}
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b8bc2c30ad9668644ba298f980f2eda6
guid: 21612b697232f004dbebce22c0000dd8
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -0,0 +1,105 @@
using System.IO;
using UnityEngine;
using YooAsset;
namespace HotMain
{
public class RemoteServices : IRemoteServices
{
private string defaultHostServer;
private string fallbackHostServer;
public RemoteServices(string defaultHostServer, string fallbackHostServer)
{
this.defaultHostServer = defaultHostServer;
this.fallbackHostServer = fallbackHostServer;
}
public string GetRemoteMainURL(string fileName)
{
return defaultHostServer;
}
public string GetRemoteFallbackURL(string fileName)
{
return fallbackHostServer;
}
}
/// <summary>
/// 资源文件解密流
/// </summary>
public class BundleStream : FileStream
{
public const byte KEY = 64;
public BundleStream(string path, FileMode mode, FileAccess access, FileShare share) : base(path, mode, access, share)
{
}
public BundleStream(string path, FileMode mode) : base(path, mode)
{
}
public override int Read(byte[] array, int offset, int count)
{
var index = base.Read(array, offset, count);
for (int i = 0; i < array.Length; i++)
{
array[i] ^= KEY;
}
return index;
}
}
/// <summary>
/// 资源文件流加载解密类
/// </summary>
class FileStreamDecryption : IDecryptionServices
{
/// <summary>
/// 同步方式获取解密的资源包对象
/// 注意:加载流对象在资源包对象释放的时候会自动释放
/// </summary>
AssetBundle IDecryptionServices.LoadAssetBundle(DecryptFileInfo fileInfo, out Stream managedStream)
{
BundleStream bundleStream = new BundleStream(fileInfo.FileLoadPath, FileMode.Open, FileAccess.Read, FileShare.Read);
managedStream = bundleStream;
return AssetBundle.LoadFromStream(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize());
}
/// <summary>
/// 异步方式获取解密的资源包对象
/// 注意:加载流对象在资源包对象释放的时候会自动释放
/// </summary>
AssetBundleCreateRequest IDecryptionServices.LoadAssetBundleAsync(DecryptFileInfo fileInfo, out Stream managedStream)
{
BundleStream bundleStream = new BundleStream(fileInfo.FileLoadPath, FileMode.Open, FileAccess.Read, FileShare.Read);
managedStream = bundleStream;
return AssetBundle.LoadFromStreamAsync(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize());
}
/// <summary>
/// 获取解密的字节数据
/// </summary>
byte[] IDecryptionServices.ReadFileData(DecryptFileInfo fileInfo)
{
throw new System.NotImplementedException();
}
/// <summary>
/// 获取解密的文本数据
/// </summary>
string IDecryptionServices.ReadFileText(DecryptFileInfo fileInfo)
{
throw new System.NotImplementedException();
}
private static uint GetManagedReadBufferSize()
{
return 1024;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2c2a4207de1f4b1995db5f2f3a8d6e62
timeCreated: 1728649446

View File

@ -1,3 +0,0 @@
{
"name": "HotUpdate"
}

View File

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

View File

@ -0,0 +1,20 @@
using System.Collections.Generic;
public class AOTGenericReferences : UnityEngine.MonoBehaviour
{
// {{ AOT assemblies
public static readonly IReadOnlyList<string> PatchedAOTAssemblyList = new List<string>
{
};
// }}
// {{ constraint implement type
// }}
// {{ AOT generic types
// }}
public void RefMethods()
{
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: dd0630485bf39a24fb4fbf8a933447af
guid: 223c791d202ec474cb47cc02b13b5a13
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<linker>
<assembly fullname="System">
<type fullname="System.CodeDom.Compiler.GeneratedCodeAttribute" preserve="all" />
<type fullname="System.ComponentModel.EditorBrowsableAttribute" preserve="all" />
<type fullname="System.ComponentModel.EditorBrowsableState" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.CoreModule">
<type fullname="UnityEngine.Debug" preserve="all" />
<type fullname="UnityEngine.MonoBehaviour" preserve="all" />
</assembly>
<assembly fullname="mscorlib">
<type fullname="System.Array" preserve="all" />
<type fullname="System.Attribute" preserve="all" />
<type fullname="System.AttributeTargets" preserve="all" />
<type fullname="System.AttributeUsageAttribute" preserve="all" />
<type fullname="System.Byte" preserve="all" />
<type fullname="System.Diagnostics.DebuggableAttribute" preserve="all" />
<type fullname="System.Diagnostics.DebuggableAttribute/DebuggingModes" preserve="all" />
<type fullname="System.Object" preserve="all" />
<type fullname="System.Runtime.CompilerServices.CompilationRelaxationsAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.CompilerGeneratedAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" preserve="all" />
<type fullname="System.Runtime.CompilerServices.RuntimeHelpers" preserve="all" />
<type fullname="System.RuntimeFieldHandle" preserve="all" />
<type fullname="System.Type" preserve="all" />
<type fullname="System.ValueType" preserve="all" />
</assembly>
</linker>

View File

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

View File

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

View File

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

View File

@ -0,0 +1,21 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b05c83971e3dca94f9fa460d396385e5, type: 3}
m_Name: BuildinCatalog
m_EditorClassIdentifier:
PackageName: DefaultPackage
PackageVersion: 2024-10-12-1223
Wrappers:
- BundleGUID: bfb145a66fdd212e1e7d0e85b3bd23fb
FileName: bfb145a66fdd212e1e7d0e85b3bd23fb.bundle
- BundleGUID: dd5b6ec06aab3ed1af1455973a2dcf5c
FileName: dd5b6ec06aab3ed1af1455973a2dcf5c.bundle

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 647efbdb2e8bd2a4798bcb8fd65df227
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,3 @@
{
"name": "HotSamples"
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6fc57b2e8627d4041a32216a03aa5b2e
guid: 0c294b92570ce7d4f9b683484d608158
AssemblyDefinitionImporter:
externalObjects: {}
userData:

View File

@ -0,0 +1,9 @@
using UnityEngine;
public class InstantiateByAsset : MonoBehaviour
{
void Start()
{
Debug.Log("原始代码");
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1303100c362aa10459237b5ad8617f4b
guid: 0bb5513bdb814e24499f3e520ec6cdf0
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1 @@
96024b60764c418f90f13320619eafa7

View File

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

View File

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

View File

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

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 52ffd32d9bb44ec088d1d095ec79e968
timeCreated: 1728700704

View File

@ -0,0 +1,115 @@
// -----------------------------------------------
// Copyright © Sirius. All rights reserved.
// CreateTime: 2021/12/30 18:0:55
// -----------------------------------------------
/******************************************************************************
* DESCRIPTION: 使
*
* Copyright (c) 2020, (TanWeijun)
* All rights reserved
*
* COMPANY:
* CREATED: 2020.03.01, 15:20, CST
*******************************************************************************/
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using UnityEditor;
using UnityEngine;
namespace Game
{
public class CleanMaterial
{
[MenuItem("Assets/Tools/Clean Material")]
public static void Clean()
{
Material[] materials = Selection.GetFiltered<Material>(SelectionMode.Assets | SelectionMode.DeepAssets);
foreach (var material in materials)
{
CleanOneMaterial(material);
}
Debug.Log("清理材质全部完成");
}
private static bool CleanOneMaterial(Material _material)
{
// 收集材质使用到的所有纹理贴图
HashSet<string> textureGUIDs = CollectTextureGUIDs(_material);
string materialPathName = Path.GetFullPath(AssetDatabase.GetAssetPath(_material));
StringBuilder strBuilder = new StringBuilder();
using (StreamReader reader = new StreamReader(materialPathName))
{
Regex regex = new Regex(@"\s+guid:\s+(\w+),");
string line = reader.ReadLine();
while (null != line)
{
if (line.Contains("m_Texture:"))
{
// 包含纹理贴图引用的行使用正则表达式获取纹理贴图的guid
Match match = regex.Match(line);
if (match.Success)
{
string textureGUID = match.Groups[1].Value;
if (textureGUIDs.Contains(textureGUID))
{
strBuilder.AppendLine(line);
}
else
{
// 材质没有用到纹理贴图guid赋值为0来清除引用关系
strBuilder.AppendLine(line.Substring(0, line.IndexOf("fileID:") + 7) + " 0}");
}
}
else
{
strBuilder.AppendLine(line);
}
}
else
{
strBuilder.AppendLine(line);
}
line = reader.ReadLine();
}
}
using (StreamWriter writer = new StreamWriter(materialPathName))
{
writer.Write(strBuilder.ToString());
}
Debug.Log($"清理材质--{materialPathName}");
return true;
}
private static HashSet<string> CollectTextureGUIDs(Material _material)
{
HashSet<string> textureGUIDs = new HashSet<string>();
for (int i = 0; i < ShaderUtil.GetPropertyCount(_material.shader); ++i)
{
if (ShaderUtil.ShaderPropertyType.TexEnv == ShaderUtil.GetPropertyType(_material.shader, i))
{
Texture texture = _material.GetTexture(ShaderUtil.GetPropertyName(_material.shader, i));
if (null == texture)
{
continue;
}
string textureGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(texture));
if (!textureGUIDs.Contains(textureGUID))
{
textureGUIDs.Add(textureGUID);
}
}
}
return textureGUIDs;
}
}
}

View File

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

View File

@ -0,0 +1,126 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using UnityEditor;
using UnityEngine;
using Object = UnityEngine.Object;
public class DependAnalysis : EditorWindow
{
private static Object[] targetObjects;
private bool[] foldoutArr;
private Object[][] beDependArr;
private static int targetCount;
private Vector2 scrollPos;
string[] withoutExtensions = new string[] { ".prefab", ".unity", ".mat", ".asset", ".controller" };
[MenuItem("Assets/Tools/查找被引用", false, 19)]
static void FindReferences()
{
targetObjects = Selection.GetFiltered<Object>(SelectionMode.Assets);
targetCount = targetObjects == null ? 0 : targetObjects.Length;
if (targetCount == 0) return;
DependAnalysis window = GetWindow<DependAnalysis>("依赖分析");
window.Init();
window.Show();
}
void Init()
{
beDependArr = new Object[targetCount][];
foldoutArr = new bool[targetCount];
EditorStyles.foldout.richText = true;
for (int i = 0; i < targetCount; i++) beDependArr[i] = GetBeDepend(targetObjects[i]);
}
private void OnGUI()
{
if (beDependArr.Length != targetCount) return;
scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
Object[] objArr;
int count;
string objName;
for (int i = 0; i < targetCount; i++)
{
objArr = beDependArr[i];
count = objArr == null ? 0 : objArr.Length;
objName = Path.GetFileName(AssetDatabase.GetAssetPath(targetObjects[i]));
string info = count == 0
? $"<color=yellow>{objName}【{count}】</color>"
: $"{objName}【{count}】";
foldoutArr[i] = EditorGUILayout.Foldout(foldoutArr[i], info);
if (foldoutArr[i])
{
if (count > 0)
{
foreach (var obj in objArr)
{
EditorGUILayout.BeginHorizontal();
GUILayout.Space(15);
EditorGUILayout.ObjectField(obj, typeof(Object),true);
EditorGUILayout.EndHorizontal();
}
}
else
{
EditorGUILayout.BeginHorizontal();
GUILayout.Space(15);
EditorGUILayout.LabelField("【Null】");
EditorGUILayout.EndHorizontal();
}
}
}
EditorGUILayout.EndScrollView();
}
/// <summary>
/// 查找所有引用目标资源的物体
/// </summary>
/// <param name="target">目标资源</param>
/// <returns></returns>
private Object[] GetBeDepend(Object target)
{
if (target == null) return null;
string path = AssetDatabase.GetAssetPath(target);
if (string.IsNullOrEmpty(path)) return null;
string guid = AssetDatabase.AssetPathToGUID(path);
string[] files = Directory.GetFiles(Application.dataPath, "*",
SearchOption.AllDirectories).Where(s => withoutExtensions.Contains(Path.GetExtension(s).ToLower()))
.ToArray();
List<Object> objects = new List<Object>();
foreach (var file in files)
{
string assetPath = file.Replace(Application.dataPath, "");
assetPath = "Assets" + assetPath;
string readText = File.ReadAllText(file);
if (!readText.StartsWith("%YAML"))
{
var depends = AssetDatabase.GetDependencies(assetPath, false);
if (depends != null)
{
foreach (var dep in depends)
{
if (dep == path)
{
objects.Add(AssetDatabase.LoadAssetAtPath<Object>(assetPath));
break;
}
}
}
}
else if (Regex.IsMatch(readText, guid)) objects.Add(AssetDatabase.LoadAssetAtPath<Object>(assetPath));
}
return objects.ToArray();
}
private void OnDestroy()
{
targetObjects = null;
beDependArr = null;
foldoutArr = null;
}
}

View File

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

View File

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

View File

@ -0,0 +1,121 @@
using System.IO;
using HybridCLR.Editor;
using HybridCLR.Editor.Commands;
using UnityEditor;
using UnityEngine;
namespace SHFrame.Editor
{
public static class BuildAssetsCommand
{
public static string HybridCLRBuildCacheDir => Application.dataPath + "/HybridCLRBuildCache";
public static string AssetBundleOutputDir => $"{HybridCLRBuildCacheDir}/AssetBundleOutput";
public static string DllBytesDir => $"{Application.dataPath}/HotAssets/HotDlls";
public static string GetAssetBundleOutputDirByTarget(BuildTarget target)
{
return $"{AssetBundleOutputDir}/{target}";
}
public static string ToRelativeAssetPath(string s)
{
return s.Substring(s.IndexOf("Assets/"));
}
[MenuItem("HybridCLR/Build/泛型补充dll与热更新dll导出")]
public static void BuildAndCopyABAOTHotUpdateDlls()
{
BuildTarget target = EditorUserBuildSettings.activeBuildTarget;
CompileDllCommand.CompileDll(target);
CopyABAOTHotUpdateDlls(target);
}
public static void CopyABAOTHotUpdateDlls(BuildTarget target)
{
CopyAssetBundlesToStreamingAssets(target);
ClearEmptyFolder(DllBytesDir);
CopyAOTAssembliesToStreamingAssets();
CopyHotUpdateAssembliesToStreamingAssets();
AssetDatabase.Refresh();
}
public static void CopyAOTAssembliesToStreamingAssets()
{
var target = EditorUserBuildSettings.activeBuildTarget;
string aotAssembliesSrcDir = SettingsUtil.GetAssembliesPostIl2CppStripDir(target);
//string aotAssembliesDstDir = "D:\\User\\Dou\\Unitys\\2023fars\\Assets\\HotAsset\\HotDlls";
string aotAssembliesDstDir = Application.streamingAssetsPath;
foreach (var dll in SettingsUtil.AOTAssemblyNames)
{
string srcDllPath = $"{aotAssembliesSrcDir}/{dll}.dll";
if (!File.Exists(srcDllPath))
{
Debug.LogError($"ab中添加AOT补充元数据dll:{srcDllPath} 时发生错误,文件不存在。裁剪后的AOT dll在BuildPlayer时才能生成因此需要你先构建一次游戏App后再打包。");
continue;
}
string dllBytesPath = $"{DllBytesDir}/{dll}.dll.bytes";
File.Copy(srcDllPath, dllBytesPath, true);
Debug.Log($"[CopyAOTAssembliesToStreamingAssets] copy AOT dll {srcDllPath} -> {dllBytesPath}");
}
}
public static void CopyHotUpdateAssembliesToStreamingAssets()
{
var target = EditorUserBuildSettings.activeBuildTarget;
string hotfixDllSrcDir = SettingsUtil.GetHotUpdateDllsOutputDirByTarget(target);
//string hotfixAssembliesDstDir = "D:\\User\\Dou\\Unitys\\2023fars\\Assets\\HotAsset\\HotDlls";
string hotfixAssembliesDstDir = Application.streamingAssetsPath;
foreach (var dll in SettingsUtil.HotUpdateAssemblyFilesExcludePreserved)
{
string dllPath = $"{hotfixDllSrcDir}/{dll}";
string dllBytesPath = $"{DllBytesDir}/{dll}.bytes";
File.Copy(dllPath, dllBytesPath, true);
Debug.Log($"[CopyHotUpdateAssembliesToStreamingAssets] copy hotfix dll {dllPath} -> {dllBytesPath}");
}
}
public static void CopyAssetBundlesToStreamingAssets(BuildTarget target)
{
string streamingAssetPathDst = Application.streamingAssetsPath;
Directory.CreateDirectory(streamingAssetPathDst);
string outputDir = GetAssetBundleOutputDirByTarget(target);
var abs = new string[] { "prefabs" };
foreach (var ab in abs)
{
string srcAb = ToRelativeAssetPath($"{outputDir}/{ab}");
string dstAb = ToRelativeAssetPath($"{streamingAssetPathDst}/{ab}");
Debug.Log($"[CopyAssetBundlesToStreamingAssets] copy assetbundle {srcAb} -> {dstAb}");
AssetDatabase.CopyAsset(srcAb, dstAb);
}
}
private static void ClearEmptyFolder(string folderPath)
{
DirectoryInfo dir = new DirectoryInfo(folderPath);
DirectoryInfo[] subDirs = dir.GetDirectories("*.*", SearchOption.AllDirectories);
foreach (DirectoryInfo subDir in subDirs)
{
FileSystemInfo[] subFiles = subDir.GetFileSystemInfos();
if (subFiles.Length == 0)
{
File.Delete(subDir.FullName + ".meta");
subDir.Delete();
}
}
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
File.Delete(file.FullName);
}
AssetDatabase.Refresh();
}
}
}

View File

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

View File

@ -0,0 +1,84 @@
using System.IO;
using HybridCLR.Editor;
using HybridCLR.Editor.Commands;
using HybridCLR.Editor.Installer;
using UnityEditor;
using UnityEngine;
namespace SHFrame.Editor
{
public class BuildPlayerCommand
{
public static void CopyAssets(string outputDir)
{
Directory.CreateDirectory(outputDir);
foreach (var srcFile in Directory.GetFiles(Application.streamingAssetsPath))
{
string dstFile = $"{outputDir}/{Path.GetFileName(srcFile)}";
File.Copy(srcFile, dstFile, true);
}
}
public static void InstallFromRepo()
{
var ic = new InstallerController();
ic.InstallDefaultHybridCLR();
}
public static void InstallBuildWin64()
{
InstallFromRepo();
Build_Win64(true);
}
[MenuItem("HybridCLR/Build/Win64")]
public static void Build_Win64()
{
Build_Win64(false);
}
public static void Build_Win64(bool existWhenCompleted)
{
BuildTarget target = BuildTarget.StandaloneWindows64;
BuildTarget activeTarget = EditorUserBuildSettings.activeBuildTarget;
if (activeTarget != BuildTarget.StandaloneWindows64 && activeTarget != BuildTarget.StandaloneWindows)
{
Debug.LogError("请先切到Win平台再打包");
return;
}
// Get filename.
string outputPath = $"{SettingsUtil.ProjectDir}/Release-Win64";
var buildOptions = BuildOptions.CompressWithLz4;
string location = $"{outputPath}/HybridCLRTrial.exe";
PrebuildCommand.GenerateAll();
Debug.Log("====> Build App");
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions()
{
scenes = new string[] { "Assets/Scenes/main.unity" },
locationPathName = location,
options = buildOptions,
target = target,
targetGroup = BuildTargetGroup.Standalone,
};
var report = BuildPipeline.BuildPlayer(buildPlayerOptions);
if (report.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded)
{
Debug.LogError("打包失败");
if (existWhenCompleted)
{
EditorApplication.Exit(1);
}
return;
}
Debug.Log("====> 复制热更新资源和代码");
BuildAssetsCommand.BuildAndCopyABAOTHotUpdateDlls();
BashUtil.CopyDir(Application.streamingAssetsPath, $"{outputPath}/HybridCLRTrial_Data/StreamingAssets", true);
}
}
}

View File

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

View File

@ -0,0 +1,21 @@
{
"name": "SHFrame.Editor",
"rootNamespace": "",
"references": [
"GUID:e34a5702dd353724aa315fb8011f08c3",
"GUID:4d1926c9df5b052469a1c63448b7609a",
"GUID:2373f786d14518f44b0f475db77ba4de",
"GUID:ac484fe5e443f4146a129450c27f000f"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

View File

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

View File

@ -0,0 +1,87 @@
using System.IO;
using UnityEditor;
using UnityEngine;
public class AutoSetTextureUISprite : AssetPostprocessor
{
void OnPreprocessTexture()
{
//自动设置类型
if (assetPath.Contains("FGui"))
{
//fgui的图片资源需要设置为Sprite和不生成Mip Maps
TextureImporter textureImporter = (TextureImporter)assetImporter;
textureImporter.textureType = TextureImporterType.Default;
textureImporter.textureShape = TextureImporterShape.Texture2D;
textureImporter.mipmapEnabled = false;
textureImporter.filterMode = FilterMode.Bilinear;
}
}
// private void OnPostprocessMaterial(Material material)
// {
// if (assetPath.Contains("FairyRes"))
// {
// material.SetInt("_StraightAlphaInput", 1);
// AssetDatabase.SaveAssets();
// }
// }
// [MenuItem("Tools/ConvertGammaToLinearTex")]
public static void ConvertGammaToLinearTex()
{
var assetGUIDs = Selection.assetGUIDs;
foreach (var assetGUID in assetGUIDs)
{
var assetPath = AssetDatabase.GUIDToAssetPath(assetGUID);
Debug.Log(assetPath);
if (!assetPath.Contains(".png")) continue;
Texture2D srcTex = AssetDatabase.LoadAssetAtPath<Texture2D>(assetPath);
if (srcTex != null)
{
Texture2D temp = new Texture2D(srcTex.width, srcTex.height, TextureFormat.RGBA32, true);
Color[] pixels = srcTex.GetPixels();
for (int j = 0; j < pixels.Length; j++)
{
Color pixel = pixels[j];
pixel.r = Mathf.Pow(pixel.r, 2.2f);
pixel.g = Mathf.Pow(pixel.g, 2.2f);
pixel.b = Mathf.Pow(pixel.b, 2.2f);
pixels[j] = pixel;
}
temp.SetPixels(pixels);
temp.Apply();
var bytes = temp.EncodeToPNG();
File.WriteAllBytes(assetPath, bytes);
}
}
return;
// List<string> selectedAsset = FindSelectionObject("*. png");
// int count = selectedAsset.Count;
// for (int i = 0; i < count; i++)
// {
// Texture2D srcTex = AssetDatabase.LoadAssetAtPath<Texture2D>(selectedAsset[i]);
// if (srcTex != null)
// {
// Texture2D temp = new Texture2D(srcTex.width, srcTex.height, TextureFormat.RGBA32, true);
// Color[] pixels = srcTex.GetPixels();
// for (int j = 0; j < pixels.Length; j++)
// {
// Color pixel = pixels[i];
// pixel.r = Mathf.Pow(pixel.r, 2.2f);
// pixel.g = Mathf.Pow(pixel.g, 2.2f);
// pixel.b = Mathf.Pow(pixel.b, 2.2f);
// pixels[i] = pixel;
// }
//
// temp.SetPixels(pixels);
// temp.Apply();
// var bytes = temp.EncodeToPNG();
// File.WriteAllBytes(selectedAsset[i], bytes);
// }
// }
}
}

View File

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

View File

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

View File

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

View File

@ -0,0 +1,91 @@
using UnityEditor;
using UnityEngine;
using UnityToolbarExtender;
namespace SHFrame
{
[InitializeOnLoad]
public class EditorResourceMode
{
static class ToolbarStyles
{
public static readonly GUIStyle ToolBarExtenderBtnStyle;
public static readonly GUIStyle ToolBarTextStyle;
public static readonly GUIStyle ToolBarButtonGuiStyle;
static ToolbarStyles()
{
ToolBarExtenderBtnStyle = new GUIStyle("Command")
{
fontSize = 12,
alignment = TextAnchor.MiddleCenter,
imagePosition = ImagePosition.ImageAbove,
fontStyle = FontStyle.Normal,
fixedWidth = 60
};
ToolBarTextStyle = new GUIStyle(ButtonStyleName)
{
padding = new RectOffset(2, 8, 2, 2),
alignment = TextAnchor.MiddleCenter,
fontStyle = FontStyle.Bold
};
ToolBarButtonGuiStyle = new GUIStyle(ButtonStyleName)
{
padding = new RectOffset(2, 8, 2, 2),
alignment = TextAnchor.MiddleCenter,
fontStyle = FontStyle.Bold
};
}
}
static EditorResourceMode()
{
ToolbarExtender.RightToolbarGUI.Add(OnToolbarGUI);
_resourceModeIndex = EditorPrefs.GetInt("EditorResourceMode", 0);
}
private const string ButtonStyleName = "Tab middle";
static GUIStyle _buttonGuiStyle;
private static readonly string[] _resourceModeNames =
{ "EditorMode (编辑器下的模拟模式)",
"OfflinePlayMode (单机模式)",
"HostPlayMode (联机运行模式)",
"WebPlayMode (WebGL运行模式)"
};
private static int _resourceModeIndex = 0;
public static int ResourceModeIndex => _resourceModeIndex;
static void OnToolbarGUI()
{
EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
{
// GUILayout.Label("资源加载模式:",ToolbarStyles.ToolBarTextStyle);
GUILayout.Space(10);
GUILayout.FlexibleSpace();
// 资源模式
int selectedIndex = EditorGUILayout.Popup("", _resourceModeIndex, _resourceModeNames, ToolbarStyles.ToolBarButtonGuiStyle);
// ReSharper disable once RedundantCheckBeforeAssignment
if (selectedIndex != _resourceModeIndex)
{
Debug.Log($"更改编辑器资源运行模式 : {_resourceModeNames[selectedIndex]}");
_resourceModeIndex = selectedIndex;
EditorPrefs.SetInt("EditorResourceMode", selectedIndex);
}
GUILayout.FlexibleSpace();
GUILayout.Space(400);
}
EditorGUI.EndDisabledGroup();
}
}
}

View File

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

View File

@ -0,0 +1,91 @@
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityToolbarExtender;
namespace SHFrame
{
[InitializeOnLoad]
public class SceneSwitchLeftButton
{
private static readonly string SceneMain = "Boot";
static SceneSwitchLeftButton()
{
ToolbarExtender.LeftToolbarGUI.Add(OnToolbarGUI);
}
static readonly string ButtonStyleName = "Tab middle";
static GUIStyle _buttonGuiStyle;
static void OnToolbarGUI()
{
_buttonGuiStyle ??= new GUIStyle(ButtonStyleName)
{
padding = new RectOffset(2, 8, 2, 2),
alignment = TextAnchor.MiddleCenter,
fontStyle = FontStyle.Bold,
};
GUILayout.FlexibleSpace();
if (GUILayout.Button(
new GUIContent("Launcher", EditorGUIUtility.FindTexture("PlayButton"), $"Start Scene Launcher"),
_buttonGuiStyle))
{
if (EditorApplication.isPlaying)
{
EditorApplication.isPlaying = false;
}
else
{
SceneHelper.StartScene(SceneMain);
}
}
}
}
static class SceneHelper
{
static string _sceneToOpen;
public static void StartScene(string sceneName)
{
if (EditorApplication.isPlaying)
{
EditorApplication.isPlaying = false;
}
_sceneToOpen = sceneName;
EditorApplication.update += OnUpdate;
}
static void OnUpdate()
{
if (_sceneToOpen == null ||
EditorApplication.isPlaying || EditorApplication.isPaused ||
EditorApplication.isCompiling || EditorApplication.isPlayingOrWillChangePlaymode)
{
return;
}
EditorApplication.update -= OnUpdate;
if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
{
string[] guids = AssetDatabase.FindAssets("t:scene " + _sceneToOpen, null);
if (guids.Length == 0)
{
Debug.LogWarning("Couldn't find scene file");
}
else
{
string scenePath = AssetDatabase.GUIDToAssetPath(guids[0]);
EditorSceneManager.OpenScene(scenePath);
EditorApplication.isPlaying = true;
}
}
_sceneToOpen = null;
}
}
}

View File

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

View File

@ -0,0 +1,110 @@
using System;
using System.Reflection;
using UnityEditor;
using UnityEngine;
#if UNITY_2019_1_OR_NEWER
using UnityEngine.UIElements;
#else
using UnityEngine.Experimental.UIElements;
#endif
namespace UnityToolbarExtender
{
public static class ToolbarCallback
{
static Type m_toolbarType = typeof(Editor).Assembly.GetType("UnityEditor.Toolbar");
static Type m_guiViewType = typeof(Editor).Assembly.GetType("UnityEditor.GUIView");
#if UNITY_2020_1_OR_NEWER
static Type m_iWindowBackendType = typeof(Editor).Assembly.GetType("UnityEditor.IWindowBackend");
static PropertyInfo m_windowBackend = m_guiViewType.GetProperty("windowBackend",
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
static PropertyInfo m_viewVisualTree = m_iWindowBackendType.GetProperty("visualTree",
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
#else
static PropertyInfo m_viewVisualTree = m_guiViewType.GetProperty("visualTree",
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
#endif
static FieldInfo m_imguiContainerOnGui = typeof(IMGUIContainer).GetField("m_OnGUIHandler",
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
static ScriptableObject m_currentToolbar;
/// <summary>
/// Callback for toolbar OnGUI method.
/// </summary>
public static Action OnToolbarGUI;
public static Action OnToolbarGUILeft;
public static Action OnToolbarGUIRight;
static ToolbarCallback()
{
EditorApplication.update -= OnUpdate;
EditorApplication.update += OnUpdate;
}
static void OnUpdate()
{
// Relying on the fact that toolbar is ScriptableObject and gets deleted when layout changes
if (m_currentToolbar == null)
{
// Find toolbar
var toolbars = Resources.FindObjectsOfTypeAll(m_toolbarType);
m_currentToolbar = toolbars.Length > 0 ? (ScriptableObject) toolbars[0] : null;
if (m_currentToolbar != null)
{
#if UNITY_2021_1_OR_NEWER
var root = m_currentToolbar.GetType().GetField("m_Root", BindingFlags.NonPublic | BindingFlags.Instance);
var rawRoot = root.GetValue(m_currentToolbar);
var mRoot = rawRoot as VisualElement;
RegisterCallback("ToolbarZoneLeftAlign", OnToolbarGUILeft);
RegisterCallback("ToolbarZoneRightAlign", OnToolbarGUIRight);
void RegisterCallback(string root, Action cb) {
var toolbarZone = mRoot.Q(root);
var parent = new VisualElement()
{
style = {
flexGrow = 1,
flexDirection = FlexDirection.Row,
}
};
var container = new IMGUIContainer();
container.style.flexGrow = 1;
container.onGUIHandler += () => {
cb?.Invoke();
};
parent.Add(container);
toolbarZone.Add(parent);
}
#else
#if UNITY_2020_1_OR_NEWER
var windowBackend = m_windowBackend.GetValue(m_currentToolbar);
// Get it's visual tree
var visualTree = (VisualElement) m_viewVisualTree.GetValue(windowBackend, null);
#else
// Get it's visual tree
var visualTree = (VisualElement) m_viewVisualTree.GetValue(m_currentToolbar, null);
#endif
// Get first child which 'happens' to be toolbar IMGUIContainer
var container = (IMGUIContainer) visualTree[0];
// (Re)attach handler
var handler = (Action) m_imguiContainerOnGui.GetValue(container);
handler -= OnGUI;
handler += OnGUI;
m_imguiContainerOnGui.SetValue(container, handler);
#endif
}
}
}
static void OnGUI()
{
var handler = OnToolbarGUI;
if (handler != null) handler();
}
}
}

View File

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

View File

@ -0,0 +1,169 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEngine;
namespace UnityToolbarExtender
{
[InitializeOnLoad]
public static class ToolbarExtender
{
static int m_toolCount;
static GUIStyle m_commandStyle = null;
public static readonly List<Action> LeftToolbarGUI = new List<Action>();
public static readonly List<Action> RightToolbarGUI = new List<Action>();
static ToolbarExtender()
{
Type toolbarType = typeof(Editor).Assembly.GetType("UnityEditor.Toolbar");
#if UNITY_2019_1_OR_NEWER
string fieldName = "k_ToolCount";
#else
string fieldName = "s_ShownToolIcons";
#endif
FieldInfo toolIcons = toolbarType.GetField(fieldName,
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
#if UNITY_2019_3_OR_NEWER
m_toolCount = toolIcons != null ? ((int) toolIcons.GetValue(null)) : 8;
#elif UNITY_2019_1_OR_NEWER
m_toolCount = toolIcons != null ? ((int) toolIcons.GetValue(null)) : 7;
#elif UNITY_2018_1_OR_NEWER
m_toolCount = toolIcons != null ? ((Array) toolIcons.GetValue(null)).Length : 6;
#else
m_toolCount = toolIcons != null ? ((Array) toolIcons.GetValue(null)).Length : 5;
#endif
ToolbarCallback.OnToolbarGUI = OnGUI;
ToolbarCallback.OnToolbarGUILeft = GUILeft;
ToolbarCallback.OnToolbarGUIRight = GUIRight;
}
#if UNITY_2019_3_OR_NEWER
public const float space = 8;
#else
public const float space = 10;
#endif
public const float largeSpace = 20;
public const float buttonWidth = 32;
public const float dropdownWidth = 80;
#if UNITY_2019_1_OR_NEWER
public const float playPauseStopWidth = 140;
#else
public const float playPauseStopWidth = 100;
#endif
static void OnGUI()
{
// Create two containers, left and right
// Screen is whole toolbar
if (m_commandStyle == null)
{
m_commandStyle = new GUIStyle("CommandLeft");
}
var screenWidth = EditorGUIUtility.currentViewWidth;
// Following calculations match code reflected from Toolbar.OldOnGUI()
float playButtonsPosition = Mathf.RoundToInt ((screenWidth - playPauseStopWidth) / 2);
Rect leftRect = new Rect(0, 0, screenWidth, Screen.height);
leftRect.xMin += space; // Spacing left
leftRect.xMin += buttonWidth * m_toolCount; // Tool buttons
#if UNITY_2019_3_OR_NEWER
leftRect.xMin += space; // Spacing between tools and pivot
#else
leftRect.xMin += largeSpace; // Spacing between tools and pivot
#endif
leftRect.xMin += 64 * 2; // Pivot buttons
leftRect.xMax = playButtonsPosition;
Rect rightRect = new Rect(0, 0, screenWidth, Screen.height);
rightRect.xMin = playButtonsPosition;
rightRect.xMin += m_commandStyle.fixedWidth * 3; // Play buttons
rightRect.xMax = screenWidth;
rightRect.xMax -= space; // Spacing right
rightRect.xMax -= dropdownWidth; // Layout
rightRect.xMax -= space; // Spacing between layout and layers
rightRect.xMax -= dropdownWidth; // Layers
#if UNITY_2019_3_OR_NEWER
rightRect.xMax -= space; // Spacing between layers and account
#else
rightRect.xMax -= largeSpace; // Spacing between layers and account
#endif
rightRect.xMax -= dropdownWidth; // Account
rightRect.xMax -= space; // Spacing between account and cloud
rightRect.xMax -= buttonWidth; // Cloud
rightRect.xMax -= space; // Spacing between cloud and collab
rightRect.xMax -= 78; // Colab
// Add spacing around existing controls
leftRect.xMin += space;
leftRect.xMax -= space;
rightRect.xMin += space;
rightRect.xMax -= space;
// Add top and bottom margins
#if UNITY_2019_3_OR_NEWER
leftRect.y = 4;
leftRect.height = 22;
rightRect.y = 4;
rightRect.height = 22;
#else
leftRect.y = 5;
leftRect.height = 24;
rightRect.y = 5;
rightRect.height = 24;
#endif
if (leftRect.width > 0)
{
GUILayout.BeginArea(leftRect);
GUILayout.BeginHorizontal();
foreach (var handler in LeftToolbarGUI)
{
handler();
}
GUILayout.EndHorizontal();
GUILayout.EndArea();
}
if (rightRect.width > 0)
{
GUILayout.BeginArea(rightRect);
GUILayout.BeginHorizontal();
foreach (var handler in RightToolbarGUI)
{
handler();
}
GUILayout.EndHorizontal();
GUILayout.EndArea();
}
}
public static void GUILeft() {
GUILayout.BeginHorizontal();
foreach (var handler in LeftToolbarGUI)
{
handler();
}
GUILayout.EndHorizontal();
}
public static void GUIRight() {
GUILayout.BeginHorizontal();
foreach (var handler in RightToolbarGUI)
{
handler();
}
GUILayout.EndHorizontal();
}
}
}

View File

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

View File

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

View File

@ -0,0 +1,12 @@
namespace UnityWebSocket.Editor
{
public static class Settings
{
public const string GITHUB = "https://github.com/psygames/UnityWebSocket";
public const string QQ_GROUP = "1126457634";
public const string QQ_GROUP_LINK = "https://qm.qq.com/cgi-bin/qm/qr?k=KcexYJ9aYwogFXbj2aN0XHH5b2G7ICmd";
public const string EMAIL = "799329256@qq.com";
public const string AUHTOR = "psygames";
public const string VERSION = "2.7.0";
}
}

View File

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

View File

@ -0,0 +1,228 @@
using System;
using UnityEditor;
using UnityEngine;
using UnityEngine.Networking;
namespace UnityWebSocket.Editor
{
internal class SettingsWindow : EditorWindow
{
static SettingsWindow window = null;
[MenuItem("Tools/UnityWebSocket", priority = 100)]
internal static void Open()
{
if (window != null)
{
window.Close();
}
window = GetWindow<SettingsWindow>(true, "UnityWebSocket");
window.minSize = window.maxSize = new Vector2(600, 310);
window.Show();
window.BeginCheck();
}
private void OnGUI()
{
DrawLogo();
DrawVersion();
DrawSeparator(80);
DrawSeparator(186);
DrawHelper();
DrawFooter();
}
Texture2D logoTex = null;
private void DrawLogo()
{
if (logoTex == null)
{
logoTex = new Texture2D(66, 66);
logoTex.LoadImage(Convert.FromBase64String(LOGO_BASE64.VALUE));
for (int i = 0; i < 66; i++) for (int j = 0; j < 15; j++) logoTex.SetPixel(i, j, Color.clear);
logoTex.Apply();
}
var logoPos = new Rect(10, 10, 66, 66);
GUI.DrawTexture(logoPos, logoTex);
var title = "<color=#3A9AD8><b>UnityWebSocket</b></color>";
var titlePos = new Rect(80, 20, 500, 50);
GUI.Label(titlePos, title, TextStyle(24));
}
private void DrawSeparator(int y)
{
EditorGUI.DrawRect(new Rect(10, y, 580, 1), Color.white * 0.5f);
}
private GUIStyle TextStyle(int fontSize = 10, TextAnchor alignment = TextAnchor.UpperLeft, float alpha = 0.85f)
{
var style = new GUIStyle();
style.fontSize = fontSize;
style.normal.textColor = (EditorGUIUtility.isProSkin ? Color.white : Color.black) * alpha;
style.alignment = alignment;
style.richText = true;
return style;
}
private void DrawVersion()
{
GUI.Label(new Rect(440, 10, 150, 10), "Current Version: " + Settings.VERSION, TextStyle(alignment: TextAnchor.MiddleLeft));
if (string.IsNullOrEmpty(latestVersion))
{
GUI.Label(new Rect(440, 30, 150, 10), "Checking for Updates...", TextStyle(alignment: TextAnchor.MiddleLeft));
}
else if (latestVersion == "unknown")
{
}
else
{
GUI.Label(new Rect(440, 30, 150, 10), "Latest Version: " + latestVersion, TextStyle(alignment: TextAnchor.MiddleLeft));
if (Settings.VERSION == latestVersion)
{
if (GUI.Button(new Rect(440, 50, 150, 18), "Check Update"))
{
latestVersion = "";
changeLog = "";
BeginCheck();
}
}
else
{
if (GUI.Button(new Rect(440, 50, 150, 18), "Update to | " + latestVersion))
{
ShowUpdateDialog();
}
}
}
}
private void ShowUpdateDialog()
{
var isOK = EditorUtility.DisplayDialog("UnityWebSocket",
"Update UnityWebSocket now?\n" + changeLog,
"Update Now", "Cancel");
if (isOK)
{
UpdateVersion();
}
}
private void UpdateVersion()
{
Application.OpenURL(Settings.GITHUB + "/releases");
}
private void DrawHelper()
{
GUI.Label(new Rect(330, 200, 100, 18), "GitHub:", TextStyle(10, TextAnchor.MiddleRight));
if (GUI.Button(new Rect(440, 200, 150, 18), "UnityWebSocket"))
{
Application.OpenURL(Settings.GITHUB);
}
GUI.Label(new Rect(330, 225, 100, 18), "Report:", TextStyle(10, TextAnchor.MiddleRight));
if (GUI.Button(new Rect(440, 225, 150, 18), "Report an Issue"))
{
Application.OpenURL(Settings.GITHUB + "/issues/new");
}
GUI.Label(new Rect(330, 250, 100, 18), "Email:", TextStyle(10, TextAnchor.MiddleRight));
if (GUI.Button(new Rect(440, 250, 150, 18), Settings.EMAIL))
{
var uri = new Uri(string.Format("mailto:{0}?subject={1}", Settings.EMAIL, "UnityWebSocket Feedback"));
Application.OpenURL(uri.AbsoluteUri);
}
GUI.Label(new Rect(330, 275, 100, 18), "QQ群:", TextStyle(10, TextAnchor.MiddleRight));
if (GUI.Button(new Rect(440, 275, 150, 18), Settings.QQ_GROUP))
{
Application.OpenURL(Settings.QQ_GROUP_LINK);
}
}
private void DrawFooter()
{
EditorGUI.DropShadowLabel(new Rect(10, 230, 400, 20), "Developed by " + Settings.AUHTOR);
EditorGUI.DropShadowLabel(new Rect(10, 250, 400, 20), "All rights reserved");
}
UnityWebRequest req;
string changeLog = "";
string latestVersion = "";
void BeginCheck()
{
EditorApplication.update -= VersionCheckUpdate;
EditorApplication.update += VersionCheckUpdate;
req = UnityWebRequest.Get(Settings.GITHUB + "/releases/latest");
req.SendWebRequest();
}
private void VersionCheckUpdate()
{
#if UNITY_2020_3_OR_NEWER
if (req == null
|| req.result == UnityWebRequest.Result.ConnectionError
|| req.result == UnityWebRequest.Result.DataProcessingError
|| req.result == UnityWebRequest.Result.ProtocolError)
#elif UNITY_2018_1_OR_NEWER
if (req == null || req.isNetworkError || req.isHttpError)
#else
if (req == null || req.isError)
#endif
{
EditorApplication.update -= VersionCheckUpdate;
latestVersion = "unknown";
return;
}
if (req.isDone)
{
EditorApplication.update -= VersionCheckUpdate;
latestVersion = req.url.Substring(req.url.LastIndexOf("/") + 1).TrimStart('v');
if (Settings.VERSION != latestVersion)
{
var text = req.downloadHandler.text;
var st = text.IndexOf("content=\"" + latestVersion);
st = st > 0 ? text.IndexOf("\n", st) : -1;
var end = st > 0 ? text.IndexOf("\" />", st) : -1;
if (st > 0 && end > st)
{
changeLog = text.Substring(st + 1, end - st - 1).Trim();
changeLog = changeLog.Replace("\r", "");
changeLog = changeLog.Replace("\n", "\n- ");
changeLog = "\nCHANGE LOG: \n- " + changeLog + "\n";
}
}
Repaint();
}
}
}
internal static class LOGO_BASE64
{
internal const string VALUE = "iVBORw0KGgoAAAANSUhEUgAAAEIAAABCCAMAAADUivDaAAAAq1BMVEUAAABKmtcvjtYzl" +
"9szmNszl9syl9k0mNs0mNwzmNs0mNszl9szl9s0mNs0mNwzmNw0mNwyltk0mNw0mNwzl9s0mNsymNs0mNszmNwzmNwzm" +
"NszmNs0mNwzl9w0mNwzmNw0mNs0mNs0mNwzl9wzmNs0mNwzmNs0mNwzl90zmNszmNszl9szmNsxmNszmNszmNw0mNwzm" +
"Nw0mNs2neM4pe41mt43ouo2oOY5qfM+UHlaAAAAMnRSTlMAAwXN3sgI+/069MSCK6M/MA74h9qfFHB8STWMJ9OSdmNcI" +
"8qya1IeF+/U0EIa57mqmFTYJe4AAAN3SURBVFjD7ZbpkppAFEa/bgVBREF2kEVGFNeZsM77P1kadURnJkr8k1Qlx1Khu" +
"/pw7+2lwH/+YcgfMBBLG7VocwDamzH+wJBB8Qhjve2f0TdrGwjei6o4Ub/nM/APw5Z7vvSB/qrCrqbD6fBEVtigeMxks" +
"fX9zWbj+z1jhqgSBplQ50eGo4614WXlRAzgrRhmtSfvxAn7pB0N5ObaKKZZuU5/d37IBcBgUQwqDuf7Z2gUmVAl4NGNr" +
"/UeHxV5n39ulbaKLI86h6HilmM5M1aN126lpNhtl59yeTsp8nUMvpNC1J3bh5FtfVRk+bJrJunn5d4U4piJ/Vw9eXgsj" +
"4ZpZaCjg9waZkIpnBWLJ44OwoNu60F2UnSaEkKv4XnAlCpm6B4F/aKMDiyGi2L8SEEAVdxNLuzmgV7nFwObEe2xQVuX+" +
"RV1lWetga3w+cN1sXgvm4cJH8OEgZC1DPKhfF/BIymmQrMjq/x65FUeEkDup8GxoexZmznHCvANtXU/CAq13yimhQGtm" +
"H4VCPnBBL1fTKo3CqEcvq7Lb/OwHxWTYlyw+JmjKoVvDLVOQB4pVsM8K8smgvLCxZDlIijwyOEc+nr/msMwK0+GQWGBd" +
"tmhjv8icTds1s2ammaFh04QLLe69NK7guP6mTDMaw3o6nAX/Z7EXUskPSvWEWg4srVlp5NTDXv9Lce9HGN5eeG4nj5Yz" +
"ACteU2wQLo4MBtJfd1nw5nG1/s9zwUQ6pykL1TQjqdeuvQW0naz2XKLYL4Cwzr4vj+OQdD96CSp7Lrynp4aeFF0xdm5q" +
"6OFtFfPv7URxpWJNjd/N+3+I9+1klMav12Qtgbt9R2JaIopjkzaPtOFq4KxUpqfUMSFnQrySWjLoQzRZS4HMH84ME1ej" +
"S1YJpQZ3B+sR1uCQJSBdGdCk1eAEgORR88KK05W8dh2MA+A/SKCYu3mCJ0Ek7HBx4HHeuwYy5G3x8hSMTJcOMFbinCsn" +
"hO1V1aszGULvA0g4UFsb4VA0hAFcyo6cgLsAoT7uUtGAH5wQKQle0wuLyxLTaNyJEYwxw4wSljLK1TP8CAaOyhBMMEsj" +
"OBoXgo7VGElFkSWL+vef1RF2YNXeRWYzQBTpkhC8KaZHhuIogArkQLKClBZjU26B2IZgGz+cpZkHl8g3fYUaW/YP2kb2" +
"M/V97JY/vZN859n+QmO7XtC9Bf2jAAAAABJRU5ErkJggg==";
}
}

View File

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

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: f25d7db6a1244938b2eef1e38c1e65be
timeCreated: 1709030835

View File

@ -1,25 +0,0 @@
namespace SHFrame
{
/// <summary> 事件参数
/// <para>ZhangYu 2019-03-05</para>
/// </summary>
public class EventArgs
{
/// <summary> 事件类型 </summary>
public readonly string type;
/// <summary> 事件参数 </summary>
public readonly object[] args;
public EventArgs(string type)
{
this.type = type;
}
public EventArgs(string type, params object[] args)
{
this.type = type;
this.args = args;
}
}
}

View File

@ -1,74 +0,0 @@
using System.Collections.Generic;
namespace SHFrame
{
/// <summary>
/// 事件派发器
/// <para>ZhangYu 2019-03-05</para>
/// </summary>
public class EventDispatcher
{
/// <summary> 事件Map </summary>
private Dictionary<string, EventListener> dic = new Dictionary<string, EventListener>();
/// <summary> 添加事件监听器 </summary>
/// <param name="eventType">事件类型</param>
/// <param name="eventHandler">事件处理器</param>
public void AddListener(string eventType, EventListener.EventHandler eventHandler)
{
EventListener invoker;
if (!dic.TryGetValue(eventType, out invoker))
{
invoker = new EventListener();
dic.Add(eventType, invoker);
}
invoker.eventHandler += eventHandler;
}
/// <summary> 移除事件监听器 </summary>
/// <param name="eventType">事件类型</param>
/// <param name="eventHandler">事件处理器</param>
public void RemoveListener(string eventType, EventListener.EventHandler eventHandler)
{
EventListener invoker;
if (dic.TryGetValue(eventType, out invoker)) invoker.eventHandler -= eventHandler;
}
/// <summary> 是否已经拥有该类型的事件 </summary>
/// <param name="eventType">事件类型</param>
public bool HasListener(string eventType)
{
return dic.ContainsKey(eventType);
}
/// <summary> 派发事件 </summary>
/// <param name="eventType">事件类型</param>
public void DispatchEvent(string eventType, params object[] args)
{
EventListener invoker;
if (dic.TryGetValue(eventType, out invoker))
{
EventArgs evt;
if (args == null || args.Length == 0)
{
evt = new EventArgs(eventType);
}
else
{
evt = new EventArgs(eventType, args);
}
invoker.Invoke(evt);
}
}
/// <summary> 清理所有事件监听器 </summary>
public void Clear()
{
foreach (EventListener value in dic.Values)
{
value.Clear();
}
dic.Clear();
}
}
}

View File

@ -1,27 +0,0 @@
namespace SHFrame
{
/// <summary>
/// 事件监听器
/// <para>ZhangYu 2019-03-05</para>
/// </summary>
public class EventListener
{
/// <summary> 事件处理器委托 </summary>
public delegate void EventHandler(EventArgs eventArgs);
/// <summary> 事件处理器集合 </summary>
public EventHandler eventHandler;
/// <summary> 调用所有添加的事件 </summary>
public void Invoke(EventArgs eventArgs)
{
if (eventHandler != null) eventHandler.Invoke(eventArgs);
}
/// <summary> 清理所有事件委托 </summary>
public void Clear()
{
eventHandler = null;
}
}
}

View File

@ -1,53 +0,0 @@
namespace SHFrame
{
/// <summary>
/// 事件工具
/// <para>ZhangYu 2019-03-04</para>
/// </summary>
public static class EventUtil
{
/// <summary> 事件派发器 </summary>
private static EventDispatcher dispatcher = new EventDispatcher();
/// <summary> 添加事件监听器 </summary>
/// <param name="eventType">事件类型</param>
/// <param name="eventHandler">事件处理器</param>
public static void AddListener(string eventType, EventListener.EventHandler eventHandler)
{
dispatcher.AddListener(eventType, eventHandler);
}
/// <summary> 移除事件监听器 </summary>
/// <param name="eventType">事件类型</param>
/// <param name="eventHandler">事件处理器</param>
public static void RemoveListener(string eventType, EventListener.EventHandler eventHandler)
{
dispatcher.RemoveListener(eventType, eventHandler);
}
/// <summary> 是否已经拥有该类型的事件 </summary>
/// <param name="eventType">事件类型</param>
public static bool HasListener(string eventType)
{
return dispatcher.HasListener(eventType);
}
/// <summary> 派发事件 </summary>
/// <param name="eventType">事件类型</param>
public static void DispatchEvent(string eventType, params object[] args)
{
dispatcher.DispatchEvent(eventType, args);
}
/// <summary> 清理所有事件监听器 </summary>
public static void Clear()
{
dispatcher.Clear();
}
// public static void DispatchEvent(string updateItemOrCard, object updateExpCard)
// {
// throw new NotImplementedException();
// }
}
}

View File

@ -305,8 +305,8 @@
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\modes\gcm\BasicGcmExponentiator.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\x509\Targets.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\Connections\HTTP2\HTTP2WebSocketStream.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\openssl\IPasswordFinder.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\ICipherBuilderWithKey.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\openssl\IPasswordFinder.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\engines\Dstu7624Engine.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\generators\Pkcs12ParametersGenerator.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\AsymmetricCipherKeyPair.cs" />
@ -328,8 +328,8 @@
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\ess\SigningCertificateV2.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\util\zlib\ZInputStream.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crmf\PkiArchiveControl.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\ocsp\BasicOCSPResp.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\esf\SigPolicyQualifierInfo.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\ocsp\BasicOCSPResp.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\cmp\KeyRecRepContent.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\TlsCredentials.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\TlsPskKeyExchange.cs" />
@ -638,9 +638,9 @@
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\esf\OcspListID.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\digests\Blake2bDigest.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SignalR\Enums.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\BERSequenceParser.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SignalRCore\HelperClasses.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\bcpg\ArmoredOutputStream.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\BERSequenceParser.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\TlsContext.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\UrlAndHash.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\parameters\ParametersWithIV.cs" />
@ -912,10 +912,10 @@
<Compile Include="Assets\Plugins\Best HTTP\Source\SocketIO.3\HandshakeData.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\digests\KeccakDigest.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\agreement\ECDHCBasicAgreement.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\IAlphabetMapper.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\DerGeneralString.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\bcpg\HashAlgorithmTags.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\Connections\HTTP2\HuffmanEncoder.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\IAlphabetMapper.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\ChannelBinding.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\pkix\PkixBuilderParameters.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\cmp\CmpCertificate.cs" />
@ -979,8 +979,8 @@
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\generators\HKDFBytesGenerator.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\x509\X509Crl.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\esf\OtherCertID.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\x509\store\X509CertStoreSelector.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\cmp\PKIConfirmContent.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\x509\store\X509CertStoreSelector.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\math\ec\custom\sec\SecP256K1Curve.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\engines\RsaEngine.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\cmp\GeneralPkiMessage.cs" />
@ -1558,9 +1558,9 @@
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\cms\CMSProcessableFile.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\SupplementalDataEntry.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\util\zlib\ZTree.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\DerInteger.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\AlertLevel.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\x9\X9ECPoint.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\DerInteger.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\digests\SHA3Digest.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\math\ec\multiplier\WNafPreCompInfo.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\DerBMPString.cs" />
@ -1805,11 +1805,11 @@
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\security\PrivateKeyFactory.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\digests\SkeinEngine.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\agreement\srp\SRP6Server.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\Core\ConnectionEvents.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\cmp\CertifiedKeyPair.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\Core\ConnectionEvents.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\x9\X962NamedCurves.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\pkcs\PKCS12PBEParams.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\engines\SM4Engine.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\pkcs\PKCS12PBEParams.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\x509\X509DefaultEntryConverter.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\parameters\GOST3410KeyParameters.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\crypto\impl\AbstractTlsSecret.cs" />
@ -1838,9 +1838,9 @@
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\util\zlib\Deflate.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\Connections\HTTP2\HTTP2SettingsRegistry.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\macs\KMac.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\crypto\impl\bc\BcX448.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\cms\OtherRecipientInfo.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\asn1\ConstructedILEncoding.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\tls\crypto\impl\bc\BcX448.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\math\ec\custom\sec\SecP256K1Point.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\crypto\parameters\IesWithCipherParameters.cs" />
<Compile Include="Assets\Plugins\Best HTTP\Source\SecureProtocol\math\ec\custom\sec\SecP224K1Point.cs" />

View File

@ -0,0 +1,110 @@
{
"Summary": {
"YooVersion": "2.2.4-preview",
"UnityVersion": "2022.3.1f1",
"BuildDate": "2024/10/12 20:23:42",
"BuildSeconds": 7,
"BuildTarget": 19,
"BuildMode": 0,
"BuildPipeline": "BuiltinBuildPipeline",
"BuildPackageName": "DefaultPackage",
"BuildPackageVersion": "2024-10-12-1223",
"UniqueBundleName": false,
"EnableAddressable": true,
"LocationToLower": false,
"IncludeAssetGUID": false,
"AutoCollectShaders": true,
"IgnoreRuleName": "YooAsset.Editor.NormalIgnoreRule",
"EnableSharePackRule": true,
"EncryptionClassName": "null",
"FileNameStyle": 0,
"CompressOption": 2,
"DisableWriteTypeTree": false,
"IgnoreTypeTreeChanges": true,
"AssetFileTotalCount": 5,
"MainAssetTotalCount": 5,
"AllBundleTotalCount": 2,
"AllBundleTotalSize": 1937845,
"EncryptedBundleTotalCount": 0,
"EncryptedBundleTotalSize": 0
},
"AssetInfos": [
{
"Address": "HotSamples.dll",
"AssetPath": "Assets/HotAssets/HotDlls/HotSamples.dll.bytes",
"AssetGUID": "31ecfccf5f58fcd4e82c0039b5c0433e",
"AssetTags": [],
"MainBundleName": "assets_hotassets_hotdlls.bundle",
"MainBundleSize": 1890994,
"DependAssets": []
},
{
"Address": "mscorlib.dll",
"AssetPath": "Assets/HotAssets/HotDlls/mscorlib.dll.bytes",
"AssetGUID": "c4f581dc739cf6048af0a89b137378bc",
"AssetTags": [],
"MainBundleName": "assets_hotassets_hotdlls.bundle",
"MainBundleSize": 1890994,
"DependAssets": []
},
{
"Address": "System.Core.dll",
"AssetPath": "Assets/HotAssets/HotDlls/System.Core.dll.bytes",
"AssetGUID": "1025cdbe997285647b72636669abf317",
"AssetTags": [],
"MainBundleName": "assets_hotassets_hotdlls.bundle",
"MainBundleSize": 1890994,
"DependAssets": []
},
{
"Address": "System.dll",
"AssetPath": "Assets/HotAssets/HotDlls/System.dll.bytes",
"AssetGUID": "946433c0616922f408bd60ce93af2f95",
"AssetTags": [],
"MainBundleName": "assets_hotassets_hotdlls.bundle",
"MainBundleSize": 1890994,
"DependAssets": []
},
{
"Address": "HotPrefab",
"AssetPath": "Assets/HotAssets/Resource/HotPrefab.prefab",
"AssetGUID": "053771d6a5f02174db227bd70d962ea5",
"AssetTags": [],
"MainBundleName": "assets_hotassets_resource_hotprefab.bundle",
"MainBundleSize": 46851,
"DependAssets": []
}
],
"BundleInfos": [
{
"BundleName": "assets_hotassets_hotdlls.bundle",
"FileName": "dd5b6ec06aab3ed1af1455973a2dcf5c.bundle",
"FileHash": "dd5b6ec06aab3ed1af1455973a2dcf5c",
"FileCRC": "09c54c4d",
"FileSize": 1890994,
"Encrypted": false,
"Tags": [],
"DependBundles": [],
"AllBuiltinAssets": [
"Assets/HotAssets/HotDlls/HotSamples.dll.bytes",
"Assets/HotAssets/HotDlls/mscorlib.dll.bytes",
"Assets/HotAssets/HotDlls/System.Core.dll.bytes",
"Assets/HotAssets/HotDlls/System.dll.bytes"
]
},
{
"BundleName": "assets_hotassets_resource_hotprefab.bundle",
"FileName": "bfb145a66fdd212e1e7d0e85b3bd23fb.bundle",
"FileHash": "bfb145a66fdd212e1e7d0e85b3bd23fb",
"FileCRC": "537aeb90",
"FileSize": 46851,
"Encrypted": false,
"Tags": [],
"DependBundles": [],
"AllBuiltinAssets": [
"Assets/HotAssets/Resource/HotPrefab.prefab"
]
}
],
"IndependAssets": []
}

View File

@ -0,0 +1,10 @@
ManifestFileVersion: 0
CRC: 424899128
AssetBundleManifest:
AssetBundleInfos:
Info_0:
Name: assets_hotassets_hotdlls.bundle
Dependencies: {}
Info_1:
Name: assets_hotassets_resource_hotprefab.bundle
Dependencies: {}

View File

@ -0,0 +1,69 @@
{
"FileVersion": "2.0.0",
"EnableAddressable": true,
"LocationToLower": false,
"IncludeAssetGUID": false,
"OutputNameStyle": 0,
"BuildPipeline": "BuiltinBuildPipeline",
"PackageName": "DefaultPackage",
"PackageVersion": "2024-10-12-1223",
"AssetList": [
{
"Address": "HotSamples.dll",
"AssetPath": "Assets/HotAssets/HotDlls/HotSamples.dll.bytes",
"AssetGUID": "",
"AssetTags": [],
"BundleID": 0
},
{
"Address": "mscorlib.dll",
"AssetPath": "Assets/HotAssets/HotDlls/mscorlib.dll.bytes",
"AssetGUID": "",
"AssetTags": [],
"BundleID": 0
},
{
"Address": "System.Core.dll",
"AssetPath": "Assets/HotAssets/HotDlls/System.Core.dll.bytes",
"AssetGUID": "",
"AssetTags": [],
"BundleID": 0
},
{
"Address": "System.dll",
"AssetPath": "Assets/HotAssets/HotDlls/System.dll.bytes",
"AssetGUID": "",
"AssetTags": [],
"BundleID": 0
},
{
"Address": "HotPrefab",
"AssetPath": "Assets/HotAssets/Resource/HotPrefab.prefab",
"AssetGUID": "",
"AssetTags": [],
"BundleID": 1
}
],
"BundleList": [
{
"BundleName": "assets_hotassets_hotdlls.bundle",
"UnityCRC": 1670832201,
"FileHash": "dd5b6ec06aab3ed1af1455973a2dcf5c",
"FileCRC": "09c54c4d",
"FileSize": 1890994,
"Encrypted": false,
"Tags": [],
"DependIDs": []
},
{
"BundleName": "assets_hotassets_resource_hotprefab.bundle",
"UnityCRC": 1304552708,
"FileHash": "bfb145a66fdd212e1e7d0e85b3bd23fb",
"FileCRC": "537aeb90",
"FileSize": 46851,
"Encrypted": false,
"Tags": [],
"DependIDs": []
}
]
}

View File

@ -0,0 +1,10 @@
ManifestFileVersion: 0
CRC: 424899128
AssetBundleManifest:
AssetBundleInfos:
Info_0:
Name: assets_hotassets_hotdlls.bundle
Dependencies: {}
Info_1:
Name: assets_hotassets_resource_hotprefab.bundle
Dependencies: {}

View File

@ -0,0 +1,20 @@
ManifestFileVersion: 0
CRC: 1670832201
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 27449e007a13e863060c21eeb03f1661
TypeTreeHash:
serializedVersion: 2
Hash: 5ad585dd02dfb5016c0dad519eab8f49
HashAppended: 0
ClassTypes:
- Class: 49
Script: {instanceID: 0}
SerializeReferenceClassIdentifiers: []
Assets:
- Assets/HotAssets/HotDlls/System.Core.dll.bytes
- Assets/HotAssets/HotDlls/System.dll.bytes
- Assets/HotAssets/HotDlls/HotSamples.dll.bytes
- Assets/HotAssets/HotDlls/mscorlib.dll.bytes
Dependencies: []

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