From ce38f042f7d985d99711d9ee7965b21d9f46fee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=B8=E6=88=8F=E7=B3=95=E6=89=8B=E7=88=B1=E4=B8=BD?= =?UTF-8?q?=E4=B8=9D?= <1747715394@qq.com> Date: Mon, 17 Nov 2025 00:31:20 +0800 Subject: [PATCH] 111 --- Assets/Boot.unity | 1238 ++++------------- .../Runtime/GameFramework.Runtime.asmdef | 3 +- .../Runtime/Network/AutoStart.cs | 109 +- .../Runtime/Network/VRNetworkDiscovery.cs | 97 ++ .../Network/VRNetworkDiscovery.cs.meta | 2 + .../Runtime/Network/VRNetworkManager.cs | 317 +++++ .../Runtime/Network/VRNetworkManager.cs.meta | 2 + Assets/GameRes/Main/Prefab/TestPlayer.prefab | 26 +- 8 files changed, 785 insertions(+), 1009 deletions(-) create mode 100644 Assets/GameFramework/Runtime/Network/VRNetworkDiscovery.cs create mode 100644 Assets/GameFramework/Runtime/Network/VRNetworkDiscovery.cs.meta create mode 100644 Assets/GameFramework/Runtime/Network/VRNetworkManager.cs create mode 100644 Assets/GameFramework/Runtime/Network/VRNetworkManager.cs.meta diff --git a/Assets/Boot.unity b/Assets/Boot.unity index 26b8045..032f4f9 100644 --- a/Assets/Boot.unity +++ b/Assets/Boot.unity @@ -119,74 +119,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &9128972 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9128974} - - component: {fileID: 9128973} - m_Layer: 0 - m_Name: XR Interaction Manager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &9128973 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9128972} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} - m_Name: - m_EditorClassIdentifier: - m_StartingHoverFilters: [] - m_StartingSelectFilters: [] ---- !u!4 &9128974 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9128972} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -1, z: -0, w: 0} - m_LocalPosition: {x: 0, y: -0.125, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1462688502} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &228711012 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 6480925242510836759, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 75b29b6c6428c984a8a73ffc2d58063b, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &228711013 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7347985736721345035, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e9f365cf844c03449bc8973eead2c3c1, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &246745092 GameObject: m_ObjectHideFlags: 0 @@ -257,251 +189,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &253511776 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1748222016861356527, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 01f69dc1cb084aa42b2f2f8cd87bc770, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &265418891 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 265418895} - - component: {fileID: 265418894} - - component: {fileID: 265418893} - - component: {fileID: 265418892} - - component: {fileID: 265418896} - m_Layer: 0 - m_Name: NetworkManager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &265418892 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 265418891} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6b0fecffa3f624585964b0d0eb21b18e, type: 3} - m_Name: - m_EditorClassIdentifier: - port: 7777 - DualMode: 1 - NoDelay: 1 - Interval: 10 - Timeout: 1000 - RecvBufferSize: 7361536 - SendBufferSize: 7361536 - FastResend: 2 - ReceiveWindowSize: 4096 - SendWindowSize: 4096 - MaxRetransmit: 40 - MaximizeSocketBuffers: 1 - ReliableMaxMessageSize: 297433 - UnreliableMaxMessageSize: 1194 - debugLog: 0 - statisticsGUI: 0 - statisticsLog: 0 ---- !u!114 &265418893 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 265418891} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c761308e733c51245b2e8bb4201f46dc, type: 3} - m_Name: - m_EditorClassIdentifier: - enableActiveDiscovery: 1 - BroadcastAddress: - serverBroadcastListenPort: 47777 - ActiveDiscoveryInterval: 1 - transport: {fileID: 265418892} - OnServerFound: - m_PersistentCalls: - m_Calls: [] - secretHandshake: 1685248568798857208 ---- !u!114 &265418894 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 265418891} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8aab4c8111b7c411b9b92cf3dbc5bd4e, type: 3} - m_Name: - m_EditorClassIdentifier: - dontDestroyOnLoad: 1 - runInBackground: 1 - headlessStartMode: 0 - editorAutoStart: 0 - sendRate: 60 - unreliableBaselineRate: 1 - unreliableRedundancy: 0 - transport: {fileID: 265418892} - networkAddress: localhost - maxConnections: 100 - disconnectInactiveConnections: 0 - disconnectInactiveTimeout: 60 - exceptionsDisconnect: 1 - authenticator: {fileID: 0} - offlineScene: - onlineScene: - offlineSceneLoadDelay: 0 - playerPrefab: {fileID: 8689222817812204944, guid: 2e2fb3d79e667044e8b684313d3cd456, type: 3} - autoCreatePlayer: 1 - playerSpawnMethod: 0 - spawnPrefabs: [] - snapshotSettings: - bufferTimeMultiplier: 2 - bufferLimit: 32 - catchupNegativeThreshold: -1 - catchupPositiveThreshold: 1 - catchupSpeed: 0.019999999552965164 - slowdownSpeed: 0.03999999910593033 - driftEmaDuration: 1 - dynamicAdjustment: 1 - dynamicAdjustmentTolerance: 1 - deliveryTimeEmaDuration: 2 - evaluationMethod: 0 - evaluationInterval: 3 - timeInterpolationGui: 0 ---- !u!4 &265418895 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 265418891} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &265418896 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 265418891} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9827faa6e4a06d6448411c03e4e2dff5, type: 3} - m_Name: - m_EditorClassIdentifier: - networkManager: {fileID: 265418894} - networkDiscovery: {fileID: 265418893} - waitForHostTimeout: 1 ---- !u!1 &375898165 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 375898168} - - component: {fileID: 375898167} - - component: {fileID: 375898166} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &375898166 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 375898165} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_ClickSpeed: 0.3 - m_MoveDeadzone: 0.6 - m_RepeatDelay: 0.5 - m_RepeatRate: 0.1 - m_TrackedDeviceDragThresholdMultiplier: 2 - m_TrackedScrollDeltaMultiplier: 5 - m_BypassUIToolkitEvents: 0 - m_ActiveInputMode: 1 - m_EnableXRInput: 1 - m_EnableMouseInput: 1 - m_EnableTouchInput: 1 - m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3} - m_EnableBuiltinActionsAsFallback: 1 - m_EnableGamepadInput: 1 - m_EnableJoystickInput: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel ---- !u!114 &375898167 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 375898165} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &375898168 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 375898165} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -1, z: -0, w: 0} - m_LocalPosition: {x: 0, y: -1500, z: -1000} - m_LocalScale: {x: 1000, y: 1000, z: 1000} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1171471948} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &410087039 GameObject: m_ObjectHideFlags: 0 @@ -623,17 +310,6 @@ MonoBehaviour: m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 1 ---- !u!114 &415504750 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 153982007679157697, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9b1e8c997df241c1a67045eeac79b41b, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &832575517 GameObject: m_ObjectHideFlags: 0 @@ -683,6 +359,37 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &899575913 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 899575914} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &899575914 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 899575913} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.108828, y: 1.1203349, z: -0.88419056} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1019312447 GameObject: m_ObjectHideFlags: 0 @@ -693,6 +400,7 @@ GameObject: m_Component: - component: {fileID: 1019312449} - component: {fileID: 1019312448} + - component: {fileID: 1019312450} m_Layer: 0 m_Name: Boot m_TagString: Untagged @@ -712,8 +420,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: beb122424f267994cb04b5ba15d3f694, type: 3} m_Name: m_EditorClassIdentifier: - player: {fileID: 1462688489} - PlayMode: 0 + player: {fileID: 0} + PlayMode: 2 --- !u!4 &1019312449 Transform: m_ObjectHideFlags: 0 @@ -729,6 +437,153 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1019312450 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1019312447} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9827faa6e4a06d6448411c03e4e2dff5, type: 3} + m_Name: + m_EditorClassIdentifier: + alwaysAutoStart: 1 + networkDiscovery: {fileID: 1032868857} + waitForHostTimeout: 1.1 +--- !u!1 &1032868856 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1032868860} + - component: {fileID: 1032868859} + - component: {fileID: 1032868858} + - component: {fileID: 1032868857} + m_Layer: 0 + m_Name: VRNetworkManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1032868857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032868856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 98ee6d92ccd0b0945bfcee6c94394c5b, type: 3} + m_Name: + m_EditorClassIdentifier: + enableActiveDiscovery: 1 + BroadcastAddress: + serverBroadcastListenPort: 47777 + ActiveDiscoveryInterval: 1 + transport: {fileID: 1032868859} + OnServerFound: + m_PersistentCalls: + m_Calls: [] + secretHandshake: -2639682736624041139 + autoStart: {fileID: 1019312450} +--- !u!114 &1032868858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032868856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f8bd151f9b7f049b29549f495d4b97, type: 3} + m_Name: + m_EditorClassIdentifier: + dontDestroyOnLoad: 1 + runInBackground: 1 + headlessStartMode: 0 + editorAutoStart: 0 + sendRate: 60 + unreliableBaselineRate: 1 + unreliableRedundancy: 0 + transport: {fileID: 1032868859} + networkAddress: localhost + maxConnections: 100 + disconnectInactiveConnections: 0 + disconnectInactiveTimeout: 60 + exceptionsDisconnect: 1 + authenticator: {fileID: 0} + offlineScene: + onlineScene: + offlineSceneLoadDelay: 0 + playerPrefab: {fileID: 8689222817812204944, guid: 2e2fb3d79e667044e8b684313d3cd456, type: 3} + autoCreatePlayer: 1 + playerSpawnMethod: 0 + spawnPrefabs: [] + snapshotSettings: + bufferTimeMultiplier: 2 + bufferLimit: 32 + catchupNegativeThreshold: -1 + catchupPositiveThreshold: 1 + catchupSpeed: 0.019999999552965164 + slowdownSpeed: 0.03999999910593033 + driftEmaDuration: 1 + dynamicAdjustment: 1 + dynamicAdjustmentTolerance: 1 + deliveryTimeEmaDuration: 2 + evaluationMethod: 0 + evaluationInterval: 3 + timeInterpolationGui: 0 +--- !u!114 &1032868859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032868856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6b0fecffa3f624585964b0d0eb21b18e, type: 3} + m_Name: + m_EditorClassIdentifier: + port: 7777 + DualMode: 1 + NoDelay: 1 + Interval: 10 + Timeout: 1000 + RecvBufferSize: 7361536 + SendBufferSize: 7361536 + FastResend: 2 + ReceiveWindowSize: 4096 + SendWindowSize: 4096 + MaxRetransmit: 40 + MaximizeSocketBuffers: 1 + ReliableMaxMessageSize: 297433 + UnreliableMaxMessageSize: 1194 + debugLog: 0 + statisticsGUI: 0 + statisticsLog: 0 +--- !u!4 &1032868860 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032868856} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1144573926 GameObject: m_ObjectHideFlags: 0 @@ -875,7 +730,7 @@ Canvas: m_Enabled: 1 serializedVersion: 3 m_RenderMode: 2 - m_Camera: {fileID: 1768902108} + m_Camera: {fileID: 0} m_PlaneDistance: 2 m_PixelPerfect: 0 m_ReceivesEvents: 1 @@ -896,7 +751,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1171471944} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 2} + m_LocalPosition: {x: 0, y: 0, z: 3} m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} m_ConstrainProportionsScale: 0 m_Children: @@ -904,7 +759,6 @@ RectTransform: - {fileID: 246745093} - {fileID: 251580318} - {fileID: 1592395654} - - {fileID: 375898168} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -928,7 +782,7 @@ MonoBehaviour: Top: {fileID: 1592395654} Medium: {fileID: 251580318} Bottom: {fileID: 246745093} - UICamera: {fileID: 1768902108} + UICamera: {fileID: 0} --- !u!114 &1171471950 MonoBehaviour: m_ObjectHideFlags: 0 @@ -948,381 +802,6 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 4294967295 m_RaycastTriggerInteraction: 1 ---- !u!1001 &1225573548 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1233801062} - m_Modifications: - - target: {fileID: 8429981633443581377, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_Name - value: TunnelingVignette - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.size - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_LocomotionProvider - value: - objectReference: {fileID: 228711013} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_LocomotionProvider - value: - objectReference: {fileID: 228711012} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_LocomotionProvider - value: - objectReference: {fileID: 415504750} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_LocomotionProvider - value: - objectReference: {fileID: 1632177932} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_LocomotionProvider - value: - objectReference: {fileID: 1632177931} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_LocomotionProvider - value: - objectReference: {fileID: 1632177930} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_LocomotionProvider - value: - objectReference: {fileID: 253511776} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_LocomotionProvider - value: - objectReference: {fileID: 1620192561} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_EaseInTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_EaseOutTime - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_ApertureSize - value: 0.7 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_VignetteColor.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_FeatheringEffect - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_VignetteColorBlend.a - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} ---- !u!1 &1233801061 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 1767192433, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1233801062 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1767192434, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1233801063 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1233801061} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_AllowHDROutput: 1 - m_UseScreenCoordOverride: 0 - m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} - m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 - m_TaaSettings: - m_Quality: 3 - m_FrameInfluence: 0.1 - m_JitterScale: 1 - m_MipBias: 0 - m_VarianceClampScale: 0.9 - m_ContrastAdaptiveSharpening: 0 --- !u!1001 &1399142585 PrefabInstance: m_ObjectHideFlags: 0 @@ -1342,7 +821,7 @@ PrefabInstance: - target: {fileID: 22331464, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} propertyPath: m_Camera value: - objectReference: {fileID: 1768902108} + objectReference: {fileID: 0} - target: {fileID: 22331464, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} propertyPath: m_RenderMode value: 2 @@ -1469,7 +948,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} propertyPath: m_LocalPosition.z - value: 2 + value: 3 objectReference: {fileID: 0} - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} propertyPath: m_LocalRotation.w @@ -1594,7 +1073,7 @@ PrefabInstance: - target: {fileID: 114573443145823088, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} propertyPath: embeddedEventSystem value: - objectReference: {fileID: 375898165} + objectReference: {fileID: 0} - target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1728,104 +1207,114 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 4294967295 m_RaycastTriggerInteraction: 1 ---- !u!1001 &1456632463 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 907880545683215860, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalScale.z - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566040, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_Name - value: Teleportation Environment - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_RootOrder - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663814566041, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565887663999455727, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: - - {fileID: 6895887226161143353, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - - {fileID: 5175876250730923751, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - - {fileID: 5628286625164937004, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - - {fileID: 7540877742921677025, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - - {fileID: 4205024581373840549, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3e07eccb5e6f459d886de95044adb1d9, type: 3} ---- !u!1 &1462688489 stripped +--- !u!1 &1503573619 GameObject: - m_CorrespondingSourceObject: {fileID: 1717954561962503725, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1462688496 -MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1462688489} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2603a3a2bb8ff8f47b1e45289f1d9f70, type: 3} - m_Name: - m_EditorClassIdentifier: - headTransform: {fileID: 1233801062} - localVRNetworkPlayerScript: {fileID: 0} ---- !u!4 &1462688502 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} + serializedVersion: 6 + m_Component: + - component: {fileID: 1503573623} + - component: {fileID: 1503573622} + - component: {fileID: 1503573621} + - component: {fileID: 1503573620} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &1503573620 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503573619} + 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} +--- !u!23 &1503573621 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503573619} + 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_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + 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!33 &1503573622 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503573619} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1503573623 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503573619} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.8624419, y: 0.34646252, z: -1.1189464} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1592395653 GameObject: m_ObjectHideFlags: 0 @@ -1861,149 +1350,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1620192561 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5739245880472075158, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 496880615cd240be960d436c1c8ae570, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1632177930 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 742272467831425975, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 760ff70c1c91bdd45907d0ff0cdcaf7f, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1632177931 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 4083252680172266230, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1632177932 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2032798983271290625, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &1741761881 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3} - m_PrefabInstance: {fileID: 1225573548} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &1768902107 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 153982007679157697, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_MoveSpeed - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1178791450436251564, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_RequestedTrackingOriginMode - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503725, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_Name - value: XR Origin (XR Rig) - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalPosition.y - value: 0.125 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5944131804917401860, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6501755809687671949, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - insertIndex: -1 - addedObject: {fileID: 9128974} - - targetCorrespondingSourceObject: {fileID: 1767192434, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - insertIndex: -1 - addedObject: {fileID: 1741761881} - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 1717954561962503725, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - insertIndex: -1 - addedObject: {fileID: 1462688496} - - targetCorrespondingSourceObject: {fileID: 1767192433, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - insertIndex: -1 - addedObject: {fileID: 1233801063} - m_SourcePrefab: {fileID: 100100000, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} ---- !u!20 &1768902108 stripped -Camera: - m_CorrespondingSourceObject: {fileID: 1767192439, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3} - m_PrefabInstance: {fileID: 1768902107} - m_PrefabAsset: {fileID: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -2012,7 +1358,7 @@ SceneRoots: - {fileID: 832575519} - {fileID: 1171471948} - {fileID: 1399142585} - - {fileID: 1768902107} - - {fileID: 1456632463} - - {fileID: 265418895} + - {fileID: 1032868860} - {fileID: 1019312449} + - {fileID: 899575914} + - {fileID: 1503573623} diff --git a/Assets/GameFramework/Runtime/GameFramework.Runtime.asmdef b/Assets/GameFramework/Runtime/GameFramework.Runtime.asmdef index 803ca73..ed037ab 100644 --- a/Assets/GameFramework/Runtime/GameFramework.Runtime.asmdef +++ b/Assets/GameFramework/Runtime/GameFramework.Runtime.asmdef @@ -10,7 +10,8 @@ "GUID:3de88c88fbbb8f944b9210d496af9762", "GUID:30817c1a0e6d646d99c048fc403f5979", "GUID:72872094b21c16e48b631b2224833d49", - "GUID:627104647b9c04b4ebb8978a92ecac63" + "GUID:627104647b9c04b4ebb8978a92ecac63", + "GUID:dc960734dc080426fa6612f1c5fe95f3" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/GameFramework/Runtime/Network/AutoStart.cs b/Assets/GameFramework/Runtime/Network/AutoStart.cs index 514aedb..c26fa1e 100644 --- a/Assets/GameFramework/Runtime/Network/AutoStart.cs +++ b/Assets/GameFramework/Runtime/Network/AutoStart.cs @@ -1,65 +1,100 @@ -using UnityEngine; +using Cysharp.Threading.Tasks; using Mirror; using Mirror.Discovery; -using Cysharp.Threading.Tasks; using System.Collections.Generic; -using System.Threading.Tasks; +using UnityEngine; namespace Tuan.GameFramework { public class AutoStart : MonoBehaviour { - public NetworkManager networkManager; - public NetworkDiscovery networkDiscovery; - + public bool alwaysAutoStart = false; + public VRNetworkDiscovery networkDiscovery; + readonly Dictionary discoveredServers = new Dictionary(); public float waitForHostTimeout = 1f; - - private bool hostFound = false; private async void Start() { - networkDiscovery.OnServerFound.AddListener(OnServerFound); - await Connect(); + // skips waiting for users to press ui button + if (alwaysAutoStart) + { + await Waiter(); + } } - private async UniTask Connect() + public async UniTask Waiter() { - if (networkManager == null || networkDiscovery == null) - { - Debug.LogError("请确认 NetworkManager 和 NetworkDiscovery 已设置"); - return; - } - - hostFound = false; - + discoveredServers.Clear(); networkDiscovery.StartDiscovery(); - - await UniTask.WaitForSeconds(1.1f); - - if (!hostFound) + // we have set this as 3.1 seconds, default discovery scan is 3 seconds, allows some time if host and client are started at same time + await UniTask.WaitForSeconds(waitForHostTimeout); + if (discoveredServers == null || discoveredServers.Count <= 0) { - Debug.Log("未发现 Host,自己成为 Host"); - networkManager.StartHost(); + Debug.Log("No Servers found, starting as Host."); + await UniTask.WaitForSeconds(0.1f); + discoveredServers.Clear(); + VRNetworkManager.singleton.StartHost(); networkDiscovery.AdvertiseServer(); } } - private void OnServerFound(ServerResponse info) + void Connect(ServerResponse info) { - if (hostFound) return; - - hostFound = true; - Debug.Log($"发现 Host: {info.uri.Host}"); - + Debug.Log($"Connecting to: {info.uri.Host}"); networkDiscovery.StopDiscovery(); - - networkManager.networkAddress = info.uri.Host; - networkManager.StartClient(); + VRNetworkManager.singleton.StartClient(info.uri); } - private void OnDestroy() + public void OnDiscoveredServer(ServerResponse info) { - if (networkDiscovery != null) - networkDiscovery.OnServerFound.RemoveListener(OnServerFound); + discoveredServers[info.serverId] = info; + Connect(info); + } + + public void StartAsHost() + { + Debug.Log("Starting as host"); + discoveredServers.Clear(); + VRNetworkManager.singleton.StartHost(); + networkDiscovery.AdvertiseServer(); + + } + + public void StartAsServer() + { + Debug.Log("Starting as server"); + discoveredServers.Clear(); + // VRNetworkManager.singleton.onlineScene = SceneManager.GetActiveScene().name; + VRNetworkManager.singleton.StartServer(); + networkDiscovery.AdvertiseServer(); + + } + + public void StartAsClient() + { + Debug.Log("Starting as client."); + discoveredServers.Clear(); + networkDiscovery.StartDiscovery(); + } + + public void Stop() + { + Debug.Log("Stopping"); + // stop host if host mode + if (NetworkServer.active && NetworkClient.isConnected) + { + VRNetworkManager.singleton.StopHost(); + } + // stop client if client-only + else if (NetworkClient.isConnected) + { + VRNetworkManager.singleton.StopClient(); + } + // stop server if server-only + else if (NetworkServer.active) + { + VRNetworkManager.singleton.StopServer(); + } + networkDiscovery.StopDiscovery(); } } } \ No newline at end of file diff --git a/Assets/GameFramework/Runtime/Network/VRNetworkDiscovery.cs b/Assets/GameFramework/Runtime/Network/VRNetworkDiscovery.cs new file mode 100644 index 0000000..ff8bd7f --- /dev/null +++ b/Assets/GameFramework/Runtime/Network/VRNetworkDiscovery.cs @@ -0,0 +1,97 @@ +using System; +using System.Net; +using UnityEngine; +using UnityEngine.Events; +using Mirror.Discovery; +using Tuan.GameFramework; + + +//[Serializable] +//public class ServerFoundUnityEvent : UnityEvent { }; + +[DisallowMultipleComponent] +[AddComponentMenu("Network/Network Discovery")] +public class VRNetworkDiscovery : NetworkDiscoveryBase +{ + #region Server + public AutoStart autoStart; + + /// + /// Process the request from a client + /// + /// + /// Override if you wish to provide more information to the clients + /// such as the name of the host player + /// + /// Request coming from client + /// Address of the client that sent the request + /// The message to be sent back to the client or null + protected override ServerResponse ProcessRequest(ServerRequest request, IPEndPoint endpoint) + { + // In this case we don't do anything with the request + // but other discovery implementations might want to use the data + // in there, This way the client can ask for + // specific game mode or something + + try + { + // this is an example reply message, return your own + // to include whatever is relevant for your game + return new ServerResponse + { + serverId = ServerId, + uri = transport.ServerUri() + }; + } + catch (NotImplementedException) + { + Debug.LogError($"Transport {transport} does not support network discovery"); + throw; + } + } + + #endregion + + #region Client + + /// + /// Create a message that will be broadcasted on the network to discover servers + /// + /// + /// Override if you wish to include additional data in the discovery message + /// such as desired game mode, language, difficulty, etc... + /// An instance of ServerRequest with data to be broadcasted + protected override ServerRequest GetRequest() => new ServerRequest(); + + /// + /// Process the answer from a server + /// + /// + /// A client receives a reply from a server, this method processes the + /// reply and raises an event + /// + /// Response that came from the server + /// Address of the server that replied + protected override void ProcessResponse(ServerResponse response, IPEndPoint endpoint) + { + // we received a message from the remote endpoint + response.EndPoint = endpoint; + + // although we got a supposedly valid url, we may not be able to resolve + // the provided host + // However we know the real ip address of the server because we just + // received a packet from it, so use that as host. + UriBuilder realUri = new UriBuilder(response.uri) + { + Host = response.EndPoint.Address.ToString() + }; + response.uri = realUri.Uri; + + //OnServerFound.Invoke(response); + if (autoStart == null) + { autoStart = GameObject.FindAnyObjectByType(); } + autoStart.OnDiscoveredServer(response); + } + + #endregion +} diff --git a/Assets/GameFramework/Runtime/Network/VRNetworkDiscovery.cs.meta b/Assets/GameFramework/Runtime/Network/VRNetworkDiscovery.cs.meta new file mode 100644 index 0000000..7f69422 --- /dev/null +++ b/Assets/GameFramework/Runtime/Network/VRNetworkDiscovery.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 98ee6d92ccd0b0945bfcee6c94394c5b \ No newline at end of file diff --git a/Assets/GameFramework/Runtime/Network/VRNetworkManager.cs b/Assets/GameFramework/Runtime/Network/VRNetworkManager.cs new file mode 100644 index 0000000..c5af12d --- /dev/null +++ b/Assets/GameFramework/Runtime/Network/VRNetworkManager.cs @@ -0,0 +1,317 @@ +using UnityEngine; +using Mirror; +using System.Linq; + +/* + Documentation: https://mirror-networking.gitbook.io/docs/components/network-manager + API Reference: https://mirror-networking.com/docs/api/Mirror.NetworkManager.html +*/ + +public class VRNetworkManager : NetworkManager +{ + // Overrides the base singleton so we don't + // have to cast to this type everywhere. + public static new VRNetworkManager singleton { get; private set; } + + private NetworkIdentity[] copyOfOwnedObjects; + + /// + /// Runs on both Server and Client + /// Networking is NOT initialized when this fires + /// + public override void Awake() + { + base.Awake(); + singleton = this; + } + + #region Unity Callbacks + + public override void OnValidate() + { + base.OnValidate(); + } + + /// + /// Runs on both Server and Client + /// Networking is NOT initialized when this fires + /// + public override void Start() + { + base.Start(); + } + + /// + /// Runs on both Server and Client + /// + public override void LateUpdate() + { + base.LateUpdate(); + } + + /// + /// Runs on both Server and Client + /// + public override void OnDestroy() + { + base.OnDestroy(); + //UnityEngine.Debug.Log("OnDestroy"); + } + + #endregion + + #region Start & Stop + + /// + /// Set the frame rate for a headless server. + /// Override if you wish to disable the behavior or set your own tick rate. + /// + public override void ConfigureHeadlessFrameRate() + { + base.ConfigureHeadlessFrameRate(); + } + + /// + /// called when quitting the application by closing the window / pressing stop in the editor + /// + public override void OnApplicationQuit() + { + base.OnApplicationQuit(); + //UnityEngine.Debug.Log("OnApplicationQuit"); + } + + #endregion + + #region Scene Management + + /// + /// This causes the server to switch scenes and sets the networkSceneName. + /// Clients that connect to this server will automatically switch to this scene. This is called automatically if onlineScene or offlineScene are set, but it can be called from user code to switch scenes again while the game is in progress. This automatically sets clients to be not-ready. The clients must call NetworkClient.Ready() again to participate in the new scene. + /// + /// + public override void ServerChangeScene(string newSceneName) + { + base.ServerChangeScene(newSceneName); + //UnityEngine.Debug.Log("ServerChangeScene"); + } + + /// + /// Called from ServerChangeScene immediately before SceneManager.LoadSceneAsync is executed + /// This allows server to do work / cleanup / prep before the scene changes. + /// + /// Name of the scene that's about to be loaded + public override void OnServerChangeScene(string newSceneName) + { + //UnityEngine.Debug.Log("OnServerChangeScene"); + } + + /// + /// Called on the server when a scene is completed loaded, when the scene load was initiated by the server with ServerChangeScene(). + /// + /// The name of the new scene. + public override void OnServerSceneChanged(string sceneName) + { + //UnityEngine.Debug.Log("OnServerSceneChanged"); + } + + /// + /// Called from ClientChangeScene immediately before SceneManager.LoadSceneAsync is executed + /// This allows client to do work / cleanup / prep before the scene changes. + /// + /// Name of the scene that's about to be loaded + /// Scene operation that's about to happen + /// true to indicate that scene loading will be handled through overrides + public override void OnClientChangeScene(string newSceneName, SceneOperation sceneOperation, bool customHandling) + { + //UnityEngine.Debug.Log("OnClientChangeScene"); + } + + /// + /// Called on clients when a scene has completed loaded, when the scene load was initiated by the server. + /// Scene changes can cause player objects to be destroyed. The default implementation of OnClientSceneChanged in the NetworkManager is to add a player object for the connection if no player object exists. + /// + public override void OnClientSceneChanged() + { + base.OnClientSceneChanged(); + // UnityEngine.Debug.Log("OnClientSceneChanged"); + } + + #endregion + + #region Server System Callbacks + + /// + /// Called on the server when a new client connects. + /// Unity calls this on the Server when a Client connects to the Server. Use an override to tell the NetworkManager what to do when a client connects to the server. + /// + /// Connection from client. + public override void OnServerConnect(NetworkConnectionToClient conn) + { + Debug.Log($"OnServerConnect{conn.address}"); + } + + /// + /// Called on the server when a client is ready. + /// The default implementation of this function calls NetworkServer.SetClientReady() to continue the network setup process. + /// + /// Connection from client. + public override void OnServerReady(NetworkConnectionToClient conn) + { + base.OnServerReady(conn); + //UnityEngine.Debug.Log("OnServerReady"); + } + + /// + /// Called on the server when a client adds a new player with ClientScene.AddPlayer. + /// The default implementation for this function creates a new player object from the playerPrefab. + /// + /// Connection from client. + public override void OnServerAddPlayer(NetworkConnectionToClient conn) + { + base.OnServerAddPlayer(conn); + //UnityEngine.Debug.Log("OnServerAddPlayer"); + } + + /// + /// Called on the server when a client disconnects. + /// This is called on the Server when a Client disconnects from the Server. Use an override to decide what should happen when a disconnection is detected. + /// + /// Connection from client. + public override void OnServerDisconnect(NetworkConnectionToClient conn) + { + // this code is to reset any objects belonging to disconnected clients + // make a copy because the original collection will change in the loop + copyOfOwnedObjects = conn.owned.ToArray(); + // Loop the copy, skipping the player object. + // RemoveClientAuthority on everything else + foreach (NetworkIdentity identity in copyOfOwnedObjects) + { + if (identity != conn.identity) + identity.RemoveClientAuthority(); + } + + base.OnServerDisconnect(conn); + } + + /// + /// Called on server when transport raises an error. + /// NetworkConnection may be null. + /// + /// Connection of the client...may be null + /// TransportError enum + /// String message of the error. + public override void OnServerError(NetworkConnectionToClient conn, TransportError transportError, string message) + { + Debug.Log($"OnServerError {transportError} {message}"); + } + + #endregion + + #region Client System Callbacks + + /// + /// Called on the client when connected to a server. + /// The default implementation of this function sets the client as ready and adds a player. Override the function to dictate what happens when the client connects. + /// + public override void OnClientConnect() + { + base.OnClientConnect(); + //UnityEngine.Debug.Log("OnClientConnect"); + Debug.Log("Connected to server."); + } + + /// + /// Called on clients when disconnected from a server. + /// This is called on the client when it disconnects from the server. Override this function to decide what happens when the client disconnects. + /// + public override void OnClientDisconnect() + { + //UnityEngine.Debug.Log("OnClientDisconnect"); + Debug.Log("Disconnected from server."); + } + + /// + /// Called on clients when a servers tells the client it is no longer ready. + /// This is commonly used when switching scenes. + /// + public override void OnClientNotReady() + { + //UnityEngine.Debug.Log("OnClientNotReady"); + } + + /// + /// Called on client when transport raises an error. + /// + /// TransportError enum. + /// String message of the error. + public override void OnClientError(TransportError transportError, string message) + { + Debug.Log("OnClientError: " + message); + } + + #endregion + + #region Start & Stop Callbacks + + // Since there are multiple versions of StartServer, StartClient and StartHost, to reliably customize + // their functionality, users would need override all the versions. Instead these callbacks are invoked + // from all versions, so users only need to implement this one case. + + /// + /// This is invoked when a host is started. + /// StartHost has multiple signatures, but they all cause this hook to be called. + /// + public override void OnStartHost() + { + //UnityEngine.Debug.Log("OnStartHost"); + //vrCanvasHUD.SetupInfoText("Started Hosting."); + } + + /// + /// This is invoked when a server is started - including when a host is started. + /// StartServer has multiple signatures, but they all cause this hook to be called. + /// + public override void OnStartServer() + { + //UnityEngine.Debug.Log("OnStartServer"); + Debug.Log("Started server."); + } + + /// + /// This is invoked when the client is started. + /// + public override void OnStartClient() + { + //UnityEngine.Debug.Log("OnStartClient"); + Debug.Log("Client started."); + } + + /// + /// This is called when a host is stopped. + /// + public override void OnStopHost() + { + //UnityEngine.Debug.Log("OnStopHost"); + // vrCanvasHUD.SetupInfoText("Started Hosting."); + } + + /// + /// This is called when a server is stopped - including when a host is stopped. + /// + public override void OnStopServer() + { + //UnityEngine.Debug.Log("OnStopServer"); + Debug.Log("Server stopped."); + } + + /// + /// This is called when a client is stopped. + /// + public override void OnStopClient() + { + //UnityEngine.Debug.Log("OnStopClient"); + Debug.Log("Client stopped."); + } + + #endregion +} diff --git a/Assets/GameFramework/Runtime/Network/VRNetworkManager.cs.meta b/Assets/GameFramework/Runtime/Network/VRNetworkManager.cs.meta new file mode 100644 index 0000000..dac72d8 --- /dev/null +++ b/Assets/GameFramework/Runtime/Network/VRNetworkManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 65f8bd151f9b7f049b29549f495d4b97 \ No newline at end of file diff --git a/Assets/GameRes/Main/Prefab/TestPlayer.prefab b/Assets/GameRes/Main/Prefab/TestPlayer.prefab index abd4c2f..0977a56 100644 --- a/Assets/GameRes/Main/Prefab/TestPlayer.prefab +++ b/Assets/GameRes/Main/Prefab/TestPlayer.prefab @@ -11,7 +11,6 @@ GameObject: - component: {fileID: 9035792211773973726} - component: {fileID: 7686240253380416189} - component: {fileID: 2887128474451739717} - - component: {fileID: 3932613711437579904} m_Layer: 0 m_Name: Mesh m_TagString: Untagged @@ -87,29 +86,6 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!136 &3932613711437579904 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2628753435532376408} - 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: 2 - m_Radius: 0.5 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &8689222817812204944 GameObject: m_ObjectHideFlags: 0 @@ -158,7 +134,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: sceneId: 0 - _assetId: 0 + _assetId: 960210788 serverOnly: 0 visibility: 0 hasSpawned: 0