From f988f2d8de9d977322c71fd3148f02c7e1ff17f0 Mon Sep 17 00:00:00 2001
From: Derek S <44935661+Derek-R-S@users.noreply.github.com>
Date: Mon, 14 Jun 2021 01:46:15 -0500
Subject: [PATCH] Mirror 41
---
.../Assets/Mirror/Authenticators.meta | 6 +-
.../Authenticators/BasicAuthenticator.cs | 27 +-
.../Authenticators/BasicAuthenticator.cs.meta | 6 +-
.../Mirror.Authenticators.asmdef.meta | 6 +-
.../Authenticators/TimeoutAuthenticator.cs | 8 +-
.../TimeoutAuthenticator.cs.meta | 6 +-
.../Assets/Mirror/Cloud/ApiConnector.cs | 61 -
UnityProject/Assets/Mirror/Cloud/Core.meta | 8 -
.../Assets/Mirror/Cloud/Core/BaseApi.cs | 25 -
.../Assets/Mirror/Cloud/Core/Events.cs | 12 -
.../Assets/Mirror/Cloud/Core/Extensions.cs | 12 -
.../Mirror/Cloud/Core/ICoroutineRunner.cs | 12 -
.../Mirror/Cloud/Core/IRequestCreator.cs | 42 -
.../Mirror/Cloud/Core/IUnityEqualCheck.cs | 26 -
.../Assets/Mirror/Cloud/Core/JsonStructs.cs | 24 -
.../Assets/Mirror/Cloud/Core/Logger.cs | 62 -
.../Mirror/Cloud/Core/RequestCreator.cs | 144 -
.../Assets/Mirror/Cloud/ListServer.meta | 8 -
.../Mirror/Cloud/ListServer/ListServer.cs | 66 -
.../Cloud/ListServer/ListServerBaseApi.cs | 9 -
.../Cloud/ListServer/ListServerClientApi.cs | 70 -
.../Mirror/Cloud/ListServer/ListServerJson.cs | 207 --
.../Cloud/ListServer/ListServerServerApi.cs | 219 --
.../Mirror/Cloud/Mirror.Cloud.asmdef.meta | 7 -
UnityProject/Assets/Mirror/Cloud/README.md | 152 -
.../Assets/Mirror/Cloud/README.md.meta | 7 -
UnityProject/Assets/Mirror/Cloud/version.txt | 1 -
.../Assets/Mirror/Cloud/version.txt.meta | 7 -
.../Assets/Mirror/CompilerSymbols.meta | 6 +-
.../Mirror.CompilerSymbols.asmdef.meta | 6 +-
.../CompilerSymbols/PreprocessorDefine.cs | 6 +-
.../PreprocessorDefine.cs.meta | 6 +-
UnityProject/Assets/Mirror/Components.meta | 6 +-
.../Mirror/Components/AssemblyInfo.cs.meta | 6 +-
.../Assets/Mirror/Components/Discovery.meta | 6 +-
.../Discovery/NetworkDiscovery.cs.meta | 6 +-
.../Discovery/NetworkDiscoveryBase.cs | 35 +-
.../Discovery/NetworkDiscoveryBase.cs.meta | 6 +-
.../Discovery/NetworkDiscoveryHUD.cs | 42 +-
.../Discovery/NetworkDiscoveryHUD.cs.meta | 6 +-
.../Discovery/ServerRequest.cs.meta | 6 +-
.../Discovery/ServerResponse.cs.meta | 6 +-
.../Mirror/Components/Experimental.meta | 6 +-
.../Experimental/NetworkLerpRigidbody.cs | 2 +-
.../Experimental/NetworkLerpRigidbody.cs.meta | 6 +-
.../Experimental/NetworkRigidbody.cs | 2 +-
.../Experimental/NetworkRigidbody.cs.meta | 6 +-
.../Experimental/NetworkRigidbody2D.cs.meta | 6 +-
.../Experimental/NetworkTransform.cs | 2 +-
.../Experimental/NetworkTransform.cs.meta | 6 +-
.../Experimental/NetworkTransformBase.cs.meta | 6 +-
.../Experimental/NetworkTransformChild.cs | 2 +-
.../NetworkTransformChild.cs.meta | 6 +-
.../Mirror/Components/GUIConsole.cs.meta | 6 +-
.../Mirror/Components/InterestManagement.meta | 6 +-
.../InterestManagement/Distance.meta | 4 +-
.../DistanceInterestManagement.cs.meta | 6 +-
.../InterestManagement/SpatialHashing.meta | 4 +-
.../SpatialHashing/Grid2D.cs.meta | 6 +-
.../SpatialHashingInterestManagement.cs.meta | 6 +-
.../Components/Mirror.Components.asmdef.meta | 6 +-
.../Mirror/Components/NetworkAnimator.cs | 34 +-
.../Mirror/Components/NetworkAnimator.cs.meta | 6 +-
.../Mirror/Components/NetworkLobbyManager.cs | 2 +-
.../Components/NetworkLobbyManager.cs.meta | 6 +-
.../Mirror/Components/NetworkLobbyPlayer.cs | 2 +-
.../Components/NetworkLobbyPlayer.cs.meta | 6 +-
.../Mirror/Components/NetworkMatchChecker.cs | 9 +-
.../Components/NetworkMatchChecker.cs.meta | 6 +-
.../Mirror/Components/NetworkOwnerChecker.cs | 2 +-
.../Components/NetworkOwnerChecker.cs.meta | 6 +-
.../Mirror/Components/NetworkPingDisplay.cs | 2 +-
.../Components/NetworkPingDisplay.cs.meta | 6 +-
.../Components/NetworkProximityChecker.cs | 3 +-
.../NetworkProximityChecker.cs.meta | 6 +-
.../Mirror/Components/NetworkRoomManager.cs | 25 +-
.../Components/NetworkRoomManager.cs.meta | 6 +-
.../Mirror/Components/NetworkRoomPlayer.cs | 2 +-
.../Components/NetworkRoomPlayer.cs.meta | 6 +-
.../Mirror/Components/NetworkSceneChecker.cs | 2 +-
.../Components/NetworkSceneChecker.cs.meta | 6 +-
.../Mirror/Components/NetworkTransform.cs | 2 +-
.../Components/NetworkTransform.cs.meta | 6 +-
.../Mirror/Components/NetworkTransformBase.cs | 36 +-
.../Components/NetworkTransformBase.cs.meta | 6 +-
.../Components/NetworkTransformChild.cs | 2 +-
.../Components/NetworkTransformChild.cs.meta | 6 +-
UnityProject/Assets/Mirror/Editor.meta | 6 +-
.../Assets/Mirror/Editor/EditorHelper.cs.meta | 6 +-
UnityProject/Assets/Mirror/Editor/Empty.meta | 8 +
.../Editor/{ => Empty}/LogLevelWindow.cs | 0
.../Editor/{ => Empty}/LogLevelWindow.cs.meta | 6 +-
.../Mirror/Editor/{ => Empty}/Logging.meta | 6 +-
.../{ => Empty}/Logging/LogLevelWindow.cs | 0
.../Logging/LogLevelWindow.cs.meta | 6 +-
.../{ => Empty}/Logging/LogLevelsGUI.cs | 0
.../{ => Empty}/Logging/LogLevelsGUI.cs.meta | 6 +-
.../{ => Empty}/Logging/LogSettingsEditor.cs | 0
.../Logging/LogSettingsEditor.cs.meta | 6 +-
.../Logging/NetworkLogSettingsEditor.cs | 0
.../Logging/NetworkLogSettingsEditor.cs.meta | 6 +-
.../{ => Empty}/ScriptableObjectUtility.cs | 0
.../ScriptableObjectUtility.cs.meta | 6 +-
.../Editor/EnterPlayModeSettingsCheck.cs.meta | 6 +-
.../Mirror/Editor/InspectorHelper.cs.meta | 6 +-
.../Mirror/Editor/Mirror.Editor.asmdef.meta | 6 +-
.../Editor/NetworkBehaviourInspector.cs.meta | 6 +-
.../Editor/NetworkInformationPreview.cs.meta | 6 +-
.../Editor/NetworkManagerEditor.cs.meta | 6 +-
.../Editor/NetworkScenePostProcess.cs.meta | 6 +-
.../Assets/Mirror/Editor/SceneDrawer.cs.meta | 6 +-
.../Editor/SyncVarAttributeDrawer.cs.meta | 6 +-
UnityProject/Assets/Mirror/Editor/Weaver.meta | 6 +-
.../Mirror/Editor/Weaver/AssemblyInfo.cs.meta | 6 +-
.../Weaver/CompilationFinishedHook.cs.meta | 6 +-
.../Assets/Mirror/Editor/Weaver/Empty.meta | 8 +
.../GenericArgumentResolver.cs | 0
.../GenericArgumentResolver.cs.meta | 6 +-
.../MessageClassProcessor.cs | 0
.../MessageClassProcessor.cs.meta | 6 +-
.../Editor/Weaver/{ => Empty}/Program.cs | 0
.../Editor/Weaver/{ => Empty}/Program.cs.meta | 6 +-
.../SyncDictionaryProcessor.cs | 0
.../SyncDictionaryProcessor.cs.meta | 6 +-
.../SyncEventProcessor.cs | 0
.../SyncEventProcessor.cs.meta | 6 +-
.../SyncListProcessor.cs | 0
.../SyncListProcessor.cs.meta | 6 +-
.../Mirror/Editor/Weaver/Extensions.cs.meta | 6 +-
.../Mirror/Editor/Weaver/Helpers.cs.meta | 6 +-
.../Assets/Mirror/Editor/Weaver/Log.cs.meta | 6 +-
.../Editor/Weaver/Mirror.Weaver.asmdef.meta | 6 +-
.../Mirror/Editor/Weaver/Processors.meta | 6 +-
.../Processors/CommandProcessor.cs.meta | 6 +-
.../Weaver/Processors/MethodProcessor.cs.meta | 6 +-
.../Processors/MonoBehaviourProcessor.cs.meta | 6 +-
.../NetworkBehaviourProcessor.cs.meta | 6 +-
.../Processors/PropertySiteProcessor.cs.meta | 6 +-
.../Processors/ReaderWriterProcessor.cs.meta | 6 +-
.../Weaver/Processors/RpcProcessor.cs.meta | 6 +-
.../ServerClientAttributeProcessor.cs.meta | 6 +-
.../Processors/SyncObjectInitializer.cs.meta | 6 +-
.../Processors/SyncObjectProcessor.cs.meta | 6 +-
.../Processors/SyncVarProcessor.cs.meta | 6 +-
.../Processors/TargetRpcProcessor.cs.meta | 6 +-
.../Assets/Mirror/Editor/Weaver/Readers.cs | 5 +-
.../Mirror/Editor/Weaver/Readers.cs.meta | 6 +-
.../Mirror/Editor/Weaver/Resolvers.cs.meta | 6 +-
.../Weaver/TypeReferenceComparer.cs.meta | 6 +-
.../Assets/Mirror/Editor/Weaver/Weaver.cs | 2 +-
.../Mirror/Editor/Weaver/Weaver.cs.meta | 6 +-
.../Editor/Weaver/WeaverExceptions.cs.meta | 6 +-
.../Mirror/Editor/Weaver/WeaverTypes.cs.meta | 4 +-
.../Assets/Mirror/Editor/Weaver/Writers.cs | 5 +-
.../Mirror/Editor/Weaver/Writers.cs.meta | 6 +-
UnityProject/Assets/Mirror/Examples.meta | 6 +-
.../Mirror/Examples/AdditiveScenes.meta | 6 +-
.../AdditiveScenes/AnimationControllers.meta | 6 +-
.../AnimationControllers/Tank.controller.meta | 6 +-
.../Examples/AdditiveScenes/Materials.meta | 6 +-
.../AdditiveScenes/Materials/Capsule.mat.meta | 6 +-
.../AdditiveScenes/Materials/Cube.mat.meta | 6 +-
.../Materials/Cylinder.mat.meta | 6 +-
.../AdditiveScenes/Materials/Player.mat.meta | 6 +-
.../AdditiveScenes/Materials/Quad.mat.meta | 6 +-
.../AdditiveScenes/Materials/Shelter.mat.meta | 6 +-
.../AdditiveScenes/Materials/Sphere.mat.meta | 6 +-
.../AdditiveScenes/Materials/Zone.mat.meta | 6 +-
.../Examples/AdditiveScenes/Prefabs.meta | 6 +-
.../Prefabs/Capsule.prefab.meta | 6 +-
.../AdditiveScenes/Prefabs/Cube.prefab.meta | 6 +-
.../Prefabs/Cylinder.prefab.meta | 6 +-
.../AdditiveScenes/Prefabs/Player.prefab.meta | 6 +-
.../AdditiveScenes/Prefabs/Sphere.prefab.meta | 6 +-
.../AdditiveScenes/Prefabs/Tank.prefab.meta | 6 +-
.../AdditiveScenes/Prefabs/Zone.prefab.meta | 6 +-
.../Examples/AdditiveScenes/README.md.meta | 6 +-
.../Examples/AdditiveScenes/Scenes.meta | 6 +-
.../Scenes/MainScene.unity.meta | 6 +-
.../AdditiveScenes/Scenes/SubScene.unity.meta | 6 +-
.../Examples/AdditiveScenes/Scripts.meta | 6 +-
.../Scripts/AdditiveNetworkManager.cs.meta | 6 +-
.../Scripts/PlayerController.cs.meta | 6 +-
.../Scripts/RandomColor.cs.meta | 6 +-
.../Scripts/ShootingTankBehaviour.cs.meta | 6 +-
.../Scripts/ZoneHandler.cs.meta | 6 +-
.../Assets/Mirror/Examples/Basic.meta | 6 +-
.../Assets/Mirror/Examples/Basic/Prefabs.meta | 6 +-
.../Examples/Basic/Prefabs/Player.prefab.meta | 6 +-
.../Examples/Basic/Prefabs/PlayerUI.prefab | 12 +-
.../Basic/Prefabs/PlayerUI.prefab.meta | 6 +-
.../Mirror/Examples/Basic/README.md.meta | 6 +-
.../Assets/Mirror/Examples/Basic/Scenes.meta | 6 +-
.../Examples/Basic/Scenes/Example.unity.meta | 6 +-
.../Assets/Mirror/Examples/Basic/Scripts.meta | 6 +-
.../Examples/Basic/Scripts/BasicNetManager.cs | 2 +-
.../Basic/Scripts/BasicNetManager.cs.meta | 6 +-
.../Examples/Basic/Scripts/Player.cs.meta | 6 +-
.../Examples/Basic/Scripts/PlayerUI.cs.meta | 6 +-
.../Assets/Mirror/Examples/Benchmark.meta | 6 +-
.../Mirror/Examples/Benchmark/Materials.meta | 6 +-
.../Examples/Benchmark/Materials/Red.mat.meta | 6 +-
.../Benchmark/Materials/White.mat.meta | 6 +-
.../Mirror/Examples/Benchmark/Prefabs.meta | 6 +-
.../Benchmark/Prefabs/Monster.prefab.meta | 6 +-
.../Benchmark/Prefabs/Player.prefab.meta | 6 +-
.../Mirror/Examples/Benchmark/Scenes.meta | 6 +-
.../Benchmark/Scenes/Scene.unity.meta | 6 +-
.../Mirror/Examples/Benchmark/Scripts.meta | 6 +-
.../Scripts/BenchmarkNetworkManager.cs.meta | 6 +-
.../Benchmark/Scripts/MonsterMovement.cs.meta | 6 +-
.../Benchmark/Scripts/PlayerMovement.cs.meta | 6 +-
UnityProject/Assets/Mirror/Examples/Chat.meta | 6 +-
.../Assets/Mirror/Examples/Chat/Prefabs.meta | 6 +-
.../Examples/Chat/Prefabs/Player.prefab.meta | 6 +-
.../Assets/Mirror/Examples/Chat/Scenes.meta | 6 +-
.../Examples/Chat/Scenes/Main.unity.meta | 6 +-
.../Assets/Mirror/Examples/Chat/Scripts.meta | 6 +-
.../Chat/Scripts/ChatNetworkManager.cs.meta | 6 +-
.../Examples/Chat/Scripts/ChatWindow.cs.meta | 6 +-
.../Examples/Chat/Scripts/Player.cs.meta | 6 +-
.../Assets/Mirror/Examples/Cloud.meta | 8 -
.../Assets/Mirror/Examples/Cloud/GUI.meta | 8 -
.../Mirror/Examples/Cloud/GUI/Prefabs.meta | 8 -
.../GUI/Prefabs/ListServer Canvas.prefab | 2629 -----------------
.../GUI/Prefabs/ListServer Canvas.prefab.meta | 7 -
.../Cloud/GUI/Prefabs/ServerListItem.prefab | 626 ----
.../GUI/Prefabs/ServerListItem.prefab.meta | 7 -
.../Mirror/Examples/Cloud/GUI/README.md | 8 -
.../Mirror/Examples/Cloud/GUI/README.md.meta | 7 -
.../Mirror/Examples/Cloud/GUI/Scripts.meta | 8 -
.../Examples/Cloud/GUI/Scripts/ApiUpdater.cs | 101 -
.../GUI/Scripts/InstantiateNetworkManager.cs | 20 -
.../Scripts/Mirror.Examples.Cloud.GUI.asmdef | 15 -
.../Mirror.Examples.Cloud.GUI.asmdef.meta | 7 -
.../GUI/Scripts/NetworkManagerListServer.cs | 58 -
.../Cloud/GUI/Scripts/QuickListServerDebug.cs | 46 -
.../Cloud/GUI/Scripts/QuitButtonHUD.cs | 39 -
.../Cloud/GUI/Scripts/ServerListManager.cs | 69 -
.../Cloud/GUI/Scripts/ServerListUI.cs | 51 -
.../Cloud/GUI/Scripts/ServerListUIItem.cs | 37 -
.../Examples/Cloud/PongWithListServer.meta | 8 -
.../PongWithListServer/PhysicsMaterials.meta | 8 -
.../BallMaterial.physicsMaterial2D | 11 -
.../BallMaterial.physicsMaterial2D.meta | 8 -
.../Cloud/PongWithListServer/Prefabs.meta | 8 -
.../PongWithListServer/Prefabs/Ball.prefab | 189 --
.../Prefabs/Ball.prefab.meta | 7 -
.../Prefabs/NetworkManagerPong.prefab | 121 -
.../Prefabs/NetworkManagerPong.prefab.meta | 7 -
.../PongWithListServer/Prefabs/Racket.prefab | 189 --
.../Prefabs/Racket.prefab.meta | 7 -
.../Cloud/PongWithListServer/README.md | 19 -
.../Cloud/PongWithListServer/README.md.meta | 7 -
.../Cloud/PongWithListServer/Scenes.meta | 8 -
.../Scenes/ListServerLobbyScenePong.unity | 606 ----
.../ListServerLobbyScenePong.unity.meta | 7 -
.../Scenes/PongGameScene.unity | 949 ------
.../Scenes/PongGameScene.unity.meta | 7 -
.../Cloud/PongWithListServer/Scripts.meta | 8 -
.../Cloud/PongWithListServer/Scripts/Ball.cs | 61 -
.../PongWithListServer/Scripts/BallManager.cs | 53 -
.../Scripts/Mirror.Examples.Cloud.Pong.asmdef | 16 -
.../Mirror.Examples.Cloud.Pong.asmdef.meta | 7 -
.../Scripts/NetworkManagerListServerPong.cs | 20 -
.../PongWithListServer/Scripts/Player.cs | 21 -
.../Cloud/PongWithListServer/Sprites.meta | 8 -
.../Cloud/PongWithListServer/Sprites/Ball.png | Bin 2791 -> 0 bytes
.../PongWithListServer/Sprites/Ball.png.meta | 88 -
.../PongWithListServer/Sprites/DottedLine.png | Bin 2799 -> 0 bytes
.../Sprites/DottedLine.png.meta | 88 -
.../PongWithListServer/Sprites/Racket.png | Bin 2800 -> 0 bytes
.../Sprites/Racket.png.meta | 88 -
.../Sprites/WallHorizontal.png | Bin 2796 -> 0 bytes
.../Sprites/WallHorizontal.png.meta | 88 -
.../Sprites/WallVertical.png | Bin 2800 -> 0 bytes
.../Sprites/WallVertical.png.meta | 88 -
.../Examples/Cloud/TanksWithListServer.meta | 8 -
.../Cloud/TanksWithListServer/Prefabs.meta | 8 -
.../Prefabs/TanksNetworkManager.prefab | 136 -
.../Prefabs/TanksNetworkManager.prefab.meta | 7 -
.../Cloud/TanksWithListServer/README.md | 19 -
.../Cloud/TanksWithListServer/README.md.meta | 7 -
.../Cloud/TanksWithListServer/Scenes.meta | 8 -
.../Scenes/ListServerLobbySceneTanks.unity | 886 ------
.../ListServerLobbySceneTanks.unity.meta | 7 -
.../Assets/Mirror/Examples/Discovery.meta | 6 +-
.../Mirror/Examples/Discovery/Prefabs.meta | 6 +-
.../Discovery/Prefabs/Player.prefab.meta | 6 +-
.../Mirror/Examples/Discovery/Scenes.meta | 6 +-
.../Discovery/Scenes/Scene.unity.meta | 6 +-
.../Examples/Mirror.Examples.asmdef.meta | 6 +-
.../Examples/MultipleAdditiveScenes.meta | 6 +-
.../MultipleAdditiveScenes/Materials.meta | 6 +-
.../Materials/Physics.meta | 6 +-
.../Physics/Icosphere.physicMaterial.meta | 6 +-
.../Physics/Player.physicMaterial.meta | 6 +-
.../Physics/RoomBounce.physicMaterial.meta | 6 +-
.../Materials/Render.meta | 6 +-
.../Materials/Render/PlayArea.mat.meta | 6 +-
.../Materials/Render/Player.mat.meta | 6 +-
.../Materials/Render/Prize.mat.meta | 6 +-
.../MultipleAdditiveScenes/Models.meta | 6 +-
.../Models/Icosphere.meta | 6 +-
.../Models/Icosphere/Icosphere.obj.meta | 20 +-
.../Models/Icosphere/Materials.meta | 6 +-
.../Icosphere/Materials/Icosphere.mat.meta | 6 +-
.../MultipleAdditiveScenes/Prefabs.meta | 6 +-
.../Prefabs/Icosphere.prefab.meta | 6 +-
.../Prefabs/Player.prefab.meta | 6 +-
.../Prefabs/Prize.prefab.meta | 6 +-
.../MultipleAdditiveScenes/README.md.meta | 6 +-
.../MultipleAdditiveScenes/Scenes.meta | 6 +-
.../Scenes/Game.unity.meta | 6 +-
.../Scenes/Main.unity.meta | 6 +-
.../MultipleAdditiveScenes/Scripts.meta | 6 +-
.../Scripts/MultiSceneNetManager.cs.meta | 6 +-
.../Scripts/PhysicsCollision.cs.meta | 6 +-
.../Scripts/PhysicsSimulator.cs.meta | 6 +-
.../Scripts/PlayerController.cs.meta | 6 +-
.../Scripts/PlayerScore.cs.meta | 6 +-
.../Scripts/RandomColor.cs.meta | 6 +-
.../Scripts/Reward.cs.meta | 6 +-
.../Scripts/Spawner.cs.meta | 6 +-
.../Mirror/Examples/MultipleMatches.meta | 6 +-
.../Examples/MultipleMatches/Prefabs.meta | 6 +-
.../Prefabs/CellGUI.prefab.meta | 6 +-
.../Prefabs/MatchController.prefab.meta | 6 +-
.../Prefabs/MatchGUI.prefab.meta | 6 +-
.../Prefabs/MatchPlayer.prefab.meta | 6 +-
.../Prefabs/PlayerGUI.prefab.meta | 6 +-
.../Examples/MultipleMatches/README.md.meta | 6 +-
.../Examples/MultipleMatches/Scenes.meta | 6 +-
.../MultipleMatches/Scenes/Main.unity.meta | 6 +-
.../Examples/MultipleMatches/Scripts.meta | 6 +-
.../Scripts/CanvasController.cs.meta | 6 +-
.../MultipleMatches/Scripts/CellGUI.cs.meta | 6 +-
.../Scripts/MatchController.cs.meta | 6 +-
.../MultipleMatches/Scripts/MatchGUI.cs.meta | 6 +-
.../Scripts/MatchMessages.cs.meta | 6 +-
.../Scripts/MatchNetworkManager.cs | 2 +-
.../Scripts/MatchNetworkManager.cs.meta | 6 +-
.../MultipleMatches/Scripts/PlayerGUI.cs.meta | 6 +-
.../MultipleMatches/Scripts/RoomGUI.cs.meta | 6 +-
UnityProject/Assets/Mirror/Examples/Pong.meta | 6 +-
.../Examples/Pong/PhysicsMaterials.meta | 6 +-
.../BallMaterial.physicsMaterial2D.meta | 8 +-
.../Assets/Mirror/Examples/Pong/Prefabs.meta | 6 +-
.../Examples/Pong/Prefabs/Ball.prefab.meta | 6 +-
.../Examples/Pong/Prefabs/Racket.prefab.meta | 6 +-
.../Assets/Mirror/Examples/Pong/Scenes.meta | 6 +-
.../Examples/Pong/Scenes/Scene.unity.meta | 8 +-
.../Assets/Mirror/Examples/Pong/Scripts.meta | 6 +-
.../Mirror/Examples/Pong/Scripts/Ball.cs.meta | 8 +-
.../Pong/Scripts/NetworkManagerPong.cs.meta | 6 +-
.../Examples/Pong/Scripts/Player.cs.meta | 8 +-
.../Assets/Mirror/Examples/Pong/Sprites.meta | 6 +-
.../Examples/Pong/Sprites/Ball.png.meta | 10 +-
.../Examples/Pong/Sprites/DottedLine.png.meta | 10 +-
.../Examples/Pong/Sprites/Racket.png.meta | 10 +-
.../Pong/Sprites/WallHorizontal.png.meta | 10 +-
.../Pong/Sprites/WallVertical.png.meta | 10 +-
.../Mirror/Examples/RigidbodyPhysics.meta | 6 +-
.../Examples/RigidbodyPhysics/Materials.meta | 6 +-
.../RigidbodyPhysics/Materials/Blue.mat.meta | 6 +-
.../RigidbodyPhysics/Materials/Green.mat.meta | 6 +-
.../RigidbodyPhysics/Materials/Red.mat.meta | 6 +-
.../RigidbodyPhysics/PhysicMaterials.meta | 6 +-
.../PhysicMaterials/Ball.physicMaterial.meta | 6 +-
.../PhysicMaterials/Floor.physicMaterial.meta | 6 +-
.../Examples/RigidbodyPhysics/Prefabs.meta | 6 +-
.../Prefabs/Empty Player.prefab.meta | 6 +-
.../Examples/RigidbodyPhysics/Scenes.meta | 6 +-
.../Scenes/BounceScene.unity.meta | 6 +-
.../Examples/RigidbodyPhysics/Scripts.meta | 6 +-
.../RigidbodyPhysics/Scripts/AddForce.cs.meta | 6 +-
UnityProject/Assets/Mirror/Examples/Room.meta | 6 +-
.../Mirror/Examples/Room/Materials.meta | 6 +-
.../Examples/Room/Materials/PlayArea.mat.meta | 6 +-
.../Examples/Room/Materials/Player.mat.meta | 6 +-
.../Examples/Room/Materials/Prize.mat.meta | 6 +-
.../Examples/Room/Materials/Textures.meta | 6 +-
.../Room/Materials/Textures/Wall01.tga.meta | 12 +-
.../Room/Materials/Textures/Wall01_n.tga.meta | 12 +-
.../Assets/Mirror/Examples/Room/Prefabs.meta | 6 +-
.../Room/Prefabs/GamePlayer.prefab.meta | 6 +-
.../Examples/Room/Prefabs/Prize.prefab.meta | 6 +-
.../Room/Prefabs/RoomPlayer.prefab.meta | 6 +-
.../Mirror/Examples/Room/README.md.meta | 6 +-
.../Assets/Mirror/Examples/Room/Scenes.meta | 6 +-
.../Room/Scenes/OfflineScene.unity.meta | 6 +-
.../Room/Scenes/OnlineScene.unity.meta | 6 +-
.../Examples/Room/Scenes/RoomScene.unity.meta | 6 +-
.../Assets/Mirror/Examples/Room/Scripts.meta | 6 +-
.../Scripts/NetworkRoomManagerExt.cs.meta | 6 +-
.../Room/Scripts/NetworkRoomPlayerExt.cs.meta | 6 +-
.../Room/Scripts/PlayerController.cs.meta | 6 +-
.../Examples/Room/Scripts/PlayerScore.cs.meta | 6 +-
.../Examples/Room/Scripts/RandomColor.cs.meta | 6 +-
.../Examples/Room/Scripts/Reward.cs.meta | 6 +-
.../Examples/Room/Scripts/Spawner.cs.meta | 6 +-
.../Assets/Mirror/Examples/Tanks.meta | 6 +-
.../Assets/Mirror/Examples/Tanks/Models.meta | 6 +-
.../Models/(Public Domain) Recon_Tank.meta | 6 +-
.../BaseColor.png.meta | 12 +-
.../Controller.controller.meta | 6 +-
.../Emissive.png.meta | 12 +-
.../Metallic.png.meta | 12 +-
.../Normal.png.meta | 12 +-
.../Recon_Tank - License.txt.meta | 6 +-
.../TankMaterial.mat.meta | 6 +-
.../reconTank.fbx.meta | 20 +-
.../Assets/Mirror/Examples/Tanks/Prefabs.meta | 6 +-
.../Tanks/Prefabs/Projectile.prefab.meta | 6 +-
.../Examples/Tanks/Prefabs/Tank.prefab.meta | 6 +-
.../Assets/Mirror/Examples/Tanks/Scenes.meta | 6 +-
.../Mirror/Examples/Tanks/Scenes/Scene.meta | 6 +-
.../Examples/Tanks/Scenes/Scene.unity.meta | 6 +-
.../Tanks/Scenes/Scene/NavMesh.asset.meta | 6 +-
.../Assets/Mirror/Examples/Tanks/Scripts.meta | 6 +-
.../Examples/Tanks/Scripts/Projectile.cs.meta | 6 +-
.../Examples/Tanks/Scripts/Tank.cs.meta | 6 +-
.../Mirror/Examples/Tanks/Textures.meta | 6 +-
...lic Domain) Dirt Hand Painted Texture.meta | 6 +-
...rt Hand Painted Texture - License.txt.meta | 6 +-
.../Dirt.mat.meta | 6 +-
.../dirt.png.meta | 12 +-
.../Textures/ProjectileMaterial.mat.meta | 6 +-
UnityProject/Assets/Mirror/Icon.meta | 6 +-
.../Assets/Mirror/Icon/MirrorIcon.png.meta | 12 +-
UnityProject/Assets/Mirror/Notice.txt | 123 -
UnityProject/Assets/Mirror/Notice.txt.meta | 7 -
UnityProject/Assets/Mirror/Plugins.meta | 6 +-
.../Assets/Mirror/Plugins/Mono.Cecil.meta | 6 +-
.../Plugins/Mono.Cecil/License.txt.meta | 6 +-
.../Mono.Cecil/Mono.CecilX.Mdb.dll.meta | 8 +-
.../Mono.Cecil/Mono.CecilX.Pdb.dll.meta | 8 +-
.../Mono.Cecil/Mono.CecilX.Rocks.dll.meta | 8 +-
.../Plugins/Mono.Cecil/Mono.CecilX.dll.meta | 8 +-
UnityProject/Assets/Mirror/Readme.txt | 16 +-
UnityProject/Assets/Mirror/Readme.txt.meta | 6 +-
.../Mirror/Runtime/AssemblyInfo.cs.meta | 6 +-
.../Assets/Mirror/Runtime/Attributes.cs.meta | 6 +-
.../Assets/Mirror/Runtime/ClientScene.cs | 2 +
.../Assets/Mirror/Runtime/ClientScene.cs.meta | 6 +-
.../Assets/Mirror/Runtime/Compression.cs.meta | 6 +-
UnityProject/Assets/Mirror/Runtime/Empty.meta | 4 +-
.../Mirror/{ => Runtime/Empty}/Cloud.meta | 6 +-
.../Runtime/Empty/Cloud/ApiConnector.cs | 1 +
.../Empty}/Cloud/ApiConnector.cs.meta | 6 +-
.../Mirror/Runtime/Empty/Cloud/ApiUpdater.cs | 1 +
.../Empty/Cloud}/ApiUpdater.cs.meta | 6 +-
.../Assets/Mirror/Runtime/Empty/Cloud/Ball.cs | 1 +
.../Empty/Cloud}/Ball.cs.meta | 6 +-
.../Mirror/Runtime/Empty/Cloud/BallManager.cs | 1 +
.../Empty/Cloud}/BallManager.cs.meta | 6 +-
.../Mirror/Runtime/Empty/Cloud/BaseApi.cs | 1 +
.../Empty/Cloud}/BaseApi.cs.meta | 6 +-
.../Mirror/Runtime/Empty/Cloud/Events.cs | 1 +
.../Empty/Cloud}/Events.cs.meta | 6 +-
.../Mirror/Runtime/Empty/Cloud/Extensions.cs | 1 +
.../Empty/Cloud}/Extensions.cs.meta | 6 +-
.../Runtime/Empty/Cloud/ICoroutineRunner.cs | 1 +
.../Empty/Cloud}/ICoroutineRunner.cs.meta | 6 +-
.../Runtime/Empty/Cloud/IRequestCreator.cs | 1 +
.../Empty/Cloud}/IRequestCreator.cs.meta | 6 +-
.../Runtime/Empty/Cloud/IUnityEqualCheck.cs | 1 +
.../Empty/Cloud}/IUnityEqualCheck.cs.meta | 6 +-
.../Empty/Cloud/InstantiateNetworkManager.cs | 1 +
.../Cloud}/InstantiateNetworkManager.cs.meta | 6 +-
.../Mirror/Runtime/Empty/Cloud/JsonStructs.cs | 1 +
.../Empty/Cloud}/JsonStructs.cs.meta | 6 +-
.../Mirror/Runtime/Empty/Cloud/ListServer.cs | 1 +
.../Empty/Cloud}/ListServer.cs.meta | 6 +-
.../Runtime/Empty/Cloud/ListServerBaseApi.cs | 1 +
.../Empty/Cloud}/ListServerBaseApi.cs.meta | 6 +-
.../Empty/Cloud/ListServerClientApi.cs | 1 +
.../Empty/Cloud}/ListServerClientApi.cs.meta | 6 +-
.../Runtime/Empty/Cloud/ListServerJson.cs | 1 +
.../Empty/Cloud}/ListServerJson.cs.meta | 6 +-
.../Empty/Cloud/ListServerServerApi.cs | 1 +
.../Empty/Cloud}/ListServerServerApi.cs.meta | 6 +-
.../Mirror/Runtime/Empty/Cloud/Logger.cs | 1 +
.../Empty/Cloud}/Logger.cs.meta | 6 +-
.../Empty/Cloud/NetworkManagerListServer.cs | 1 +
.../Cloud}/NetworkManagerListServer.cs.meta | 6 +-
.../Cloud/NetworkManagerListServerPong.cs | 1 +
.../NetworkManagerListServerPong.cs.meta | 6 +-
.../Mirror/Runtime/Empty/Cloud/Player.cs | 1 +
.../Empty/Cloud}/Player.cs.meta | 6 +-
.../Empty/Cloud/QuickListServerDebug.cs | 1 +
.../Empty/Cloud}/QuickListServerDebug.cs.meta | 6 +-
.../Runtime/Empty/Cloud/QuitButtonHUD.cs | 1 +
.../Empty/Cloud}/QuitButtonHUD.cs.meta | 6 +-
.../Runtime/Empty/Cloud/RequestCreator.cs | 1 +
.../Empty/Cloud}/RequestCreator.cs.meta | 6 +-
.../Runtime/Empty/Cloud/ServerListManager.cs | 1 +
.../Empty/Cloud}/ServerListManager.cs.meta | 6 +-
.../Runtime/Empty/Cloud/ServerListUI.cs | 1 +
.../Empty/Cloud}/ServerListUI.cs.meta | 6 +-
.../Runtime/Empty/Cloud/ServerListUIItem.cs | 1 +
.../Empty/Cloud}/ServerListUIItem.cs.meta | 6 +-
.../Runtime/Empty/DotNetCompatibility.cs.meta | 6 +-
.../Mirror/Runtime/Empty/LogFactory.cs.meta | 6 +-
.../Mirror/Runtime/Empty/LogFilter.cs.meta | 6 +-
.../Assets/Mirror/Runtime/Empty/Logging.meta | 6 +-
.../Logging/ConsoleColorLogHandler.cs.meta | 6 +-
.../Logging/EditorLogSettingsLoader.cs.meta | 6 +-
.../Runtime/Empty/Logging/LogFactory.cs.meta | 6 +-
.../Runtime/Empty/Logging/LogSettings.cs.meta | 6 +-
.../Logging/NetworkHeadlessLogger.cs.meta | 6 +-
.../Empty/Logging/NetworkLogSettings.cs.meta | 6 +-
.../Mirror/Runtime/Empty/StringHash.cs.meta | 6 +-
.../Runtime/ExponentialMovingAverage.cs.meta | 6 +-
.../Assets/Mirror/Runtime/Extensions.cs | 9 +
.../Assets/Mirror/Runtime/Extensions.cs.meta | 8 +-
.../Mirror/Runtime/InterestManagement.cs.meta | 6 +-
.../Assets/Mirror/Runtime/LocalConnections.cs | 14 +-
.../Mirror/Runtime/LocalConnections.cs.meta | 6 +-
.../Assets/Mirror/Runtime/MessagePacking.cs | 23 +-
.../Mirror/Runtime/MessagePacking.cs.meta | 6 +-
.../Assets/Mirror/Runtime/Messages.cs | 6 +-
.../Assets/Mirror/Runtime/Messages.cs.meta | 6 +-
.../Assets/Mirror/Runtime/Mirror.asmdef.meta | 6 +-
.../Mirror/Runtime/NetworkAuthenticator.cs | 31 +-
.../Runtime/NetworkAuthenticator.cs.meta | 6 +-
.../Assets/Mirror/Runtime/NetworkBehaviour.cs | 50 +-
.../Mirror/Runtime/NetworkBehaviour.cs.meta | 6 +-
.../Assets/Mirror/Runtime/NetworkClient.cs | 142 +-
.../Mirror/Runtime/NetworkClient.cs.meta | 6 +-
.../Mirror/Runtime/NetworkConnection.cs | 77 +-
.../Mirror/Runtime/NetworkConnection.cs.meta | 6 +-
.../Runtime/NetworkConnectionToClient.cs | 57 +-
.../Runtime/NetworkConnectionToClient.cs.meta | 6 +-
.../Runtime/NetworkConnectionToServer.cs | 2 +-
.../Runtime/NetworkConnectionToServer.cs.meta | 6 +-
.../Mirror/Runtime/NetworkDiagnostics.cs.meta | 6 +-
.../Assets/Mirror/Runtime/NetworkIdentity.cs | 141 +-
.../Mirror/Runtime/NetworkIdentity.cs.meta | 6 +-
.../Assets/Mirror/Runtime/NetworkLoop.cs.meta | 6 +-
.../Assets/Mirror/Runtime/NetworkManager.cs | 59 +-
.../Mirror/Runtime/NetworkManager.cs.meta | 6 +-
.../Mirror/Runtime/NetworkManagerHUD.cs | 21 +-
.../Mirror/Runtime/NetworkManagerHUD.cs.meta | 6 +-
.../Mirror/Runtime/NetworkMessage.cs.meta | 6 +-
.../Assets/Mirror/Runtime/NetworkReader.cs | 125 +-
.../Mirror/Runtime/NetworkReader.cs.meta | 6 +-
.../Mirror/Runtime/NetworkReaderPool.cs | 4 +-
.../Mirror/Runtime/NetworkReaderPool.cs.meta | 6 +-
.../Assets/Mirror/Runtime/NetworkServer.cs | 487 +--
.../Mirror/Runtime/NetworkServer.cs.meta | 6 +-
.../Mirror/Runtime/NetworkStartPosition.cs | 2 +-
.../Runtime/NetworkStartPosition.cs.meta | 6 +-
.../Assets/Mirror/Runtime/NetworkTime.cs | 1 +
.../Assets/Mirror/Runtime/NetworkTime.cs.meta | 6 +-
.../Mirror/Runtime/NetworkVisibility.cs.meta | 6 +-
.../Assets/Mirror/Runtime/NetworkWriter.cs | 244 +-
.../Mirror/Runtime/NetworkWriter.cs.meta | 6 +-
.../Mirror/Runtime/NetworkWriterPool.cs | 5 +-
.../Mirror/Runtime/NetworkWriterPool.cs.meta | 6 +-
UnityProject/Assets/Mirror/Runtime/Pool.cs | 7 +-
.../Assets/Mirror/Runtime/Pool.cs.meta | 6 +-
.../Mirror/Runtime/RemoteCallHelper.cs.meta | 6 +-
.../Assets/Mirror/Runtime/SyncDictionary.cs | 14 +-
.../Mirror/Runtime/SyncDictionary.cs.meta | 6 +-
.../Assets/Mirror/Runtime/SyncList.cs | 32 +-
.../Assets/Mirror/Runtime/SyncList.cs.meta | 6 +-
.../Assets/Mirror/Runtime/SyncObject.cs.meta | 6 +-
UnityProject/Assets/Mirror/Runtime/SyncSet.cs | 12 +-
.../Assets/Mirror/Runtime/SyncSet.cs.meta | 6 +-
.../Runtime/Transport/FallbackTransport.cs | 15 +-
.../Transport/FallbackTransport.cs.meta | 6 +-
.../Assets/Mirror/Runtime/Transport/KCP.meta | 6 +-
.../Transport/KCP/MirrorTransport.meta | 6 +-
.../KCP/MirrorTransport/KcpTransport.cs | 18 +-
.../KCP/MirrorTransport/KcpTransport.cs.meta | 6 +-
.../Mirror/Runtime/Transport/KCP/kcp2k.meta | 6 +-
.../Runtime/Transport/KCP/kcp2k/LICENSE.meta | 6 +-
.../Runtime/Transport/KCP/kcp2k/VERSION | 27 +
.../Runtime/Transport/KCP/kcp2k/VERSION.meta | 6 +-
.../Transport/KCP/kcp2k/highlevel.meta | 6 +-
.../KCP/kcp2k/highlevel/KcpChannel.cs.meta | 4 +-
.../KCP/kcp2k/highlevel/KcpClient.cs | 4 +-
.../KCP/kcp2k/highlevel/KcpClient.cs.meta | 4 +-
.../kcp2k/highlevel/KcpClientConnection.cs | 16 +-
.../highlevel/KcpClientConnection.cs.meta | 4 +-
.../KCP/kcp2k/highlevel/KcpConnection.cs | 17 +-
.../KCP/kcp2k/highlevel/KcpConnection.cs.meta | 4 +-
.../KCP/kcp2k/highlevel/KcpHeader.cs.meta | 4 +-
.../KCP/kcp2k/highlevel/KcpServer.cs | 50 +-
.../KCP/kcp2k/highlevel/KcpServer.cs.meta | 4 +-
.../kcp2k/highlevel/KcpServerConnection.cs | 13 +-
.../highlevel/KcpServerConnection.cs.meta | 4 +-
.../Transport/KCP/kcp2k/highlevel/Log.cs.meta | 6 +-
.../Runtime/Transport/KCP/kcp2k/kcp.meta | 6 +-
.../KCP/kcp2k/kcp/AssemblyInfo.cs.meta | 4 +-
.../Runtime/Transport/KCP/kcp2k/kcp/Kcp.cs | 26 +-
.../Transport/KCP/kcp2k/kcp/Kcp.cs.meta | 6 +-
.../Runtime/Transport/KCP/kcp2k/kcp/Pool.cs | 46 +
.../Transport/KCP/kcp2k/kcp/Pool.cs.meta | 11 +
.../Transport/KCP/kcp2k/kcp/Segment.cs | 27 +-
.../Transport/KCP/kcp2k/kcp/Segment.cs.meta | 6 +-
.../Transport/KCP/kcp2k/kcp/Utils.cs.meta | 6 +-
.../Runtime/Transport/KCP/kcp2k/kcp2k.asmdef | 9 +-
.../Transport/KCP/kcp2k/kcp2k.asmdef.meta | 6 +-
.../Transport/KCP/kcp2k/where-allocation.meta | 8 +
.../KCP/kcp2k/where-allocation/LICENSE | 21 +
.../KCP/kcp2k/where-allocation/LICENSE.meta | 7 +
.../KCP/kcp2k/where-allocation/Scripts.meta | 8 +
.../where-allocation/Scripts/AssemblyInfo.cs | 3 +
.../Scripts/AssemblyInfo.cs.meta | 3 +
.../where-allocation/Scripts/Extensions.cs | 58 +
.../Scripts/Extensions.cs.meta | 11 +
.../Scripts/IPEndPointNonAlloc.cs | 208 ++
.../Scripts/IPEndPointNonAlloc.cs.meta | 11 +
.../Scripts/where-allocations.asmdef} | 11 +-
.../Scripts/where-allocations.asmdef.meta | 7 +
.../KCP/kcp2k/where-allocation/VERSION | 2 +
.../KCP/kcp2k/where-allocation/VERSION.meta | 7 +
.../Runtime/Transport/LatencySimulation.cs | 20 +-
.../Transport/LatencySimulation.cs.meta | 6 +-
.../Runtime/Transport/MiddlewareTransport.cs | 6 +-
.../Transport/MiddlewareTransport.cs.meta | 6 +-
.../Runtime/Transport/MultiplexTransport.cs | 12 +-
.../Transport/MultiplexTransport.cs.meta | 6 +-
.../Runtime/Transport/SimpleWebTransport.meta | 6 +-
.../SimpleWebTransport/AssemblyInfo.cs.meta | 6 +-
.../Transport/SimpleWebTransport/Client.meta | 6 +-
.../Client/SimpleWebClient.cs.meta | 6 +-
.../SimpleWebTransport/Client/StandAlone.meta | 6 +-
.../Client/StandAlone/ClientHandshake.cs | 2 +-
.../Client/StandAlone/ClientHandshake.cs.meta | 6 +-
.../Client/StandAlone/ClientSslHelper.cs.meta | 6 +-
.../WebSocketClientStandAlone.cs.meta | 6 +-
.../SimpleWebTransport/Client/Webgl.meta | 6 +-
.../Client/Webgl/SimpleWebJSLib.cs.meta | 6 +-
.../Client/Webgl/WebSocketClientWebGl.cs.meta | 6 +-
.../Client/Webgl/plugin.meta | 6 +-
.../Client/Webgl/plugin/SimpleWeb.jslib.meta | 8 +-
.../Transport/SimpleWebTransport/Common.meta | 6 +-
.../Common/BufferPool.cs.meta | 6 +-
.../Common/Connection.cs.meta | 6 +-
.../Common/Constants.cs.meta | 6 +-
.../Common/EventType.cs.meta | 6 +-
.../SimpleWebTransport/Common/Log.cs.meta | 6 +-
.../SimpleWebTransport/Common/Message.cs.meta | 6 +-
.../Common/MessageProcessor.cs.meta | 6 +-
.../Common/ReadHelper.cs.meta | 6 +-
.../Common/ReceiveLoop.cs.meta | 6 +-
.../Common/SendLoop.cs.meta | 6 +-
.../Common/TcpConfig.cs.meta | 6 +-
.../SimpleWebTransport/Common/Utils.cs.meta | 6 +-
.../Transport/SimpleWebTransport/README.txt | 2 +-
.../SimpleWebTransport/README.txt.meta | 6 +-
.../Transport/SimpleWebTransport/Server.meta | 6 +-
.../Server/ServerHandshake.cs.meta | 6 +-
.../Server/ServerSslHelper.cs.meta | 6 +-
.../Server/SimpleWebServer.cs.meta | 6 +-
.../Server/WebSocketServer.cs.meta | 6 +-
.../SimpleWebTransport.asmdef.meta | 6 +-
.../SimpleWebTransport/SimpleWebTransport.cs | 10 +-
.../SimpleWebTransport.cs.meta | 6 +-
.../SslConfigLoader.cs.meta | 6 +-
.../Mirror/Runtime/Transport/Telepathy.meta | 6 +-
.../Transport/Telepathy/Telepathy.meta | 6 +-
.../Telepathy/Telepathy/Client.cs.meta | 6 +-
.../Telepathy/Telepathy/Common.cs.meta | 6 +-
.../Telepathy/ConnectionState.cs.meta | 6 +-
.../Transport/Telepathy/Telepathy/Empty.meta | 8 +
.../Telepathy/Telepathy/{ => Empty}/Logger.cs | 0
.../Telepathy/{ => Empty}/Logger.cs.meta | 6 +-
.../Telepathy/{ => Empty}/Message.cs | 0
.../Telepathy/{ => Empty}/Message.cs.meta | 6 +-
.../Telepathy/{ => Empty}/SafeQueue.cs | 0
.../Telepathy/{ => Empty}/SafeQueue.cs.meta | 6 +-
.../Telepathy/{ => Empty}/ThreadExtensions.cs | 0
.../{ => Empty}/ThreadExtensions.cs.meta | 6 +-
.../Telepathy/Telepathy/EventType.cs.meta | 6 +-
.../Telepathy/Telepathy/LICENSE.meta | 6 +-
.../Transport/Telepathy/Telepathy/Log.cs.meta | 6 +-
.../Telepathy/MagnificentReceivePipe.cs.meta | 6 +-
.../Telepathy/MagnificentSendPipe.cs.meta | 6 +-
.../Telepathy/NetworkStreamExtensions.cs | 11 +-
.../Telepathy/NetworkStreamExtensions.cs.meta | 6 +-
.../Telepathy/Telepathy/Pool.cs.meta | 6 +-
.../Transport/Telepathy/Telepathy/Server.cs | 11 +-
.../Telepathy/Telepathy/Server.cs.meta | 6 +-
.../Telepathy/Telepathy/Telepathy.asmdef.meta | 6 +-
.../Telepathy/ThreadFunctions.cs.meta | 6 +-
.../Telepathy/Telepathy/Utils.cs.meta | 6 +-
.../Transport/Telepathy/Telepathy/VERSION | 4 +
.../Telepathy/Telepathy/VERSION.meta | 6 +-
.../Transport/Telepathy/TelepathyTransport.cs | 6 +-
.../Telepathy/TelepathyTransport.cs.meta | 6 +-
.../Mirror/Runtime/Transport/Transport.cs | 253 +-
.../Runtime/Transport/Transport.cs.meta | 6 +-
.../Assets/Mirror/Runtime/Utils.cs.meta | 6 +-
UnityProject/Assets/Mirror/Version.txt | 1 -
UnityProject/Assets/Mirror/Version.txt.meta | 7 -
...__Network Manager-NewNetworkManager.cs.txt | 2 +-
...work Manager-NewNetworkManager.cs.txt.meta | 6 +-
...thenticator-NewNetworkAuthenticator.cs.txt | 9 +-
...icator-NewNetworkAuthenticator.cs.txt.meta | 6 +-
...twork Behaviour-NewNetworkBehaviour.cs.txt | 2 +-
... Behaviour-NewNetworkBehaviour.cs.txt.meta | 6 +-
...Network Observer-NewNetworkObserver.cs.txt | 4 +-
...rk Observer-NewNetworkObserver.cs.txt.meta | 6 +-
... Room Manager-NewNetworkRoomManager.cs.txt | 4 +-
... Manager-NewNetworkRoomManager.cs.txt.meta | 6 +-
...rk Room Player-NewNetworkRoomPlayer.cs.txt | 2 +-
...om Player-NewNetworkRoomPlayer.cs.txt.meta | 6 +-
...twork Discovery-NewNetworkDiscovery.cs.txt | 3 +-
... Discovery-NewNetworkDiscovery.cs.txt.meta | 6 +-
.../ProjectSettings/ProjectSettings.asset | 2 +-
714 files changed, 3296 insertions(+), 11542 deletions(-)
delete mode 100644 UnityProject/Assets/Mirror/Cloud/ApiConnector.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core.meta
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core/BaseApi.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core/Events.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core/Extensions.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core/ICoroutineRunner.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core/IRequestCreator.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core/IUnityEqualCheck.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core/JsonStructs.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core/Logger.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Core/RequestCreator.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/ListServer.meta
delete mode 100644 UnityProject/Assets/Mirror/Cloud/ListServer/ListServer.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/ListServer/ListServerBaseApi.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/ListServer/ListServerClientApi.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/ListServer/ListServerJson.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/ListServer/ListServerServerApi.cs
delete mode 100644 UnityProject/Assets/Mirror/Cloud/Mirror.Cloud.asmdef.meta
delete mode 100644 UnityProject/Assets/Mirror/Cloud/README.md
delete mode 100644 UnityProject/Assets/Mirror/Cloud/README.md.meta
delete mode 100644 UnityProject/Assets/Mirror/Cloud/version.txt
delete mode 100644 UnityProject/Assets/Mirror/Cloud/version.txt.meta
create mode 100644 UnityProject/Assets/Mirror/Editor/Empty.meta
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/LogLevelWindow.cs (100%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/LogLevelWindow.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/Logging.meta (65%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/Logging/LogLevelWindow.cs (100%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/Logging/LogLevelWindow.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/Logging/LogLevelsGUI.cs (100%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/Logging/LogLevelsGUI.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/Logging/LogSettingsEditor.cs (100%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/Logging/LogSettingsEditor.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/Logging/NetworkLogSettingsEditor.cs (100%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/Logging/NetworkLogSettingsEditor.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/ScriptableObjectUtility.cs (100%)
rename UnityProject/Assets/Mirror/Editor/{ => Empty}/ScriptableObjectUtility.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Editor/Weaver/Empty.meta
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/GenericArgumentResolver.cs (100%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/GenericArgumentResolver.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/MessageClassProcessor.cs (100%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/MessageClassProcessor.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{ => Empty}/Program.cs (100%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{ => Empty}/Program.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/SyncDictionaryProcessor.cs (100%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/SyncDictionaryProcessor.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/SyncEventProcessor.cs (100%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/SyncEventProcessor.cs.meta (75%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/SyncListProcessor.cs (100%)
rename UnityProject/Assets/Mirror/Editor/Weaver/{Processors => Empty}/SyncListProcessor.cs.meta (75%)
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ListServer Canvas.prefab
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ListServer Canvas.prefab.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ServerListItem.prefab
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ServerListItem.prefab.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/README.md
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/README.md.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ApiUpdater.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/InstantiateNetworkManager.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/Mirror.Examples.Cloud.GUI.asmdef
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/Mirror.Examples.Cloud.GUI.asmdef.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/NetworkManagerListServer.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuickListServerDebug.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuitButtonHUD.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListManager.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUI.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUIItem.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials/BallMaterial.physicsMaterial2D
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials/BallMaterial.physicsMaterial2D.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Ball.prefab
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Ball.prefab.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/NetworkManagerPong.prefab
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/NetworkManagerPong.prefab.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Racket.prefab
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Racket.prefab.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/README.md
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/README.md.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/ListServerLobbyScenePong.unity
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/ListServerLobbyScenePong.unity.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/PongGameScene.unity
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/PongGameScene.unity.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Ball.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/BallManager.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Mirror.Examples.Cloud.Pong.asmdef
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Mirror.Examples.Cloud.Pong.asmdef.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/NetworkManagerListServerPong.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Player.cs
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/Ball.png
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/Ball.png.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/DottedLine.png
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/DottedLine.png.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/Racket.png
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/Racket.png.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/WallHorizontal.png
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/WallHorizontal.png.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/WallVertical.png
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/WallVertical.png.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Prefabs.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Prefabs/TanksNetworkManager.prefab
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Prefabs/TanksNetworkManager.prefab.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/README.md
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/README.md.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes.meta
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes/ListServerLobbySceneTanks.unity
delete mode 100644 UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes/ListServerLobbySceneTanks.unity.meta
delete mode 100644 UnityProject/Assets/Mirror/Notice.txt
delete mode 100644 UnityProject/Assets/Mirror/Notice.txt.meta
rename UnityProject/Assets/Mirror/{ => Runtime/Empty}/Cloud.meta (65%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiConnector.cs
rename UnityProject/Assets/Mirror/{ => Runtime/Empty}/Cloud/ApiConnector.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiUpdater.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/GUI/Scripts => Runtime/Empty/Cloud}/ApiUpdater.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Ball.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/PongWithListServer/Scripts => Runtime/Empty/Cloud}/Ball.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BallManager.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/PongWithListServer/Scripts => Runtime/Empty/Cloud}/BallManager.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BaseApi.cs
rename UnityProject/Assets/Mirror/{Cloud/Core => Runtime/Empty/Cloud}/BaseApi.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Events.cs
rename UnityProject/Assets/Mirror/{Cloud/Core => Runtime/Empty/Cloud}/Events.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Extensions.cs
rename UnityProject/Assets/Mirror/{Cloud/Core => Runtime/Empty/Cloud}/Extensions.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ICoroutineRunner.cs
rename UnityProject/Assets/Mirror/{Cloud/Core => Runtime/Empty/Cloud}/ICoroutineRunner.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IRequestCreator.cs
rename UnityProject/Assets/Mirror/{Cloud/Core => Runtime/Empty/Cloud}/IRequestCreator.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IUnityEqualCheck.cs
rename UnityProject/Assets/Mirror/{Cloud/Core => Runtime/Empty/Cloud}/IUnityEqualCheck.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/InstantiateNetworkManager.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/GUI/Scripts => Runtime/Empty/Cloud}/InstantiateNetworkManager.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/JsonStructs.cs
rename UnityProject/Assets/Mirror/{Cloud/Core => Runtime/Empty/Cloud}/JsonStructs.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServer.cs
rename UnityProject/Assets/Mirror/{Cloud/ListServer => Runtime/Empty/Cloud}/ListServer.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerBaseApi.cs
rename UnityProject/Assets/Mirror/{Cloud/ListServer => Runtime/Empty/Cloud}/ListServerBaseApi.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerClientApi.cs
rename UnityProject/Assets/Mirror/{Cloud/ListServer => Runtime/Empty/Cloud}/ListServerClientApi.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerJson.cs
rename UnityProject/Assets/Mirror/{Cloud/ListServer => Runtime/Empty/Cloud}/ListServerJson.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerServerApi.cs
rename UnityProject/Assets/Mirror/{Cloud/ListServer => Runtime/Empty/Cloud}/ListServerServerApi.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Logger.cs
rename UnityProject/Assets/Mirror/{Cloud/Core => Runtime/Empty/Cloud}/Logger.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServer.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/GUI/Scripts => Runtime/Empty/Cloud}/NetworkManagerListServer.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServerPong.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/PongWithListServer/Scripts => Runtime/Empty/Cloud}/NetworkManagerListServerPong.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Player.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/PongWithListServer/Scripts => Runtime/Empty/Cloud}/Player.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuickListServerDebug.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/GUI/Scripts => Runtime/Empty/Cloud}/QuickListServerDebug.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuitButtonHUD.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/GUI/Scripts => Runtime/Empty/Cloud}/QuitButtonHUD.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/RequestCreator.cs
rename UnityProject/Assets/Mirror/{Cloud/Core => Runtime/Empty/Cloud}/RequestCreator.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListManager.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/GUI/Scripts => Runtime/Empty/Cloud}/ServerListManager.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUI.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/GUI/Scripts => Runtime/Empty/Cloud}/ServerListUI.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUIItem.cs
rename UnityProject/Assets/Mirror/{Examples/Cloud/GUI/Scripts => Runtime/Empty/Cloud}/ServerListUIItem.cs.meta (75%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Pool.cs
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Pool.cs.meta
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation.meta
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/LICENSE
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/LICENSE.meta
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts.meta
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/AssemblyInfo.cs
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/AssemblyInfo.cs.meta
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/Extensions.cs
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/Extensions.cs.meta
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/IPEndPointNonAlloc.cs
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/IPEndPointNonAlloc.cs.meta
rename UnityProject/Assets/Mirror/{Cloud/Mirror.Cloud.asmdef => Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/where-allocations.asmdef} (56%)
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/where-allocations.asmdef.meta
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/VERSION
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/VERSION.meta
create mode 100644 UnityProject/Assets/Mirror/Runtime/Transport/Telepathy/Telepathy/Empty.meta
rename UnityProject/Assets/Mirror/Runtime/Transport/Telepathy/Telepathy/{ => Empty}/Logger.cs (100%)
rename UnityProject/Assets/Mirror/Runtime/Transport/Telepathy/Telepathy/{ => Empty}/Logger.cs.meta (75%)
rename UnityProject/Assets/Mirror/Runtime/Transport/Telepathy/Telepathy/{ => Empty}/Message.cs (100%)
rename UnityProject/Assets/Mirror/Runtime/Transport/Telepathy/Telepathy/{ => Empty}/Message.cs.meta (75%)
rename UnityProject/Assets/Mirror/Runtime/Transport/Telepathy/Telepathy/{ => Empty}/SafeQueue.cs (100%)
rename UnityProject/Assets/Mirror/Runtime/Transport/Telepathy/Telepathy/{ => Empty}/SafeQueue.cs.meta (75%)
rename UnityProject/Assets/Mirror/Runtime/Transport/Telepathy/Telepathy/{ => Empty}/ThreadExtensions.cs (100%)
rename UnityProject/Assets/Mirror/Runtime/Transport/Telepathy/Telepathy/{ => Empty}/ThreadExtensions.cs.meta (75%)
delete mode 100644 UnityProject/Assets/Mirror/Version.txt
delete mode 100644 UnityProject/Assets/Mirror/Version.txt.meta
diff --git a/UnityProject/Assets/Mirror/Authenticators.meta b/UnityProject/Assets/Mirror/Authenticators.meta
index 644f4ec..ff0eac4 100644
--- a/UnityProject/Assets/Mirror/Authenticators.meta
+++ b/UnityProject/Assets/Mirror/Authenticators.meta
@@ -3,6 +3,6 @@ guid: 1b2f9d254154cd942ba40b06b869b8f3
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Authenticators/BasicAuthenticator.cs b/UnityProject/Assets/Mirror/Authenticators/BasicAuthenticator.cs
index 8892310..ef58fd1 100644
--- a/UnityProject/Assets/Mirror/Authenticators/BasicAuthenticator.cs
+++ b/UnityProject/Assets/Mirror/Authenticators/BasicAuthenticator.cs
@@ -13,6 +13,9 @@ namespace Mirror.Authenticators
public string username;
public string password;
+ // this is set if authentication fails to prevent garbage AuthRequestMessage spam
+ bool ServerAuthFailed;
+
#region Messages
public struct AuthRequestMessage : NetworkMessage
@@ -101,7 +104,13 @@ namespace Mirror.Authenticators
conn.isAuthenticated = false;
// disconnect the client after 1 second so that response message gets delivered
- StartCoroutine(DelayedDisconnect(conn, 1));
+ if (!ServerAuthFailed)
+ {
+ // set this false so this coroutine can only be started once
+ ServerAuthFailed = true;
+
+ StartCoroutine(DelayedDisconnect(conn, 1));
+ }
}
}
@@ -140,8 +149,7 @@ namespace Mirror.Authenticators
///
/// Called on client from OnClientAuthenticateInternal when a client needs to authenticate
///
- /// Connection of the client.
- public override void OnClientAuthenticate(NetworkConnection conn)
+ public override void OnClientAuthenticate()
{
AuthRequestMessage authRequestMessage = new AuthRequestMessage
{
@@ -149,13 +157,15 @@ namespace Mirror.Authenticators
authPassword = password
};
- conn.Send(authRequestMessage);
+ NetworkClient.connection.Send(authRequestMessage);
}
+ [Obsolete("Call OnAuthResponseMessage without the NetworkConnection parameter. It always points to NetworkClient.connection anyway.")]
+ public void OnAuthResponseMessage(NetworkConnection conn, AuthResponseMessage msg) => OnAuthResponseMessage(msg);
+
///
/// Called on client when the server's AuthResponseMessage arrives
///
- /// Connection to client.
/// The message payload
public void OnAuthResponseMessage(AuthResponseMessage msg)
{
@@ -164,20 +174,17 @@ namespace Mirror.Authenticators
// Debug.LogFormat(LogType.Log, "Authentication Response: {0}", msg.message);
// Authentication has been accepted
- ClientAccept(NetworkClient.connection);
+ ClientAccept();
}
else
{
Debug.LogError($"Authentication Response: {msg.message}");
// Authentication has been rejected
- ClientReject(NetworkClient.connection);
+ ClientReject();
}
}
- [Obsolete("Call OnAuthResponseMessage without the NetworkConnection parameter. It always points to NetworkClient.connection anyway.")]
- public void OnAuthResponseMessage(NetworkConnection conn, AuthResponseMessage msg) => OnAuthResponseMessage(msg);
-
#endregion
}
}
diff --git a/UnityProject/Assets/Mirror/Authenticators/BasicAuthenticator.cs.meta b/UnityProject/Assets/Mirror/Authenticators/BasicAuthenticator.cs.meta
index 4765013..74b9134 100644
--- a/UnityProject/Assets/Mirror/Authenticators/BasicAuthenticator.cs.meta
+++ b/UnityProject/Assets/Mirror/Authenticators/BasicAuthenticator.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Authenticators/Mirror.Authenticators.asmdef.meta b/UnityProject/Assets/Mirror/Authenticators/Mirror.Authenticators.asmdef.meta
index 2731701..0fa1014 100644
--- a/UnityProject/Assets/Mirror/Authenticators/Mirror.Authenticators.asmdef.meta
+++ b/UnityProject/Assets/Mirror/Authenticators/Mirror.Authenticators.asmdef.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: e720aa64e3f58fb4880566a322584340
AssemblyDefinitionImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Authenticators/TimeoutAuthenticator.cs b/UnityProject/Assets/Mirror/Authenticators/TimeoutAuthenticator.cs
index f127f92..28f989b 100644
--- a/UnityProject/Assets/Mirror/Authenticators/TimeoutAuthenticator.cs
+++ b/UnityProject/Assets/Mirror/Authenticators/TimeoutAuthenticator.cs
@@ -48,23 +48,21 @@ namespace Mirror.Authenticators
StartCoroutine(BeginAuthentication(conn));
}
- public override void OnClientAuthenticate(NetworkConnection conn)
+ public override void OnClientAuthenticate()
{
- authenticator.OnClientAuthenticate(conn);
+ authenticator.OnClientAuthenticate();
if (timeout > 0)
- StartCoroutine(BeginAuthentication(conn));
+ StartCoroutine(BeginAuthentication(NetworkClient.connection));
}
IEnumerator BeginAuthentication(NetworkConnection conn)
{
// Debug.Log($"Authentication countdown started {conn} {timeout}");
-
yield return new WaitForSecondsRealtime(timeout);
if (!conn.isAuthenticated)
{
// Debug.Log($"Authentication Timeout {conn}");
-
conn.Disconnect();
}
}
diff --git a/UnityProject/Assets/Mirror/Authenticators/TimeoutAuthenticator.cs.meta b/UnityProject/Assets/Mirror/Authenticators/TimeoutAuthenticator.cs.meta
index b19ddec..433d094 100644
--- a/UnityProject/Assets/Mirror/Authenticators/TimeoutAuthenticator.cs.meta
+++ b/UnityProject/Assets/Mirror/Authenticators/TimeoutAuthenticator.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Cloud/ApiConnector.cs b/UnityProject/Assets/Mirror/Cloud/ApiConnector.cs
deleted file mode 100644
index 2269d9c..0000000
--- a/UnityProject/Assets/Mirror/Cloud/ApiConnector.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using Mirror.Cloud.ListServerService;
-using UnityEngine;
-
-namespace Mirror.Cloud
-{
- ///
- /// Used to requests and responses from the mirror api
- ///
- public interface IApiConnector
- {
- ListServer ListServer { get; }
- }
-
- ///
- /// Used to requests and responses from the mirror api
- ///
- [DisallowMultipleComponent]
- [AddComponentMenu("Network/CloudServices/ApiConnector")]
- [HelpURL("https://mirror-networking.com/docs/api/Mirror.Cloud.ApiConnector.html")]
- public class ApiConnector : MonoBehaviour, IApiConnector, ICoroutineRunner
- {
- #region Inspector
- [Header("Settings")]
-
- [Tooltip("Base URL of api, including https")]
- [SerializeField] string ApiAddress = "";
-
- [Tooltip("Api key required to access api")]
- [SerializeField] string ApiKey = "";
-
- [Header("Events")]
-
- [Tooltip("Triggered when server list updates")]
- [SerializeField] ServerListEvent _onServerListUpdated = new ServerListEvent();
- #endregion
-
- IRequestCreator requestCreator;
-
- public ListServer ListServer { get; private set; }
-
- void Awake()
- {
- requestCreator = new RequestCreator(ApiAddress, ApiKey, this);
-
- InitListServer();
- }
-
- void InitListServer()
- {
- IListServerServerApi serverApi = new ListServerServerApi(this, requestCreator);
- IListServerClientApi clientApi = new ListServerClientApi(this, requestCreator, _onServerListUpdated);
- ListServer = new ListServer(serverApi, clientApi);
- }
-
- public void OnDestroy()
- {
- ListServer?.ServerApi.Shutdown();
- ListServer?.ClientApi.Shutdown();
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Core.meta b/UnityProject/Assets/Mirror/Cloud/Core.meta
deleted file mode 100644
index 8c00059..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 3f34c32971e65984c93a15376ec11c65
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/BaseApi.cs b/UnityProject/Assets/Mirror/Cloud/Core/BaseApi.cs
deleted file mode 100644
index 720f598..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core/BaseApi.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-
-namespace Mirror.Cloud
-{
- public interface IBaseApi
- {
- ///
- /// Cleans up any data created by the instance
- /// For Example: removing server from list
- ///
- void Shutdown();
- }
-
- public abstract class BaseApi
- {
- protected readonly ICoroutineRunner runner;
- protected readonly IRequestCreator requestCreator;
-
- protected BaseApi(ICoroutineRunner runner, IRequestCreator requestCreator)
- {
- this.runner = runner ?? throw new ArgumentNullException(nameof(runner));
- this.requestCreator = requestCreator ?? throw new ArgumentNullException(nameof(requestCreator));
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/Events.cs b/UnityProject/Assets/Mirror/Cloud/Core/Events.cs
deleted file mode 100644
index cf021f5..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core/Events.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using Mirror.Cloud.ListServerService;
-using UnityEngine.Events;
-
-namespace Mirror.Cloud
-{
- [Serializable]
- public class ServerListEvent : UnityEvent {}
-
- [Serializable]
- public class MatchFoundEvent : UnityEvent {}
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/Extensions.cs b/UnityProject/Assets/Mirror/Cloud/Core/Extensions.cs
deleted file mode 100644
index fa7dfa7..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core/Extensions.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using UnityEngine.Networking;
-
-namespace Mirror.Cloud
-{
- public static class Extensions
- {
- public static bool IsOk(this UnityWebRequest webRequest)
- {
- return 200 <= webRequest.responseCode && webRequest.responseCode <= 299;
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/ICoroutineRunner.cs b/UnityProject/Assets/Mirror/Cloud/Core/ICoroutineRunner.cs
deleted file mode 100644
index 7fe3bbf..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core/ICoroutineRunner.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-namespace Mirror.Cloud
-{
- public interface ICoroutineRunner : IUnityEqualCheck
- {
- Coroutine StartCoroutine(IEnumerator routine);
- void StopCoroutine(IEnumerator routine);
- void StopCoroutine(Coroutine routine);
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/IRequestCreator.cs b/UnityProject/Assets/Mirror/Cloud/Core/IRequestCreator.cs
deleted file mode 100644
index 0a190df..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core/IRequestCreator.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System.Collections;
-using UnityEngine.Networking;
-
-namespace Mirror.Cloud
-{
- public delegate void RequestSuccess(string responseBody);
-
- public delegate void RequestFail(string responseBody);
-
- ///
- /// Objects that can be sent to the Api must have this interface
- ///
- public interface ICanBeJson {}
-
- ///
- /// Methods to create and send UnityWebRequest
- ///
- public interface IRequestCreator
- {
- UnityWebRequest Delete(string page);
- UnityWebRequest Get(string page);
- UnityWebRequest Patch(string page, T json) where T : struct, ICanBeJson;
- UnityWebRequest Post(string page, T json) where T : struct, ICanBeJson;
-
- ///
- /// Sends Request to api and invokes callback when finished
- /// Starts Coroutine of SendRequestEnumerator
- ///
- ///
- ///
- ///
- void SendRequest(UnityWebRequest request, RequestSuccess onSuccess = null, RequestFail onFail = null);
- ///
- /// Sends Request to api and invokes callback when finished
- ///
- ///
- ///
- ///
- ///
- IEnumerator SendRequestEnumerator(UnityWebRequest request, RequestSuccess onSuccess = null, RequestFail onFail = null);
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/IUnityEqualCheck.cs b/UnityProject/Assets/Mirror/Cloud/Core/IUnityEqualCheck.cs
deleted file mode 100644
index be5e057..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core/IUnityEqualCheck.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-
-namespace Mirror.Cloud
-{
- ///
- /// Adds Extension to check if unity object is null.
- /// Use these methods to stop MissingReferenceException
- ///
- public interface IUnityEqualCheck
- {
-
- }
-
- public static class UnityEqualCheckExtension
- {
- public static bool IsNull(this IUnityEqualCheck obj)
- {
- return (obj as Object) == null;
- }
-
- public static bool IsNotNull(this IUnityEqualCheck obj)
- {
- return (obj as Object) != null;
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/JsonStructs.cs b/UnityProject/Assets/Mirror/Cloud/Core/JsonStructs.cs
deleted file mode 100644
index 7827abc..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core/JsonStructs.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-
-namespace Mirror.Cloud
-{
- [Serializable]
- public struct CreatedIdJson : ICanBeJson
- {
- public string id;
- }
-
- [Serializable]
- public struct ErrorJson : ICanBeJson
- {
- public string code;
- public string message;
-
- public int HtmlCode => int.Parse(code);
- }
-
- [Serializable]
- public struct EmptyJson : ICanBeJson
- {
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/Logger.cs b/UnityProject/Assets/Mirror/Cloud/Core/Logger.cs
deleted file mode 100644
index 09a17bc..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core/Logger.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using System;
-using UnityEngine;
-using UnityEngine.Networking;
-
-namespace Mirror.Cloud
-{
- public static class Logger
- {
- public static bool VerboseLogging = false;
-
- public static void LogRequest(string page, string method, bool hasJson, string json)
- {
- if (hasJson)
- {
- Debug.LogFormat("Request: {0} {1} {2}", method, page, json);
- }
- else
- {
- Debug.LogFormat("Request: {0} {1}", method, page);
- }
- }
-
- public static void LogResponse(UnityWebRequest statusRequest)
- {
- long code = statusRequest.responseCode;
-
- string format = "Response: {0} {1} {2} {3}";
- // we split path like this to make sure api key doesn't leak
- Uri uri = new Uri(statusRequest.url);
- string path = string.Join("", uri.Segments);
- string msg = string.Format(format, statusRequest.method, code, path, statusRequest.downloadHandler.text);
- Debug.Log(msg);
-
- if (!string.IsNullOrEmpty(statusRequest.error))
- {
- msg = string.Format("WEB REQUEST ERROR: {0}", statusRequest.error);
- Debug.LogError(msg);
- }
- }
-
- internal static void Log(string msg)
- {
- Debug.Log(msg);
- }
-
- internal static void LogWarning(string msg)
- {
- Debug.LogWarning(msg);
- }
-
- internal static void LogError(string msg)
- {
- Debug.LogError(msg);
- }
-
- internal static void Verbose(string msg)
- {
- if (VerboseLogging)
- Debug.Log(msg);
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/RequestCreator.cs b/UnityProject/Assets/Mirror/Cloud/Core/RequestCreator.cs
deleted file mode 100644
index 7195c0e..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Core/RequestCreator.cs
+++ /dev/null
@@ -1,144 +0,0 @@
-using System;
-using System.Collections;
-using System.Text;
-using UnityEngine;
-using UnityEngine.Networking;
-
-namespace Mirror.Cloud
-{
- ///
- /// Methods to create and send UnityWebRequest
- ///
- public class RequestCreator : IRequestCreator
- {
- const string GET = "GET";
- const string POST = "POST";
- const string PATCH = "PATCH";
- const string DELETE = "DELETE";
-
- public readonly string baseAddress;
- public readonly string apiKey;
- readonly ICoroutineRunner runner;
-
- public RequestCreator(string baseAddress, string apiKey, ICoroutineRunner coroutineRunner)
- {
- if (string.IsNullOrEmpty(baseAddress))
- {
- throw new ArgumentNullException(nameof(baseAddress));
- }
-
- if (string.IsNullOrEmpty(apiKey))
- {
- throw new ArgumentNullException(nameof(apiKey));
- }
-
- this.baseAddress = baseAddress;
- this.apiKey = apiKey;
-
- runner = coroutineRunner ?? throw new ArgumentNullException(nameof(coroutineRunner));
- }
-
-
- Uri CreateUri(string page)
- {
- return new Uri(string.Format("{0}/{1}?key={2}", baseAddress, page, apiKey));
- }
-
- UnityWebRequest CreateWebRequest(string page, string method, string json = null)
- {
- bool hasJson = !string.IsNullOrEmpty(json);
- Logger.LogRequest(page, method, hasJson, json);
-
- UnityWebRequest request = new UnityWebRequest(CreateUri(page));
- request.method = method;
- if (hasJson)
- {
- request.SetRequestHeader("Content-Type", "application/json");
- }
-
- request.downloadHandler = new DownloadHandlerBuffer();
-
- byte[] bodyRaw = hasJson
- ? Encoding.UTF8.GetBytes(json)
- : null;
-
- request.uploadHandler = new UploadHandlerRaw(bodyRaw);
-
- return request;
- }
-
-
-
- ///
- /// Create Get Request to page
- ///
- ///
- ///
- public UnityWebRequest Get(string page)
- {
- return CreateWebRequest(page, GET);
- }
-
- ///
- /// Creates Post Request to page with Json body
- ///
- ///
- ///
- ///
- ///
- public UnityWebRequest Post(string page, T json) where T : struct, ICanBeJson
- {
- string jsonString = JsonUtility.ToJson(json);
- return CreateWebRequest(page, POST, jsonString);
- }
-
- ///
- /// Creates Patch Request to page with Json body
- ///
- ///
- ///
- ///
- ///
- public UnityWebRequest Patch(string page, T json) where T : struct, ICanBeJson
- {
- string jsonString = JsonUtility.ToJson(json);
- return CreateWebRequest(page, PATCH, jsonString);
- }
-
- ///
- /// Create Delete Request to page
- ///
- ///
- ///
- public UnityWebRequest Delete(string page)
- {
- return CreateWebRequest(page, DELETE);
- }
-
-
- public void SendRequest(UnityWebRequest request, RequestSuccess onSuccess = null, RequestFail onFail = null)
- {
- runner.StartCoroutine(SendRequestEnumerator(request, onSuccess, onFail));
- }
-
- public IEnumerator SendRequestEnumerator(UnityWebRequest request, RequestSuccess onSuccess = null, RequestFail onFail = null)
- {
- using (UnityWebRequest webRequest = request)
- {
- yield return webRequest.SendWebRequest();
- Logger.LogResponse(webRequest);
-
- string text = webRequest.downloadHandler.text;
- Logger.Verbose(text);
- if (webRequest.IsOk())
- {
- onSuccess?.Invoke(text);
- }
- else
- {
- onFail?.Invoke(text);
- }
- }
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer.meta b/UnityProject/Assets/Mirror/Cloud/ListServer.meta
deleted file mode 100644
index bc85c3d..0000000
--- a/UnityProject/Assets/Mirror/Cloud/ListServer.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: c4c4be148a492b143a881cd08bf7e320
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServer.cs b/UnityProject/Assets/Mirror/Cloud/ListServer/ListServer.cs
deleted file mode 100644
index 8b4af80..0000000
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServer.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System;
-using UnityEngine.Events;
-
-namespace Mirror.Cloud.ListServerService
-{
- public sealed class ListServer
- {
- public readonly IListServerServerApi ServerApi;
- public readonly IListServerClientApi ClientApi;
-
- public ListServer(IListServerServerApi serverApi, IListServerClientApi clientApi)
- {
- ServerApi = serverApi ?? throw new ArgumentNullException(nameof(serverApi));
- ClientApi = clientApi ?? throw new ArgumentNullException(nameof(clientApi));
- }
- }
-
- public interface IListServerServerApi : IBaseApi
- {
- ///
- /// Has a server been added to the list with this connection
- ///
- bool ServerInList { get; }
- ///
- /// Add a server to the list
- ///
- ///
- void AddServer(ServerJson server);
- ///
- /// Update the current server
- ///
- ///
- void UpdateServer(int newPlayerCount);
- ///
- /// Update the current server
- ///
- ///
- void UpdateServer(ServerJson server);
- ///
- /// Removes the current server
- ///
- void RemoveServer();
- }
-
- public interface IListServerClientApi : IBaseApi
- {
- ///
- /// Called when the server list is updated
- ///
- event UnityAction onServerListUpdated;
-
- ///
- /// Get the server list once
- ///
- void GetServerList();
- ///
- /// Start getting the server list every interval
- ///
- ///
- void StartGetServerListRepeat(int interval);
- ///
- /// Stop getting the server list
- ///
- void StopGetServerListRepeat();
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerBaseApi.cs b/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerBaseApi.cs
deleted file mode 100644
index 05d2e2e..0000000
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerBaseApi.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace Mirror.Cloud.ListServerService
-{
- public abstract class ListServerBaseApi : BaseApi
- {
- protected ListServerBaseApi(ICoroutineRunner runner, IRequestCreator requestCreator) : base(runner, requestCreator)
- {
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerClientApi.cs b/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerClientApi.cs
deleted file mode 100644
index d5ffcef..0000000
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerClientApi.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-using System.Collections;
-using UnityEngine;
-using UnityEngine.Events;
-using UnityEngine.Networking;
-
-namespace Mirror.Cloud.ListServerService
-{
- public sealed class ListServerClientApi : ListServerBaseApi, IListServerClientApi
- {
- readonly ServerListEvent _onServerListUpdated;
-
- Coroutine getServerListRepeatCoroutine;
-
- public event UnityAction onServerListUpdated
- {
- add => _onServerListUpdated.AddListener(value);
- remove => _onServerListUpdated.RemoveListener(value);
- }
-
- public ListServerClientApi(ICoroutineRunner runner, IRequestCreator requestCreator, ServerListEvent onServerListUpdated) : base(runner, requestCreator)
- {
- _onServerListUpdated = onServerListUpdated;
- }
-
- public void Shutdown()
- {
- StopGetServerListRepeat();
- }
-
- public void GetServerList()
- {
- runner.StartCoroutine(getServerList());
- }
-
- public void StartGetServerListRepeat(int interval)
- {
- getServerListRepeatCoroutine = runner.StartCoroutine(GetServerListRepeat(interval));
- }
-
- public void StopGetServerListRepeat()
- {
- // if runner is null it has been destroyed and will already be null
- if (runner.IsNotNull() && getServerListRepeatCoroutine != null)
- {
- runner.StopCoroutine(getServerListRepeatCoroutine);
- }
- }
-
- IEnumerator GetServerListRepeat(int interval)
- {
- while (true)
- {
- yield return getServerList();
-
- yield return new WaitForSeconds(interval);
- }
- }
- IEnumerator getServerList()
- {
- UnityWebRequest request = requestCreator.Get("servers");
- yield return requestCreator.SendRequestEnumerator(request, onSuccess);
-
- void onSuccess(string responseBody)
- {
- ServerCollectionJson serverlist = JsonUtility.FromJson(responseBody);
- _onServerListUpdated?.Invoke(serverlist);
- }
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerJson.cs b/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerJson.cs
deleted file mode 100644
index 2591331..0000000
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerJson.cs
+++ /dev/null
@@ -1,207 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-namespace Mirror.Cloud.ListServerService
-{
- [Serializable]
- public struct ServerCollectionJson : ICanBeJson
- {
- public ServerJson[] servers;
- }
-
- [Serializable]
- public struct ServerJson : ICanBeJson
- {
- public string protocol;
- public int port;
- public int playerCount;
- public int maxPlayerCount;
-
- ///
- /// optional
- ///
- public string displayName;
-
- ///
- /// Uri string of the ip and port of the server.
- /// The ip is calculated by the request to the API
- /// This is returns from the api, any incoming address fields will be ignored
- ///
- public string address;
-
- ///
- /// Can be used to set custom uri
- /// optional
- ///
- public string customAddress;
-
- ///
- /// Array of custom data, use SetCustomData to set values
- /// optional
- ///
- public KeyValue[] customData;
-
- ///
- /// Uri from address field
- ///
- ///
- public Uri GetServerUri() => new Uri(address);
-
- ///
- /// Uri from customAddress field
- ///
- ///
- public Uri GetCustomUri() => new Uri(customAddress);
-
- ///
- /// Updates the customData array
- ///
- ///
- public void SetCustomData(Dictionary data)
- {
- if (data == null)
- {
- customData = null;
- }
- else
- {
- customData = data.ToKeyValueArray();
- CustomDataHelper.ValidateCustomData(customData);
- }
- }
-
- public bool Validate()
- {
- CustomDataHelper.ValidateCustomData(customData);
-
- if (string.IsNullOrEmpty(protocol))
- {
- Logger.LogError("ServerJson should not have empty protocol");
- return false;
- }
-
- if (port == 0)
- {
- Logger.LogError("ServerJson should not have port equal 0");
- return false;
- }
-
- if (maxPlayerCount == 0)
- {
- Logger.LogError("ServerJson should not have maxPlayerCount equal 0");
- return false;
- }
-
- return true;
- }
- }
-
- [Serializable]
- public struct PartialServerJson : ICanBeJson
- {
- ///
- /// optional
- ///
- public int playerCount;
-
- ///
- /// optional
- ///
- public int maxPlayerCount;
-
- ///
- /// optional
- ///
- public string displayName;
-
- ///
- /// Array of custom data, use SetCustomData to set values
- /// optional
- ///
- public KeyValue[] customData;
-
-
- public void SetCustomData(Dictionary data)
- {
- if (data == null)
- {
- customData = null;
- }
- else
- {
- customData = data.ToKeyValueArray();
- CustomDataHelper.ValidateCustomData(customData);
- }
- }
-
- public void Validate()
- {
- CustomDataHelper.ValidateCustomData(customData);
- }
- }
-
- public static class CustomDataHelper
- {
- const int MaxCustomData = 16;
-
- public static Dictionary ToDictionary(this KeyValue[] keyValues)
- {
- return keyValues.ToDictionary(x => x.key, x => x.value);
- }
- public static KeyValue[] ToKeyValueArray(this Dictionary dictionary)
- {
- return dictionary.Select(kvp => new KeyValue(kvp.Key, kvp.Value)).ToArray();
- }
-
- public static void ValidateCustomData(KeyValue[] customData)
- {
- if (customData == null)
- {
- return;
- }
-
- if (customData.Length > MaxCustomData)
- {
- Logger.LogError($"There can only be {MaxCustomData} custom data but there was {customData.Length} values given");
- Array.Resize(ref customData, MaxCustomData);
- }
-
- foreach (KeyValue item in customData)
- {
- item.Validate();
- }
- }
- }
-
- [Serializable]
- public struct KeyValue
- {
- const int MaxKeySize = 32;
- const int MaxValueSize = 256;
-
- public string key;
- public string value;
-
- public KeyValue(string key, string value)
- {
- this.key = key;
- this.value = value;
- }
-
- public void Validate()
- {
- if (key.Length > MaxKeySize)
- {
- Logger.LogError($"Custom Data must have key with length less than {MaxKeySize}");
- key = key.Substring(0, MaxKeySize);
- }
-
- if (value.Length > MaxValueSize)
- {
- Logger.LogError($"Custom Data must have value with length less than {MaxValueSize}");
- value = value.Substring(0, MaxValueSize);
- }
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerServerApi.cs b/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerServerApi.cs
deleted file mode 100644
index 106004a..0000000
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerServerApi.cs
+++ /dev/null
@@ -1,219 +0,0 @@
-using System.Collections;
-using UnityEngine;
-using UnityEngine.Networking;
-
-namespace Mirror.Cloud.ListServerService
-{
- public sealed class ListServerServerApi : ListServerBaseApi, IListServerServerApi
- {
- const int PingInterval = 20;
- const int MaxPingFails = 15;
-
- ServerJson currentServer;
- string serverId;
-
- Coroutine _pingCoroutine;
- ///
- /// If the server has already been added
- ///
- bool added;
- ///
- /// if a request is currently sending
- ///
- bool sending;
- ///
- /// If an update request was recently sent
- ///
- bool skipNextPing;
- ///
- /// How many failed pings in a row
- ///
- int pingFails = 0;
-
- public bool ServerInList => added;
-
- public ListServerServerApi(ICoroutineRunner runner, IRequestCreator requestCreator) : base(runner, requestCreator)
- {
- }
-
- public void Shutdown()
- {
- stopPingCoroutine();
- if (added)
- {
- removeServerWithoutCoroutine();
- }
- added = false;
- }
-
- public void AddServer(ServerJson server)
- {
- if (added) { Logger.LogWarning("AddServer called when server was already adding or added"); return; }
- bool valid = server.Validate();
- if (!valid) { return; }
-
- runner.StartCoroutine(addServer(server));
- }
-
- public void UpdateServer(int newPlayerCount)
- {
- if (!added) { Logger.LogWarning("UpdateServer called when before server was added"); return; }
-
- currentServer.playerCount = newPlayerCount;
- UpdateServer(currentServer);
- }
-
- public void UpdateServer(ServerJson server)
- {
- // TODO, use PartialServerJson as Arg Instead
- if (!added) { Logger.LogWarning("UpdateServer called when before server was added"); return; }
-
- PartialServerJson partialServer = new PartialServerJson
- {
- displayName = server.displayName,
- playerCount = server.playerCount,
- maxPlayerCount = server.maxPlayerCount,
- customData = server.customData,
- };
- partialServer.Validate();
-
- runner.StartCoroutine(updateServer(partialServer));
- }
-
- public void RemoveServer()
- {
- if (!added) { return; }
-
- if (string.IsNullOrEmpty(serverId))
- {
- Logger.LogWarning("Can not remove server because serverId was empty");
- return;
- }
-
- stopPingCoroutine();
- runner.StartCoroutine(removeServer());
- }
-
- void stopPingCoroutine()
- {
- if (_pingCoroutine != null)
- {
- runner.StopCoroutine(_pingCoroutine);
- _pingCoroutine = null;
- }
- }
-
- IEnumerator addServer(ServerJson server)
- {
- added = true;
- sending = true;
- currentServer = server;
-
- UnityWebRequest request = requestCreator.Post("servers", currentServer);
- yield return requestCreator.SendRequestEnumerator(request, onSuccess, onFail);
- sending = false;
-
- void onSuccess(string responseBody)
- {
- CreatedIdJson created = JsonUtility.FromJson(responseBody);
- serverId = created.id;
-
- // Start ping to keep server alive
- _pingCoroutine = runner.StartCoroutine(ping());
- }
- void onFail(string responseBody)
- {
- added = false;
- }
- }
-
- IEnumerator updateServer(PartialServerJson server)
- {
- // wait to not be sending
- while (sending)
- {
- yield return new WaitForSeconds(1);
- }
-
- // We need to check added in case Update is called soon after Add, and add failed
- if (!added) { Logger.LogWarning("UpdateServer called when before server was added"); yield break; }
-
- sending = true;
- UnityWebRequest request = requestCreator.Patch("servers/" + serverId, server);
- yield return requestCreator.SendRequestEnumerator(request, onSuccess);
- sending = false;
-
- void onSuccess(string responseBody)
- {
- skipNextPing = true;
-
- if (_pingCoroutine == null)
- {
- _pingCoroutine = runner.StartCoroutine(ping());
- }
- }
- }
-
- ///
- /// Keeps server alive in database
- ///
- ///
- IEnumerator ping()
- {
- while (pingFails <= MaxPingFails)
- {
- yield return new WaitForSeconds(PingInterval);
- if (skipNextPing)
- {
- skipNextPing = false;
- continue;
- }
-
- sending = true;
- UnityWebRequest request = requestCreator.Patch("servers/" + serverId, new EmptyJson());
- yield return requestCreator.SendRequestEnumerator(request, onSuccess, onFail);
- sending = false;
- }
-
- Logger.LogWarning("Max ping fails reached, stopping to ping server");
- _pingCoroutine = null;
-
-
- void onSuccess(string responseBody)
- {
- pingFails = 0;
- }
- void onFail(string responseBody)
- {
- pingFails++;
- }
- }
-
- IEnumerator removeServer()
- {
- sending = true;
- UnityWebRequest request = requestCreator.Delete("servers/" + serverId);
- yield return requestCreator.SendRequestEnumerator(request);
- sending = false;
-
- added = false;
- }
-
- void removeServerWithoutCoroutine()
- {
- if (string.IsNullOrEmpty(serverId))
- {
- Logger.LogWarning("Can not remove server because serverId was empty");
- return;
- }
-
- UnityWebRequest request = requestCreator.Delete("servers/" + serverId);
- UnityWebRequestAsyncOperation operation = request.SendWebRequest();
-
- operation.completed += (op) =>
- {
- Logger.LogResponse(request);
- };
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Cloud/Mirror.Cloud.asmdef.meta b/UnityProject/Assets/Mirror/Cloud/Mirror.Cloud.asmdef.meta
deleted file mode 100644
index bd17c2b..0000000
--- a/UnityProject/Assets/Mirror/Cloud/Mirror.Cloud.asmdef.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: c21ba7b8c3183cb47b7fe3b3799d49c4
-AssemblyDefinitionImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Cloud/README.md b/UnityProject/Assets/Mirror/Cloud/README.md
deleted file mode 100644
index 9b32497..0000000
--- a/UnityProject/Assets/Mirror/Cloud/README.md
+++ /dev/null
@@ -1,152 +0,0 @@
-# Mirror Cloud Services
-
-## Mirror List Server
-
-Example has an API key which can be used as a demo.
-
-To get an API key to use within your game you can subscribe on the [Mirror Networking Website](https://mirror-networking.com/list-server/)
-
-### Key features
-
-- The Cloud Service works via https so it is secure and can be used from any platform.
-- It runs on Google Cloud so there is no worry about server downtime.
-- It scales really well. Default quota is 1000 API requests per minute. If you have high demands, contact us and we can increase that limit.
-
-## List Server Examples
-
-An example for this can be found in [Mirror/Examples/Cloud/](https://github.com/vis2k/Mirror/tree/master/Assets/Mirror/Examples/Cloud)
-
-*Note: you cannot connect to your own public IP address, you will need at least one other person to test this*
-
-## How to use
-
-Add `ApiConnector` component to an object in your game. It is probably best to put this on the same object as your NetworkManager. Once it has been added set the `ApiAddress` and `ApiKey` fields.
-
-To use `ApiConnector` either directly reference it in an inspector field or get it when your script awakes
-```cs
-ApiConnector connector;
-
-void Awake()
-{
- connector = FindObjectOfType();
-}
-```
-
-
-The Api calls are grouped into objects. `connector.ListServer.ServerApi` has the Server Api calls like `AddServer`. `connector.ListServer.ClientApi` has the Client Api calls like `GetServerList`.
-
-### Server Api Example
-
-Example of how to add server
-```cs
-void AddServer(int playerCount)
-{
- Transport transport = Transport.activeTransport;
-
- Uri uri = transport.ServerUri();
- int port = uri.Port;
- string protocol = uri.Scheme;
-
- connector.ListServer.ServerApi.AddServer(new ServerJson
- {
- displayName = "Fun game!!!",
- protocol = protocol,
- port = port,
- maxPlayerCount = NetworkManager.singleton.maxConnections,
- playerCount = playerCount
- });
-}
-```
-
-### Client Api Example
-Example of how to list servers
-
-```cs
-ApiConnector connector;
-
-void Awake()
-{
- connector = FindObjectOfType();
- // add listener to event that will update UI when Server list is refreshed
- connector.ListServer.ClientApi.onServerListUpdated += onServerListUpdated;
-
- // add listen to button so that player can refresh server list
- refreshButton.onClick.AddListener(RefreshButtonHandler);
-}
-
-public void RefreshButtonHandler()
-{
- connector.ListServer.ClientApi.GetServerList();
-}
-
-void onServerListUpdated()
-{
- // Update UI here
-}
-```
-
-
-## Debug
-
-If something doesn't seem to be working then here are some tips to help solve the problem
-
-### Check logs
-
-Enable `showDebugMessages` on your NetworkManager or use the log level window to enable logging for the cloud scripts
-
-Below are some example logs to look for to check things are working.
-
-#### Add Server
-
-The add request is sent to add a server to the list server
-
-```
-Request: POST servers {"protocol":"tcp4","port":7777,"playerCount":0,"maxPlayerCount":4,"displayName":"Tanks Game 521","address":"","customAddress":"","customData":[]}
-```
-```
-Response: POST 200 /servers {"id":"BI6bQQ2TbNiqhdp1D7UB"}
-```
-
-#### Update Server
-
-The object sent in update request maybe be empty, this is sent to keep the server record alive so it shows up.
-
-The update request can also be used to change info. For example the player count when someone joins or leaves
-
-```
-Request: PATCH servers/BI6bQQ2TbNiqhdp1D7UB {}
-```
-```
-Response: PATCH 204 /servers/BI6bQQ2TbNiqhdp1D7UB
-```
-
-#### Remove Server
-
-The remove request is sent to remove a server from the list server. This is automatically called when the ApiConnection is destroyed.
-
-```
-Request: DELETE servers/BI6bQQ2TbNiqhdp1D7UB
-```
-```
-Response: DELETE 204 /servers/BI6bQQ2TbNiqhdp1D7UB
-```
-
-
-#### Get Servers
-
-The get request is sent in order to get the list of servers.
-
-The example below shows an array of 2 servers, one with name `Tanks Game 521` and the other with name `Tanks Game 212`
-
-```
-Request: GET servers
-```
-```
-Response: GET 200 /servers {"servers":[{"address":"tcp4://xx.xx.xx.xx:7777","displayName":"Tanks Game 521","port":7777,"protocol":"tcp4","playerCount":0,"maxPlayerCount":4,"customAddress":"","customData":[]},{"address":"tcp4://xx.xx.xx.xx:7777","displayName":"Tanks Game 212","port":7777,"protocol":"tcp4","playerCount":0,"maxPlayerCount":4,"customData":[]}]}
-```
-*xx.xx.xx.xx will be the IP address for the server*
-
-
-### Use the QuickListServerDebug
-
-The QuickListServerDebug script uses `OnGUI` to show the list of servers. This script can be used to check the server list without using Canvas UI.
diff --git a/UnityProject/Assets/Mirror/Cloud/README.md.meta b/UnityProject/Assets/Mirror/Cloud/README.md.meta
deleted file mode 100644
index d669f54..0000000
--- a/UnityProject/Assets/Mirror/Cloud/README.md.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 04945d14ccbed964597a1ee00805c059
-TextScriptImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Cloud/version.txt b/UnityProject/Assets/Mirror/Cloud/version.txt
deleted file mode 100644
index 7b0bc8d..0000000
--- a/UnityProject/Assets/Mirror/Cloud/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-MirrorCloudServices v0.1.0
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Cloud/version.txt.meta b/UnityProject/Assets/Mirror/Cloud/version.txt.meta
deleted file mode 100644
index 1e13fd5..0000000
--- a/UnityProject/Assets/Mirror/Cloud/version.txt.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: bf81e376b88e68e48a47531b8bfeb0f4
-TextScriptImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/CompilerSymbols.meta b/UnityProject/Assets/Mirror/CompilerSymbols.meta
index 4652ae1..8d0dedc 100644
--- a/UnityProject/Assets/Mirror/CompilerSymbols.meta
+++ b/UnityProject/Assets/Mirror/CompilerSymbols.meta
@@ -3,6 +3,6 @@ guid: 1f8b918bcd89f5c488b06f5574f34760
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/CompilerSymbols/Mirror.CompilerSymbols.asmdef.meta b/UnityProject/Assets/Mirror/CompilerSymbols/Mirror.CompilerSymbols.asmdef.meta
index 8b23823..98ac7a0 100644
--- a/UnityProject/Assets/Mirror/CompilerSymbols/Mirror.CompilerSymbols.asmdef.meta
+++ b/UnityProject/Assets/Mirror/CompilerSymbols/Mirror.CompilerSymbols.asmdef.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 325984b52e4128546bc7558552f8b1d2
AssemblyDefinitionImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/CompilerSymbols/PreprocessorDefine.cs b/UnityProject/Assets/Mirror/CompilerSymbols/PreprocessorDefine.cs
index a993453..e81d542 100644
--- a/UnityProject/Assets/Mirror/CompilerSymbols/PreprocessorDefine.cs
+++ b/UnityProject/Assets/Mirror/CompilerSymbols/PreprocessorDefine.cs
@@ -27,7 +27,11 @@ namespace Mirror
"MIRROR_32_1_2_OR_NEWER",
"MIRROR_32_1_4_OR_NEWER",
"MIRROR_35_0_OR_NEWER",
- "MIRROR_35_1_OR_NEWER"
+ "MIRROR_35_1_OR_NEWER",
+ "MIRROR_37_0_OR_NEWER",
+ "MIRROR_38_0_OR_NEWER",
+ "MIRROR_39_0_OR_NEWER",
+ "MIRROR_40_0_OR_NEWER"
};
// only touch PlayerSettings if we actually modified it.
diff --git a/UnityProject/Assets/Mirror/CompilerSymbols/PreprocessorDefine.cs.meta b/UnityProject/Assets/Mirror/CompilerSymbols/PreprocessorDefine.cs.meta
index 30806d0..248f00b 100644
--- a/UnityProject/Assets/Mirror/CompilerSymbols/PreprocessorDefine.cs.meta
+++ b/UnityProject/Assets/Mirror/CompilerSymbols/PreprocessorDefine.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components.meta b/UnityProject/Assets/Mirror/Components.meta
index c2771d9..a257fe6 100644
--- a/UnityProject/Assets/Mirror/Components.meta
+++ b/UnityProject/Assets/Mirror/Components.meta
@@ -3,6 +3,6 @@ guid: 9bee879fbc8ef4b1a9a9f7088bfbf726
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/AssemblyInfo.cs.meta b/UnityProject/Assets/Mirror/Components/AssemblyInfo.cs.meta
index f9af1fa..d50ab80 100644
--- a/UnityProject/Assets/Mirror/Components/AssemblyInfo.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/AssemblyInfo.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Discovery.meta b/UnityProject/Assets/Mirror/Components/Discovery.meta
index d5bb0cb..28e0327 100644
--- a/UnityProject/Assets/Mirror/Components/Discovery.meta
+++ b/UnityProject/Assets/Mirror/Components/Discovery.meta
@@ -3,6 +3,6 @@ guid: b5dcf9618f5e14a4eb60bff5480284a6
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscovery.cs.meta b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscovery.cs.meta
index c691a61..f6c8bcd 100644
--- a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscovery.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscovery.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryBase.cs b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryBase.cs
index 7520398..f83ebd2 100644
--- a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryBase.cs
+++ b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryBase.cs
@@ -16,7 +16,7 @@ namespace Mirror.Discovery
/// NetworkDiscovery for a sample implementation
///
[DisallowMultipleComponent]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkDiscovery.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-discovery")]
public abstract class NetworkDiscoveryBase : MonoBehaviour
where Request : NetworkMessage
where Response : NetworkMessage
@@ -30,11 +30,11 @@ namespace Mirror.Discovery
[SerializeField]
[Tooltip("The UDP port the server will listen for multi-cast messages")]
protected int serverBroadcastListenPort = 47777;
-
+
[SerializeField]
[Tooltip("If true, broadcasts a discovery request every ActiveDiscoveryInterval seconds")]
public bool enableActiveDiscovery = true;
-
+
[SerializeField]
[Tooltip("Time in seconds between multi-cast messages")]
[Range(1, 60)]
@@ -75,6 +75,19 @@ namespace Mirror.Discovery
// Ensure the ports are cleared no matter when Game/Unity UI exits
void OnApplicationQuit()
{
+ //Debug.Log("NetworkDiscoveryBase OnApplicationQuit");
+ Shutdown();
+ }
+
+ void OnDisable()
+ {
+ //Debug.Log("NetworkDiscoveryBase OnDisable");
+ Shutdown();
+ }
+
+ void OnDestroy()
+ {
+ //Debug.Log("NetworkDiscoveryBase OnDestroy");
Shutdown();
}
@@ -162,7 +175,7 @@ namespace Mirror.Discovery
using (PooledNetworkReader networkReader = NetworkReaderPool.GetReader(udpReceiveResult.Buffer))
{
- long handshake = networkReader.ReadInt64();
+ long handshake = networkReader.ReadLong();
if (handshake != secretHandshake)
{
// message is not for us
@@ -195,7 +208,7 @@ namespace Mirror.Discovery
{
try
{
- writer.WriteInt64(secretHandshake);
+ writer.WriteLong(secretHandshake);
writer.Write(info);
@@ -249,6 +262,7 @@ namespace Mirror.Discovery
catch (Exception)
{
// Free the port if we took it
+ //Debug.LogError("NetworkDiscoveryBase StartDiscovery Exception");
Shutdown();
throw;
}
@@ -263,6 +277,7 @@ namespace Mirror.Discovery
///
public void StopDiscovery()
{
+ //Debug.Log("NetworkDiscoveryBase StopDiscovery");
Shutdown();
}
@@ -298,11 +313,17 @@ namespace Mirror.Discovery
if (clientUdpClient == null)
return;
+ if (NetworkClient.isConnected)
+ {
+ StopDiscovery();
+ return;
+ }
+
IPEndPoint endPoint = new IPEndPoint(IPAddress.Broadcast, serverBroadcastListenPort);
using (PooledNetworkWriter writer = NetworkWriterPool.GetWriter())
{
- writer.WriteInt64(secretHandshake);
+ writer.WriteLong(secretHandshake);
try
{
@@ -339,7 +360,7 @@ namespace Mirror.Discovery
using (PooledNetworkReader networkReader = NetworkReaderPool.GetReader(udpReceiveResult.Buffer))
{
- if (networkReader.ReadInt64() != secretHandshake)
+ if (networkReader.ReadLong() != secretHandshake)
return;
Response response = networkReader.Read();
diff --git a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryBase.cs.meta b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryBase.cs.meta
index 7dfbaf6..e51d40a 100644
--- a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryBase.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryBase.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs
index 5476971..2f40d01 100644
--- a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs
+++ b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs
@@ -5,7 +5,7 @@ namespace Mirror.Discovery
{
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkDiscoveryHUD")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkDiscovery.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-discovery")]
[RequireComponent(typeof(NetworkDiscovery))]
public class NetworkDiscoveryHUD : MonoBehaviour
{
@@ -31,15 +31,16 @@ namespace Mirror.Discovery
if (NetworkManager.singleton == null)
return;
- if (NetworkServer.active || NetworkClient.active)
- return;
-
if (!NetworkClient.isConnected && !NetworkServer.active && !NetworkClient.active)
DrawGUI();
+
+ if (NetworkServer.active || NetworkClient.active)
+ StopButtons();
}
void DrawGUI()
{
+ GUILayout.BeginArea(new Rect(10, 10, 300, 500));
GUILayout.BeginHorizontal();
if (GUILayout.Button("Find Servers"))
@@ -79,6 +80,39 @@ namespace Mirror.Discovery
Connect(info);
GUILayout.EndScrollView();
+ GUILayout.EndArea();
+ }
+
+ void StopButtons()
+ {
+ GUILayout.BeginArea(new Rect(10, 40, 100, 25));
+
+ // stop host if host mode
+ if (NetworkServer.active && NetworkClient.isConnected)
+ {
+ if (GUILayout.Button("Stop Host"))
+ {
+ NetworkManager.singleton.StopHost();
+ }
+ }
+ // stop client if client-only
+ else if (NetworkClient.isConnected)
+ {
+ if (GUILayout.Button("Stop Client"))
+ {
+ NetworkManager.singleton.StopClient();
+ }
+ }
+ // stop server if server-only
+ else if (NetworkServer.active)
+ {
+ if (GUILayout.Button("Stop Server"))
+ {
+ NetworkManager.singleton.StopServer();
+ }
+ }
+
+ GUILayout.EndArea();
}
void Connect(ServerResponse info)
diff --git a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs.meta b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs.meta
index f93b275..375a0d8 100644
--- a/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Discovery/ServerRequest.cs.meta b/UnityProject/Assets/Mirror/Components/Discovery/ServerRequest.cs.meta
index 84f3232..0bbe3ef 100644
--- a/UnityProject/Assets/Mirror/Components/Discovery/ServerRequest.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Discovery/ServerRequest.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Discovery/ServerResponse.cs.meta b/UnityProject/Assets/Mirror/Components/Discovery/ServerResponse.cs.meta
index 44f23ba..09532c4 100644
--- a/UnityProject/Assets/Mirror/Components/Discovery/ServerResponse.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Discovery/ServerResponse.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Experimental.meta b/UnityProject/Assets/Mirror/Components/Experimental.meta
index 57cce38..ebf1efd 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental.meta
+++ b/UnityProject/Assets/Mirror/Components/Experimental.meta
@@ -3,6 +3,6 @@ guid: bfbf2a1f2b300c5489dcab219ef2846e
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkLerpRigidbody.cs b/UnityProject/Assets/Mirror/Components/Experimental/NetworkLerpRigidbody.cs
index e10b9cf..41a4d6a 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkLerpRigidbody.cs
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkLerpRigidbody.cs
@@ -3,7 +3,7 @@ using UnityEngine;
namespace Mirror.Experimental
{
[AddComponentMenu("Network/Experimental/NetworkLerpRigidbody")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkLerpRigidbody.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-lerp-rigidbody")]
public class NetworkLerpRigidbody : NetworkBehaviour
{
[Header("Settings")]
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkLerpRigidbody.cs.meta b/UnityProject/Assets/Mirror/Components/Experimental/NetworkLerpRigidbody.cs.meta
index 35ef1fe..1c006ab 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkLerpRigidbody.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkLerpRigidbody.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody.cs b/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody.cs
index d64547b..b39b0ff 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody.cs
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody.cs
@@ -3,7 +3,7 @@ using UnityEngine;
namespace Mirror.Experimental
{
[AddComponentMenu("Network/Experimental/NetworkRigidbody")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkRigidbody.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-rigidbody")]
public class NetworkRigidbody : NetworkBehaviour
{
[Header("Settings")]
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody.cs.meta b/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody.cs.meta
index 1610f0a..9a05405 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody2D.cs.meta b/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody2D.cs.meta
index df466bd..f092db7 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody2D.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkRigidbody2D.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransform.cs b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransform.cs
index 58f3738..495518e 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransform.cs
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransform.cs
@@ -4,7 +4,7 @@ namespace Mirror.Experimental
{
[DisallowMultipleComponent]
[AddComponentMenu("Network/Experimental/NetworkTransformExperimental")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkTransform.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-transform")]
public class NetworkTransform : NetworkTransformBase
{
protected override Transform targetTransform => transform;
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransform.cs.meta b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransform.cs.meta
index 2bc16dd..412dcbf 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransform.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransform.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformBase.cs.meta b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformBase.cs.meta
index d737bed..adf3755 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformBase.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformBase.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformChild.cs b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformChild.cs
index 5065121..44c49bd 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformChild.cs
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformChild.cs
@@ -7,7 +7,7 @@ namespace Mirror.Experimental
/// There must be a NetworkTransform on the root object of the hierarchy. There can be multiple NetworkTransformChild components on an object. This does not use physics for synchronization, it simply synchronizes the localPosition and localRotation of the child transform and lerps towards the received values.
///
[AddComponentMenu("Network/Experimental/NetworkTransformChildExperimentalExperimental")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkTransformChild.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-transform-child")]
public class NetworkTransformChild : NetworkTransformBase
{
[Header("Target")]
diff --git a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformChild.cs.meta b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformChild.cs.meta
index 30f0d89..2ed4212 100644
--- a/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformChild.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/Experimental/NetworkTransformChild.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/GUIConsole.cs.meta b/UnityProject/Assets/Mirror/Components/GUIConsole.cs.meta
index 5664216..933dd05 100644
--- a/UnityProject/Assets/Mirror/Components/GUIConsole.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/GUIConsole.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/InterestManagement.meta b/UnityProject/Assets/Mirror/Components/InterestManagement.meta
index 9b1f746..1b7a972 100644
--- a/UnityProject/Assets/Mirror/Components/InterestManagement.meta
+++ b/UnityProject/Assets/Mirror/Components/InterestManagement.meta
@@ -3,6 +3,6 @@ guid: c66f27e006ab94253b39a55a3b213651
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/InterestManagement/Distance.meta b/UnityProject/Assets/Mirror/Components/InterestManagement/Distance.meta
index 9847902..832357e 100644
--- a/UnityProject/Assets/Mirror/Components/InterestManagement/Distance.meta
+++ b/UnityProject/Assets/Mirror/Components/InterestManagement/Distance.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: fa4cbc6b9c584db4971985cb9f369077
-timeCreated: 1613110605
\ No newline at end of file
+timeCreated: 1613110605
diff --git a/UnityProject/Assets/Mirror/Components/InterestManagement/Distance/DistanceInterestManagement.cs.meta b/UnityProject/Assets/Mirror/Components/InterestManagement/Distance/DistanceInterestManagement.cs.meta
index 1a575af..6adbd65 100644
--- a/UnityProject/Assets/Mirror/Components/InterestManagement/Distance/DistanceInterestManagement.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/InterestManagement/Distance/DistanceInterestManagement.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing.meta b/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing.meta
index 00f5cd6..6a35e1e 100644
--- a/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing.meta
+++ b/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: cfa12b73503344d49b398b01bcb07967
-timeCreated: 1613110634
\ No newline at end of file
+timeCreated: 1613110634
diff --git a/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing/Grid2D.cs.meta b/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing/Grid2D.cs.meta
index f1d3cf0..4448994 100644
--- a/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing/Grid2D.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing/Grid2D.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing/SpatialHashingInterestManagement.cs.meta b/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing/SpatialHashingInterestManagement.cs.meta
index 271e433..5f5007e 100644
--- a/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing/SpatialHashingInterestManagement.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/InterestManagement/SpatialHashing/SpatialHashingInterestManagement.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/Mirror.Components.asmdef.meta b/UnityProject/Assets/Mirror/Components/Mirror.Components.asmdef.meta
index 263b6f0..59c31c8 100644
--- a/UnityProject/Assets/Mirror/Components/Mirror.Components.asmdef.meta
+++ b/UnityProject/Assets/Mirror/Components/Mirror.Components.asmdef.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 72872094b21c16e48b631b2224833d49
AssemblyDefinitionImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkAnimator.cs b/UnityProject/Assets/Mirror/Components/NetworkAnimator.cs
index 964d3dc..a1d3be5 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkAnimator.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkAnimator.cs
@@ -15,7 +15,7 @@ namespace Mirror
///
[AddComponentMenu("Network/NetworkAnimator")]
[RequireComponent(typeof(NetworkIdentity))]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkAnimator.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-animator")]
public class NetworkAnimator : NetworkBehaviour
{
[Header("Authority")]
@@ -311,7 +311,7 @@ namespace Mirror
bool WriteParameters(NetworkWriter writer, bool forceAll = false)
{
ulong dirtyBits = forceAll ? (~0ul) : NextDirtyBits();
- writer.WriteUInt64(dirtyBits);
+ writer.WriteULong(dirtyBits);
for (int i = 0; i < parameters.Length; i++)
{
if ((dirtyBits & (1ul << i)) == 0)
@@ -321,17 +321,17 @@ namespace Mirror
if (par.type == AnimatorControllerParameterType.Int)
{
int newIntValue = animator.GetInteger(par.nameHash);
- writer.WriteInt32(newIntValue);
+ writer.WriteInt(newIntValue);
}
else if (par.type == AnimatorControllerParameterType.Float)
{
float newFloatValue = animator.GetFloat(par.nameHash);
- writer.WriteSingle(newFloatValue);
+ writer.WriteFloat(newFloatValue);
}
else if (par.type == AnimatorControllerParameterType.Bool)
{
bool newBoolValue = animator.GetBool(par.nameHash);
- writer.WriteBoolean(newBoolValue);
+ writer.WriteBool(newBoolValue);
}
}
return dirtyBits != 0;
@@ -342,7 +342,7 @@ namespace Mirror
bool animatorEnabled = animator.enabled;
// need to read values from NetworkReader even if animator is disabled
- ulong dirtyBits = reader.ReadUInt64();
+ ulong dirtyBits = reader.ReadULong();
for (int i = 0; i < parameters.Length; i++)
{
if ((dirtyBits & (1ul << i)) == 0)
@@ -351,19 +351,19 @@ namespace Mirror
AnimatorControllerParameter par = parameters[i];
if (par.type == AnimatorControllerParameterType.Int)
{
- int newIntValue = reader.ReadInt32();
+ int newIntValue = reader.ReadInt();
if (animatorEnabled)
animator.SetInteger(par.nameHash, newIntValue);
}
else if (par.type == AnimatorControllerParameterType.Float)
{
- float newFloatValue = reader.ReadSingle();
+ float newFloatValue = reader.ReadFloat();
if (animatorEnabled)
animator.SetFloat(par.nameHash, newFloatValue);
}
else if (par.type == AnimatorControllerParameterType.Bool)
{
- bool newBoolValue = reader.ReadBoolean();
+ bool newBoolValue = reader.ReadBool();
if (animatorEnabled)
animator.SetBool(par.nameHash, newBoolValue);
}
@@ -386,16 +386,16 @@ namespace Mirror
if (animator.IsInTransition(i))
{
AnimatorStateInfo st = animator.GetNextAnimatorStateInfo(i);
- writer.WriteInt32(st.fullPathHash);
- writer.WriteSingle(st.normalizedTime);
+ writer.WriteInt(st.fullPathHash);
+ writer.WriteFloat(st.normalizedTime);
}
else
{
AnimatorStateInfo st = animator.GetCurrentAnimatorStateInfo(i);
- writer.WriteInt32(st.fullPathHash);
- writer.WriteSingle(st.normalizedTime);
+ writer.WriteInt(st.fullPathHash);
+ writer.WriteFloat(st.normalizedTime);
}
- writer.WriteSingle(animator.GetLayerWeight(i));
+ writer.WriteFloat(animator.GetLayerWeight(i));
}
WriteParameters(writer, initialState);
return true;
@@ -415,9 +415,9 @@ namespace Mirror
{
for (int i = 0; i < animator.layerCount; i++)
{
- int stateHash = reader.ReadInt32();
- float normalizedTime = reader.ReadSingle();
- animator.SetLayerWeight(i, reader.ReadSingle());
+ int stateHash = reader.ReadInt();
+ float normalizedTime = reader.ReadFloat();
+ animator.SetLayerWeight(i, reader.ReadFloat());
animator.Play(stateHash, i, normalizedTime);
}
diff --git a/UnityProject/Assets/Mirror/Components/NetworkAnimator.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkAnimator.cs.meta
index 211ce78..7b0d8d1 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkAnimator.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkAnimator.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkLobbyManager.cs b/UnityProject/Assets/Mirror/Components/NetworkLobbyManager.cs
index 99c0d1e..6ea069a 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkLobbyManager.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkLobbyManager.cs
@@ -12,7 +12,7 @@ namespace Mirror
/// The OnLobby*() functions have empty implementations on the NetworkLobbyManager base class, so the base class functions do not have to be called.
///
[AddComponentMenu("Network/NetworkLobbyManager")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkRoomManager.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-room-manager")]
[Obsolete("Use / inherit from NetworkRoomManager instead")]
public class NetworkLobbyManager : NetworkRoomManager {}
}
diff --git a/UnityProject/Assets/Mirror/Components/NetworkLobbyManager.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkLobbyManager.cs.meta
index a32c8c7..7fdd9ef 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkLobbyManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkLobbyManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkLobbyPlayer.cs b/UnityProject/Assets/Mirror/Components/NetworkLobbyPlayer.cs
index b15b106..cf18566 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkLobbyPlayer.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkLobbyPlayer.cs
@@ -9,7 +9,7 @@ namespace Mirror
///
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkLobbyPlayer")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkRoomPlayer.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-room-player")]
[Obsolete("Use / inherit from NetworkRoomPlayer instead")]
public class NetworkLobbyPlayer : NetworkRoomPlayer {}
}
diff --git a/UnityProject/Assets/Mirror/Components/NetworkLobbyPlayer.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkLobbyPlayer.cs.meta
index 7a21eec..7dfc205 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkLobbyPlayer.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkLobbyPlayer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkMatchChecker.cs b/UnityProject/Assets/Mirror/Components/NetworkMatchChecker.cs
index 373568c..3092b67 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkMatchChecker.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkMatchChecker.cs
@@ -13,12 +13,15 @@ namespace Mirror
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkMatchChecker")]
[RequireComponent(typeof(NetworkIdentity))]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkMatchChecker.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-match-checker")]
public class NetworkMatchChecker : NetworkVisibility
{
- static readonly Dictionary> matchPlayers = new Dictionary>();
+ // internal for tests
+ internal static readonly Dictionary> matchPlayers =
+ new Dictionary>();
- Guid currentMatch = Guid.Empty;
+ // internal for tests
+ internal Guid currentMatch = Guid.Empty;
[Header("Diagnostics")]
[SyncVar]
diff --git a/UnityProject/Assets/Mirror/Components/NetworkMatchChecker.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkMatchChecker.cs.meta
index 7c7d6cf..adf2a61 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkMatchChecker.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkMatchChecker.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkOwnerChecker.cs b/UnityProject/Assets/Mirror/Components/NetworkOwnerChecker.cs
index 2711379..175165a 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkOwnerChecker.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkOwnerChecker.cs
@@ -13,7 +13,7 @@ namespace Mirror
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkOwnerChecker")]
[RequireComponent(typeof(NetworkIdentity))]
- [HelpURL("https://mirror-networking.com/docs/Components/NetworkOwnerChecker.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-owner-checker")]
public class NetworkOwnerChecker : NetworkVisibility
{
///
diff --git a/UnityProject/Assets/Mirror/Components/NetworkOwnerChecker.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkOwnerChecker.cs.meta
index fee7725..060154e 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkOwnerChecker.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkOwnerChecker.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkPingDisplay.cs b/UnityProject/Assets/Mirror/Components/NetworkPingDisplay.cs
index 4db8945..ca3527b 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkPingDisplay.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkPingDisplay.cs
@@ -8,7 +8,7 @@ namespace Mirror
///
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkPingDisplay")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkPingDisplay.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-ping-display")]
public class NetworkPingDisplay : MonoBehaviour
{
public Color color = Color.white;
diff --git a/UnityProject/Assets/Mirror/Components/NetworkPingDisplay.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkPingDisplay.cs.meta
index 221a745..826d5d3 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkPingDisplay.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkPingDisplay.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkProximityChecker.cs b/UnityProject/Assets/Mirror/Components/NetworkProximityChecker.cs
index 430fa52..b83c80f 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkProximityChecker.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkProximityChecker.cs
@@ -11,7 +11,7 @@ namespace Mirror
[Obsolete(NetworkVisibilityObsoleteMessage.Message)]
[AddComponentMenu("Network/NetworkProximityChecker")]
[RequireComponent(typeof(NetworkIdentity))]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkProximityChecker.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-proximity-checker")]
public class NetworkProximityChecker : NetworkVisibility
{
///
@@ -30,6 +30,7 @@ namespace Mirror
/// Flag to force this object to be hidden for players.
/// If this object is a player object, it will not be hidden for that player.
///
+ // Deprecated 2021-02-17
[Obsolete("Use NetworkIdentity.visible mode instead of forceHidden!")]
public bool forceHidden
{
diff --git a/UnityProject/Assets/Mirror/Components/NetworkProximityChecker.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkProximityChecker.cs.meta
index c5aa112..0131b73 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkProximityChecker.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkProximityChecker.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkRoomManager.cs b/UnityProject/Assets/Mirror/Components/NetworkRoomManager.cs
index 3941ae8..c730e8f 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkRoomManager.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkRoomManager.cs
@@ -14,7 +14,7 @@ namespace Mirror
/// The OnRoom*() functions have empty implementations on the NetworkRoomManager base class, so the base class functions do not have to be called.
///
[AddComponentMenu("Network/NetworkRoomManager")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkRoomManager.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-room-manager")]
public class NetworkRoomManager : NetworkManager
{
public struct PendingPlayer
@@ -297,6 +297,11 @@ namespace Mirror
OnRoomServerDisconnect(conn);
base.OnServerDisconnect(conn);
+
+#if UNITY_SERVER
+ if (numPlayers < 1)
+ StopServer();
+#endif
}
// Sequential index used in round-robin deployment of players into instances and score positioning
@@ -439,9 +444,9 @@ namespace Mirror
OnRoomStopHost();
}
- #endregion
+#endregion
- #region client handlers
+#region client handlers
///
/// This is invoked when the client is started.
@@ -510,9 +515,9 @@ namespace Mirror
OnRoomClientSceneChanged(conn);
}
- #endregion
+#endregion
- #region room server virtuals
+#region room server virtuals
///
/// This is called on the host when a host is started.
@@ -616,9 +621,9 @@ namespace Mirror
///
public virtual void OnRoomServerPlayersNotReady() {}
- #endregion
+#endregion
- #region room client virtuals
+#region room client virtuals
///
/// This is a hook to allow custom behaviour when the game client enters the room.
@@ -665,9 +670,9 @@ namespace Mirror
///
public virtual void OnRoomClientAddPlayerFailed() {}
- #endregion
+#endregion
- #region optional UI
+#region optional UI
///
/// virtual so inheriting classes can roll their own
@@ -689,6 +694,6 @@ namespace Mirror
GUI.Box(new Rect(10f, 180f, 520f, 150f), "PLAYERS");
}
- #endregion
+#endregion
}
}
diff --git a/UnityProject/Assets/Mirror/Components/NetworkRoomManager.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkRoomManager.cs.meta
index 76e7d42..2c64616 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkRoomManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkRoomManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkRoomPlayer.cs b/UnityProject/Assets/Mirror/Components/NetworkRoomPlayer.cs
index 3633393..c16052d 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkRoomPlayer.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkRoomPlayer.cs
@@ -8,7 +8,7 @@ namespace Mirror
///
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkRoomPlayer")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkRoomPlayer.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-room-player")]
public class NetworkRoomPlayer : NetworkBehaviour
{
///
diff --git a/UnityProject/Assets/Mirror/Components/NetworkRoomPlayer.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkRoomPlayer.cs.meta
index 0299bea..d355d8d 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkRoomPlayer.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkRoomPlayer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkSceneChecker.cs b/UnityProject/Assets/Mirror/Components/NetworkSceneChecker.cs
index d423e2d..d94400e 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkSceneChecker.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkSceneChecker.cs
@@ -14,7 +14,7 @@ namespace Mirror
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkSceneChecker")]
[RequireComponent(typeof(NetworkIdentity))]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkSceneChecker.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-scene-checker")]
public class NetworkSceneChecker : NetworkVisibility
{
///
diff --git a/UnityProject/Assets/Mirror/Components/NetworkSceneChecker.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkSceneChecker.cs.meta
index b451655..f81ad4f 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkSceneChecker.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkSceneChecker.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkTransform.cs b/UnityProject/Assets/Mirror/Components/NetworkTransform.cs
index 2154b71..e001d1e 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkTransform.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkTransform.cs
@@ -4,7 +4,7 @@ namespace Mirror
{
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkTransform")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkTransform.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-transform")]
public class NetworkTransform : NetworkTransformBase
{
protected override Transform targetComponent => transform;
diff --git a/UnityProject/Assets/Mirror/Components/NetworkTransform.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkTransform.cs.meta
index a569990..4ad6860 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkTransform.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkTransform.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkTransformBase.cs b/UnityProject/Assets/Mirror/Components/NetworkTransformBase.cs
index c6c1f6a..f390111 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkTransformBase.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkTransformBase.cs
@@ -53,6 +53,10 @@ namespace Mirror
[Header("Interpolation")]
[Tooltip("Set to true if scale should be interpolated, false is ideal for instant sprite flipping.")]
public bool interpolateScale = true;
+ [Tooltip("Set to true if rotation should be interpolated, false is ideal for instant turning, common in retro 2d style games")]
+ public bool interpolateRotation = true;
+ [Tooltip("Set to true if position should be interpolated, false is ideal for grid bassed movement")]
+ public bool interpolatePosition = true;
[Header("Synchronization")]
// It should be very rare cases that people want to continuously sync scale, true by default to not break previous projects that use it
@@ -96,7 +100,7 @@ namespace Mirror
if (compressRotation)
{
// smalles three compression for 3D
- writer.WriteUInt32(Compression.CompressQuaternion(rotation));
+ writer.WriteUInt(Compression.CompressQuaternion(rotation));
}
else
{
@@ -136,13 +140,13 @@ namespace Mirror
// (rotation is optionally compressed)
localPosition = reader.ReadVector3(),
localRotation = compressRotation
- ? Compression.DecompressQuaternion(reader.ReadUInt32())
+ ? Compression.DecompressQuaternion(reader.ReadUInt())
: reader.ReadQuaternion(),
// use current target scale, so we can check boolean and reader later, to see if the data is actually sent.
localScale = targetComponent.localScale,
timeStamp = Time.time
};
-
+
if (syncScale)
{
// Reader length is checked here, 12 is used as thats the current Vector3 (3 floats) amount.
@@ -265,9 +269,13 @@ namespace Mirror
return 0;
}
- static Vector3 InterpolatePosition(DataPoint start, DataPoint goal, Vector3 currentPosition)
+ Vector3 InterpolatePosition(DataPoint start, DataPoint goal, Vector3 currentPosition)
{
- if (start != null)
+ if (!interpolatePosition)
+ {
+ return goal.localPosition;
+ }
+ else if (start != null)
{
// Option 1: simply interpolate based on time. but stutter
// will happen, it's not that smooth. especially noticeable if
@@ -284,9 +292,13 @@ namespace Mirror
return currentPosition;
}
- static Quaternion InterpolateRotation(DataPoint start, DataPoint goal, Quaternion defaultRotation)
+ Quaternion InterpolateRotation(DataPoint start, DataPoint goal, Quaternion defaultRotation)
{
- if (start != null)
+ if (!interpolateRotation)
+ {
+ return goal.localRotation;
+ }
+ else if (start != null)
{
float t = CurrentInterpolationFactor(start, goal);
return Quaternion.Slerp(start.localRotation, goal.localRotation, t);
@@ -296,7 +308,15 @@ namespace Mirror
Vector3 InterpolateScale(DataPoint start, DataPoint goal, Vector3 currentScale)
{
- if (start != null && interpolateScale)
+ if (!syncScale)
+ {
+ return currentScale;
+ }
+ else if (!interpolateScale)
+ {
+ return goal.localScale;
+ }
+ else if (interpolateScale && start != null )
{
float t = CurrentInterpolationFactor(start, goal);
return Vector3.Lerp(start.localScale, goal.localScale, t);
diff --git a/UnityProject/Assets/Mirror/Components/NetworkTransformBase.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkTransformBase.cs.meta
index ab649d9..3ce0661 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkTransformBase.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkTransformBase.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Components/NetworkTransformChild.cs b/UnityProject/Assets/Mirror/Components/NetworkTransformChild.cs
index d5d8a76..3ad4287 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkTransformChild.cs
+++ b/UnityProject/Assets/Mirror/Components/NetworkTransformChild.cs
@@ -7,7 +7,7 @@ namespace Mirror
/// There must be a NetworkTransform on the root object of the hierarchy. There can be multiple NetworkTransformChild components on an object. This does not use physics for synchronization, it simply synchronizes the localPosition and localRotation of the child transform and lerps towards the received values.
///
[AddComponentMenu("Network/NetworkTransformChild")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkTransformChild.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-transform-child")]
public class NetworkTransformChild : NetworkTransformBase
{
[Header("Target")]
diff --git a/UnityProject/Assets/Mirror/Components/NetworkTransformChild.cs.meta b/UnityProject/Assets/Mirror/Components/NetworkTransformChild.cs.meta
index ae36756..4fce429 100644
--- a/UnityProject/Assets/Mirror/Components/NetworkTransformChild.cs.meta
+++ b/UnityProject/Assets/Mirror/Components/NetworkTransformChild.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor.meta b/UnityProject/Assets/Mirror/Editor.meta
index f679511..0c23e8c 100644
--- a/UnityProject/Assets/Mirror/Editor.meta
+++ b/UnityProject/Assets/Mirror/Editor.meta
@@ -3,6 +3,6 @@ guid: 2539267b6934a4026a505690a1e1eda2
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/EditorHelper.cs.meta b/UnityProject/Assets/Mirror/Editor/EditorHelper.cs.meta
index a1cd814..02aec40 100644
--- a/UnityProject/Assets/Mirror/Editor/EditorHelper.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/EditorHelper.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Empty.meta b/UnityProject/Assets/Mirror/Editor/Empty.meta
new file mode 100644
index 0000000..2c2233e
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Editor/Empty.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 62c8dc5bb12bbc6428bb66ccbac57000
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/LogLevelWindow.cs b/UnityProject/Assets/Mirror/Editor/Empty/LogLevelWindow.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/LogLevelWindow.cs
rename to UnityProject/Assets/Mirror/Editor/Empty/LogLevelWindow.cs
diff --git a/UnityProject/Assets/Mirror/Editor/LogLevelWindow.cs.meta b/UnityProject/Assets/Mirror/Editor/Empty/LogLevelWindow.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/LogLevelWindow.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Empty/LogLevelWindow.cs.meta
index b8cbaeb..a068358 100644
--- a/UnityProject/Assets/Mirror/Editor/LogLevelWindow.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Empty/LogLevelWindow.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Logging.meta b/UnityProject/Assets/Mirror/Editor/Empty/Logging.meta
similarity index 65%
rename from UnityProject/Assets/Mirror/Editor/Logging.meta
rename to UnityProject/Assets/Mirror/Editor/Empty/Logging.meta
index 257467f..0919d1e 100644
--- a/UnityProject/Assets/Mirror/Editor/Logging.meta
+++ b/UnityProject/Assets/Mirror/Editor/Empty/Logging.meta
@@ -3,6 +3,6 @@ guid: 4d97731cd74ac8b4b8aad808548ef9cd
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Logging/LogLevelWindow.cs b/UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelWindow.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Logging/LogLevelWindow.cs
rename to UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelWindow.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Logging/LogLevelWindow.cs.meta b/UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelWindow.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Logging/LogLevelWindow.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelWindow.cs.meta
index 832876f..aff9fad 100644
--- a/UnityProject/Assets/Mirror/Editor/Logging/LogLevelWindow.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelWindow.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Logging/LogLevelsGUI.cs b/UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelsGUI.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Logging/LogLevelsGUI.cs
rename to UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelsGUI.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Logging/LogLevelsGUI.cs.meta b/UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelsGUI.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Logging/LogLevelsGUI.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelsGUI.cs.meta
index 3214b08..bc9e68c 100644
--- a/UnityProject/Assets/Mirror/Editor/Logging/LogLevelsGUI.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Empty/Logging/LogLevelsGUI.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Logging/LogSettingsEditor.cs b/UnityProject/Assets/Mirror/Editor/Empty/Logging/LogSettingsEditor.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Logging/LogSettingsEditor.cs
rename to UnityProject/Assets/Mirror/Editor/Empty/Logging/LogSettingsEditor.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Logging/LogSettingsEditor.cs.meta b/UnityProject/Assets/Mirror/Editor/Empty/Logging/LogSettingsEditor.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Logging/LogSettingsEditor.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Empty/Logging/LogSettingsEditor.cs.meta
index 2c1fac4..1a456c5 100644
--- a/UnityProject/Assets/Mirror/Editor/Logging/LogSettingsEditor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Empty/Logging/LogSettingsEditor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Logging/NetworkLogSettingsEditor.cs b/UnityProject/Assets/Mirror/Editor/Empty/Logging/NetworkLogSettingsEditor.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Logging/NetworkLogSettingsEditor.cs
rename to UnityProject/Assets/Mirror/Editor/Empty/Logging/NetworkLogSettingsEditor.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Logging/NetworkLogSettingsEditor.cs.meta b/UnityProject/Assets/Mirror/Editor/Empty/Logging/NetworkLogSettingsEditor.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Logging/NetworkLogSettingsEditor.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Empty/Logging/NetworkLogSettingsEditor.cs.meta
index b4c277d..21d0db6 100644
--- a/UnityProject/Assets/Mirror/Editor/Logging/NetworkLogSettingsEditor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Empty/Logging/NetworkLogSettingsEditor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/ScriptableObjectUtility.cs b/UnityProject/Assets/Mirror/Editor/Empty/ScriptableObjectUtility.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/ScriptableObjectUtility.cs
rename to UnityProject/Assets/Mirror/Editor/Empty/ScriptableObjectUtility.cs
diff --git a/UnityProject/Assets/Mirror/Editor/ScriptableObjectUtility.cs.meta b/UnityProject/Assets/Mirror/Editor/Empty/ScriptableObjectUtility.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/ScriptableObjectUtility.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Empty/ScriptableObjectUtility.cs.meta
index a1a0af3..c1cfe35 100644
--- a/UnityProject/Assets/Mirror/Editor/ScriptableObjectUtility.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Empty/ScriptableObjectUtility.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/EnterPlayModeSettingsCheck.cs.meta b/UnityProject/Assets/Mirror/Editor/EnterPlayModeSettingsCheck.cs.meta
index 79a200d..49a4298 100644
--- a/UnityProject/Assets/Mirror/Editor/EnterPlayModeSettingsCheck.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/EnterPlayModeSettingsCheck.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/InspectorHelper.cs.meta b/UnityProject/Assets/Mirror/Editor/InspectorHelper.cs.meta
index 852ff71..bb6cb6c 100644
--- a/UnityProject/Assets/Mirror/Editor/InspectorHelper.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/InspectorHelper.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Mirror.Editor.asmdef.meta b/UnityProject/Assets/Mirror/Editor/Mirror.Editor.asmdef.meta
index e2e6f2a..ba2d88c 100644
--- a/UnityProject/Assets/Mirror/Editor/Mirror.Editor.asmdef.meta
+++ b/UnityProject/Assets/Mirror/Editor/Mirror.Editor.asmdef.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 1c7c33eb5480dd24c9e29a8250c1a775
AssemblyDefinitionImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/NetworkBehaviourInspector.cs.meta b/UnityProject/Assets/Mirror/Editor/NetworkBehaviourInspector.cs.meta
index 78d9fa8..2a4a45a 100644
--- a/UnityProject/Assets/Mirror/Editor/NetworkBehaviourInspector.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/NetworkBehaviourInspector.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/NetworkInformationPreview.cs.meta b/UnityProject/Assets/Mirror/Editor/NetworkInformationPreview.cs.meta
index 9bf2de4..c93e6c0 100644
--- a/UnityProject/Assets/Mirror/Editor/NetworkInformationPreview.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/NetworkInformationPreview.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/NetworkManagerEditor.cs.meta b/UnityProject/Assets/Mirror/Editor/NetworkManagerEditor.cs.meta
index 7fe8dbc..6fb657e 100644
--- a/UnityProject/Assets/Mirror/Editor/NetworkManagerEditor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/NetworkManagerEditor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/NetworkScenePostProcess.cs.meta b/UnityProject/Assets/Mirror/Editor/NetworkScenePostProcess.cs.meta
index b567cc9..53b148f 100644
--- a/UnityProject/Assets/Mirror/Editor/NetworkScenePostProcess.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/NetworkScenePostProcess.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/SceneDrawer.cs.meta b/UnityProject/Assets/Mirror/Editor/SceneDrawer.cs.meta
index 6a996dc..e37ff9c 100644
--- a/UnityProject/Assets/Mirror/Editor/SceneDrawer.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/SceneDrawer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/SyncVarAttributeDrawer.cs.meta b/UnityProject/Assets/Mirror/Editor/SyncVarAttributeDrawer.cs.meta
index 6311f1d..1cb1250 100644
--- a/UnityProject/Assets/Mirror/Editor/SyncVarAttributeDrawer.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/SyncVarAttributeDrawer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver.meta b/UnityProject/Assets/Mirror/Editor/Weaver.meta
index 121fbf4..ed8a67a 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver.meta
@@ -3,6 +3,6 @@ guid: d9f8e6274119b4ce29e498cfb8aca8a4
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/AssemblyInfo.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/AssemblyInfo.cs.meta
index d356af8..f31bae2 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/AssemblyInfo.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/AssemblyInfo.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/CompilationFinishedHook.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/CompilationFinishedHook.cs.meta
index ed537ab..004ab69 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/CompilationFinishedHook.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/CompilationFinishedHook.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Empty.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Empty.meta
new file mode 100644
index 0000000..71a3491
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Empty.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 30fc290f2ff9c29498f54f63de12ca6f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/GenericArgumentResolver.cs b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/GenericArgumentResolver.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/GenericArgumentResolver.cs
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/GenericArgumentResolver.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/GenericArgumentResolver.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/GenericArgumentResolver.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/GenericArgumentResolver.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/GenericArgumentResolver.cs.meta
index 685f914..3fcfa0c 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/GenericArgumentResolver.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/GenericArgumentResolver.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MessageClassProcessor.cs b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/MessageClassProcessor.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/MessageClassProcessor.cs
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/MessageClassProcessor.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MessageClassProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/MessageClassProcessor.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/MessageClassProcessor.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/MessageClassProcessor.cs.meta
index cbea4d6..d7b6208 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MessageClassProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/MessageClassProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Program.cs b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/Program.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Program.cs
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/Program.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Program.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/Program.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Program.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/Program.cs.meta
index 0a14018..bde63d2 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Program.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/Program.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncDictionaryProcessor.cs b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncDictionaryProcessor.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncDictionaryProcessor.cs
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncDictionaryProcessor.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncDictionaryProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncDictionaryProcessor.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncDictionaryProcessor.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncDictionaryProcessor.cs.meta
index 0a7c2aa..8ca8566 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncDictionaryProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncDictionaryProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncEventProcessor.cs b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncEventProcessor.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncEventProcessor.cs
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncEventProcessor.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncEventProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncEventProcessor.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncEventProcessor.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncEventProcessor.cs.meta
index 81b9576..2a2b518 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncEventProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncEventProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncListProcessor.cs b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncListProcessor.cs
similarity index 100%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncListProcessor.cs
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncListProcessor.cs
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncListProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncListProcessor.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncListProcessor.cs.meta
rename to UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncListProcessor.cs.meta
index b73b047..16b8097 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncListProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Empty/SyncListProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Extensions.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Extensions.cs.meta
index 78660f9..a5b8aa4 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Extensions.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Extensions.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Helpers.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Helpers.cs.meta
index 231f539..f49ae98 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Helpers.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Helpers.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Log.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Log.cs.meta
index 3f62978..ed584d5 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Log.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Log.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Mirror.Weaver.asmdef.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Mirror.Weaver.asmdef.meta
index b65a0cd..2ee4754 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Mirror.Weaver.asmdef.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Mirror.Weaver.asmdef.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 1d0b9d21c3ff546a4aa32399dfd33474
AssemblyDefinitionImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors.meta
index eb719b4..f3a01c1 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors.meta
@@ -3,6 +3,6 @@ guid: e538d627280d2471b8c72fdea822ca49
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/CommandProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/CommandProcessor.cs.meta
index 20c3e15..4596f69 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/CommandProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/CommandProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MethodProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MethodProcessor.cs.meta
index 3c81894..b40023d 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MethodProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MethodProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MonoBehaviourProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MonoBehaviourProcessor.cs.meta
index ef3f5f4..4eb8840 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MonoBehaviourProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/MonoBehaviourProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/NetworkBehaviourProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/NetworkBehaviourProcessor.cs.meta
index 67c27dc..78a67bf 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/NetworkBehaviourProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/NetworkBehaviourProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/PropertySiteProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/PropertySiteProcessor.cs.meta
index e8c2500..b0fea9a 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/PropertySiteProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/PropertySiteProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/ReaderWriterProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/ReaderWriterProcessor.cs.meta
index c14d6fa..8d8b30a 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/ReaderWriterProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/ReaderWriterProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/RpcProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/RpcProcessor.cs.meta
index 22375ba..5f94aa7 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/RpcProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/RpcProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/ServerClientAttributeProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/ServerClientAttributeProcessor.cs.meta
index 5a5451d..ff09ae9 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/ServerClientAttributeProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/ServerClientAttributeProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncObjectInitializer.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncObjectInitializer.cs.meta
index 22f976e..1a0c3cf 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncObjectInitializer.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncObjectInitializer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncObjectProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncObjectProcessor.cs.meta
index 0efe434..82696b6 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncObjectProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncObjectProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncVarProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncVarProcessor.cs.meta
index 982f768..31c4586 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncVarProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/SyncVarProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/TargetRpcProcessor.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/TargetRpcProcessor.cs.meta
index 0ff7cc5..c315349 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Processors/TargetRpcProcessor.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Processors/TargetRpcProcessor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Readers.cs b/UnityProject/Assets/Mirror/Editor/Weaver/Readers.cs
index f5c21e3..dcb5cd2 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Readers.cs
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Readers.cs
@@ -19,7 +19,10 @@ namespace Mirror.Weaver
{
if (readFuncs.ContainsKey(dataType))
{
- Weaver.Warning($"Registering a Read method for {dataType.FullName} when one already exists", methodReference);
+ // TODO enable this again later.
+ // Reader has some obsolete functions that were renamed.
+ // Don't want weaver warnings for all of them.
+ //Weaver.Warning($"Registering a Read method for {dataType.FullName} when one already exists", methodReference);
}
// we need to import type when we Initialize Readers so import here in case it is used anywhere else
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Readers.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Readers.cs.meta
index 838ff59..e119669 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Readers.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Readers.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Resolvers.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Resolvers.cs.meta
index f4f6602..38680aa 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Resolvers.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Resolvers.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/TypeReferenceComparer.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/TypeReferenceComparer.cs.meta
index 890b4dc..1aed28f 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/TypeReferenceComparer.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/TypeReferenceComparer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Weaver.cs b/UnityProject/Assets/Mirror/Editor/Weaver/Weaver.cs
index 2c0c2a9..4e9c08c 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Weaver.cs
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Weaver.cs
@@ -145,7 +145,7 @@ namespace Mirror.Weaver
}
}
watch.Stop();
- Console.WriteLine("Weave behaviours and messages took" + watch.ElapsedMilliseconds + " milliseconds");
+ Console.WriteLine("Weave behaviours and messages took " + watch.ElapsedMilliseconds + " milliseconds");
return modified;
}
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Weaver.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Weaver.cs.meta
index 0ea2dfe..ec2cb3e 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Weaver.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Weaver.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/WeaverExceptions.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/WeaverExceptions.cs.meta
index 68643b2..4c11527 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/WeaverExceptions.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/WeaverExceptions.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/WeaverTypes.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/WeaverTypes.cs.meta
index d71c33f..e15e589 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/WeaverTypes.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/WeaverTypes.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: 2585961bf7fe4c10a9143f4087efdf6f
-timeCreated: 1596486854
\ No newline at end of file
+timeCreated: 1596486854
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Writers.cs b/UnityProject/Assets/Mirror/Editor/Weaver/Writers.cs
index f3cc8bc..c813b66 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Writers.cs
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Writers.cs
@@ -19,7 +19,10 @@ namespace Mirror.Weaver
{
if (writeFuncs.ContainsKey(dataType))
{
- Weaver.Warning($"Registering a Write method for {dataType.FullName} when one already exists", methodReference);
+ // TODO enable this again later.
+ // Writer has some obsolete functions that were renamed.
+ // Don't want weaver warnings for all of them.
+ //Weaver.Warning($"Registering a Write method for {dataType.FullName} when one already exists", methodReference);
}
// we need to import type when we Initialize Writers so import here in case it is used anywhere else
diff --git a/UnityProject/Assets/Mirror/Editor/Weaver/Writers.cs.meta b/UnityProject/Assets/Mirror/Editor/Weaver/Writers.cs.meta
index 3769f7f..a2f931f 100644
--- a/UnityProject/Assets/Mirror/Editor/Weaver/Writers.cs.meta
+++ b/UnityProject/Assets/Mirror/Editor/Weaver/Writers.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples.meta b/UnityProject/Assets/Mirror/Examples.meta
index b594a81..f02aca2 100644
--- a/UnityProject/Assets/Mirror/Examples.meta
+++ b/UnityProject/Assets/Mirror/Examples.meta
@@ -3,6 +3,6 @@ guid: a08b1f591326642d1b140fc818c9c6b1
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes.meta
index bf61013..518df51 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes.meta
@@ -3,6 +3,6 @@ guid: b84b2a39b3027c747b21ad714a439214
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/AnimationControllers.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/AnimationControllers.meta
index c9cd79f..ec709da 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/AnimationControllers.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/AnimationControllers.meta
@@ -3,6 +3,6 @@ guid: 4969918300bfa9a4a8c733975df74016
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/AnimationControllers/Tank.controller.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/AnimationControllers/Tank.controller.meta
index b4df009..8ad6c71 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/AnimationControllers/Tank.controller.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/AnimationControllers/Tank.controller.meta
@@ -3,6 +3,6 @@ guid: e0dbc8b2f2711a54f9b7ed1358a4c6af
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials.meta
index d6629fb..ebd0798 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials.meta
@@ -3,6 +3,6 @@ guid: 7ef7a74859259a546b73ed820e449ae8
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Capsule.mat.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Capsule.mat.meta
index b202aa9..9089181 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Capsule.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Capsule.mat.meta
@@ -3,6 +3,6 @@ guid: 3ec90781e3720544da7fc86055e6cbe6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Cube.mat.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Cube.mat.meta
index 9c096c8..a8af065 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Cube.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Cube.mat.meta
@@ -3,6 +3,6 @@ guid: 1d5f3015968dad04780bf9d2113cc772
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Cylinder.mat.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Cylinder.mat.meta
index 00cc85e..d77fac5 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Cylinder.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Cylinder.mat.meta
@@ -3,6 +3,6 @@ guid: 439a10ee8f8d14040be9003239449741
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Player.mat.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Player.mat.meta
index 56884a4..d0b34f0 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Player.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Player.mat.meta
@@ -3,6 +3,6 @@ guid: 792117fe9a386a8489e8010bec746339
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Quad.mat.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Quad.mat.meta
index be7d0db..cc7fb6e 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Quad.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Quad.mat.meta
@@ -3,6 +3,6 @@ guid: 6eb3f3ba66756364d8b94e662e7e8af5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Shelter.mat.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Shelter.mat.meta
index c261931..dc0786b 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Shelter.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Shelter.mat.meta
@@ -3,6 +3,6 @@ guid: aef230244d219314fb8453f0365b8176
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Sphere.mat.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Sphere.mat.meta
index 8822215..8556d78 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Sphere.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Sphere.mat.meta
@@ -3,6 +3,6 @@ guid: 58936713efca1ec488624ee297b5d687
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Zone.mat.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Zone.mat.meta
index 4cfbe95..88474b2 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Zone.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Materials/Zone.mat.meta
@@ -3,6 +3,6 @@ guid: a7c679cf124f7ae46a0291ea35848554
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs.meta
index 37601bf..ff4ccaf 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs.meta
@@ -3,6 +3,6 @@ guid: 2be4f78570b2a1e4cae84466d35d606c
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Capsule.prefab.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Capsule.prefab.meta
index 99fb5c0..31b37d0 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Capsule.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Capsule.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: e1971f4a8c7661546bc509b44bd91b80
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Cube.prefab.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Cube.prefab.meta
index 8b53f72..913306b 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Cube.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Cube.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 4ff300cf6bb3c6342a9552c4f18788c8
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Cylinder.prefab.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Cylinder.prefab.meta
index 113674d..391948a 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Cylinder.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Cylinder.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 12a4c14e672c00b4b840f937d824b890
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Player.prefab.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Player.prefab.meta
index b91d19d..7d6d9c0 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Player.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Player.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: a5bdca0a2315d43499be7dcef473fbc7
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Sphere.prefab.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Sphere.prefab.meta
index 0fb6a41..bfe2367 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Sphere.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Sphere.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: f6d08eb9a8e35d84fa30a7e3ae64181a
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Tank.prefab.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Tank.prefab.meta
index 9c53dff..e16f65c 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Tank.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Tank.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: ab222ed73ada1ac4ba2f61e843d7627c
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Zone.prefab.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Zone.prefab.meta
index 7099571..c079324 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Zone.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Prefabs/Zone.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: de939020b5e2aa5489ebcc4002d75d54
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/README.md.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/README.md.meta
index 470c34f..53021c1 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/README.md.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/README.md.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 0a023e0d7315ac74094703ab69348733
TextScriptImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes.meta
index 79b44f1..06714e8 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes.meta
@@ -3,6 +3,6 @@ guid: e989860f377e7764bb7787086ef44ea4
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes/MainScene.unity.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes/MainScene.unity.meta
index a231750..8c5b47b 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes/MainScene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes/MainScene.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 7a0eee2f518e9dc4fb628d96dc452faf
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes/SubScene.unity.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes/SubScene.unity.meta
index 94a2050..25341d3 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes/SubScene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scenes/SubScene.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 7f4fd683fc6d866418c95f99977533a6
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts.meta
index cb97b32..6aebeb5 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts.meta
@@ -3,6 +3,6 @@ guid: f9c36b0deb5d9b245b7c97e3d6eeed29
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/AdditiveNetworkManager.cs.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/AdditiveNetworkManager.cs.meta
index 0df3fb3..7b92eb6 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/AdditiveNetworkManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/AdditiveNetworkManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/PlayerController.cs.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/PlayerController.cs.meta
index 5deced6..98c0e27 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/PlayerController.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/PlayerController.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/RandomColor.cs.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/RandomColor.cs.meta
index 2c0008b..d3c401f 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/RandomColor.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/RandomColor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/ShootingTankBehaviour.cs.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/ShootingTankBehaviour.cs.meta
index 90771ab..315914a 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/ShootingTankBehaviour.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/ShootingTankBehaviour.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/ZoneHandler.cs.meta b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/ZoneHandler.cs.meta
index 126d072..88adef5 100644
--- a/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/ZoneHandler.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/AdditiveScenes/Scripts/ZoneHandler.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic.meta b/UnityProject/Assets/Mirror/Examples/Basic.meta
index 653ea78..b61f55f 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic.meta
@@ -3,6 +3,6 @@ guid: 0ea49fcefbc864e19a94091a170fc06c
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/Basic/Prefabs.meta
index 234c22a..261c187 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Prefabs.meta
@@ -3,6 +3,6 @@ guid: 4f821a97809492a479cac0843442e245
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/Player.prefab.meta b/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/Player.prefab.meta
index a943869..07fac0c 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/Player.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/Player.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: dc2c4328591bef748abb8df795c17202
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/PlayerUI.prefab b/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/PlayerUI.prefab
index b030073..2dda39c 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/PlayerUI.prefab
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/PlayerUI.prefab
@@ -54,12 +54,13 @@ MonoBehaviour:
m_GameObject: {fileID: 507587715476979468}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -76,7 +77,7 @@ MonoBehaviour:
m_HorizontalOverflow: 1
m_VerticalOverflow: 1
m_LineSpacing: 1
- m_Text: Player 00
+ m_Text: 'Data: 000'
--- !u!1 &5152941909035078397
GameObject:
m_ObjectHideFlags: 0
@@ -134,12 +135,13 @@ MonoBehaviour:
m_GameObject: {fileID: 5152941909035078397}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 0}
m_RaycastTarget: 0
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -152,6 +154,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!114 &1800193220786703771
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -221,12 +224,13 @@ MonoBehaviour:
m_GameObject: {fileID: 5516013313779480533}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/PlayerUI.prefab.meta b/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/PlayerUI.prefab.meta
index c6a8284..c522c6f 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/PlayerUI.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Prefabs/PlayerUI.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 22f1fa3a0aff72b46a371f667bb4fb30
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/README.md.meta b/UnityProject/Assets/Mirror/Examples/Basic/README.md.meta
index d4e1715..ce85eed 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/README.md.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/README.md.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 67177defd4d334a549e535f10506cc66
TextScriptImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Scenes.meta b/UnityProject/Assets/Mirror/Examples/Basic/Scenes.meta
index 0c751c6..56c0473 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Scenes.meta
@@ -3,6 +3,6 @@ guid: 16f46473489d3364badc2f37c4db8634
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Scenes/Example.unity.meta b/UnityProject/Assets/Mirror/Examples/Basic/Scenes/Example.unity.meta
index 25c602e..7d2a8de 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Scenes/Example.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Scenes/Example.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: b30904751905d3f4dacde62ac85ec7c2
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Scripts.meta b/UnityProject/Assets/Mirror/Examples/Basic/Scripts.meta
index 5cc0800..b5807e6 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Scripts.meta
@@ -3,6 +3,6 @@ guid: 9c5291659f25af9409bbc25a2d37d628
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Scripts/BasicNetManager.cs b/UnityProject/Assets/Mirror/Examples/Basic/Scripts/BasicNetManager.cs
index 29c1ef3..e9c9d57 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Scripts/BasicNetManager.cs
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Scripts/BasicNetManager.cs
@@ -2,7 +2,7 @@ using System.Collections.Generic;
using UnityEngine;
/*
- Documentation: https://mirror-networking.com/docs/Articles/Components/NetworkManager.html
+ Documentation: https://mirror-networking.gitbook.io/docs/components/network-manager
API Reference: https://mirror-networking.com/docs/api/Mirror.NetworkManager.html
*/
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Scripts/BasicNetManager.cs.meta b/UnityProject/Assets/Mirror/Examples/Basic/Scripts/BasicNetManager.cs.meta
index 35918e9..d249881 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Scripts/BasicNetManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Scripts/BasicNetManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Scripts/Player.cs.meta b/UnityProject/Assets/Mirror/Examples/Basic/Scripts/Player.cs.meta
index cf15827..3be1823 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Scripts/Player.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Scripts/Player.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Basic/Scripts/PlayerUI.cs.meta b/UnityProject/Assets/Mirror/Examples/Basic/Scripts/PlayerUI.cs.meta
index b7c07b7..f5eaa15 100644
--- a/UnityProject/Assets/Mirror/Examples/Basic/Scripts/PlayerUI.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Basic/Scripts/PlayerUI.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark.meta b/UnityProject/Assets/Mirror/Examples/Benchmark.meta
index 73801df..5e1f04c 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark.meta
@@ -3,6 +3,6 @@ guid: 1a0b6db5b77ec4177a6e47b68ea7d064
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Materials.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Materials.meta
index 12a3156..1ac3c41 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Materials.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Materials.meta
@@ -3,6 +3,6 @@ guid: ba4e4f7749e6b437aac187bd7625cf28
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Materials/Red.mat.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Materials/Red.mat.meta
index 9e65288..a976752 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Materials/Red.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Materials/Red.mat.meta
@@ -3,6 +3,6 @@ guid: 451c5da2c5056496297cffba02216286
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Materials/White.mat.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Materials/White.mat.meta
index 0a9db55..2c7446d 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Materials/White.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Materials/White.mat.meta
@@ -3,6 +3,6 @@ guid: ff8f106e5c9e34da28ad9cee6edb2255
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs.meta
index 2cdde64..21e533a 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs.meta
@@ -3,6 +3,6 @@ guid: 29276b4f741904266bb3eb6331bee4ab
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs/Monster.prefab.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs/Monster.prefab.meta
index 766ed77..af6f683 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs/Monster.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs/Monster.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 30b8f251d03d84284b70601e691d474f
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs/Player.prefab.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs/Player.prefab.meta
index cb898f8..36bbff1 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs/Player.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Prefabs/Player.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: e1299008405d14b17b1ca459a6cd44a2
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Scenes.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Scenes.meta
index f73c636..5af04cf 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Scenes.meta
@@ -3,6 +3,6 @@ guid: 1507ce547cd6a42ddb4ba60c3552dc48
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Scenes/Scene.unity.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Scenes/Scene.unity.meta
index 4a3c47e..5f0f907 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Scenes/Scene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Scenes/Scene.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 3b956c7d68b6144dd8e6c36636e25b52
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts.meta
index 7247026..868debf 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts.meta
@@ -3,6 +3,6 @@ guid: 56ec73164c7f24072b822ed0d1e4d03e
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/BenchmarkNetworkManager.cs.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/BenchmarkNetworkManager.cs.meta
index 6355efe..34f34b7 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/BenchmarkNetworkManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/BenchmarkNetworkManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/MonsterMovement.cs.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/MonsterMovement.cs.meta
index e4aea03..23d46c4 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/MonsterMovement.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/MonsterMovement.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/PlayerMovement.cs.meta b/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/PlayerMovement.cs.meta
index a520ac7..7eb5367 100644
--- a/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/PlayerMovement.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Benchmark/Scripts/PlayerMovement.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Chat.meta b/UnityProject/Assets/Mirror/Examples/Chat.meta
index 1b51dde..d9b8551 100644
--- a/UnityProject/Assets/Mirror/Examples/Chat.meta
+++ b/UnityProject/Assets/Mirror/Examples/Chat.meta
@@ -3,6 +3,6 @@ guid: 92165d23a248449f58d0be75d794a127
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Chat/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/Chat/Prefabs.meta
index f3f82c4..ea5ec30 100644
--- a/UnityProject/Assets/Mirror/Examples/Chat/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Chat/Prefabs.meta
@@ -3,6 +3,6 @@ guid: 55a4e4e8824ec4e329adf12e2cfb02a4
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Chat/Prefabs/Player.prefab.meta b/UnityProject/Assets/Mirror/Examples/Chat/Prefabs/Player.prefab.meta
index 0429ce4..c1264aa 100644
--- a/UnityProject/Assets/Mirror/Examples/Chat/Prefabs/Player.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Chat/Prefabs/Player.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: e5905ffa27de84009b346b49d518ba03
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Chat/Scenes.meta b/UnityProject/Assets/Mirror/Examples/Chat/Scenes.meta
index ac2b33e..63a8fe5 100644
--- a/UnityProject/Assets/Mirror/Examples/Chat/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/Chat/Scenes.meta
@@ -3,6 +3,6 @@ guid: 71f6f21bb51d14dc0b231a8488826aac
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Chat/Scenes/Main.unity.meta b/UnityProject/Assets/Mirror/Examples/Chat/Scenes/Main.unity.meta
index d381d8c..cf81526 100644
--- a/UnityProject/Assets/Mirror/Examples/Chat/Scenes/Main.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/Chat/Scenes/Main.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: f4e8d4de4484e44bba666f2d1f66c73e
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Chat/Scripts.meta b/UnityProject/Assets/Mirror/Examples/Chat/Scripts.meta
index 71858f4..e1c9c15 100644
--- a/UnityProject/Assets/Mirror/Examples/Chat/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/Chat/Scripts.meta
@@ -3,6 +3,6 @@ guid: 81da49d71176c41169a24259df78e50a
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs.meta b/UnityProject/Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs.meta
index cbc4ca7..fd00d18 100644
--- a/UnityProject/Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Chat/Scripts/ChatWindow.cs.meta b/UnityProject/Assets/Mirror/Examples/Chat/Scripts/ChatWindow.cs.meta
index 9b9bd1f..6b6dedb 100644
--- a/UnityProject/Assets/Mirror/Examples/Chat/Scripts/ChatWindow.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Chat/Scripts/ChatWindow.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Chat/Scripts/Player.cs.meta b/UnityProject/Assets/Mirror/Examples/Chat/Scripts/Player.cs.meta
index 610ee4c..4a7ac91 100644
--- a/UnityProject/Assets/Mirror/Examples/Chat/Scripts/Player.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Chat/Scripts/Player.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud.meta b/UnityProject/Assets/Mirror/Examples/Cloud.meta
deleted file mode 100644
index f8e53b0..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: c6191af3a22db3a40bb6e21d80a01c25
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI.meta b/UnityProject/Assets/Mirror/Examples/Cloud/GUI.meta
deleted file mode 100644
index 2e9376d..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 07ef3468f70974a4cb7a8d5111df054b
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs.meta
deleted file mode 100644
index edc2d69..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: b85187580967c4a42bae2e12c90f2944
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ListServer Canvas.prefab b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ListServer Canvas.prefab
deleted file mode 100644
index 125040e..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ListServer Canvas.prefab
+++ /dev/null
@@ -1,2629 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1 &4971607475450741445
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475450741444}
- - component: {fileID: 4971607475450741442}
- - component: {fileID: 4971607475450741443}
- m_Layer: 5
- m_Name: TextFootnote
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475450741444
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475450741445}
- 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_Children: []
- m_Father: {fileID: 4971607475451386690}
- m_RootOrder: 6
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 0}
- m_AnchoredPosition: {x: 0, y: -10}
- m_SizeDelta: {x: 0, y: 20}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607475450741442
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475450741445}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475450741443
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475450741445}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 2
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: '* Host your own List Server with: mirror-networking.com/list-server'
---- !u!1 &4971607475451386691
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475451386690}
- - component: {fileID: 4971607475451386751}
- - component: {fileID: 4971607475451386688}
- m_Layer: 5
- m_Name: ServerListPanel
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475451386690
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475451386691}
- 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_Children:
- - {fileID: 4971607475748769786}
- - {fileID: 4971607476240074303}
- - {fileID: 4971607475515065360}
- - {fileID: 4971607477325490914}
- - {fileID: 4971607476994082406}
- - {fileID: 4971607477083899161}
- - {fileID: 4971607475450741444}
- m_Father: {fileID: 4971607477202590071}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.5, y: 0.5}
- m_AnchorMax: {x: 0.5, y: 0.5}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 526, y: 400}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607475451386751
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475451386691}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475451386688
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475451386691}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.19215687, g: 0.19215687, b: 0.19215687, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!1 &4971607475471872081
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475471872080}
- - component: {fileID: 4971607475471872078}
- - component: {fileID: 4971607475471872079}
- m_Layer: 5
- m_Name: TitleBar
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475471872080
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475471872081}
- 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_Children:
- - {fileID: 4971607477307762874}
- m_Father: {fileID: 4971607476985653604}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 1}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 20}
- m_Pivot: {x: 0.5, y: 1}
---- !u!222 &4971607475471872078
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475471872081}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475471872079
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475471872081}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!1 &4971607475508337488
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607477202590071}
- m_Layer: 5
- m_Name: ServerList
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607477202590071
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475508337488}
- 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_Children:
- - {fileID: 4971607475577112185}
- - {fileID: 4971607475451386690}
- - {fileID: 4971607476985653604}
- m_Father: {fileID: 4971607476965432301}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!1 &4971607475515065361
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475515065360}
- - component: {fileID: 4971607475515065358}
- - component: {fileID: 4971607475515065359}
- m_Layer: 5
- m_Name: TextStatus
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475515065360
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475515065361}
- 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_Children: []
- m_Father: {fileID: 4971607475451386690}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 1, y: 1}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: -3, y: -19}
- m_SizeDelta: {x: 157.79, y: 19}
- m_Pivot: {x: 1, y: 1}
---- !u!222 &4971607475515065358
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475515065361}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475515065359
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475515065361}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 0.24313726}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 2
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 5
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Status
---- !u!1 &4971607475577112186
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475577112185}
- - component: {fileID: 4971607475577112183}
- - component: {fileID: 4971607475577112184}
- m_Layer: 5
- m_Name: Background
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475577112185
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475577112186}
- 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_Children: []
- m_Father: {fileID: 4971607477202590071}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607475577112183
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475577112186}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475577112184
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475577112186}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.39215687, g: 0.58431375, b: 0.92941177, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 0}
- m_Type: 0
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!1 &4971607475626354595
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475626354594}
- - component: {fileID: 4971607475626354592}
- - component: {fileID: 4971607475626354593}
- - component: {fileID: 7202607427830828079}
- m_Layer: 5
- m_Name: Text
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475626354594
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475626354595}
- 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_Children: []
- m_Father: {fileID: 4971607477325490914}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 20}
- m_Pivot: {x: 0, y: 1}
---- !u!222 &4971607475626354592
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475626354595}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475626354593
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475626354595}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 0.23137255, b: 0.5803922, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 1
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 3
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Action
---- !u!114 &7202607427830828079
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475626354595}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: 50
- m_PreferredHeight: -1
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
---- !u!1 &4971607475641435052
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475641435051}
- - component: {fileID: 4971607475641435048}
- - component: {fileID: 4971607475641435049}
- - component: {fileID: 4971607475641435050}
- m_Layer: 5
- m_Name: Scrollbar Vertical
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475641435051
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475641435052}
- 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_Children:
- - {fileID: 4971607477557945088}
- m_Father: {fileID: 4971607476994082406}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 1, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 20, y: 0}
- m_Pivot: {x: 1, y: 1}
---- !u!222 &4971607475641435048
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475641435052}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475641435049
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475641435052}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.24313726, g: 0.24313726, b: 0.24313726, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!114 &4971607475641435050
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475641435052}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 0.4117647, g: 0.4117647, b: 0.4117647, a: 1}
- m_HighlightedColor: {r: 0.41176474, g: 0.41176474, b: 0.41176474, a: 1}
- m_PressedColor: {r: 0.41176474, g: 0.41176474, b: 0.41176474, a: 1}
- m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 4971607476873278911}
- m_HandleRect: {fileID: 4971607476873278848}
- m_Direction: 2
- m_Value: 0
- m_Size: 1
- m_NumberOfSteps: 0
- m_OnValueChanged:
- m_PersistentCalls:
- m_Calls: []
---- !u!1 &4971607475644947933
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475644947932}
- - component: {fileID: 2647107856379666145}
- m_Layer: 5
- m_Name: Content
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475644947932
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475644947933}
- 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_Children: []
- m_Father: {fileID: 4971607476994082406}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 1}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: -0.000015258789}
- m_SizeDelta: {x: 0, y: 22}
- m_Pivot: {x: 0.5, y: 1}
---- !u!114 &2647107856379666145
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475644947933}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Padding:
- m_Left: 5
- m_Right: 5
- m_Top: 0
- m_Bottom: 0
- m_ChildAlignment: 0
- m_Spacing: 4
- m_ChildForceExpandWidth: 1
- m_ChildForceExpandHeight: 1
- m_ChildControlWidth: 1
- m_ChildControlHeight: 0
---- !u!1 &4971607475748769787
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475748769786}
- - component: {fileID: 4971607475748769783}
- - component: {fileID: 4971607475748769784}
- m_Layer: 5
- m_Name: TitleBar
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475748769786
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475748769787}
- 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_Children:
- - {fileID: 4971607476042025200}
- m_Father: {fileID: 4971607475451386690}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 1}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 20}
- m_Pivot: {x: 0.5, y: 1}
---- !u!222 &4971607475748769783
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475748769787}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475748769784
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475748769787}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.31764707, g: 0.31764707, b: 0.31764707, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!1 &4971607475793899370
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475793899369}
- - component: {fileID: 4971607475793899366}
- - component: {fileID: 4971607475793899367}
- - component: {fileID: 4971607475793899368}
- m_Layer: 5
- m_Name: ButtonRefresh
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475793899369
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475793899370}
- 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_Children:
- - {fileID: 4971607476258920763}
- m_Father: {fileID: 4971607477083899161}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0.5}
- m_AnchorMax: {x: 0, y: 0.5}
- m_AnchoredPosition: {x: 2, y: 0}
- m_SizeDelta: {x: 260, y: 20}
- m_Pivot: {x: 0, y: 0.5}
---- !u!222 &4971607475793899366
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475793899370}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475793899367
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475793899370}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!114 &4971607475793899368
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475793899370}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 0.32156864, g: 0.32156864, b: 0.32156864, a: 1}
- m_HighlightedColor: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
- m_PressedColor: {r: 0.3882353, g: 0.3882353, b: 0.3882353, a: 1}
- m_DisabledColor: {r: 0.3882353, g: 0.3882353, b: 0.3882353, a: 0.2509804}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 4971607475793899367}
- m_OnClick:
- m_PersistentCalls:
- m_Calls: []
---- !u!1 &4971607475797070506
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607475797070505}
- - component: {fileID: 4971607475797070502}
- - component: {fileID: 4971607475797070503}
- - component: {fileID: 4971607475797070504}
- m_Layer: 5
- m_Name: ButtonServerOnly
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607475797070505
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475797070506}
- 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_Children:
- - {fileID: 4971607476892233254}
- m_Father: {fileID: 4971607477083899161}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 1, y: 0.5}
- m_AnchorMax: {x: 1, y: 0.5}
- m_AnchoredPosition: {x: -2, y: 0}
- m_SizeDelta: {x: 260, y: 20}
- m_Pivot: {x: 1, y: 0.5}
---- !u!222 &4971607475797070502
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475797070506}
- m_CullTransparentMesh: 0
---- !u!114 &4971607475797070503
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475797070506}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!114 &4971607475797070504
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607475797070506}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 0.32156864, g: 0.32156864, b: 0.32156864, a: 1}
- m_HighlightedColor: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
- m_PressedColor: {r: 0.3882353, g: 0.3882353, b: 0.3882353, a: 1}
- m_DisabledColor: {r: 0.3882353, g: 0.3882353, b: 0.3882353, a: 0.2509804}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 4971607475797070503}
- m_OnClick:
- m_PersistentCalls:
- m_Calls: []
---- !u!1 &4971607476029058371
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476029058370}
- - component: {fileID: 4971607476029058368}
- - component: {fileID: 4971607476029058369}
- - component: {fileID: 1412813690393573607}
- m_Layer: 5
- m_Name: Text
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476029058370
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476029058371}
- 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_Children: []
- m_Father: {fileID: 4971607477325490914}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 20}
- m_Pivot: {x: 0, y: 1}
---- !u!222 &4971607476029058368
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476029058371}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476029058369
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476029058371}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 0.23137255, b: 0.5803922, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 1
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 3
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Server Name
---- !u!114 &1412813690393573607
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476029058371}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: 250
- m_PreferredHeight: -1
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
---- !u!1 &4971607476042025201
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476042025200}
- - component: {fileID: 4971607476042025198}
- - component: {fileID: 4971607476042025199}
- m_Layer: 5
- m_Name: TextTitle
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476042025200
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476042025201}
- 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_Children: []
- m_Father: {fileID: 4971607475748769786}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0.5}
- m_AnchorMax: {x: 1, y: 0.5}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: -36, y: 20}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607476042025198
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476042025201}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476042025199
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476042025201}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.23137255, g: 1, b: 0.6862745, a: 1}
- m_RaycastTarget: 0
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 14
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Mirror Cloud Services Demo
---- !u!1 &4971607476137863973
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476137863972}
- - component: {fileID: 4971607476137863970}
- - component: {fileID: 4971607476137863971}
- m_Layer: 5
- m_Name: Text
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476137863972
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476137863973}
- 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_Children: []
- m_Father: {fileID: 4971607476488526554}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607476137863970
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476137863973}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476137863971
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476137863973}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Cancel
---- !u!1 &4971607476213912987
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476213912986}
- - component: {fileID: 4971607476213912984}
- - component: {fileID: 4971607476213912985}
- m_Layer: 5
- m_Name: TextStatus
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476213912986
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476213912987}
- 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_Children: []
- m_Father: {fileID: 4971607476985653604}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 1}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: -29}
- m_SizeDelta: {x: 0, y: 18}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607476213912984
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476213912987}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476213912985
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476213912987}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 1
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Status
---- !u!1 &4971607476240074240
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476240074303}
- - component: {fileID: 4971607476240074301}
- - component: {fileID: 4971607476240074302}
- m_Layer: 5
- m_Name: TextJoinServer
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476240074303
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476240074240}
- 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_Children: []
- m_Father: {fileID: 4971607475451386690}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 1}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: -29}
- m_SizeDelta: {x: 0, y: 18}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607476240074301
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476240074240}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476240074302
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476240074240}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 1
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Join Server
---- !u!1 &4971607476258920764
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476258920763}
- - component: {fileID: 4971607476258920761}
- - component: {fileID: 4971607476258920762}
- m_Layer: 5
- m_Name: Text
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476258920763
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476258920764}
- 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_Children: []
- m_Father: {fileID: 4971607475793899369}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607476258920761
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476258920764}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476258920762
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476258920764}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Refresh
---- !u!1 &4971607476373752082
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476373752081}
- - component: {fileID: 4971607476373752079}
- - component: {fileID: 4971607476373752080}
- - component: {fileID: 5475127446238777370}
- m_Layer: 5
- m_Name: Text
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476373752081
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476373752082}
- 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_Children: []
- m_Father: {fileID: 4971607477325490914}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 20}
- m_Pivot: {x: 0, y: 1}
---- !u!222 &4971607476373752079
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476373752082}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476373752080
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476373752082}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 0.23137255, b: 0.5803922, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 1
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 3
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Players
---- !u!114 &5475127446238777370
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476373752082}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: 50
- m_PreferredHeight: -1
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
---- !u!1 &4971607476435516857
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476435516856}
- - component: {fileID: 4971607476435516854}
- - component: {fileID: 4971607476435516855}
- - component: {fileID: 3191646931833320471}
- m_Layer: 5
- m_Name: Text
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476435516856
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476435516857}
- 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_Children: []
- m_Father: {fileID: 4971607477325490914}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 20}
- m_Pivot: {x: 0, y: 1}
---- !u!222 &4971607476435516854
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476435516857}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476435516855
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476435516857}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 0.23137255, b: 0.5803922, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 1
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 3
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Address
---- !u!114 &3191646931833320471
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476435516857}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: 100
- m_PreferredHeight: -1
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
---- !u!1 &4971607476488526555
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476488526554}
- - component: {fileID: 4971607476488526551}
- - component: {fileID: 4971607476488526552}
- - component: {fileID: 4971607476488526553}
- m_Layer: 5
- m_Name: ButtonCancel
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476488526554
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476488526555}
- 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_Children:
- - {fileID: 4971607476137863972}
- m_Father: {fileID: 4971607476985653604}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 0}
- m_AnchoredPosition: {x: 4, y: 16}
- m_SizeDelta: {x: -8, y: 20}
- m_Pivot: {x: 0, y: 0.5}
---- !u!222 &4971607476488526551
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476488526555}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476488526552
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476488526555}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!114 &4971607476488526553
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476488526555}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 0.32156864, g: 0.32156864, b: 0.32156864, a: 1}
- m_HighlightedColor: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
- m_PressedColor: {r: 0.3882353, g: 0.3882353, b: 0.3882353, a: 1}
- m_DisabledColor: {r: 0.3882353, g: 0.3882353, b: 0.3882353, a: 0.2509804}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 4971607476488526552}
- m_OnClick:
- m_PersistentCalls:
- m_Calls: []
---- !u!1 &4971607476873278849
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476873278848}
- - component: {fileID: 4971607476873278910}
- - component: {fileID: 4971607476873278911}
- m_Layer: 5
- m_Name: Handle
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476873278848
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476873278849}
- 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_Children: []
- m_Father: {fileID: 4971607477557945088}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 20, y: 20}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607476873278910
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476873278849}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476873278911
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476873278849}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!1 &4971607476892233255
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476892233254}
- - component: {fileID: 4971607476892233252}
- - component: {fileID: 4971607476892233253}
- m_Layer: 5
- m_Name: Text
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476892233254
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476892233255}
- 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_Children: []
- m_Father: {fileID: 4971607475797070505}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607476892233252
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476892233255}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476892233253
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476892233255}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Server Only
---- !u!1 &4971607476965432305
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476965432301}
- - component: {fileID: 4971607476965432302}
- - component: {fileID: 4971607476965432303}
- - component: {fileID: 4971607476965432304}
- - component: {fileID: 1640965657294869647}
- m_Layer: 5
- m_Name: ListServer Canvas
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476965432301
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476965432305}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 0, y: 0, z: 0}
- m_Children:
- - {fileID: 4971607477202590071}
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0, y: 0}
---- !u!223 &4971607476965432302
-Canvas:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476965432305}
- m_Enabled: 1
- serializedVersion: 3
- m_RenderMode: 0
- m_Camera: {fileID: 0}
- m_PlaneDistance: 100
- m_PixelPerfect: 1
- m_ReceivesEvents: 1
- m_OverrideSorting: 0
- m_OverridePixelPerfect: 0
- m_SortingBucketNormalizedSize: 0
- m_AdditionalShaderChannelsFlag: 0
- m_SortingLayerID: 0
- m_SortingOrder: 0
- m_TargetDisplay: 0
---- !u!114 &4971607476965432303
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476965432305}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_UiScaleMode: 1
- m_ReferencePixelsPerUnit: 100
- m_ScaleFactor: 1
- m_ReferenceResolution: {x: 1280, y: 720}
- m_ScreenMatchMode: 0
- m_MatchWidthOrHeight: 0
- m_PhysicalUnit: 3
- m_FallbackScreenDPI: 96
- m_DefaultSpriteDPI: 96
- m_DynamicPixelsPerUnit: 1
---- !u!114 &4971607476965432304
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476965432305}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreReversedGraphics: 1
- m_BlockingObjects: 0
- m_BlockingMask:
- serializedVersion: 2
- m_Bits: 4294967295
---- !u!114 &1640965657294869647
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476965432305}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: bfc354d4a7f63ca45a653bf5d479afa0, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- listUI: {fileID: 4251621586964734305}
- refreshButton: {fileID: 4971607475793899368}
- startServerButton: {fileID: 4971607475797070504}
- autoRefreshServerlist: 1
- refreshinterval: 20
---- !u!1 &4971607476985653605
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476985653604}
- - component: {fileID: 4971607476985653602}
- - component: {fileID: 4971607476985653603}
- m_Layer: 5
- m_Name: ConnectingPanel
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 0
---- !u!224 &4971607476985653604
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476985653605}
- 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_Children:
- - {fileID: 4971607475471872080}
- - {fileID: 4971607476213912986}
- - {fileID: 4971607477294315701}
- - {fileID: 4971607476488526554}
- m_Father: {fileID: 4971607477202590071}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.5, y: 0.5}
- m_AnchorMax: {x: 0.5, y: 0.5}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 250, y: 100}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607476985653602
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476985653605}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476985653603
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476985653605}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.19215687, g: 0.19215687, b: 0.19215687, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!1 &4971607476994082407
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607476994082406}
- - component: {fileID: 4251621586964734305}
- - component: {fileID: 4971607476994082402}
- - component: {fileID: 4971607476994082403}
- - component: {fileID: 4971607476994082404}
- - component: {fileID: 4971607476994082405}
- m_Layer: 5
- m_Name: ServerList Scroll View
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607476994082406
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476994082407}
- 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_Children:
- - {fileID: 4971607475644947932}
- - {fileID: 4971607475641435051}
- m_Father: {fileID: 4971607475451386690}
- m_RootOrder: 4
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: -13}
- m_SizeDelta: {x: -2, y: -86}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &4251621586964734305
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476994082407}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: ed11184fcffcdc04c9850d82c8014926, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- itemPrefab: {fileID: 4474820569724777087, guid: 37cfbf43e3fc8d046ac443022029d319,
- type: 3}
- parent: {fileID: 4971607475644947932}
---- !u!114 &4971607476994082402
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476994082407}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Content: {fileID: 4971607475644947932}
- m_Horizontal: 0
- m_Vertical: 1
- m_MovementType: 2
- m_Elasticity: 0.1
- m_Inertia: 1
- m_DecelerationRate: 0.135
- m_ScrollSensitivity: 1
- m_Viewport: {fileID: 0}
- m_HorizontalScrollbar: {fileID: 0}
- m_VerticalScrollbar: {fileID: 4971607475641435050}
- m_HorizontalScrollbarVisibility: 2
- m_VerticalScrollbarVisibility: 1
- m_HorizontalScrollbarSpacing: -3
- m_VerticalScrollbarSpacing: -3
- m_OnValueChanged:
- m_PersistentCalls:
- m_Calls: []
---- !u!222 &4971607476994082403
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476994082407}
- m_CullTransparentMesh: 0
---- !u!114 &4971607476994082404
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476994082407}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.25882354, g: 0.25882354, b: 0.25882354, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!114 &4971607476994082405
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607476994082407}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_ShowMaskGraphic: 1
---- !u!1 &4971607477083899162
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607477083899161}
- - component: {fileID: 4971607477083899159}
- - component: {fileID: 4971607477083899160}
- m_Layer: 5
- m_Name: PanelStartServer
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607477083899161
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477083899162}
- 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_Children:
- - {fileID: 4971607475793899369}
- - {fileID: 4971607475797070505}
- m_Father: {fileID: 4971607475451386690}
- m_RootOrder: 5
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 0}
- m_AnchoredPosition: {x: 0, y: 16}
- m_SizeDelta: {x: -4, y: 28}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607477083899159
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477083899162}
- m_CullTransparentMesh: 0
---- !u!114 &4971607477083899160
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477083899162}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.25882354, g: 0.25882354, b: 0.25882354, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!1 &4971607477294315702
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607477294315701}
- - component: {fileID: 4971607477294315699}
- - component: {fileID: 4971607477294315700}
- m_Layer: 5
- m_Name: TextConnecting
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607477294315701
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477294315702}
- 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_Children: []
- m_Father: {fileID: 4971607476985653604}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0.5}
- m_AnchorMax: {x: 1, y: 0.5}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 20}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607477294315699
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477294315702}
- m_CullTransparentMesh: 0
---- !u!114 &4971607477294315700
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477294315702}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 0.23137255, b: 0.5803922, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 1
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Connecting...
---- !u!1 &4971607477307762875
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607477307762874}
- - component: {fileID: 4971607477307762872}
- - component: {fileID: 4971607477307762873}
- m_Layer: 5
- m_Name: TextTitle
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607477307762874
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477307762875}
- 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_Children: []
- m_Father: {fileID: 4971607475471872080}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0.5}
- m_AnchorMax: {x: 1, y: 0.5}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: -36, y: 20}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607477307762872
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477307762875}
- m_CullTransparentMesh: 0
---- !u!114 &4971607477307762873
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477307762875}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.23137255, g: 1, b: 0.6862745, a: 1}
- m_RaycastTarget: 0
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 14
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text:
---- !u!1 &4971607477325490915
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607477325490914}
- - component: {fileID: 4971607477325490912}
- - component: {fileID: 4971607477325490913}
- - component: {fileID: 4346059805251566766}
- m_Layer: 5
- m_Name: PanelTableHeader
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607477325490914
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477325490915}
- 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_Children:
- - {fileID: 4971607476029058370}
- - {fileID: 4971607476373752081}
- - {fileID: 4971607476435516856}
- - {fileID: 4971607475626354594}
- m_Father: {fileID: 4971607475451386690}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 1}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: -0.5, y: -48}
- m_SizeDelta: {x: -1, y: 20}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &4971607477325490912
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477325490915}
- m_CullTransparentMesh: 0
---- !u!114 &4971607477325490913
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477325490915}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.25882354, g: 0.25882354, b: 0.25882354, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!114 &4346059805251566766
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477325490915}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Padding:
- m_Left: 5
- m_Right: 5
- m_Top: 0
- m_Bottom: 0
- m_ChildAlignment: 0
- m_Spacing: 0
- m_ChildForceExpandWidth: 1
- m_ChildForceExpandHeight: 1
- m_ChildControlWidth: 1
- m_ChildControlHeight: 0
---- !u!1 &4971607477557945089
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4971607477557945088}
- m_Layer: 5
- m_Name: Sliding Area
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &4971607477557945088
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4971607477557945089}
- 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_Children:
- - {fileID: 4971607476873278848}
- m_Father: {fileID: 4971607475641435051}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: -20, y: -20}
- m_Pivot: {x: 0.5, y: 0.5}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ListServer Canvas.prefab.meta b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ListServer Canvas.prefab.meta
deleted file mode 100644
index 2c5e3d6..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ListServer Canvas.prefab.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: e16e442bbd8d4434cb606afd72bcd08b
-PrefabImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ServerListItem.prefab b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ServerListItem.prefab
deleted file mode 100644
index dbcc360..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ServerListItem.prefab
+++ /dev/null
@@ -1,626 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1 &1009505356919436
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 224428085307354514}
- - component: {fileID: 222534217462828066}
- - component: {fileID: 114077992825021022}
- - component: {fileID: 9086842666106688486}
- m_Layer: 5
- m_Name: TextPlayers
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &224428085307354514
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1009505356919436}
- 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_Children: []
- m_Father: {fileID: 224813910264502154}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 16}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &222534217462828066
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1009505356919436}
- m_CullTransparentMesh: 0
---- !u!114 &114077992825021022
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1009505356919436}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 3
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: '[Players]'
---- !u!114 &9086842666106688486
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1009505356919436}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: 50
- m_PreferredHeight: -1
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
---- !u!1 &1259177336467004
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 224813910264502154}
- - component: {fileID: 222443701544564472}
- - component: {fileID: 114424214131292870}
- - component: {fileID: 114618400118094574}
- - component: {fileID: 4474820569724777087}
- m_Layer: 5
- m_Name: ServerListItem
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &224813910264502154
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1259177336467004}
- 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_Children:
- - {fileID: 224596263305646570}
- - {fileID: 224428085307354514}
- - {fileID: 2588874080615256095}
- - {fileID: 224530003443674914}
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 514, y: 18}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &222443701544564472
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1259177336467004}
- m_CullTransparentMesh: 0
---- !u!114 &114424214131292870
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1259177336467004}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!114 &114618400118094574
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1259177336467004}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Padding:
- m_Left: 0
- m_Right: 0
- m_Top: 0
- m_Bottom: 0
- m_ChildAlignment: 0
- m_Spacing: 0
- m_ChildForceExpandWidth: 1
- m_ChildForceExpandHeight: 1
- m_ChildControlWidth: 1
- m_ChildControlHeight: 0
---- !u!114 &4474820569724777087
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1259177336467004}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: c67eda1b451338a428df87fda1e3a7c9, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- nameText: {fileID: 114105517410707240}
- namePlayers: {fileID: 114077992825021022}
- playersFormat: '{0} / {1}'
- addressText: {fileID: 1711666012325280996}
- joinButton: {fileID: 114358377111651776}
---- !u!1 &1368168976437814
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 224596263305646570}
- - component: {fileID: 222703717971346548}
- - component: {fileID: 114105517410707240}
- - component: {fileID: 1575265727429870122}
- m_Layer: 5
- m_Name: TextTitle
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &224596263305646570
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1368168976437814}
- 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_Children: []
- m_Father: {fileID: 224813910264502154}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 16}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &222703717971346548
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1368168976437814}
- m_CullTransparentMesh: 0
---- !u!114 &114105517410707240
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1368168976437814}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 3
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: '[Title]'
---- !u!114 &1575265727429870122
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1368168976437814}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: 250
- m_PreferredHeight: -1
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
---- !u!1 &1462871638010074
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 224530003443674914}
- - component: {fileID: 222322555260831376}
- - component: {fileID: 114653458098104780}
- - component: {fileID: 114358377111651776}
- - component: {fileID: 3029759900116860951}
- m_Layer: 5
- m_Name: ButtonJoin
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &224530003443674914
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1462871638010074}
- 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_Children:
- - {fileID: 224615151935076648}
- m_Father: {fileID: 224813910264502154}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 18}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &222322555260831376
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1462871638010074}
- m_CullTransparentMesh: 0
---- !u!114 &114653458098104780
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1462871638010074}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
---- !u!114 &114358377111651776
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1462871638010074}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 0.32156864, g: 0.32156864, b: 0.32156864, a: 1}
- m_HighlightedColor: {r: 0.3529412, g: 0.3529412, b: 0.3529412, a: 1}
- m_PressedColor: {r: 0.3882353, g: 0.3882353, b: 0.3882353, a: 1}
- m_DisabledColor: {r: 0.3882353, g: 0.3882353, b: 0.3882353, a: 0.37254903}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 114653458098104780}
- m_OnClick:
- m_PersistentCalls:
- m_Calls: []
---- !u!114 &3029759900116860951
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1462871638010074}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: 50
- m_PreferredHeight: -1
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
---- !u!1 &1575165076438694
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 224615151935076648}
- - component: {fileID: 222903696298421472}
- - component: {fileID: 114447744505293664}
- m_Layer: 5
- m_Name: Text
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &224615151935076648
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1575165076438694}
- 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_Children: []
- m_Father: {fileID: 224530003443674914}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &222903696298421472
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1575165076438694}
- m_CullTransparentMesh: 0
---- !u!114 &114447744505293664
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1575165076438694}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: Join
---- !u!1 &2231260898927249423
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2588874080615256095}
- - component: {fileID: 2389080155505640677}
- - component: {fileID: 1711666012325280996}
- - component: {fileID: 5562993960699473238}
- m_Layer: 5
- m_Name: TextAddress
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2588874080615256095
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2231260898927249423}
- 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_Children: []
- m_Father: {fileID: 224813910264502154}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 16}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &2389080155505640677
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2231260898927249423}
- m_CullTransparentMesh: 0
---- !u!114 &1711666012325280996
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2231260898927249423}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 12
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 3
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: '[Address]'
---- !u!114 &5562993960699473238
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2231260898927249423}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: 100
- m_PreferredHeight: -1
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ServerListItem.prefab.meta b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ServerListItem.prefab.meta
deleted file mode 100644
index 2e930b9..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Prefabs/ServerListItem.prefab.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 37cfbf43e3fc8d046ac443022029d319
-PrefabImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/README.md b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/README.md
deleted file mode 100644
index 2703b4d..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Cloud GUI
-
-This folder contains an example of a List server canvas and scripts that can help set up a GUI.
-
-
-## Other Examples
-
-See `PongWithListServer` or `TanksWithListServer` for playable examples
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/README.md.meta b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/README.md.meta
deleted file mode 100644
index 7e59c07..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/README.md.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 59f7b35f70aa0d34090c75ea13b576e5
-TextScriptImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts.meta b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts.meta
deleted file mode 100644
index baf76f8..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 6c82fa6103a4c0147af4ec3cf57f98d0
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ApiUpdater.cs b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ApiUpdater.cs
deleted file mode 100644
index 38ef24b..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ApiUpdater.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-using System;
-using Mirror.Cloud.ListServerService;
-using UnityEngine;
-
-namespace Mirror.Cloud.Example
-{
- ///
- /// This component should be put on the NetworkManager object
- ///
- public class ApiUpdater : MonoBehaviour
- {
- [SerializeField] NetworkManagerListServer manager;
- [SerializeField] ApiConnector connector;
- public string gameName = "Game";
-
- void Awake()
- {
- if (manager == null)
- {
- manager = FindObjectOfType();
- }
- if (connector == null)
- {
- connector = manager.GetComponent();
- }
-
- Debug.Assert(manager != null, "ApiUpdater could not find NetworkManagerListServer");
- Debug.Assert(connector != null, "ApiUpdater could not find ApiConnector");
-
- manager.onPlayerListChanged += onPlayerListChanged;
- manager.onServerStarted += ServerStartedHandler;
- manager.onServerStopped += ServerStoppedHandler;
- }
-
- void OnDestroy()
- {
- if (manager != null)
- {
- manager.onPlayerListChanged -= onPlayerListChanged;
- manager.onServerStarted -= ServerStartedHandler;
- manager.onServerStopped -= ServerStoppedHandler;
- }
- }
-
- void onPlayerListChanged(int playerCount)
- {
- if (connector.ListServer.ServerApi.ServerInList)
- {
- // update player count so that other players can see
- if (playerCount < manager.maxConnections)
- {
- Debug.Log($"Updating Server, player count: {playerCount} ");
- connector.ListServer.ServerApi.UpdateServer(playerCount);
- }
- // remove server when there is max players
- else
- {
- Debug.Log($"Removing Server, player count: {playerCount}");
- connector.ListServer.ServerApi.RemoveServer();
- }
- }
- else
- {
- // if not in list, and player counts drops below 2, add server to list
- if (playerCount < 2)
- {
- Debug.Log($"Adding Server, player count: {playerCount}");
- AddServer(playerCount);
- }
- }
- }
-
- void ServerStartedHandler()
- {
- AddServer(0);
- }
-
- void AddServer(int playerCount)
- {
- Transport transport = Transport.activeTransport;
-
- Uri uri = transport.ServerUri();
- int port = uri.Port;
- string protocol = uri.Scheme;
-
- connector.ListServer.ServerApi.AddServer(new ServerJson
- {
- displayName = $"{gameName} {(UnityEngine.Random.value * 1000).ToString("0")}",
- protocol = protocol,
- port = port,
- maxPlayerCount = NetworkManager.singleton.maxConnections,
- playerCount = playerCount
- });
- }
-
- void ServerStoppedHandler()
- {
- connector.ListServer.ServerApi.RemoveServer();
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/InstantiateNetworkManager.cs b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/InstantiateNetworkManager.cs
deleted file mode 100644
index d3c343d..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/InstantiateNetworkManager.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using UnityEngine;
-
-namespace Mirror.Cloud.Examples
-{
- ///
- /// Instantiate a new NetworkManager if one does not already exist
- ///
- public class InstantiateNetworkManager : MonoBehaviour
- {
- public GameObject prefab;
-
- void Awake()
- {
- if (NetworkManager.singleton == null)
- {
- Instantiate(prefab);
- }
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/Mirror.Examples.Cloud.GUI.asmdef b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/Mirror.Examples.Cloud.GUI.asmdef
deleted file mode 100644
index 9f621c8..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/Mirror.Examples.Cloud.GUI.asmdef
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": "Mirror.Examples.Cloud.GUI",
- "references": [
- "Mirror",
- "Mirror.Cloud"
- ],
- "optionalUnityReferences": [],
- "includePlatforms": [],
- "excludePlatforms": [],
- "allowUnsafeCode": false,
- "overrideReferences": false,
- "precompiledReferences": [],
- "autoReferenced": true,
- "defineConstraints": []
-}
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/Mirror.Examples.Cloud.GUI.asmdef.meta b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/Mirror.Examples.Cloud.GUI.asmdef.meta
deleted file mode 100644
index f19330d..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/Mirror.Examples.Cloud.GUI.asmdef.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 3a6616cce1637584a82fc72820ffd75c
-AssemblyDefinitionImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/NetworkManagerListServer.cs b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/NetworkManagerListServer.cs
deleted file mode 100644
index 498d037..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/NetworkManagerListServer.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using System;
-
-namespace Mirror.Cloud.Example
-{
- ///
- /// Network Manager with events that are used by the list server
- ///
- public class NetworkManagerListServer : NetworkManager
- {
- ///
- /// Called when Server Starts
- ///
- public event Action onServerStarted;
-
- ///
- /// Called when Server Stops
- ///
- public event Action onServerStopped;
-
- ///
- /// Called when players leaves or joins the room
- ///
- public event OnPlayerListChanged onPlayerListChanged;
-
- public delegate void OnPlayerListChanged(int playerCount);
-
-
- int connectionCount => NetworkServer.connections.Count;
-
- public override void OnServerConnect(NetworkConnection conn)
- {
- int count = connectionCount;
- if (count > maxConnections)
- {
- conn.Disconnect();
- return;
- }
-
- onPlayerListChanged?.Invoke(count);
- }
-
- public override void OnServerDisconnect(NetworkConnection conn)
- {
- base.OnServerDisconnect(conn);
- onPlayerListChanged?.Invoke(connectionCount);
- }
-
- public override void OnStartServer()
- {
- onServerStarted?.Invoke();
- }
-
- public override void OnStopServer()
- {
- onServerStopped?.Invoke();
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuickListServerDebug.cs b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuickListServerDebug.cs
deleted file mode 100644
index 19c365e..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuickListServerDebug.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using Mirror.Cloud.ListServerService;
-using UnityEngine;
-
-namespace Mirror.Cloud.Example
-{
- ///
- /// This Script can be used to test the list server without needing to use canvas or other UI
- ///
- public class QuickListServerDebug : MonoBehaviour
- {
- ApiConnector connector;
- ServerCollectionJson? collection;
-
- void Start()
- {
- NetworkManager manager = NetworkManager.singleton;
- connector = manager.GetComponent();
-
- connector.ListServer.ClientApi.onServerListUpdated += ClientApi_onServerListUpdated;
- }
-
- void ClientApi_onServerListUpdated(ServerCollectionJson arg0)
- {
- collection = arg0;
- }
-
- public void OnGUI()
- {
- GUILayout.Label("List Server");
- if (GUILayout.Button("Refresh"))
- {
- connector.ListServer.ClientApi.GetServerList();
- }
- GUILayout.Space(40);
-
- if (collection != null)
- {
- GUILayout.Label("Servers:");
- foreach (ServerJson item in collection.Value.servers)
- {
- GUILayout.Label($"{item.displayName}, {item.address}, {item.playerCount}/{item.maxPlayerCount}");
- }
- }
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuitButtonHUD.cs b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuitButtonHUD.cs
deleted file mode 100644
index 71fe179..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuitButtonHUD.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using UnityEngine;
-
-namespace Mirror.Examples.Pong
-{
- ///
- /// Similar to NetworkManagerHUD but just quit buttons
- ///
- public class QuitButtonHUD : MonoBehaviour
- {
- void OnGUI()
- {
- NetworkManager manager = NetworkManager.singleton;
- if (manager == null)
- return;
-
- if (manager.mode == NetworkManagerMode.ServerOnly)
- {
- if (GUILayout.Button("Stop Server"))
- {
- manager.StopServer();
- }
- }
- else if (manager.mode == NetworkManagerMode.Host)
- {
- if (GUILayout.Button("Stop Host"))
- {
- manager.StopHost();
- }
- }
- else if (manager.mode == NetworkManagerMode.ClientOnly)
- {
- if (GUILayout.Button("Stop Client"))
- {
- manager.StopClient();
- }
- }
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListManager.cs b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListManager.cs
deleted file mode 100644
index 14e8e2e..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListManager.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using UnityEngine;
-using UnityEngine.UI;
-
-namespace Mirror.Cloud.Example
-{
- ///
- /// Uses the ApiConnector on NetworkManager to update the Server list
- ///
- public class ServerListManager : MonoBehaviour
- {
- [Header("UI")]
- [SerializeField] ServerListUI listUI = null;
-
- [Header("Buttons")]
- [SerializeField] Button refreshButton = null;
- [SerializeField] Button startServerButton = null;
-
-
- [Header("Auto Refresh")]
- [SerializeField] bool autoRefreshServerlist = false;
- [SerializeField] int refreshinterval = 20;
-
- ApiConnector connector;
-
- void Start()
- {
- NetworkManager manager = NetworkManager.singleton;
- connector = manager.GetComponent();
-
- connector.ListServer.ClientApi.onServerListUpdated += listUI.UpdateList;
-
- if (autoRefreshServerlist)
- {
- connector.ListServer.ClientApi.StartGetServerListRepeat(refreshinterval);
- }
-
- AddButtonHandlers();
- }
-
- void AddButtonHandlers()
- {
- refreshButton.onClick.AddListener(RefreshButtonHandler);
- startServerButton.onClick.AddListener(StartServerButtonHandler);
- }
-
- void OnDestroy()
- {
- if (connector == null)
- return;
-
- if (autoRefreshServerlist)
- {
- connector.ListServer.ClientApi.StopGetServerListRepeat();
- }
-
- connector.ListServer.ClientApi.onServerListUpdated -= listUI.UpdateList;
- }
-
- public void RefreshButtonHandler()
- {
- connector.ListServer.ClientApi.GetServerList();
- }
-
- public void StartServerButtonHandler()
- {
- NetworkManager.singleton.StartServer();
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUI.cs b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUI.cs
deleted file mode 100644
index f42e459..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUI.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System.Collections.Generic;
-using Mirror.Cloud.ListServerService;
-using UnityEngine;
-
-namespace Mirror.Cloud.Example
-{
- ///
- /// Displays the list of servers
- ///
- public class ServerListUI : MonoBehaviour
- {
- [SerializeField] ServerListUIItem itemPrefab = null;
- [SerializeField] Transform parent = null;
-
- readonly List items = new List();
-
- void OnValidate()
- {
- if (parent == null)
- {
- parent = transform;
- }
- }
-
- public void UpdateList(ServerCollectionJson serverCollection)
- {
- DeleteOldItems();
- CreateNewItems(serverCollection.servers);
- }
-
- void CreateNewItems(ServerJson[] servers)
- {
- foreach (ServerJson server in servers)
- {
- ServerListUIItem clone = Instantiate(itemPrefab, parent);
- clone.Setup(server);
- items.Add(clone);
- }
- }
-
- void DeleteOldItems()
- {
- foreach (ServerListUIItem item in items)
- {
- Destroy(item.gameObject);
- }
-
- items.Clear();
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUIItem.cs b/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUIItem.cs
deleted file mode 100644
index f018a5e..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUIItem.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System;
-using Mirror.Cloud.ListServerService;
-using UnityEngine;
-using UnityEngine.UI;
-
-namespace Mirror.Cloud.Example
-{
- ///
- /// Displays a server created by ServerListUI
- ///
- public class ServerListUIItem : MonoBehaviour
- {
- [SerializeField] Text nameText = null;
- [SerializeField] Text namePlayers = null;
- [SerializeField] string playersFormat = "{0} / {1}";
- [SerializeField] Text addressText = null;
-
- [SerializeField] Button joinButton = null;
-
- ServerJson server;
-
- public void Setup(ServerJson server)
- {
- this.server = server;
- nameText.text = server.displayName;
- namePlayers.text = string.Format(playersFormat, server.playerCount, server.maxPlayerCount);
- addressText.text = server.address;
-
- joinButton.onClick.AddListener(OnJoinClicked);
- }
-
- void OnJoinClicked()
- {
- NetworkManager.singleton.StartClient(new Uri(server.address));
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer.meta
deleted file mode 100644
index 477c2ab..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: ceb3581477b32e44d8e26574395c922e
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials.meta
deleted file mode 100644
index cfda633..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: d8e1da28ca3b5f8438755cdc36d237ed
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials/BallMaterial.physicsMaterial2D b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials/BallMaterial.physicsMaterial2D
deleted file mode 100644
index 137d57e..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials/BallMaterial.physicsMaterial2D
+++ /dev/null
@@ -1,11 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!62 &6200000
-PhysicsMaterial2D:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: BallMaterial
- friction: 0
- bounciness: 1
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials/BallMaterial.physicsMaterial2D.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials/BallMaterial.physicsMaterial2D.meta
deleted file mode 100644
index 91411f7..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/PhysicsMaterials/BallMaterial.physicsMaterial2D.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 2161ffa457162a94e91fbd9aa782e4cb
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 0
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs.meta
deleted file mode 100644
index 13d381b..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 1624cce23d35a294cad9eb3c0969e68f
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Ball.prefab b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Ball.prefab
deleted file mode 100644
index a41772c..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Ball.prefab
+++ /dev/null
@@ -1,189 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1 &1080679924113744
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4700925592147096}
- - component: {fileID: 212107498293566416}
- - component: {fileID: 61279514624852186}
- - component: {fileID: 50354248948880112}
- - component: {fileID: 114290021321007948}
- - component: {fileID: 114692463781779748}
- - component: {fileID: 114121325390084138}
- m_Layer: 0
- m_Name: Ball
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &4700925592147096
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1080679924113744}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -3, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &212107498293566416
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1080679924113744}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, 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: 0
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_Sprite: {fileID: 21300000, guid: 2c19e4cb225706240af7a8fbbf2ebfe2, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 1, y: 1}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!61 &61279514624852186
-BoxCollider2D:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1080679924113744}
- m_Enabled: 1
- m_Density: 1
- m_Material: {fileID: 6200000, guid: 2161ffa457162a94e91fbd9aa782e4cb, type: 2}
- m_IsTrigger: 0
- m_UsedByEffector: 0
- m_UsedByComposite: 0
- m_Offset: {x: 0, y: 0}
- m_SpriteTilingProperty:
- border: {x: 0, y: 0, z: 0, w: 0}
- pivot: {x: 0.5, y: 0.5}
- oldSize: {x: 1, y: 1}
- newSize: {x: 1, y: 1}
- adaptiveTilingThreshold: 0.5
- drawMode: 0
- adaptiveTiling: 0
- m_AutoTiling: 0
- serializedVersion: 2
- m_Size: {x: 1, y: 1}
- m_EdgeRadius: 0
---- !u!50 &50354248948880112
-Rigidbody2D:
- serializedVersion: 4
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1080679924113744}
- m_BodyType: 0
- m_Simulated: 0
- m_UseFullKinematicContacts: 0
- m_UseAutoMass: 0
- m_Mass: 0.0001
- m_LinearDrag: 0
- m_AngularDrag: 0.05
- m_GravityScale: 0
- m_Material: {fileID: 0}
- m_Interpolate: 0
- m_SleepingMode: 1
- m_CollisionDetection: 0
- m_Constraints: 4
---- !u!114 &114290021321007948
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1080679924113744}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- sceneId: 0
- serverOnly: 0
- visible: 0
- m_AssetId:
- hasSpawned: 0
---- !u!114 &114692463781779748
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1080679924113744}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: b4e9cc0829b13e54594a80883836bda7, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- syncMode: 0
- syncInterval: 0.1
- speed: 30
- rigidbody2d: {fileID: 50354248948880112}
---- !u!114 &114121325390084138
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1080679924113744}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 2f74aedd71d9a4f55b3ce499326d45fb, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- syncMode: 0
- syncInterval: 0
- clientAuthority: 0
- localPositionSensitivity: 0.01
- localRotationSensitivity: 0.01
- localScaleSensitivity: 0.01
- compressRotation: 1
- interpolateScale: 0
- syncScale: 0
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Ball.prefab.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Ball.prefab.meta
deleted file mode 100644
index d65bf3b..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Ball.prefab.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: a4b57f17790d9634ea5fd0fe80b214fd
-PrefabImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/NetworkManagerPong.prefab b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/NetworkManagerPong.prefab
deleted file mode 100644
index 2e60cec..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/NetworkManagerPong.prefab
+++ /dev/null
@@ -1,121 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1 &4798169800353248846
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4798169800353248837}
- - component: {fileID: 4798169800353248833}
- - component: {fileID: 5399210850297115757}
- - component: {fileID: 1442807832621757098}
- - component: {fileID: 7877660282335013212}
- m_Layer: 0
- m_Name: NetworkManagerPong
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &4798169800353248837
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4798169800353248846}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &4798169800353248833
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4798169800353248846}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8bdb99a29e179d14cb0acc43f175d9ad, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- ApiAddress: https://mirror-matchmaking-service-n4ovagixja-ew.a.run.app
- ApiKey: AIzaSyA86z6Rvh946XUJ7ZeaK4_CUCpM8g322Uc
- _onServerListUpdated:
- m_PersistentCalls:
- m_Calls: []
---- !u!114 &5399210850297115757
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4798169800353248846}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 1f6e5d5acb5879f45a2235ae0f44dc92, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- manager: {fileID: 0}
- connector: {fileID: 0}
- gameName: Pong Game
---- !u!114 &1442807832621757098
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4798169800353248846}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 068feff770f710141afa4a90063a5e6c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- dontDestroyOnLoad: 1
- runInBackground: 1
- autoStartServerBuild: 1
- showDebugMessages: 0
- serverTickRate: 30
- offlineScene: Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/ListServerLobbyScenePong.unity
- onlineScene: Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/PongGameScene.unity
- transport: {fileID: 7877660282335013212}
- networkAddress: localhost
- maxConnections: 2
- disconnectInactiveConnections: 0
- disconnectInactiveTimeout: 60
- authenticator: {fileID: 0}
- playerPrefab: {fileID: 1240244544407914, guid: 63ff03a40ac17a8488d37b9b4e1ffd3f,
- type: 3}
- autoCreatePlayer: 1
- playerSpawnMethod: 1
- spawnPrefabs:
- - {fileID: 1080679924113744, guid: a4b57f17790d9634ea5fd0fe80b214fd, type: 3}
---- !u!114 &7877660282335013212
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4798169800353248846}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 6b0fecffa3f624585964b0d0eb21b18e, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- Port: 7777
- NoDelay: 1
- Interval: 10
- FastResend: 2
- CongestionWindow: 0
- SendWindowSize: 4096
- ReceiveWindowSize: 4096
- debugLog: 0
- statisticsGUI: 0
- statisticsLog: 0
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/NetworkManagerPong.prefab.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/NetworkManagerPong.prefab.meta
deleted file mode 100644
index aa060b5..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/NetworkManagerPong.prefab.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: f9aa4197a8467cd49a35cba69f73ad73
-PrefabImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Racket.prefab b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Racket.prefab
deleted file mode 100644
index 19bb10e..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Racket.prefab
+++ /dev/null
@@ -1,189 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1 &1240244544407914
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4118252415362944}
- - component: {fileID: 212641192162007874}
- - component: {fileID: 61279767645666242}
- - component: {fileID: 50389918509199184}
- - component: {fileID: 114104497298166850}
- - component: {fileID: 114626868563338794}
- - component: {fileID: 114398896143473162}
- m_Layer: 0
- m_Name: Racket
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &4118252415362944
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1240244544407914}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &212641192162007874
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1240244544407914}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, 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: 0
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_Sprite: {fileID: 21300000, guid: bdb0ccb2f147a3d47abe396bd18c5dbe, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 2, y: 4}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!61 &61279767645666242
-BoxCollider2D:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1240244544407914}
- m_Enabled: 1
- m_Density: 1
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_UsedByEffector: 0
- m_UsedByComposite: 0
- m_Offset: {x: 0, y: 0}
- m_SpriteTilingProperty:
- border: {x: 0, y: 0, z: 0, w: 0}
- pivot: {x: 0.5, y: 0.5}
- oldSize: {x: 2, y: 4}
- newSize: {x: 2, y: 4}
- adaptiveTilingThreshold: 0.5
- drawMode: 0
- adaptiveTiling: 0
- m_AutoTiling: 0
- serializedVersion: 2
- m_Size: {x: 2, y: 4}
- m_EdgeRadius: 0
---- !u!50 &50389918509199184
-Rigidbody2D:
- serializedVersion: 4
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1240244544407914}
- m_BodyType: 0
- m_Simulated: 1
- m_UseFullKinematicContacts: 0
- m_UseAutoMass: 0
- m_Mass: 1
- m_LinearDrag: 0
- m_AngularDrag: 0.05
- m_GravityScale: 0
- m_Material: {fileID: 0}
- m_Interpolate: 1
- m_SleepingMode: 1
- m_CollisionDetection: 1
- m_Constraints: 4
---- !u!114 &114104497298166850
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1240244544407914}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- sceneId: 0
- serverOnly: 0
- visible: 0
- m_AssetId:
- hasSpawned: 0
---- !u!114 &114626868563338794
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1240244544407914}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 2b6cfd54b79bb464dbc6ae7f331ed45f, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- syncMode: 0
- syncInterval: 0.1
- speed: 1500
- rigidbody2d: {fileID: 50389918509199184}
---- !u!114 &114398896143473162
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1240244544407914}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 2f74aedd71d9a4f55b3ce499326d45fb, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- syncMode: 0
- syncInterval: 0
- clientAuthority: 1
- localPositionSensitivity: 0.01
- localRotationSensitivity: 0.01
- localScaleSensitivity: 0.01
- compressRotation: 1
- interpolateScale: 0
- syncScale: 0
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Racket.prefab.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Racket.prefab.meta
deleted file mode 100644
index 5118886..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Prefabs/Racket.prefab.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 63ff03a40ac17a8488d37b9b4e1ffd3f
-PrefabImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/README.md b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/README.md
deleted file mode 100644
index 0049468..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Pong with Cloud List server
-
-This is an example that uses the list server to find games of pong
-
-## Setup
-
-Add the following scenes to build settings
-```
-Mirror\Examples\Cloud\PongWithListServer\Scenes\ListServerLobbyScenePong.unity
-Mirror\Examples\Cloud\PongWithListServer\Scenes\PongGameScene.unity
-```
-> Note: you can not connect to your own public ip address, to test out ServerOnly you will need a 2nd person (or a 2nd internet connection)
-
-## Api Key
-
-Api key on the NetworkManager is a demo key that should not be used in production.
-
-Visit [Mirror Networking](https://mirror-networking.com/list-server/) to get an api key that you can use in your game.
-
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/README.md.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/README.md.meta
deleted file mode 100644
index da5aeca..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/README.md.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 668b542bf443511438b9c50dd68e1091
-TextScriptImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes.meta
deleted file mode 100644
index d737621..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: d41f99f706c19884da8409b895f978d8
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/ListServerLobbyScenePong.unity b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/ListServerLobbyScenePong.unity
deleted file mode 100644
index 723b36e..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/ListServerLobbyScenePong.unity
+++ /dev/null
@@ -1,606 +0,0 @@
-%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, g: 0, b: 0, a: 1}
- m_UseRadianceAmbientProbe: 0
---- !u!157 &3
-LightmapSettings:
- m_ObjectHideFlags: 0
- serializedVersion: 11
- 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: 10
- m_Resolution: 2
- m_BakeResolution: 40
- m_AtlasSize: 1024
- m_AO: 0
- m_AOMaxDistance: 1
- m_CompAOExponent: 1
- m_CompAOExponentDirect: 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_PVRFilterTypeDirect: 0
- m_PVRFilterTypeIndirect: 0
- m_PVRFilterTypeAO: 0
- m_PVRFilteringMode: 1
- m_PVRCulling: 1
- m_PVRFilteringGaussRadiusDirect: 1
- m_PVRFilteringGaussRadiusIndirect: 5
- m_PVRFilteringGaussRadiusAO: 2
- m_PVRFilteringAtrousPositionSigmaDirect: 0.5
- m_PVRFilteringAtrousPositionSigmaIndirect: 2
- m_PVRFilteringAtrousPositionSigmaAO: 1
- m_ShowResolutionOverlay: 1
- m_LightingDataAsset: {fileID: 0}
- m_UseShadowmask: 1
---- !u!196 &4
-NavMeshSettings:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_BuildSettings:
- serializedVersion: 2
- agentTypeID: 0
- agentRadius: 0.5
- agentHeight: 2
- agentSlope: 45
- agentClimb: 0.4
- ledgeDropHeight: 0
- maxJumpAcrossDistance: 0
- minRegionArea: 2
- manualCellSize: 0
- cellSize: 0.16666667
- manualTileSize: 0
- tileSize: 256
- accuratePlacement: 0
- debug:
- m_Flags: 0
- m_NavMeshData: {fileID: 0}
---- !u!1 &460456769
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 460456772}
- - component: {fileID: 460456771}
- m_Layer: 0
- m_Name: Main Camera
- m_TagString: MainCamera
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!20 &460456771
-Camera:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 460456769}
- m_Enabled: 1
- serializedVersion: 2
- m_ClearFlags: 2
- m_BackGroundColor: {r: 0.44313726, g: 0, b: 0.33105087, a: 0}
- m_projectionMatrixMode: 1
- m_SensorSize: {x: 36, y: 24}
- m_LensShift: {x: 0, y: 0}
- m_GateFitMode: 2
- m_FocalLength: 50
- 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 &460456772
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 460456769}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &631456684
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 631456686}
- - component: {fileID: 631456685}
- m_Layer: 0
- m_Name: InstantiateNetworkManager
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &631456685
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 631456684}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: dbabb497385c20346a3c8bda4ae69508, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- prefab: {fileID: 4798169800353248846, guid: f9aa4197a8467cd49a35cba69f73ad73, type: 3}
---- !u!4 &631456686
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 631456684}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1092693834
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1092693837}
- - component: {fileID: 1092693836}
- - component: {fileID: 1092693835}
- m_Layer: 0
- m_Name: EventSystem
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &1092693835
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1092693834}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_HorizontalAxis: Horizontal
- m_VerticalAxis: Vertical
- m_SubmitButton: Submit
- m_CancelButton: Cancel
- m_InputActionsPerSecond: 10
- m_RepeatDelay: 0.5
- m_ForceModuleActive: 0
---- !u!114 &1092693836
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1092693834}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_FirstSelected: {fileID: 0}
- m_sendNavigationEvents: 1
- m_DragThreshold: 10
---- !u!4 &1092693837
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1092693834}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1001 &1621652715
-PrefabInstance:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- m_TransformParent: {fileID: 0}
- m_Modifications:
- - target: {fileID: 2647107856379666145, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_ChildControlWidth
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 2647107856379666145, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Spacing
- value: 4
- objectReference: {fileID: 0}
- - target: {fileID: 2647107856379666145, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Padding.m_Left
- value: 5
- objectReference: {fileID: 0}
- - target: {fileID: 2647107856379666145, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Padding.m_Right
- value: 5
- objectReference: {fileID: 0}
- - target: {fileID: 4346059805251566766, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Padding.m_Left
- value: 5
- objectReference: {fileID: 0}
- - target: {fileID: 4346059805251566766, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Padding.m_Right
- value: 5
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475626354593, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_FontData.m_Alignment
- value: 3
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475626354594, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475626354594, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475626354594, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475626354594, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475641435050, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Value
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475644947932, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.y
- value: 22
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475644947932, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0.000015258789
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475644947932, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475644947932, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.x
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475644947932, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476029058369, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_FontData.m_Alignment
- value: 3
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476029058370, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476029058370, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476029058370, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476029058370, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476373752080, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_FontData.m_Alignment
- value: 3
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476373752081, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476373752081, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476373752081, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476373752081, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476435516855, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_FontData.m_Alignment
- value: 3
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476435516856, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476435516856, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476435516856, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476435516856, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476873278848, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476873278848, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476873278848, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalRotation.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalRotation.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalRotation.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_RootOrder
- value: 3
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Pivot.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Pivot.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432305, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Name
- value: ListServer Canvas
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476985653605, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_IsActive
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607477325490914, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: -0.5
- objectReference: {fileID: 0}
- - target: {fileID: 4971607477325490914, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: -1
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: e16e442bbd8d4434cb606afd72bcd08b, type: 3}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/ListServerLobbyScenePong.unity.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/ListServerLobbyScenePong.unity.meta
deleted file mode 100644
index 21f8b1f..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/ListServerLobbyScenePong.unity.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 1f04219b066ed4646a078c4c3b2b9180
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/PongGameScene.unity b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/PongGameScene.unity
deleted file mode 100644
index 74aca70..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/PongGameScene.unity
+++ /dev/null
@@ -1,949 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!29 &1
-OcclusionCullingSettings:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_OcclusionBakeSettings:
- smallestOccluder: 5
- smallestHole: 0.25
- backfaceThreshold: 100
- m_SceneGUID: 00000000000000000000000000000000
- m_OcclusionCullingData: {fileID: 0}
---- !u!104 &2
-RenderSettings:
- m_ObjectHideFlags: 0
- serializedVersion: 9
- m_Fog: 0
- m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
- m_FogMode: 3
- m_FogDensity: 0.01
- m_LinearFogStart: 0
- m_LinearFogEnd: 300
- m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
- m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
- m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
- m_AmbientIntensity: 1
- m_AmbientMode: 3
- m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
- m_SkyboxMaterial: {fileID: 0}
- m_HaloStrength: 0.5
- m_FlareStrength: 1
- m_FlareFadeSpeed: 3
- m_HaloTexture: {fileID: 0}
- m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
- m_DefaultReflectionMode: 0
- m_DefaultReflectionResolution: 128
- m_ReflectionBounces: 1
- m_ReflectionIntensity: 1
- m_CustomReflection: {fileID: 0}
- m_Sun: {fileID: 0}
- m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
- m_UseRadianceAmbientProbe: 0
---- !u!157 &4
-LightmapSettings:
- m_ObjectHideFlags: 0
- serializedVersion: 11
- m_GIWorkflowMode: 0
- m_GISettings:
- serializedVersion: 2
- m_BounceScale: 1
- m_IndirectOutputScale: 1
- m_AlbedoBoost: 1
- m_EnvironmentLightingMode: 0
- m_EnableBakedLightmaps: 0
- m_EnableRealtimeLightmaps: 0
- m_LightmapEditorSettings:
- serializedVersion: 10
- m_Resolution: 2
- m_BakeResolution: 40
- m_AtlasSize: 1024
- m_AO: 0
- m_AOMaxDistance: 1
- m_CompAOExponent: 0
- m_CompAOExponentDirect: 0
- m_Padding: 2
- m_LightmapParameters: {fileID: 0}
- m_LightmapsBakeMode: 1
- m_TextureCompression: 1
- m_FinalGather: 0
- m_FinalGatherFiltering: 1
- m_FinalGatherRayCount: 1024
- m_ReflectionCompression: 2
- m_MixedBakeMode: 1
- m_BakeBackend: 0
- m_PVRSampling: 1
- m_PVRDirectSampleCount: 32
- m_PVRSampleCount: 500
- m_PVRBounces: 2
- m_PVRFilterTypeDirect: 0
- m_PVRFilterTypeIndirect: 0
- m_PVRFilterTypeAO: 0
- m_PVRFilteringMode: 0
- m_PVRCulling: 1
- m_PVRFilteringGaussRadiusDirect: 1
- m_PVRFilteringGaussRadiusIndirect: 5
- m_PVRFilteringGaussRadiusAO: 2
- m_PVRFilteringAtrousPositionSigmaDirect: 0.5
- m_PVRFilteringAtrousPositionSigmaIndirect: 2
- m_PVRFilteringAtrousPositionSigmaAO: 1
- m_ShowResolutionOverlay: 1
- m_LightingDataAsset: {fileID: 0}
- m_UseShadowmask: 0
---- !u!196 &5
-NavMeshSettings:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_BuildSettings:
- serializedVersion: 2
- agentTypeID: 0
- agentRadius: 0.5
- agentHeight: 2
- agentSlope: 45
- agentClimb: 0.4
- ledgeDropHeight: 0
- maxJumpAcrossDistance: 0
- minRegionArea: 2
- manualCellSize: 0
- cellSize: 0.16666667
- manualTileSize: 0
- tileSize: 256
- accuratePlacement: 0
- debug:
- m_Flags: 0
- m_NavMeshData: {fileID: 0}
---- !u!1 &289876230
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 289876232}
- - component: {fileID: 289876231}
- m_Layer: 0
- m_Name: DottedLine
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!212 &289876231
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 289876230}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, 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_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_Sprite: {fileID: 21300000, guid: 4ca12bae2c4cf2b419098a2a2026123e, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 1, y: 29}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!4 &289876232
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 289876230}
- 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_Children: []
- m_Father: {fileID: 1607538195}
- m_RootOrder: 4
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &473997959
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 473997961}
- - component: {fileID: 473997960}
- m_Layer: 0
- m_Name: RacketSpawnLeft
- m_TagString: Untagged
- m_Icon: {fileID: -964228994112308473, guid: 0000000000000000d000000000000000, type: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &473997960
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 473997959}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 41f84591ce72545258ea98cb7518d8b9, type: 3}
- m_Name:
- m_EditorClassIdentifier:
---- !u!4 &473997961
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 473997959}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -20, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 1420561038}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &753891880
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 753891882}
- - component: {fileID: 753891881}
- - component: {fileID: 753891883}
- m_Layer: 0
- m_Name: WallBottom
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!212 &753891881
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 753891880}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, 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_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_Sprite: {fileID: 21300000, guid: 0e02a5d1b4172d444aa04f1082aed12b, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 1, y: 32}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!4 &753891882
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 753891880}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: -16, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 1607538195}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!61 &753891883
-BoxCollider2D:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 753891880}
- m_Enabled: 1
- m_Density: 1
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_UsedByEffector: 0
- m_UsedByComposite: 0
- m_Offset: {x: 0, y: 0}
- m_SpriteTilingProperty:
- border: {x: 0, y: 0, z: 0, w: 0}
- pivot: {x: 0.5, y: 0.5}
- oldSize: {x: 50, y: 1}
- newSize: {x: 1, y: 32}
- adaptiveTilingThreshold: 0.5
- drawMode: 0
- adaptiveTiling: 0
- m_AutoTiling: 0
- serializedVersion: 2
- m_Size: {x: 50, y: 1}
- m_EdgeRadius: 0
---- !u!1 &1344976652
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1344976655}
- - component: {fileID: 1344976654}
- - component: {fileID: 1344976653}
- m_Layer: 0
- m_Name: Ball Manager
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &1344976653
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1344976652}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 9cc796972dc396a42ba3686bd952e329, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- syncMode: 0
- syncInterval: 0.1
- ballPrefab: {fileID: 1080679924113744, guid: a4b57f17790d9634ea5fd0fe80b214fd, type: 3}
---- !u!114 &1344976654
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1344976652}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- sceneId: 2956121996
- serverOnly: 1
- m_AssetId:
- hasSpawned: 0
---- !u!4 &1344976655
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1344976652}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1352350029
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1352350031}
- - component: {fileID: 1352350030}
- - component: {fileID: 1352350032}
- m_Layer: 0
- m_Name: WallLeft
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!212 &1352350030
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1352350029}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, 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_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_Sprite: {fileID: 21300000, guid: f43241f798f4cf944be80d465435c252, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 1, y: 32}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!4 &1352350031
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1352350029}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -24.5, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 1607538195}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!61 &1352350032
-BoxCollider2D:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1352350029}
- m_Enabled: 1
- m_Density: 1
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_UsedByEffector: 0
- m_UsedByComposite: 0
- m_Offset: {x: 0, y: 0}
- m_SpriteTilingProperty:
- border: {x: 0, y: 0, z: 0, w: 0}
- pivot: {x: 0.5, y: 0.5}
- oldSize: {x: 1, y: 32}
- newSize: {x: 1, y: 32}
- adaptiveTilingThreshold: 0.5
- drawMode: 0
- adaptiveTiling: 0
- m_AutoTiling: 0
- serializedVersion: 2
- m_Size: {x: 1, y: 32}
- m_EdgeRadius: 0
---- !u!1 &1368547944
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1368547946}
- - component: {fileID: 1368547945}
- - component: {fileID: 1368547947}
- m_Layer: 0
- m_Name: WallTop
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!212 &1368547945
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1368547944}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, 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_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_Sprite: {fileID: 21300000, guid: 0e02a5d1b4172d444aa04f1082aed12b, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 50, y: 1}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!4 &1368547946
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1368547944}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 16, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 1607538195}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!61 &1368547947
-BoxCollider2D:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1368547944}
- m_Enabled: 1
- m_Density: 1
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_UsedByEffector: 0
- m_UsedByComposite: 0
- m_Offset: {x: 0, y: 0}
- m_SpriteTilingProperty:
- border: {x: 0, y: 0, z: 0, w: 0}
- pivot: {x: 0.5, y: 0.5}
- oldSize: {x: 50, y: 1}
- newSize: {x: 50, y: 1}
- adaptiveTilingThreshold: 0.5
- drawMode: 0
- adaptiveTiling: 0
- m_AutoTiling: 0
- serializedVersion: 2
- m_Size: {x: 50, y: 1}
- m_EdgeRadius: 0
---- !u!1 &1397990094
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1397990096}
- - component: {fileID: 1397990095}
- m_Layer: 0
- m_Name: RacketSpawnRight
- m_TagString: Untagged
- m_Icon: {fileID: -964228994112308473, guid: 0000000000000000d000000000000000, type: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &1397990095
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1397990094}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 41f84591ce72545258ea98cb7518d8b9, type: 3}
- m_Name:
- m_EditorClassIdentifier:
---- !u!4 &1397990096
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1397990094}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 20, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 1420561038}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1420561037
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1420561038}
- m_Layer: 0
- m_Name: Start Positions
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1420561038
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1420561037}
- 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_Children:
- - {fileID: 473997961}
- - {fileID: 1397990096}
- m_Father: {fileID: 0}
- m_RootOrder: 4
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1575697329
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1575697331}
- - component: {fileID: 1575697330}
- - component: {fileID: 1575697332}
- m_Layer: 0
- m_Name: WallRight
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!212 &1575697330
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1575697329}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, 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_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_Sprite: {fileID: 21300000, guid: f43241f798f4cf944be80d465435c252, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 1, y: 32}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!4 &1575697331
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1575697329}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 24.5, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 1607538195}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!61 &1575697332
-BoxCollider2D:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1575697329}
- m_Enabled: 1
- m_Density: 1
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_UsedByEffector: 0
- m_UsedByComposite: 0
- m_Offset: {x: 0, y: 0}
- m_SpriteTilingProperty:
- border: {x: 0, y: 0, z: 0, w: 0}
- pivot: {x: 0.5, y: 0.5}
- oldSize: {x: 1, y: 32}
- newSize: {x: 1, y: 32}
- adaptiveTilingThreshold: 0.5
- drawMode: 0
- adaptiveTiling: 0
- m_AutoTiling: 0
- serializedVersion: 2
- m_Size: {x: 1, y: 32}
- m_EdgeRadius: 0
---- !u!1 &1599481325
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1599481328}
- - component: {fileID: 1599481327}
- m_Layer: 0
- m_Name: Main Camera
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!20 &1599481327
-Camera:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1599481325}
- m_Enabled: 1
- serializedVersion: 2
- m_ClearFlags: 1
- m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
- m_projectionMatrixMode: 1
- m_SensorSize: {x: 36, y: 24}
- m_LensShift: {x: 0, y: 0}
- m_GateFitMode: 2
- m_FocalLength: 50
- 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: 1
- orthographic size: 40
- m_Depth: 0
- 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 &1599481328
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1599481325}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: -10}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1607538194
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1607538195}
- m_Layer: 0
- m_Name: Table
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1607538195
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1607538194}
- 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_Children:
- - {fileID: 1368547946}
- - {fileID: 753891882}
- - {fileID: 1575697331}
- - {fileID: 1352350031}
- - {fileID: 289876232}
- m_Father: {fileID: 0}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1822812614
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1822812616}
- - component: {fileID: 1822812615}
- m_Layer: 0
- m_Name: Quit Button
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &1822812615
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1822812614}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 76dab753e7255254687cd57985d8d675, type: 3}
- m_Name:
- m_EditorClassIdentifier:
---- !u!4 &1822812616
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1822812614}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/PongGameScene.unity.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/PongGameScene.unity.meta
deleted file mode 100644
index d2895fe..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scenes/PongGameScene.unity.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 75b237ba71346fd4f9b72184410f2190
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts.meta
deleted file mode 100644
index 98f8874..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 34eab05520abb87469a3311727c1d637
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Ball.cs b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Ball.cs
deleted file mode 100644
index 199b1fd..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Ball.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using UnityEngine;
-
-namespace Mirror.Cloud.Examples.Pong
-{
- public class Ball : NetworkBehaviour
- {
- public float speed = 30;
- public Rigidbody2D rigidbody2d;
-
- public override void OnStartServer()
- {
- base.OnStartServer();
-
- // only simulate ball physics on server
- rigidbody2d.simulated = true;
-
- // Serve the ball from left player
- rigidbody2d.velocity = Vector2.right * speed;
- }
-
- float HitFactor(Vector2 ballPos, Vector2 racketPos, float racketHeight)
- {
- // ascii art:
- // || 1 <- at the top of the racket
- // ||
- // || 0 <- at the middle of the racket
- // ||
- // || -1 <- at the bottom of the racket
- return (ballPos.y - racketPos.y) / racketHeight;
- }
-
- // only call this on server
- [ServerCallback]
- void OnCollisionEnter2D(Collision2D col)
- {
- // Note: 'col' holds the collision information. If the
- // Ball collided with a racket, then:
- // col.gameObject is the racket
- // col.transform.position is the racket's position
- // col.collider is the racket's collider
-
- // did we hit a racket? then we need to calculate the hit factor
- if (col.transform.GetComponent())
- {
- // Calculate y direction via hit Factor
- float y = HitFactor(transform.position,
- col.transform.position,
- col.collider.bounds.size.y);
-
- // Calculate x direction via opposite collision
- float x = col.relativeVelocity.x > 0 ? 1 : -1;
-
- // Calculate direction, make length=1 via .normalized
- Vector2 dir = new Vector2(x, y).normalized;
-
- // Set Velocity with dir * speed
- rigidbody2d.velocity = dir * speed;
- }
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/BallManager.cs b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/BallManager.cs
deleted file mode 100644
index 3c43323..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/BallManager.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using Mirror.Cloud.Example;
-using UnityEngine;
-
-namespace Mirror.Cloud.Examples.Pong
-{
- public class BallManager : NetworkBehaviour
- {
- [SerializeField] GameObject ballPrefab = null;
- GameObject ball;
- NetworkManagerListServerPong manager;
-
- public override void OnStartServer()
- {
- manager = (NetworkManager.singleton as NetworkManagerListServerPong);
- manager.onPlayerListChanged += onPlayerListChanged;
- }
- public override void OnStopServer()
- {
- manager.onPlayerListChanged -= onPlayerListChanged;
- }
-
- void onPlayerListChanged(int playerCount)
- {
- if (playerCount >= 2)
- {
- SpawnBall();
- }
- if (playerCount < 2)
- {
- DestroyBall();
- }
- }
-
- void SpawnBall()
- {
- if (ball != null)
- return;
-
- ball = Instantiate(ballPrefab);
- NetworkServer.Spawn(ball);
- }
-
- void DestroyBall()
- {
- if (ball == null)
- return;
-
- // destroy ball
- NetworkServer.Destroy(ball);
- ball = null;
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Mirror.Examples.Cloud.Pong.asmdef b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Mirror.Examples.Cloud.Pong.asmdef
deleted file mode 100644
index 9a5d280..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Mirror.Examples.Cloud.Pong.asmdef
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "Mirror.Examples.Cloud.Pong",
- "references": [
- "Mirror",
- "Mirror.Cloud",
- "Mirror.Examples.Cloud.GUI"
- ],
- "optionalUnityReferences": [],
- "includePlatforms": [],
- "excludePlatforms": [],
- "allowUnsafeCode": false,
- "overrideReferences": false,
- "precompiledReferences": [],
- "autoReferenced": true,
- "defineConstraints": []
-}
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Mirror.Examples.Cloud.Pong.asmdef.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Mirror.Examples.Cloud.Pong.asmdef.meta
deleted file mode 100644
index 15f6cdc..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Mirror.Examples.Cloud.Pong.asmdef.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: f254fa29fb722934c9ecbe22427014cd
-AssemblyDefinitionImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/NetworkManagerListServerPong.cs b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/NetworkManagerListServerPong.cs
deleted file mode 100644
index b2b2105..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/NetworkManagerListServerPong.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using UnityEngine;
-
-namespace Mirror.Cloud.Example
-{
- public sealed class NetworkManagerListServerPong : NetworkManagerListServer
- {
- public override void OnServerAddPlayer(NetworkConnection conn)
- {
- Debug.Assert(startPositions.Count == 2, "Pong Scene should have 2 start Positions");
- // add player at correct spawn position
- Transform startPos = numPlayers == 0 ? startPositions[0] : startPositions[1];
-
- GameObject player = startPos != null
- ? Instantiate(playerPrefab, startPos.position, startPos.rotation)
- : Instantiate(playerPrefab);
-
- NetworkServer.AddPlayerForConnection(conn, player);
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Player.cs b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Player.cs
deleted file mode 100644
index 6fadd8c..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Player.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using UnityEngine;
-
-namespace Mirror.Cloud.Examples.Pong
-{
- public class Player : NetworkBehaviour
- {
- public float speed = 1500;
- public Rigidbody2D rigidbody2d;
-
- // need to use FixedUpdate for rigidbody
- void FixedUpdate()
- {
- // only let the local player control the racket.
- // don't control other player's rackets
- if (!isLocalPlayer)
- return;
-
- rigidbody2d.velocity = new Vector2(0, Input.GetAxisRaw("Vertical")) * speed * Time.fixedDeltaTime;
- }
- }
-}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites.meta b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites.meta
deleted file mode 100644
index 420618f..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: e53836b13b642484a95c5acdd3017d30
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/Ball.png b/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Sprites/Ball.png
deleted file mode 100644
index 20c4387c8b1306491974318a9d601c60207d069f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2791
zcmVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T
zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
zfg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}
t0000INkl)P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T
zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
zfg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}
z0000QNkl*(P)00009a7bBm000XU
z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T
zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
zfg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}
z0000RNklKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T
zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
zfg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}
y0000NNkl*(P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T
zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
zfg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}
z0000RNkl Note: you can not connect to your own public ip address, to test out ServerOnly you will need a 2nd person (or a 2nd internet connection)
-
-## Api Key
-
-Api key on the NetworkManager is a demo key that should not be used in production.
-
-Visit [Mirror Networking](https://mirror-networking.com/list-server/) to get an api key that you can use in your game.
-
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/README.md.meta b/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/README.md.meta
deleted file mode 100644
index 11fa495..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/README.md.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: f100746ca01e2ef4682e18813b248fa9
-TextScriptImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes.meta b/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes.meta
deleted file mode 100644
index 4d77ac9..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 171a7ce331c27824ba49b4bde0488574
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes/ListServerLobbySceneTanks.unity b/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes/ListServerLobbySceneTanks.unity
deleted file mode 100644
index 7e1fd11..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes/ListServerLobbySceneTanks.unity
+++ /dev/null
@@ -1,886 +0,0 @@
-%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, g: 0, b: 0, a: 1}
- m_UseRadianceAmbientProbe: 0
---- !u!157 &3
-LightmapSettings:
- m_ObjectHideFlags: 0
- serializedVersion: 11
- 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: 10
- m_Resolution: 2
- m_BakeResolution: 40
- m_AtlasSize: 1024
- m_AO: 0
- m_AOMaxDistance: 1
- m_CompAOExponent: 1
- m_CompAOExponentDirect: 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_PVRFilterTypeDirect: 0
- m_PVRFilterTypeIndirect: 0
- m_PVRFilterTypeAO: 0
- m_PVRFilteringMode: 1
- m_PVRCulling: 1
- m_PVRFilteringGaussRadiusDirect: 1
- m_PVRFilteringGaussRadiusIndirect: 5
- m_PVRFilteringGaussRadiusAO: 2
- m_PVRFilteringAtrousPositionSigmaDirect: 0.5
- m_PVRFilteringAtrousPositionSigmaIndirect: 2
- m_PVRFilteringAtrousPositionSigmaAO: 1
- m_ShowResolutionOverlay: 1
- m_LightingDataAsset: {fileID: 0}
- m_UseShadowmask: 1
---- !u!196 &4
-NavMeshSettings:
- serializedVersion: 2
- m_ObjectHideFlags: 0
- m_BuildSettings:
- serializedVersion: 2
- agentTypeID: 0
- agentRadius: 0.5
- agentHeight: 2
- agentSlope: 45
- agentClimb: 0.4
- ledgeDropHeight: 0
- maxJumpAcrossDistance: 0
- minRegionArea: 2
- manualCellSize: 0
- cellSize: 0.16666667
- manualTileSize: 0
- tileSize: 256
- accuratePlacement: 0
- debug:
- m_Flags: 0
- m_NavMeshData: {fileID: 0}
---- !u!1 &460456769
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 460456772}
- - component: {fileID: 460456771}
- m_Layer: 0
- m_Name: Main Camera
- m_TagString: MainCamera
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!20 &460456771
-Camera:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 460456769}
- m_Enabled: 1
- serializedVersion: 2
- m_ClearFlags: 2
- m_BackGroundColor: {r: 0.44313726, g: 0, b: 0.33105087, a: 0}
- m_projectionMatrixMode: 1
- m_SensorSize: {x: 36, y: 24}
- m_LensShift: {x: 0, y: 0}
- m_GateFitMode: 2
- m_FocalLength: 50
- 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 &460456772
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 460456769}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &631456684
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 631456686}
- - component: {fileID: 631456685}
- m_Layer: 0
- m_Name: InstantiateNetworkManager
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &631456685
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 631456684}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: dbabb497385c20346a3c8bda4ae69508, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- prefab: {fileID: 4798169800353248846, guid: 88a1085bbf219a045928e71a44a98080, type: 3}
---- !u!4 &631456686
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 631456684}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1092693834
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1092693837}
- - component: {fileID: 1092693836}
- - component: {fileID: 1092693835}
- m_Layer: 0
- m_Name: EventSystem
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &1092693835
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1092693834}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_HorizontalAxis: Horizontal
- m_VerticalAxis: Vertical
- m_SubmitButton: Submit
- m_CancelButton: Cancel
- m_InputActionsPerSecond: 10
- m_RepeatDelay: 0.5
- m_ForceModuleActive: 0
---- !u!114 &1092693836
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1092693834}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_FirstSelected: {fileID: 0}
- m_sendNavigationEvents: 1
- m_DragThreshold: 10
---- !u!4 &1092693837
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1092693834}
- 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_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1001 &1621652715
-PrefabInstance:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- m_TransformParent: {fileID: 0}
- m_Modifications:
- - target: {fileID: 1946763129604172528, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 1946763129604172528, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 1946763129604172528, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 1946763129604172528, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 1946763129604172528, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320113807857625861, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320113807857625861, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320113807857625861, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320113807857625861, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320113807857625861, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320215773391279565, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320215773391279565, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320215773391279565, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320215773391279565, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320215773391279565, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320246878801631101, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320246878801631101, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320246878801631101, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320246878801631101, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4320246878801631101, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4321061513340808549, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4321061513340808549, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4321061513340808549, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4321061513340808549, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475626354594, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475626354594, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475626354594, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475626354594, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607475644947932, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476029058370, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476029058370, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476029058370, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476029058370, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476373752081, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476373752081, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476373752081, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476373752081, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476435516856, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476435516856, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476435516856, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476435516856, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476873278848, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476873278848, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476873278848, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalRotation.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalRotation.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalRotation.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_RootOrder
- value: 3
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Pivot.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432301, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Pivot.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4971607476965432305, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_Name
- value: ListServer Canvas
- objectReference: {fileID: 0}
- - target: {fileID: 5209551294840616038, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209551294840616038, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209551294840616038, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209551294840616038, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209551294840616038, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209634013571795630, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209634013571795630, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209634013571795630, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209634013571795630, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209634013571795630, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209735089412212766, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209735089412212766, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209735089412212766, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209735089412212766, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5209735089412212766, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5210477159360098822, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5210477159360098822, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5210477159360098822, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5210477159360098822, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5210477159360098822, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479772774669567268, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479772774669567268, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479772774669567268, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479772774669567268, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479772774669567268, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479840108155943916, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479840108155943916, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479840108155943916, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479840108155943916, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479840108155943916, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479941167491742044, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479941167491742044, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479941167491742044, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479941167491742044, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5479941167491742044, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5480685436460204868, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5480685436460204868, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5480685436460204868, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5480685436460204868, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5480685436460204868, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7547013810525697427, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7547013810525697427, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7547013810525697427, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7547013810525697427, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7547013810525697427, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7853286060430066897, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7853286060430066897, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7853286060430066897, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7853286060430066897, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 7853286060430066897, guid: e16e442bbd8d4434cb606afd72bcd08b,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: e16e442bbd8d4434cb606afd72bcd08b, type: 3}
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes/ListServerLobbySceneTanks.unity.meta b/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes/ListServerLobbySceneTanks.unity.meta
deleted file mode 100644
index 4e2e0a0..0000000
--- a/UnityProject/Assets/Mirror/Examples/Cloud/TanksWithListServer/Scenes/ListServerLobbySceneTanks.unity.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 50c1ef995f7f09d4e851c197cac6519f
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Examples/Discovery.meta b/UnityProject/Assets/Mirror/Examples/Discovery.meta
index 85a73ff..ba76865 100644
--- a/UnityProject/Assets/Mirror/Examples/Discovery.meta
+++ b/UnityProject/Assets/Mirror/Examples/Discovery.meta
@@ -3,6 +3,6 @@ guid: 450d6133608b04c57a6ebd6830d455fd
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Discovery/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/Discovery/Prefabs.meta
index ef0083d..b9080f8 100644
--- a/UnityProject/Assets/Mirror/Examples/Discovery/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Discovery/Prefabs.meta
@@ -3,6 +3,6 @@ guid: 8d8abc53a4efb4544ad9cb7a44b4840a
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Discovery/Prefabs/Player.prefab.meta b/UnityProject/Assets/Mirror/Examples/Discovery/Prefabs/Player.prefab.meta
index 1c818fa..c40645c 100644
--- a/UnityProject/Assets/Mirror/Examples/Discovery/Prefabs/Player.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Discovery/Prefabs/Player.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: ecd52c53a6ef7496693343d3e32dace1
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Discovery/Scenes.meta b/UnityProject/Assets/Mirror/Examples/Discovery/Scenes.meta
index ed0ba64..4cf810a 100644
--- a/UnityProject/Assets/Mirror/Examples/Discovery/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/Discovery/Scenes.meta
@@ -3,6 +3,6 @@ guid: ceaf2344f4e6944258442667a9fbbfdf
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Discovery/Scenes/Scene.unity.meta b/UnityProject/Assets/Mirror/Examples/Discovery/Scenes/Scene.unity.meta
index b02433f..1f4f24e 100644
--- a/UnityProject/Assets/Mirror/Examples/Discovery/Scenes/Scene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/Discovery/Scenes/Scene.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 90fddc74fa21c423599167eb28b09dd1
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Mirror.Examples.asmdef.meta b/UnityProject/Assets/Mirror/Examples/Mirror.Examples.asmdef.meta
index 2b545b5..b68d67b 100644
--- a/UnityProject/Assets/Mirror/Examples/Mirror.Examples.asmdef.meta
+++ b/UnityProject/Assets/Mirror/Examples/Mirror.Examples.asmdef.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: fecf25954bb196642ab50657689761d6
AssemblyDefinitionImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes.meta
index bbe9ba2..d9d9280 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes.meta
@@ -3,6 +3,6 @@ guid: 792b2d05e371c3c47ac7c4b1fa0dbfe2
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials.meta
index 7a4a337..edd3710 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials.meta
@@ -3,6 +3,6 @@ guid: ef54d3fc8c3b6c845bb29f2d04ea7edb
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics.meta
index a372565..13d0938 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics.meta
@@ -3,6 +3,6 @@ guid: b5ae92b6f97224e418115c9f16c50fd8
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/Icosphere.physicMaterial.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/Icosphere.physicMaterial.meta
index 0403873..7bb76bd 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/Icosphere.physicMaterial.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/Icosphere.physicMaterial.meta
@@ -3,6 +3,6 @@ guid: 47163bc0301c1a146bbaa4d539a6ac36
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/Player.physicMaterial.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/Player.physicMaterial.meta
index 40322e3..2016cde 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/Player.physicMaterial.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/Player.physicMaterial.meta
@@ -3,6 +3,6 @@ guid: 2debad4ac21a6644faf4fc93bd5b5869
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/RoomBounce.physicMaterial.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/RoomBounce.physicMaterial.meta
index 02a172b..9a6653e 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/RoomBounce.physicMaterial.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Physics/RoomBounce.physicMaterial.meta
@@ -3,6 +3,6 @@ guid: 2e179c076d5d0924dbf5a2de0630bdb1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render.meta
index 0953148..26b8d43 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render.meta
@@ -3,6 +3,6 @@ guid: e79e44ac19c0d9244bb54a0e960210e3
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/PlayArea.mat.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/PlayArea.mat.meta
index ab00bc8..dcdfd42 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/PlayArea.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/PlayArea.mat.meta
@@ -3,6 +3,6 @@ guid: 42fe0bcfbb65da3429ae2c289686e024
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/Player.mat.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/Player.mat.meta
index d890edb..1c930eb 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/Player.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/Player.mat.meta
@@ -3,6 +3,6 @@ guid: 2089070a3452e6f4d866c53e51aae8f2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/Prize.mat.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/Prize.mat.meta
index 3df4a27..551120b 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/Prize.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Materials/Render/Prize.mat.meta
@@ -3,6 +3,6 @@ guid: 2becd2014627a774e9e8f668f281f1d2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models.meta
index fbeb501..0cf8693 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models.meta
@@ -3,6 +3,6 @@ guid: 758bdb1e6d29abf4e96198a11d34f313
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere.meta
index 5a41527..45126aa 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere.meta
@@ -3,6 +3,6 @@ guid: ea3fb2e0d8b9abc43b8b628e3e550872
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Icosphere.obj.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Icosphere.obj.meta
index e72ff2c..26d5bc8 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Icosphere.obj.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Icosphere.obj.meta
@@ -27,12 +27,12 @@ ModelImporter:
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
- motionNodeName:
- rigImportErrors:
- rigImportWarnings:
- animationImportErrors:
- animationImportWarnings:
- animationRetargetingWarnings:
+ motionNodeName: ''
+ rigImportErrors: ''
+ rigImportWarnings: ''
+ animationImportErrors: ''
+ animationImportWarnings: ''
+ animationRetargetingWarnings: ''
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
@@ -91,7 +91,7 @@ ModelImporter:
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
- rootMotionBoneName:
+ rootMotionBoneName: ''
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
@@ -99,6 +99,6 @@ ModelImporter:
animationType: 0
humanoidOversampling: 1
additionalBone: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Materials.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Materials.meta
index 1eb00d1..a9904b2 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Materials.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Materials.meta
@@ -3,6 +3,6 @@ guid: 2c07f54121eb4534e85f72041ec0f196
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Materials/Icosphere.mat.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Materials/Icosphere.mat.meta
index 3e1c3b8..4fb049f 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Materials/Icosphere.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Models/Icosphere/Materials/Icosphere.mat.meta
@@ -3,6 +3,6 @@ guid: 7e6bf26596c6f564097734c7cc319e15
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs.meta
index 6d235af..41ae6a3 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs.meta
@@ -3,6 +3,6 @@ guid: 90a1d98ef5d99304095438cdf9cbdc10
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Icosphere.prefab.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Icosphere.prefab.meta
index 2d5d382..aad8827 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Icosphere.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Icosphere.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: a104de86221e66a48832c222471d4f1e
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Player.prefab.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Player.prefab.meta
index 2aa9fe4..16c9602 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Player.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Player.prefab.meta
@@ -3,6 +3,6 @@ guid: 1f4d376d8ca693049abd1744e4c79fad
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Prize.prefab.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Prize.prefab.meta
index b0e7226..8bdf5f1 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Prize.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Prefabs/Prize.prefab.meta
@@ -3,6 +3,6 @@ guid: 8cec47ed46e0eff45966a5173d3aa0d3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/README.md.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/README.md.meta
index 668fabd..dbf036c 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/README.md.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/README.md.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 915d7b115a88c7c409dadf5bfc543737
TextScriptImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes.meta
index d749d32..01b8f9d 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes.meta
@@ -3,6 +3,6 @@ guid: 060de58cc46acdf4b92e21c43400aa58
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes/Game.unity.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes/Game.unity.meta
index dae050d..274c183 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes/Game.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes/Game.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: d45ed07e5475d4740812c97ae565255c
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes/Main.unity.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes/Main.unity.meta
index 036bc0d..365d1c5 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes/Main.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scenes/Main.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 0fa8b7965660de64f8aefd6b64f18a08
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts.meta
index bcb2ac2..2b4112f 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts.meta
@@ -3,6 +3,6 @@ guid: 6d930bed284ca5040b2743524031cc13
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/MultiSceneNetManager.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/MultiSceneNetManager.cs.meta
index dbca140..fc86894 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/MultiSceneNetManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/MultiSceneNetManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PhysicsCollision.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PhysicsCollision.cs.meta
index 2343563..0aae7a1 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PhysicsCollision.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PhysicsCollision.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PhysicsSimulator.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PhysicsSimulator.cs.meta
index a48884d..fa7c2b5 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PhysicsSimulator.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PhysicsSimulator.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PlayerController.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PlayerController.cs.meta
index c3bad11..9d5e109 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PlayerController.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PlayerController.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PlayerScore.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PlayerScore.cs.meta
index 3b9c9dd..a20c7ca 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PlayerScore.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/PlayerScore.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/RandomColor.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/RandomColor.cs.meta
index 2bef2a6..7a9c6f1 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/RandomColor.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/RandomColor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/Reward.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/Reward.cs.meta
index 1bb7ea3..931aa47 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/Reward.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/Reward.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/Spawner.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/Spawner.cs.meta
index 9d9b2b1..602d86a 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/Spawner.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleAdditiveScenes/Scripts/Spawner.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches.meta
index c8788e5..10786b5 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches.meta
@@ -3,6 +3,6 @@ guid: 8e1be7be6da8e2448ba40eba0daa44b9
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs.meta
index 7d19e91..c61a3fb 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs.meta
@@ -3,6 +3,6 @@ guid: ad2253a5702ed854995bf034be09a1ae
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/CellGUI.prefab.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/CellGUI.prefab.meta
index 8ddee88..a4b23e0 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/CellGUI.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/CellGUI.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 5ab8c221183f0094eb04b7f6eb569e7b
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchController.prefab.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchController.prefab.meta
index e358fcc..e1cda8d 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchController.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchController.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: e101d385946c91b4c81f318efc723a88
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchGUI.prefab.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchGUI.prefab.meta
index 3308e2c..3096ce4 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchGUI.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchGUI.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: df3727c2222378b4ca786485a8b09981
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchPlayer.prefab.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchPlayer.prefab.meta
index 66f3795..1c8503f 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchPlayer.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/MatchPlayer.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 11d2414f1e120a14c98cba6866e5348f
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/PlayerGUI.prefab.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/PlayerGUI.prefab.meta
index 27639dc..7dbc934 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/PlayerGUI.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Prefabs/PlayerGUI.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 504f86497324bc040be44f6f88b6cc73
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/README.md.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/README.md.meta
index fdee840..3c529de 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/README.md.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/README.md.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 9749e23e4e90e0646afc81061710a927
TextScriptImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scenes.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scenes.meta
index af27542..085483e 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scenes.meta
@@ -3,6 +3,6 @@ guid: a92fd9255da5fe9449e612566195a3aa
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scenes/Main.unity.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scenes/Main.unity.meta
index 234a173..15b2968 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scenes/Main.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scenes/Main.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: aa1f875396fa7d348a782cebc2f75d7c
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts.meta
index bc1a9c0..6e44c51 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts.meta
@@ -3,6 +3,6 @@ guid: d418be768b6d32e4d9c3b8828929c3eb
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/CanvasController.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/CanvasController.cs.meta
index 9379f5c..99b4f9a 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/CanvasController.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/CanvasController.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/CellGUI.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/CellGUI.cs.meta
index 2ab1003..6a7568a 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/CellGUI.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/CellGUI.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchController.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchController.cs.meta
index d6b6a8b..9383900 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchController.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchController.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchGUI.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchGUI.cs.meta
index 8a036f1..eb3f301 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchGUI.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchGUI.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchMessages.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchMessages.cs.meta
index bf41030..cdc9baa 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchMessages.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchMessages.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchNetworkManager.cs b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchNetworkManager.cs
index 1046aa9..59bd579 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchNetworkManager.cs
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchNetworkManager.cs
@@ -1,7 +1,7 @@
using UnityEngine;
/*
- Documentation: https://mirror-networking.com/docs/Components/NetworkManager.html
+ Documentation: https://mirror-networking.gitbook.io/docs/components/network-manager
API Reference: https://mirror-networking.com/docs/api/Mirror.NetworkManager.html
*/
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchNetworkManager.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchNetworkManager.cs.meta
index 95f851c..e73e281 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchNetworkManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/MatchNetworkManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/PlayerGUI.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/PlayerGUI.cs.meta
index 7da4f20..42425cd 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/PlayerGUI.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/PlayerGUI.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/RoomGUI.cs.meta b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/RoomGUI.cs.meta
index 0e970ab..082026b 100644
--- a/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/RoomGUI.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/MultipleMatches/Scripts/RoomGUI.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong.meta b/UnityProject/Assets/Mirror/Examples/Pong.meta
index ac8a6e2..fea47b9 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong.meta
@@ -3,6 +3,6 @@ guid: 2220cb06641bd40be8c8330b3b4dd0ee
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/PhysicsMaterials.meta b/UnityProject/Assets/Mirror/Examples/Pong/PhysicsMaterials.meta
index 3ba9985..31e934c 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/PhysicsMaterials.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/PhysicsMaterials.meta
@@ -3,6 +3,6 @@ guid: 7f122364b93b24938b3f50539de4d746
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/PhysicsMaterials/BallMaterial.physicsMaterial2D.meta b/UnityProject/Assets/Mirror/Examples/Pong/PhysicsMaterials/BallMaterial.physicsMaterial2D.meta
index bf2d3b6..ce1eb3f 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/PhysicsMaterials/BallMaterial.physicsMaterial2D.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/PhysicsMaterials/BallMaterial.physicsMaterial2D.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
guid: 97a3e4cddb8635c4eba1265f44d106bf
timeCreated: 1426602119
-licenseType: Store
+licenseType: Free
NativeFormatImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/Pong/Prefabs.meta
index 7e90f0d..34f632a 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Prefabs.meta
@@ -3,6 +3,6 @@ guid: db1c7e1499ee84bfba33fa7f2cb1bc57
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Prefabs/Ball.prefab.meta b/UnityProject/Assets/Mirror/Examples/Pong/Prefabs/Ball.prefab.meta
index 6322417..be6d784 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Prefabs/Ball.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Prefabs/Ball.prefab.meta
@@ -3,6 +3,6 @@ guid: 5f7a7f34494ed40268eff49dbf9168bf
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Prefabs/Racket.prefab.meta b/UnityProject/Assets/Mirror/Examples/Pong/Prefabs/Racket.prefab.meta
index c67ac8f..87eb142 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Prefabs/Racket.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Prefabs/Racket.prefab.meta
@@ -3,6 +3,6 @@ guid: b1651eaf8c7564a1c86031dfbb8a7b28
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Scenes.meta b/UnityProject/Assets/Mirror/Examples/Pong/Scenes.meta
index ba5b4d4..5a8969b 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Scenes.meta
@@ -3,6 +3,6 @@ guid: 00c56c45628954f44aa4d944cbd9bfca
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Scenes/Scene.unity.meta b/UnityProject/Assets/Mirror/Examples/Pong/Scenes/Scene.unity.meta
index f4267c6..9418efe 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Scenes/Scene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Scenes/Scene.unity.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
guid: 89a84548859e3b643b4fb27984dc2b0d
timeCreated: 1426587410
-licenseType: Store
+licenseType: Free
DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Scripts.meta b/UnityProject/Assets/Mirror/Examples/Pong/Scripts.meta
index b482c47..9387865 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Scripts.meta
@@ -3,6 +3,6 @@ guid: 55e7bd9b7212f4318909cbca3bdb1284
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Scripts/Ball.cs.meta b/UnityProject/Assets/Mirror/Examples/Pong/Scripts/Ball.cs.meta
index 14a37a0..e433070 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Scripts/Ball.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Scripts/Ball.cs.meta
@@ -1,12 +1,12 @@
fileFormatVersion: 2
guid: 38b5c2f743cd8034a8beeebf277c92c1
timeCreated: 1426602353
-licenseType: Store
+licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Scripts/NetworkManagerPong.cs.meta b/UnityProject/Assets/Mirror/Examples/Pong/Scripts/NetworkManagerPong.cs.meta
index 4b191ea..0d4cbff 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Scripts/NetworkManagerPong.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Scripts/NetworkManagerPong.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Scripts/Player.cs.meta b/UnityProject/Assets/Mirror/Examples/Pong/Scripts/Player.cs.meta
index f0de41d..f1a1550 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Scripts/Player.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Scripts/Player.cs.meta
@@ -1,12 +1,12 @@
fileFormatVersion: 2
guid: 0748c7eda22b19845b9ce0e4d23d1021
timeCreated: 1426597826
-licenseType: Store
+licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Sprites.meta b/UnityProject/Assets/Mirror/Examples/Pong/Sprites.meta
index 42350a3..e7b1178 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Sprites.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Sprites.meta
@@ -3,6 +3,6 @@ guid: 9d39b68545c2e43cfa4a37f6703a983b
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/Ball.png.meta b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/Ball.png.meta
index 040bba3..3d91cf7 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/Ball.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/Ball.png.meta
@@ -77,12 +77,12 @@ TextureImporter:
bones: []
spriteID: c5a291323e0d5f34883a55625f66ca70
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/DottedLine.png.meta b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/DottedLine.png.meta
index 993c831..48e8eef 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/DottedLine.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/DottedLine.png.meta
@@ -77,12 +77,12 @@ TextureImporter:
bones: []
spriteID: 98b4e2aa86aa3d843821adfe71dbbac0
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/Racket.png.meta b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/Racket.png.meta
index 47b9fc8..cc68660 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/Racket.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/Racket.png.meta
@@ -77,12 +77,12 @@ TextureImporter:
bones: []
spriteID: 09819c66a21defd49b2cfc87fea685d2
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/WallHorizontal.png.meta b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/WallHorizontal.png.meta
index 10afcfc..fc57b86 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/WallHorizontal.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/WallHorizontal.png.meta
@@ -77,12 +77,12 @@ TextureImporter:
bones: []
spriteID: 74c5541eed52f67428025c83260d8bec
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/WallVertical.png.meta b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/WallVertical.png.meta
index 9b191ee..fa3f7e0 100644
--- a/UnityProject/Assets/Mirror/Examples/Pong/Sprites/WallVertical.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Pong/Sprites/WallVertical.png.meta
@@ -77,12 +77,12 @@ TextureImporter:
bones: []
spriteID: 3a92f998f14389948aa928ac64e8e426
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics.meta
index 854a7cd..2cf49d2 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics.meta
@@ -3,6 +3,6 @@ guid: 703869fabc2e0e241962909920029b0b
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials.meta
index 48b3a17..e63d9d6 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials.meta
@@ -3,6 +3,6 @@ guid: d871cab4e65c6e542a384f695eac5c75
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Blue.mat.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Blue.mat.meta
index 2b1c4f6..34991da 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Blue.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Blue.mat.meta
@@ -3,6 +3,6 @@ guid: 84335f003ad8f42408d13787e76d4f94
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Green.mat.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Green.mat.meta
index f9ebf7b..2764f01 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Green.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Green.mat.meta
@@ -3,6 +3,6 @@ guid: bbe2c7293af197640a2b40018e79b9a6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Red.mat.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Red.mat.meta
index f66bd07..f30b839 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Red.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Materials/Red.mat.meta
@@ -3,6 +3,6 @@ guid: 6ec777c59ba249a4aa16956e9dd9a0ee
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials.meta
index 8564ffe..8824c45 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials.meta
@@ -3,6 +3,6 @@ guid: e271b04d72e58af47ad61009045f6779
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials/Ball.physicMaterial.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials/Ball.physicMaterial.meta
index 4526222..2efdbad 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials/Ball.physicMaterial.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials/Ball.physicMaterial.meta
@@ -3,6 +3,6 @@ guid: f2bb9a8ecc30457468aea7dacef6f5de
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials/Floor.physicMaterial.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials/Floor.physicMaterial.meta
index aef94c6..6fd1cc0 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials/Floor.physicMaterial.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/PhysicMaterials/Floor.physicMaterial.meta
@@ -3,6 +3,6 @@ guid: df195ce493ed09b4c929f832263ba617
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Prefabs.meta
index b257679..34067f9 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Prefabs.meta
@@ -3,6 +3,6 @@ guid: dd49d852d6231e6418c72870c7491fd7
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Prefabs/Empty Player.prefab.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Prefabs/Empty Player.prefab.meta
index 28b4b2b..ad28c9a 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Prefabs/Empty Player.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Prefabs/Empty Player.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 4ab0a427bdc13244499c6e044ad7eb40
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scenes.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scenes.meta
index 276beb5..73e4cd4 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scenes.meta
@@ -3,6 +3,6 @@ guid: c11c778c869824342b9edc9a95de5a19
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scenes/BounceScene.unity.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scenes/BounceScene.unity.meta
index 2e53449..9a6b2b0 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scenes/BounceScene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scenes/BounceScene.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: b42449e4a64f03a42b999b0c118df11b
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scripts.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scripts.meta
index f7469ea..7f88d55 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scripts.meta
@@ -3,6 +3,6 @@ guid: 8a0b4c0f86764874481e949b6190940e
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scripts/AddForce.cs.meta b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scripts/AddForce.cs.meta
index b985a20..cebd3c6 100644
--- a/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scripts/AddForce.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/RigidbodyPhysics/Scripts/AddForce.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room.meta b/UnityProject/Assets/Mirror/Examples/Room.meta
index 51c8ec2..a4ba161 100644
--- a/UnityProject/Assets/Mirror/Examples/Room.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room.meta
@@ -3,6 +3,6 @@ guid: ba0822b68f209a743bc575c6f2cc78f0
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Materials.meta b/UnityProject/Assets/Mirror/Examples/Room/Materials.meta
index 1593571..b604b3f 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Materials.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Materials.meta
@@ -3,6 +3,6 @@ guid: 177a490b498134246b6eeddfeb608b94
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Materials/PlayArea.mat.meta b/UnityProject/Assets/Mirror/Examples/Room/Materials/PlayArea.mat.meta
index 093bbc4..98ae304 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Materials/PlayArea.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Materials/PlayArea.mat.meta
@@ -3,6 +3,6 @@ guid: 3201636fa507dad448e9a36d66a80825
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Materials/Player.mat.meta b/UnityProject/Assets/Mirror/Examples/Room/Materials/Player.mat.meta
index 46963af..d710b35 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Materials/Player.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Materials/Player.mat.meta
@@ -3,6 +3,6 @@ guid: ac64a68d9ea8fa9459ff2f158065c1d0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Materials/Prize.mat.meta b/UnityProject/Assets/Mirror/Examples/Room/Materials/Prize.mat.meta
index 18935a5..f2e19fc 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Materials/Prize.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Materials/Prize.mat.meta
@@ -3,6 +3,6 @@ guid: a1d7c9f39b41d414d86e64f7761cd545
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures.meta b/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures.meta
index 0ab7902..480567c 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures.meta
@@ -3,6 +3,6 @@ guid: 047a5014adf04914f9ffded62a715e39
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures/Wall01.tga.meta b/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures/Wall01.tga.meta
index e48bd95..e4b2df2 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures/Wall01.tga.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures/Wall01.tga.meta
@@ -75,14 +75,14 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
- spriteID:
+ spriteID: ''
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures/Wall01_n.tga.meta b/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures/Wall01_n.tga.meta
index 1e69eda..86f5d88 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures/Wall01_n.tga.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Materials/Textures/Wall01_n.tga.meta
@@ -75,14 +75,14 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
- spriteID:
+ spriteID: ''
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/Room/Prefabs.meta
index 78f4e75..f6046b7 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Prefabs.meta
@@ -3,6 +3,6 @@ guid: 9a6e603a7f407ec4aa25ac2c2799f71b
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Prefabs/GamePlayer.prefab.meta b/UnityProject/Assets/Mirror/Examples/Room/Prefabs/GamePlayer.prefab.meta
index 0df6ef0..5aa120d 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Prefabs/GamePlayer.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Prefabs/GamePlayer.prefab.meta
@@ -3,6 +3,6 @@ guid: 21daf89214c6ee443ad6875b73083c60
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Prefabs/Prize.prefab.meta b/UnityProject/Assets/Mirror/Examples/Room/Prefabs/Prize.prefab.meta
index 87ab623..9835e43 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Prefabs/Prize.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Prefabs/Prize.prefab.meta
@@ -3,6 +3,6 @@ guid: 52f1c9ea06cfd154cb68ff9d1b66fc13
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Prefabs/RoomPlayer.prefab.meta b/UnityProject/Assets/Mirror/Examples/Room/Prefabs/RoomPlayer.prefab.meta
index 153c825..ecf0f17 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Prefabs/RoomPlayer.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Prefabs/RoomPlayer.prefab.meta
@@ -3,6 +3,6 @@ guid: deae2134a1d77704b9c595efe69767dd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/README.md.meta b/UnityProject/Assets/Mirror/Examples/Room/README.md.meta
index eb4961d..7f760e8 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/README.md.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/README.md.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 9110f04bd1e8468479f6625342d311c5
TextScriptImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scenes.meta b/UnityProject/Assets/Mirror/Examples/Room/Scenes.meta
index 17072cf..cc97df2 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scenes.meta
@@ -3,6 +3,6 @@ guid: 4f704ae4b4f98ae41a0bce26658850c1
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scenes/OfflineScene.unity.meta b/UnityProject/Assets/Mirror/Examples/Room/Scenes/OfflineScene.unity.meta
index 45332ad..9e52d86 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scenes/OfflineScene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scenes/OfflineScene.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 9e6f14982412b2545a0911ebaaa46a23
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scenes/OnlineScene.unity.meta b/UnityProject/Assets/Mirror/Examples/Room/Scenes/OnlineScene.unity.meta
index 8a990fe..1c77276 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scenes/OnlineScene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scenes/OnlineScene.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: d7a6763559b31854586c9e49916273ef
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scenes/RoomScene.unity.meta b/UnityProject/Assets/Mirror/Examples/Room/Scenes/RoomScene.unity.meta
index 8749026..1015cbb 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scenes/RoomScene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scenes/RoomScene.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 48478f4d522f96945b8396f376299d3a
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scripts.meta b/UnityProject/Assets/Mirror/Examples/Room/Scripts.meta
index b15256a..b9fd528 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scripts.meta
@@ -3,6 +3,6 @@ guid: 03401915dd450454e88f0a839d3346f1
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scripts/NetworkRoomManagerExt.cs.meta b/UnityProject/Assets/Mirror/Examples/Room/Scripts/NetworkRoomManagerExt.cs.meta
index d8f5760..a4f65c8 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scripts/NetworkRoomManagerExt.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scripts/NetworkRoomManagerExt.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scripts/NetworkRoomPlayerExt.cs.meta b/UnityProject/Assets/Mirror/Examples/Room/Scripts/NetworkRoomPlayerExt.cs.meta
index 8e4d135..773e162 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scripts/NetworkRoomPlayerExt.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scripts/NetworkRoomPlayerExt.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scripts/PlayerController.cs.meta b/UnityProject/Assets/Mirror/Examples/Room/Scripts/PlayerController.cs.meta
index 74f8f95..2dad690 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scripts/PlayerController.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scripts/PlayerController.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scripts/PlayerScore.cs.meta b/UnityProject/Assets/Mirror/Examples/Room/Scripts/PlayerScore.cs.meta
index 7b1502f..2dab38c 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scripts/PlayerScore.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scripts/PlayerScore.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scripts/RandomColor.cs.meta b/UnityProject/Assets/Mirror/Examples/Room/Scripts/RandomColor.cs.meta
index be310a0..192269f 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scripts/RandomColor.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scripts/RandomColor.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scripts/Reward.cs.meta b/UnityProject/Assets/Mirror/Examples/Room/Scripts/Reward.cs.meta
index 879bc7d..487ff18 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scripts/Reward.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scripts/Reward.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Room/Scripts/Spawner.cs.meta b/UnityProject/Assets/Mirror/Examples/Room/Scripts/Spawner.cs.meta
index d4103d6..9bd2df8 100644
--- a/UnityProject/Assets/Mirror/Examples/Room/Scripts/Spawner.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Room/Scripts/Spawner.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks.meta b/UnityProject/Assets/Mirror/Examples/Tanks.meta
index bee4222..0864886 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks.meta
@@ -3,6 +3,6 @@ guid: a6dc5104926d44c9296aec7699989ac3
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models.meta
index c94259a..709c608 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models.meta
@@ -3,6 +3,6 @@ guid: 6878aacf12b204d03a94f71e49f9ad60
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank.meta
index 93b0075..fdade2c 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank.meta
@@ -3,6 +3,6 @@ guid: d8b3e43538fc240feb28e07816c7e733
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/BaseColor.png.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/BaseColor.png.meta
index 6e069a1..8daf1fd 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/BaseColor.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/BaseColor.png.meta
@@ -75,14 +75,14 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
- spriteID:
+ spriteID: ''
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Controller.controller.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Controller.controller.meta
index 7e1061c..498813a 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Controller.controller.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Controller.controller.meta
@@ -3,6 +3,6 @@ guid: a7211483bbd794b6d85ed88576e7d85c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Emissive.png.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Emissive.png.meta
index 333174c..d867e7d 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Emissive.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Emissive.png.meta
@@ -75,14 +75,14 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
- spriteID:
+ spriteID: ''
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Metallic.png.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Metallic.png.meta
index 91006e4..cf1ba03 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Metallic.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Metallic.png.meta
@@ -75,14 +75,14 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
- spriteID:
+ spriteID: ''
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Normal.png.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Normal.png.meta
index acc128a..2d023b0 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Normal.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Normal.png.meta
@@ -75,14 +75,14 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
- spriteID:
+ spriteID: ''
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Recon_Tank - License.txt.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Recon_Tank - License.txt.meta
index 2168518..0a73a61 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Recon_Tank - License.txt.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/Recon_Tank - License.txt.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 6e745106dbbc3412bbe43eaf25dabd4f
TextScriptImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/TankMaterial.mat.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/TankMaterial.mat.meta
index 080f534..b99569a 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/TankMaterial.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/TankMaterial.mat.meta
@@ -3,6 +3,6 @@ guid: 2e67e42170aa64aa9a33424f8045ac89
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/reconTank.fbx.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/reconTank.fbx.meta
index 1ac1ee0..350ac4b 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/reconTank.fbx.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Models/(Public Domain) Recon_Tank/reconTank.fbx.meta
@@ -50,12 +50,12 @@ ModelImporter:
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
- motionNodeName:
- rigImportErrors:
- rigImportWarnings:
- animationImportErrors:
- animationImportWarnings:
- animationRetargetingWarnings:
+ motionNodeName: ''
+ rigImportErrors: ''
+ rigImportWarnings: ''
+ animationImportErrors: ''
+ animationImportWarnings: ''
+ animationRetargetingWarnings: ''
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
@@ -226,7 +226,7 @@ ModelImporter:
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
- rootMotionBoneName:
+ rootMotionBoneName: ''
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
@@ -234,6 +234,6 @@ ModelImporter:
animationType: 2
humanoidOversampling: 1
additionalBone: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs.meta
index 6c92485..5de9ad3 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs.meta
@@ -3,6 +3,6 @@ guid: 2baeb281f5e8e421582aa9f72e7f1702
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs/Projectile.prefab.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs/Projectile.prefab.meta
index f6d4068..f7ff699 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs/Projectile.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs/Projectile.prefab.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: b7dd46dbf38c643f09e206f9fa4be008
PrefabImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs/Tank.prefab.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs/Tank.prefab.meta
index 4454818..67bcb0d 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs/Tank.prefab.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Prefabs/Tank.prefab.meta
@@ -3,6 +3,6 @@ guid: 6f43bf5488a7443d19ab2a83c6b91f35
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Scenes.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Scenes.meta
index 5665d39..74874ff 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Scenes.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Scenes.meta
@@ -3,6 +3,6 @@ guid: 91225a3fc58fe4a7f9e10718cd3bdc61
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene.meta
index 01af532..533d9ce 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene.meta
@@ -3,6 +3,6 @@ guid: 81cfd31f234d94a0985fe946d2ce699f
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene.unity.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene.unity.meta
index c7f922e..55dfff7 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene.unity.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene.unity.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 83f9d2fb76f5742448c6e51f258327a2
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene/NavMesh.asset.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene/NavMesh.asset.meta
index 1997fe9..6f229a8 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene/NavMesh.asset.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Scenes/Scene/NavMesh.asset.meta
@@ -3,6 +3,6 @@ guid: 0bc607fa2e315482ebe98797e844e11f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 23800000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Scripts.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Scripts.meta
index e6be7b6..5cba8e5 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Scripts.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Scripts.meta
@@ -3,6 +3,6 @@ guid: 3815d4126f2934af187ce078c648bbc8
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Scripts/Projectile.cs.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Scripts/Projectile.cs.meta
index 387ece6..55c8d37 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Scripts/Projectile.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Scripts/Projectile.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Scripts/Tank.cs.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Scripts/Tank.cs.meta
index b7874c4..2e38a39 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Scripts/Tank.cs.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Scripts/Tank.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Textures.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Textures.meta
index fad816b..c920492 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Textures.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Textures.meta
@@ -3,6 +3,6 @@ guid: 8ce6821cc1c644d5595ce9fc1f61debc
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture.meta
index a77c1ef..5e1ff15 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture.meta
@@ -3,6 +3,6 @@ guid: 4e08c21c1034445fc834851f9e4202fe
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/Dirt Hand Painted Texture - License.txt.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/Dirt Hand Painted Texture - License.txt.meta
index 4682e6c..fa90a4f 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/Dirt Hand Painted Texture - License.txt.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/Dirt Hand Painted Texture - License.txt.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 422e9f56a29ae488e836a23d1e0f21d0
TextScriptImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/Dirt.mat.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/Dirt.mat.meta
index f571c8b..14ca3d0 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/Dirt.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/Dirt.mat.meta
@@ -3,6 +3,6 @@ guid: 29b49c27a74f145918356859bd7af511
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/dirt.png.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/dirt.png.meta
index b00a626..626e1d6 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/dirt.png.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/(Public Domain) Dirt Hand Painted Texture/dirt.png.meta
@@ -75,14 +75,14 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
- spriteID:
+ spriteID: ''
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/ProjectileMaterial.mat.meta b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/ProjectileMaterial.mat.meta
index 84c957e..17cce74 100644
--- a/UnityProject/Assets/Mirror/Examples/Tanks/Textures/ProjectileMaterial.mat.meta
+++ b/UnityProject/Assets/Mirror/Examples/Tanks/Textures/ProjectileMaterial.mat.meta
@@ -3,6 +3,6 @@ guid: cba1b63a0bccc4b12ac25f05d0ae2dd1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Icon.meta b/UnityProject/Assets/Mirror/Icon.meta
index 7338187..eeeb74e 100644
--- a/UnityProject/Assets/Mirror/Icon.meta
+++ b/UnityProject/Assets/Mirror/Icon.meta
@@ -3,6 +3,6 @@ guid: b5f1356ad059a1243910a4e82cd68c5f
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Icon/MirrorIcon.png.meta b/UnityProject/Assets/Mirror/Icon/MirrorIcon.png.meta
index 8049382..4364f8a 100644
--- a/UnityProject/Assets/Mirror/Icon/MirrorIcon.png.meta
+++ b/UnityProject/Assets/Mirror/Icon/MirrorIcon.png.meta
@@ -97,14 +97,14 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
- spriteID:
+ spriteID: ''
vertices: []
- indices:
+ indices: ''
edges: []
weights: []
- spritePackingTag:
+ spritePackingTag: ''
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Notice.txt b/UnityProject/Assets/Mirror/Notice.txt
deleted file mode 100644
index 5eeaf88..0000000
--- a/UnityProject/Assets/Mirror/Notice.txt
+++ /dev/null
@@ -1,123 +0,0 @@
-This asset is governed by the Asset Store EULA; however, the following
-components are governed by the licenses indicated below:
-
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-Mirror
-MIT License
-
-Copyright (c) 2015, Unity Technologies
-Copyright (c) 2019, vis2k, Paul and Contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-kcp2k
-MIT License
-
-Copyright (c) 2016 limpo1989
-Copyright (c) 2020 Paul Pacheco
-Copyright (c) 2020 Lymdun
-Copyright (c) 2020 vis2k
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-Mono.Cecil
-MIT License
-
-Copyright (c) 2008 - 2015 Jb Evain
-Copyright (c) 2008 - 2011 Novell, Inc.
-
-https://github.com/jbevain/cecil
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-Telepathy
-MIT License
-
-Copyright (c) 2018, vis2k
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Notice.txt.meta b/UnityProject/Assets/Mirror/Notice.txt.meta
deleted file mode 100644
index 3281bd8..0000000
--- a/UnityProject/Assets/Mirror/Notice.txt.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 1a7b49ad188074707b004e7bb8824857
-TextScriptImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/UnityProject/Assets/Mirror/Plugins.meta b/UnityProject/Assets/Mirror/Plugins.meta
index 9504239..47adc9e 100644
--- a/UnityProject/Assets/Mirror/Plugins.meta
+++ b/UnityProject/Assets/Mirror/Plugins.meta
@@ -3,6 +3,6 @@ guid: 05eb4061e2eb94061b9a08c918fff99b
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil.meta b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil.meta
index a104e2e..bf53b8c 100644
--- a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil.meta
+++ b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil.meta
@@ -3,6 +3,6 @@ guid: ce126b4e1a7d13b4c865cd92929f13c3
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/License.txt.meta b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/License.txt.meta
index 9477cb6..aa7a929 100644
--- a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/License.txt.meta
+++ b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/License.txt.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: ab858db5ebbb0d542a9acd197669cb5a
TextScriptImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Mdb.dll.meta b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Mdb.dll.meta
index d5555bf..bcec14a 100644
--- a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Mdb.dll.meta
+++ b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Mdb.dll.meta
@@ -23,7 +23,7 @@ PluginImporter:
Exclude Win: 1
Exclude Win64: 1
- first:
- Any:
+ Any: ''
second:
enabled: 0
settings: {}
@@ -87,6 +87,6 @@ PluginImporter:
enabled: 0
settings:
CPU: AnyCPU
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Pdb.dll.meta b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Pdb.dll.meta
index 3ab420f..bfcb622 100644
--- a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Pdb.dll.meta
+++ b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Pdb.dll.meta
@@ -23,7 +23,7 @@ PluginImporter:
Exclude Win: 1
Exclude Win64: 1
- first:
- Any:
+ Any: ''
second:
enabled: 0
settings: {}
@@ -87,6 +87,6 @@ PluginImporter:
enabled: 0
settings:
CPU: AnyCPU
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Rocks.dll.meta b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Rocks.dll.meta
index aff0237..15e34ef 100644
--- a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Rocks.dll.meta
+++ b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.Rocks.dll.meta
@@ -23,7 +23,7 @@ PluginImporter:
Exclude Win: 1
Exclude Win64: 1
- first:
- Any:
+ Any: ''
second:
enabled: 0
settings: {}
@@ -87,6 +87,6 @@ PluginImporter:
enabled: 0
settings:
CPU: AnyCPU
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.dll.meta b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.dll.meta
index f87dc69..439068d 100644
--- a/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.dll.meta
+++ b/UnityProject/Assets/Mirror/Plugins/Mono.Cecil/Mono.CecilX.dll.meta
@@ -23,7 +23,7 @@ PluginImporter:
Exclude Win: 1
Exclude Win64: 1
- first:
- Any:
+ Any: ''
second:
enabled: 0
settings: {}
@@ -89,6 +89,6 @@ PluginImporter:
enabled: 0
settings:
CPU: AnyCPU
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Readme.txt b/UnityProject/Assets/Mirror/Readme.txt
index 88779e7..5e9a4ec 100644
--- a/UnityProject/Assets/Mirror/Readme.txt
+++ b/UnityProject/Assets/Mirror/Readme.txt
@@ -1,15 +1,15 @@
-Mirror is a MMO Scale Networking library for Unity, used in uMMORPG, uSurvival
-and several MMO projects in development.
+Mirror is a MMO Scale Networking library for Unity, used in uMMORPG, uSurvival and several MMO projects in development.
-*** IMPORTANT -- You must restart Unity after importing Mirror for the Components Menu to update! ***
+*** IMPORTANT ***
+You must restart Unity after importing Mirror for the Components Menu to update!
Requirements:
- Unity 2018/2019 LTS
- Runtime .Net 4.x (Project Settings > Player > Other Settings)
+ Unity 2019 / 2020 LTS
+ Runtime .Net 4.x (Project Settings > Player > Other Settings)
Documentation:
- https://mirror-networking.com/docs/
+ https://mirror-networking.gitbook.io/docs/
Support:
- Discord: https://discordapp.com/invite/N9QVxbM
- Bug Reports: https://github.com/vis2k/Mirror/issues
+ Discord: https://discordapp.com/invite/N9QVxbM
+ Bug Reports: https://github.com/vis2k/Mirror/issues
diff --git a/UnityProject/Assets/Mirror/Readme.txt.meta b/UnityProject/Assets/Mirror/Readme.txt.meta
index d52ccce..255f2e5 100644
--- a/UnityProject/Assets/Mirror/Readme.txt.meta
+++ b/UnityProject/Assets/Mirror/Readme.txt.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: f6d84e019c68446f28415a923b460a03
TextScriptImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/AssemblyInfo.cs.meta b/UnityProject/Assets/Mirror/Runtime/AssemblyInfo.cs.meta
index 50cc028..728d533 100644
--- a/UnityProject/Assets/Mirror/Runtime/AssemblyInfo.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/AssemblyInfo.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Attributes.cs.meta b/UnityProject/Assets/Mirror/Runtime/Attributes.cs.meta
index c50a489..0a07632 100644
--- a/UnityProject/Assets/Mirror/Runtime/Attributes.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Attributes.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/ClientScene.cs b/UnityProject/Assets/Mirror/Runtime/ClientScene.cs
index 68e3942..6970e11 100644
--- a/UnityProject/Assets/Mirror/Runtime/ClientScene.cs
+++ b/UnityProject/Assets/Mirror/Runtime/ClientScene.cs
@@ -6,6 +6,8 @@ using Guid = System.Guid;
namespace Mirror
{
+ // Deprecated 2021-07-03
+ [Obsolete("Use NetworkClient instead")]
public static class ClientScene
{
[Obsolete("ClientScene.localPlayer was moved to NetworkClient.localPlayer")]
diff --git a/UnityProject/Assets/Mirror/Runtime/ClientScene.cs.meta b/UnityProject/Assets/Mirror/Runtime/ClientScene.cs.meta
index 82b617e..0da7dbc 100644
--- a/UnityProject/Assets/Mirror/Runtime/ClientScene.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/ClientScene.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Compression.cs.meta b/UnityProject/Assets/Mirror/Runtime/Compression.cs.meta
index e35474b..c24622d 100644
--- a/UnityProject/Assets/Mirror/Runtime/Compression.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Compression.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty.meta b/UnityProject/Assets/Mirror/Runtime/Empty.meta
index e702402..43901a4 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: a99666a026b14cf6ba1a2b65946b1b27
-timeCreated: 1615288671
\ No newline at end of file
+timeCreated: 1615288671
diff --git a/UnityProject/Assets/Mirror/Cloud.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud.meta
similarity index 65%
rename from UnityProject/Assets/Mirror/Cloud.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud.meta
index e2c44de..f2c04e4 100644
--- a/UnityProject/Assets/Mirror/Cloud.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud.meta
@@ -3,6 +3,6 @@ guid: 73a9bb2dacafa8141bce8feef34e33a7
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiConnector.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiConnector.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiConnector.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/ApiConnector.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiConnector.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/ApiConnector.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiConnector.cs.meta
index 9279c0c..27dc6c9 100644
--- a/UnityProject/Assets/Mirror/Cloud/ApiConnector.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiConnector.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiUpdater.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiUpdater.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiUpdater.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ApiUpdater.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiUpdater.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ApiUpdater.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiUpdater.cs.meta
index 98a4c11..5c4e761 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ApiUpdater.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ApiUpdater.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Ball.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Ball.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Ball.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Ball.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Ball.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Ball.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Ball.cs.meta
index a6fc272..dd62ea2 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Ball.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Ball.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BallManager.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BallManager.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BallManager.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/BallManager.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BallManager.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/BallManager.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BallManager.cs.meta
index b914a33..dbb2967 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/BallManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BallManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BaseApi.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BaseApi.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BaseApi.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/BaseApi.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BaseApi.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/Core/BaseApi.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BaseApi.cs.meta
index f66b84e..9f10766 100644
--- a/UnityProject/Assets/Mirror/Cloud/Core/BaseApi.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/BaseApi.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Events.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Events.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Events.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/Events.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Events.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/Core/Events.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Events.cs.meta
index 150d85b..e2da2f9 100644
--- a/UnityProject/Assets/Mirror/Cloud/Core/Events.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Events.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Extensions.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Extensions.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Extensions.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/Extensions.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Extensions.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/Core/Extensions.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Extensions.cs.meta
index 6bf6291..d22d7c6 100644
--- a/UnityProject/Assets/Mirror/Cloud/Core/Extensions.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Extensions.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ICoroutineRunner.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ICoroutineRunner.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ICoroutineRunner.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/ICoroutineRunner.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ICoroutineRunner.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/Core/ICoroutineRunner.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ICoroutineRunner.cs.meta
index f1149a9..9ee9c8a 100644
--- a/UnityProject/Assets/Mirror/Cloud/Core/ICoroutineRunner.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ICoroutineRunner.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IRequestCreator.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IRequestCreator.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IRequestCreator.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/IRequestCreator.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IRequestCreator.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/Core/IRequestCreator.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IRequestCreator.cs.meta
index 966c503..61c4658 100644
--- a/UnityProject/Assets/Mirror/Cloud/Core/IRequestCreator.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IRequestCreator.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IUnityEqualCheck.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IUnityEqualCheck.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IUnityEqualCheck.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/IUnityEqualCheck.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IUnityEqualCheck.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/Core/IUnityEqualCheck.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IUnityEqualCheck.cs.meta
index 7cb2a59..be2f996 100644
--- a/UnityProject/Assets/Mirror/Cloud/Core/IUnityEqualCheck.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/IUnityEqualCheck.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/InstantiateNetworkManager.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/InstantiateNetworkManager.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/InstantiateNetworkManager.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/InstantiateNetworkManager.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/InstantiateNetworkManager.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/InstantiateNetworkManager.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/InstantiateNetworkManager.cs.meta
index 4b7219b..52832d3 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/InstantiateNetworkManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/InstantiateNetworkManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/JsonStructs.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/JsonStructs.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/JsonStructs.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/JsonStructs.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/JsonStructs.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/Core/JsonStructs.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/JsonStructs.cs.meta
index 2c04009..beab7e7 100644
--- a/UnityProject/Assets/Mirror/Cloud/Core/JsonStructs.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/JsonStructs.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServer.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServer.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServer.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServer.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServer.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/ListServer/ListServer.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServer.cs.meta
index 519876d..f79ac5b 100644
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServer.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerBaseApi.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerBaseApi.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerBaseApi.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerBaseApi.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerBaseApi.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/ListServer/ListServerBaseApi.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerBaseApi.cs.meta
index a9d32ea..55dd322 100644
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerBaseApi.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerBaseApi.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerClientApi.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerClientApi.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerClientApi.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerClientApi.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerClientApi.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/ListServer/ListServerClientApi.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerClientApi.cs.meta
index 306bf7c..43c3e4d 100644
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerClientApi.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerClientApi.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerJson.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerJson.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerJson.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerJson.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerJson.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/ListServer/ListServerJson.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerJson.cs.meta
index 7e206f1..a863c65 100644
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerJson.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerJson.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerServerApi.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerServerApi.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerServerApi.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerServerApi.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerServerApi.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/ListServer/ListServerServerApi.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerServerApi.cs.meta
index 82e23fd..a8db619 100644
--- a/UnityProject/Assets/Mirror/Cloud/ListServer/ListServerServerApi.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ListServerServerApi.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Logger.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Logger.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Logger.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/Logger.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Logger.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/Core/Logger.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Logger.cs.meta
index 5984ce3..4141280 100644
--- a/UnityProject/Assets/Mirror/Cloud/Core/Logger.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Logger.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServer.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServer.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServer.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/NetworkManagerListServer.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServer.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/NetworkManagerListServer.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServer.cs.meta
index 86775df..1a4791f 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/NetworkManagerListServer.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServerPong.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServerPong.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServerPong.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/NetworkManagerListServerPong.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServerPong.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/NetworkManagerListServerPong.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServerPong.cs.meta
index 5c4294f..ca3708c 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/NetworkManagerListServerPong.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/NetworkManagerListServerPong.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Player.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Player.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Player.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Player.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Player.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Player.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Player.cs.meta
index 1c85828..a8ada01 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/PongWithListServer/Scripts/Player.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/Player.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuickListServerDebug.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuickListServerDebug.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuickListServerDebug.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuickListServerDebug.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuickListServerDebug.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuickListServerDebug.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuickListServerDebug.cs.meta
index 4a22565..3db6d15 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuickListServerDebug.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuickListServerDebug.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuitButtonHUD.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuitButtonHUD.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuitButtonHUD.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuitButtonHUD.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuitButtonHUD.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuitButtonHUD.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuitButtonHUD.cs.meta
index 67341ea..96ea79b 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/QuitButtonHUD.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/QuitButtonHUD.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/RequestCreator.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/RequestCreator.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/RequestCreator.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Cloud/Core/RequestCreator.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/RequestCreator.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Cloud/Core/RequestCreator.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/RequestCreator.cs.meta
index eb139af..654cb83 100644
--- a/UnityProject/Assets/Mirror/Cloud/Core/RequestCreator.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/RequestCreator.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListManager.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListManager.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListManager.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListManager.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListManager.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListManager.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListManager.cs.meta
index 74c6a0f..77644bd 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUI.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUI.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUI.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUI.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUI.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUI.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUI.cs.meta
index f7fe4f2..438be38 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUI.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUI.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUIItem.cs b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUIItem.cs
new file mode 100644
index 0000000..2f11787
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUIItem.cs
@@ -0,0 +1 @@
+// removed 2021-05-13
diff --git a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUIItem.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUIItem.cs.meta
similarity index 75%
rename from UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUIItem.cs.meta
rename to UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUIItem.cs.meta
index d8857e8..cd43714 100644
--- a/UnityProject/Assets/Mirror/Examples/Cloud/GUI/Scripts/ServerListUIItem.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Cloud/ServerListUIItem.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/DotNetCompatibility.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/DotNetCompatibility.cs.meta
index 8742197..b1bda33 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/DotNetCompatibility.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/DotNetCompatibility.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/LogFactory.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/LogFactory.cs.meta
index 0715501..741b217 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/LogFactory.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/LogFactory.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/LogFilter.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/LogFilter.cs.meta
index aab4fa0..b34efa6 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/LogFilter.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/LogFilter.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Logging.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Logging.meta
index 867da74..927da1d 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/Logging.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Logging.meta
@@ -3,6 +3,6 @@ guid: 63d647500ca1bfa4a845bc1f4cff9dcc
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/ConsoleColorLogHandler.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/ConsoleColorLogHandler.cs.meta
index 329c6eb..cff4b2d 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/ConsoleColorLogHandler.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/ConsoleColorLogHandler.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/EditorLogSettingsLoader.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/EditorLogSettingsLoader.cs.meta
index 81b33e9..4db0d88 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/EditorLogSettingsLoader.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/EditorLogSettingsLoader.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/LogFactory.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/LogFactory.cs.meta
index acf3b63..884703c 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/LogFactory.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/LogFactory.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/LogSettings.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/LogSettings.cs.meta
index 90c4e4d..c8169a8 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/LogSettings.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/LogSettings.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/NetworkHeadlessLogger.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/NetworkHeadlessLogger.cs.meta
index 221a61b..d855af4 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/NetworkHeadlessLogger.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/NetworkHeadlessLogger.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/NetworkLogSettings.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/NetworkLogSettings.cs.meta
index 2f7ecdf..48f84eb 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/Logging/NetworkLogSettings.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/Logging/NetworkLogSettings.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Empty/StringHash.cs.meta b/UnityProject/Assets/Mirror/Runtime/Empty/StringHash.cs.meta
index 6198581..b9757b4 100644
--- a/UnityProject/Assets/Mirror/Runtime/Empty/StringHash.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Empty/StringHash.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/ExponentialMovingAverage.cs.meta b/UnityProject/Assets/Mirror/Runtime/ExponentialMovingAverage.cs.meta
index d0d8210..3354532 100644
--- a/UnityProject/Assets/Mirror/Runtime/ExponentialMovingAverage.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/ExponentialMovingAverage.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Extensions.cs b/UnityProject/Assets/Mirror/Runtime/Extensions.cs
index 0a67cd1..6f384d1 100644
--- a/UnityProject/Assets/Mirror/Runtime/Extensions.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Extensions.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
namespace Mirror
{
@@ -27,5 +28,13 @@ namespace Mirror
return func.Method.Name;
#endif
}
+
+ // helper function to copy to List
+ // C# only provides CopyTo(T[])
+ public static void CopyTo(this IEnumerable source, List destination)
+ {
+ // foreach allocates. use AddRange.
+ destination.AddRange(source);
+ }
}
}
diff --git a/UnityProject/Assets/Mirror/Runtime/Extensions.cs.meta b/UnityProject/Assets/Mirror/Runtime/Extensions.cs.meta
index c2a18b7..dc46fce 100644
--- a/UnityProject/Assets/Mirror/Runtime/Extensions.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Extensions.cs.meta
@@ -1,4 +1,4 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: decf32fd053744d18f35712b7a6f5116
MonoImporter:
externalObjects: {}
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/InterestManagement.cs.meta b/UnityProject/Assets/Mirror/Runtime/InterestManagement.cs.meta
index bfabf6b..849cedb 100644
--- a/UnityProject/Assets/Mirror/Runtime/InterestManagement.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/InterestManagement.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/LocalConnections.cs b/UnityProject/Assets/Mirror/Runtime/LocalConnections.cs
index 3386eb5..0f06b68 100644
--- a/UnityProject/Assets/Mirror/Runtime/LocalConnections.cs
+++ b/UnityProject/Assets/Mirror/Runtime/LocalConnections.cs
@@ -10,7 +10,7 @@ namespace Mirror
{
internal LocalConnectionToServer connectionToServer;
- public LocalConnectionToClient() : base(LocalConnectionId, false, 0) {}
+ public LocalConnectionToClient() : base(LocalConnectionId, false) {}
public override string address => "localhost";
@@ -35,7 +35,7 @@ namespace Mirror
// set not ready and handle clientscene disconnect in any case
// (might be client or host mode here)
isReady = false;
- RemoveObservers();
+ RemoveFromObservingsObservers();
}
/// Disconnects this connection.
@@ -72,7 +72,7 @@ namespace Mirror
}
// handle the server's message directly
- connectionToClient.TransportReceive(segment, channelId);
+ NetworkServer.OnTransportData(connectionId, segment, channelId);
}
internal void Update()
@@ -91,7 +91,7 @@ namespace Mirror
PooledNetworkWriter writer = queue.Dequeue();
ArraySegment segment = writer.ToArraySegment();
//Debug.Log("Dequeue " + BitConverter.ToString(segment.Array, segment.Offset, segment.Count));
- TransportReceive(segment, Channels.Reliable);
+ NetworkClient.OnTransportData(segment, Channels.Reliable);
NetworkWriterPool.Recycle(writer);
}
@@ -118,6 +118,12 @@ namespace Mirror
{
connectionToClient.DisconnectInternal();
DisconnectInternal();
+
+ // this was in NetworkClient.Disconnect 'if isLocalConnection' before
+ // but it's clearly local connection related, so put it in here.
+ // TODO should probably be in connectionToClient.DisconnectInternal
+ // because that's the NetworkServer's connection!
+ NetworkServer.RemoveLocalConnection();
}
// true because local connections never timeout
diff --git a/UnityProject/Assets/Mirror/Runtime/LocalConnections.cs.meta b/UnityProject/Assets/Mirror/Runtime/LocalConnections.cs.meta
index a4f2d2c..ef61c3d 100644
--- a/UnityProject/Assets/Mirror/Runtime/LocalConnections.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/LocalConnections.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/MessagePacking.cs b/UnityProject/Assets/Mirror/Runtime/MessagePacking.cs
index 6a348b5..fc6e105 100644
--- a/UnityProject/Assets/Mirror/Runtime/MessagePacking.cs
+++ b/UnityProject/Assets/Mirror/Runtime/MessagePacking.cs
@@ -19,12 +19,12 @@ namespace Mirror
// message header size
internal const int HeaderSize = sizeof(ushort);
- public static int GetId() where T : struct, NetworkMessage
+ public static ushort GetId() where T : struct, NetworkMessage
{
// paul: 16 bits is enough to avoid collisions
- // - keeps the message size small because it gets varinted
+ // - keeps the message size small
// - in case of collisions, Mirror will display an error
- return typeof(T).FullName.GetStableHashCode() & 0xFFFF;
+ return (ushort)(typeof(T).FullName.GetStableHashCode() & 0xFFFF);
}
// pack message before sending
@@ -33,8 +33,8 @@ namespace Mirror
public static void Pack(T message, NetworkWriter writer)
where T : struct, NetworkMessage
{
- int msgType = GetId();
- writer.WriteUInt16((ushort)msgType);
+ ushort msgType = GetId();
+ writer.WriteUShort(msgType);
// serialize message into writer
writer.Write(message);
@@ -44,12 +44,12 @@ namespace Mirror
// -> pass NetworkReader so it's less strange if we create it in here
// and pass it upwards.
// -> NetworkReader will point at content afterwards!
- public static bool Unpack(NetworkReader messageReader, out int msgType)
+ public static bool Unpack(NetworkReader messageReader, out ushort msgType)
{
// read message type (varint)
try
{
- msgType = messageReader.ReadUInt16();
+ msgType = messageReader.ReadUShort();
return true;
}
catch (System.IO.EndOfStreamException)
@@ -59,10 +59,6 @@ namespace Mirror
}
}
- [Obsolete("MessagePacker.UnpackMessage was renamed to Unpack for consistency with Pack.")]
- public static bool UnpackMessage(NetworkReader messageReader, out int msgType) =>
- Unpack(messageReader, out msgType);
-
internal static NetworkMessageDelegate WrapHandler(Action handler, bool requireAuthentication)
where T : struct, NetworkMessage
where C : NetworkConnection
@@ -81,6 +77,8 @@ namespace Mirror
// let's catch them all and then disconnect that connection to avoid
// further attacks.
T message = default;
+ // record start position for NetworkDiagnostics because reader might contain multiple messages if using batching
+ int startPos = reader.Position;
try
{
if (requireAuthentication && !conn.isAuthenticated)
@@ -105,8 +103,9 @@ namespace Mirror
}
finally
{
+ int endPos = reader.Position;
// TODO: Figure out the correct channel
- NetworkDiagnostics.OnReceive(message, channelId, reader.Length);
+ NetworkDiagnostics.OnReceive(message, channelId, endPos - startPos);
}
// user handler exception should not stop the whole server
diff --git a/UnityProject/Assets/Mirror/Runtime/MessagePacking.cs.meta b/UnityProject/Assets/Mirror/Runtime/MessagePacking.cs.meta
index 910b75c..de16013 100644
--- a/UnityProject/Assets/Mirror/Runtime/MessagePacking.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/MessagePacking.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Messages.cs b/UnityProject/Assets/Mirror/Runtime/Messages.cs
index 618608a..eb3cbef 100644
--- a/UnityProject/Assets/Mirror/Runtime/Messages.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Messages.cs
@@ -3,11 +3,11 @@ using UnityEngine;
namespace Mirror
{
- // Deprecated 10/06/2020
+ // Deprecated 2020-10-06
[Obsolete("Implement NetworkMessage instead. Use extension methods instead of Serialize/Deserialize, see https://github.com/vis2k/Mirror/pull/2317", true)]
public interface IMessageBase {}
- // Deprecated 10/06/2020
+ // Deprecated 2020-10-06
[Obsolete("Implement NetworkMessage instead. Use extension methods instead of Serialize/Deserialize, see https://github.com/vis2k/Mirror/pull/2317", true)]
public class MessageBase : IMessageBase {}
@@ -87,7 +87,7 @@ namespace Mirror
public uint netId;
}
- public struct UpdateVarsMessage : NetworkMessage
+ public struct EntityStateMessage : NetworkMessage
{
public uint netId;
// the serialized component data
diff --git a/UnityProject/Assets/Mirror/Runtime/Messages.cs.meta b/UnityProject/Assets/Mirror/Runtime/Messages.cs.meta
index 5d119e2..56cb95f 100644
--- a/UnityProject/Assets/Mirror/Runtime/Messages.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Messages.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Mirror.asmdef.meta b/UnityProject/Assets/Mirror/Runtime/Mirror.asmdef.meta
index 202009b..93af53d 100644
--- a/UnityProject/Assets/Mirror/Runtime/Mirror.asmdef.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Mirror.asmdef.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 30817c1a0e6d646d99c048fc403f5979
AssemblyDefinitionImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkAuthenticator.cs b/UnityProject/Assets/Mirror/Runtime/NetworkAuthenticator.cs
index 237df74..e980a89 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkAuthenticator.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkAuthenticator.cs
@@ -7,7 +7,7 @@ namespace Mirror
[Serializable] public class UnityEventNetworkConnection : UnityEvent {}
/// Base class for implementing component-based authentication during the Connect phase
- [HelpURL("https://mirror-networking.com/docs/Articles/Guides/Authentication.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-authenticators")]
public abstract class NetworkAuthenticator : MonoBehaviour
{
/// Notify subscribers on the server when a client is authenticated
@@ -44,24 +44,33 @@ namespace Mirror
/// Called when client stops, used to unregister message handlers if needed.
public virtual void OnStopClient() {}
- /// Called on client from OnClientAuthenticateInternal when a client needs to authenticate
- // TODO client callbacks don't need NetworkConnection parameter. use NetworkClient.connection!
- public abstract void OnClientAuthenticate(NetworkConnection conn);
+ // Deprecated 2021-03-13
+ [Obsolete("Remove the NetworkConnection parameter from your override and use NetworkClient.connection instead")]
+ public virtual void OnClientAuthenticate(NetworkConnection conn) => OnClientAuthenticate();
- // TODO client callbacks don't need NetworkConnection parameter. use NetworkClient.connection!
- protected void ClientAccept(NetworkConnection conn)
+ /// Called on client from OnClientAuthenticateInternal when a client needs to authenticate
+ public abstract void OnClientAuthenticate();
+
+ // Deprecated 2021-03-13
+ [Obsolete("Remove the NetworkConnection parameter from your override and use NetworkClient.connection instead")]
+ protected void ClientAccept(NetworkConnection conn) => ClientAccept();
+
+ protected void ClientAccept()
{
- OnClientAuthenticated.Invoke(conn);
+ OnClientAuthenticated.Invoke(NetworkClient.connection);
}
- // TODO client callbacks don't need NetworkConnection parameter. use NetworkClient.connection!
- protected void ClientReject(NetworkConnection conn)
+ // Deprecated 2021-03-13
+ [Obsolete("Remove the NetworkConnection parameter from your override and use NetworkClient.connection instead")]
+ protected void ClientReject(NetworkConnection conn) => ClientReject();
+
+ protected void ClientReject()
{
// Set this on the client for local reference
- conn.isAuthenticated = false;
+ NetworkClient.connection.isAuthenticated = false;
// disconnect the client
- conn.Disconnect();
+ NetworkClient.connection.Disconnect();
}
void OnValidate()
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkAuthenticator.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkAuthenticator.cs.meta
index d37db68..e12482b 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkAuthenticator.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkAuthenticator.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkBehaviour.cs b/UnityProject/Assets/Mirror/Runtime/NetworkBehaviour.cs
index dc3250a..afaebc3 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkBehaviour.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkBehaviour.cs
@@ -10,7 +10,7 @@ namespace Mirror
/// Base class for networked components.
[AddComponentMenu("")]
[RequireComponent(typeof(NetworkIdentity))]
- [HelpURL("https://mirror-networking.com/docs/Articles/Guides/NetworkBehaviour.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/guides/networkbehaviour")]
public abstract class NetworkBehaviour : MonoBehaviour
{
internal float lastSyncTime;
@@ -78,44 +78,15 @@ namespace Mirror
// SyncLists, SyncSets, etc.
protected readonly List syncObjects = new List();
- NetworkIdentity netIdentityCache;
+ // NetworkIdentity based values set from NetworkIdentity.Awake(),
+ // which is way more simple and way faster than trying to figure out
+ // component index from in here by searching all NetworkComponents.
+
/// Returns the NetworkIdentity of this object
- public NetworkIdentity netIdentity
- {
- get
- {
- if (netIdentityCache is null)
- {
- netIdentityCache = GetComponent();
- // do this 2nd check inside first if so that we are not checking == twice on unity Object
- if (netIdentityCache is null)
- {
- Debug.LogError("There is no NetworkIdentity on " + name + ". Please add one.");
- }
- }
- return netIdentityCache;
- }
- }
+ public NetworkIdentity netIdentity { get; internal set; }
/// Returns the index of the component on this object
- public int ComponentIndex
- {
- get
- {
- // note: FindIndex causes allocations, we search manually instead
- // TODO this is not fast at runtime uhh
- for (int i = 0; i < netIdentity.NetworkBehaviours.Length; i++)
- {
- NetworkBehaviour component = netIdentity.NetworkBehaviours[i];
- if (component == this)
- return i;
- }
-
- // this should never happen
- Debug.LogError("Could not find component in GameObject. You should not add/remove components in networked objects dynamically", this);
- return -1;
- }
- }
+ public int ComponentIndex { get; internal set; }
// this gets called in the constructor by the weaver
// for every SyncObject in the component (e.g. SyncLists).
@@ -142,7 +113,7 @@ namespace Mirror
// local players can always send commands, regardless of authority, other objects must have authority.
if (!(!requiresAuthority || isLocalPlayer || hasAuthority))
{
- Debug.LogWarning($"Trying to send command for object without authority. {invokeClass.ToString()}.{cmdName}");
+ Debug.LogWarning($"Trying to send command for object without authority. {invokeClass}.{cmdName}");
return;
}
@@ -535,6 +506,7 @@ namespace Mirror
return false;
}
+ // true if syncInterval elapsed and any SyncVar or SyncObject is dirty
public bool IsDirty()
{
if (Time.time - lastSyncTime >= syncInterval)
@@ -640,7 +612,7 @@ namespace Mirror
{
bool dirty = false;
// write the mask
- writer.WriteUInt64(DirtyObjectBits());
+ writer.WriteULong(DirtyObjectBits());
// serializable objects, such as synclists
for (int i = 0; i < syncObjects.Count; i++)
{
@@ -665,7 +637,7 @@ namespace Mirror
internal void DeSerializeObjectsDelta(NetworkReader reader)
{
- ulong dirty = reader.ReadUInt64();
+ ulong dirty = reader.ReadULong();
for (int i = 0; i < syncObjects.Count; i++)
{
SyncObject syncObject = syncObjects[i];
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkBehaviour.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkBehaviour.cs.meta
index f0bc195..980859a 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkBehaviour.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkBehaviour.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkClient.cs b/UnityProject/Assets/Mirror/Runtime/NetworkClient.cs
index 379aa3e..ce12b07 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkClient.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkClient.cs
@@ -17,8 +17,8 @@ namespace Mirror
public static class NetworkClient
{
// message handlers by messageId
- static readonly Dictionary handlers =
- new Dictionary();
+ internal static readonly Dictionary handlers =
+ new Dictionary();
/// Client's NetworkConnection to server.
public static NetworkConnection connection { get; internal set; }
@@ -57,8 +57,11 @@ namespace Mirror
/// Check if client is connected (after connecting).
public static bool isConnected => connectState == ConnectState.Connected;
- /// NetworkClient can connect to local server in host mode too
- public static bool isLocalClient => connection is LocalConnectionToServer;
+ /// True if client is running in host mode.
+ public static bool isHostClient => connection is LocalConnectionToServer;
+ // Deprecated 2021-05-26
+ [Obsolete("isLocalClient was renamed to isHostClient because that's what it actually means.")]
+ public static bool isLocalClient => isHostClient;
// OnConnected / OnDisconnected used to be NetworkMessages that were
// invoked. this introduced a bug where external clients could send
@@ -87,9 +90,9 @@ namespace Mirror
// initialization //////////////////////////////////////////////////////
static void AddTransportHandlers()
{
- Transport.activeTransport.OnClientConnected = OnConnected;
- Transport.activeTransport.OnClientDataReceived = OnDataReceived;
- Transport.activeTransport.OnClientDisconnected = OnDisconnected;
+ Transport.activeTransport.OnClientConnected = OnTransportConnected;
+ Transport.activeTransport.OnClientDataReceived = OnTransportData;
+ Transport.activeTransport.OnClientDisconnected = OnTransportDisconnected;
Transport.activeTransport.OnClientError = OnError;
}
@@ -109,7 +112,7 @@ namespace Mirror
// host mode doesn't need spawning
RegisterHandler(msg => {});
// host mode doesn't need state updates
- RegisterHandler(msg => {});
+ RegisterHandler(msg => {});
}
else
{
@@ -119,7 +122,7 @@ namespace Mirror
RegisterHandler(OnSpawn);
RegisterHandler(OnObjectSpawnStarted);
RegisterHandler(OnObjectSpawnFinished);
- RegisterHandler(OnUpdateVarsMessage);
+ RegisterHandler(OnEntityStateMessage);
}
RegisterHandler(OnRPCMessage);
}
@@ -138,9 +141,7 @@ namespace Mirror
connectState = ConnectState.Connecting;
Transport.activeTransport.ClientConnect(address);
- // setup all the handlers
connection = new NetworkConnectionToServer();
- connection.SetHandlers(handlers);
}
/// Connect client to a NetworkServer by Uri.
@@ -156,9 +157,7 @@ namespace Mirror
connectState = ConnectState.Connecting;
Transport.activeTransport.ClientConnect(uri);
- // setup all the handlers
connection = new NetworkConnectionToServer();
- connection.SetHandlers(handlers);
}
// TODO why are there two connect host methods?
@@ -178,7 +177,6 @@ namespace Mirror
connectionToClient.connectionToServer = connectionToServer;
connection = connectionToServer;
- connection.SetHandlers(handlers);
// create server connection to local client
NetworkServer.SetLocalConnection(connectionToClient);
@@ -207,38 +205,24 @@ namespace Mirror
/// Disconnect from server.
public static void Disconnect()
{
+ // only if connected or connecting
+ if (connectState == ConnectState.Disconnected) return;
+
+ // TODO move to 'cleanup' code below if safe
connectState = ConnectState.Disconnected;
ready = false;
- // local or remote connection?
- if (isLocalClient)
- {
- if (isConnected)
- {
- // call client OnDisconnected with connection to server
- // => previously we used to send a DisconnectMessage to
- // NetworkServer.localConnection. this would queue the
- // message until NetworkClient.Update processes it.
- // => invoking the client's OnDisconnected event directly
- // here makes tests fail. so let's do it exactly the same
- // order as before by queueing the event for next Update!
- //OnDisconnectedEvent?.Invoke(connection);
- ((LocalConnectionToServer)connection).QueueDisconnectedEvent();
- }
- NetworkServer.RemoveLocalConnection();
- }
- else
- {
- if (connection != null)
- {
- connection.Disconnect();
- connection = null;
- }
- }
+ // call Disconnect on the NetworkConnection
+ connection?.Disconnect();
+
+ // clean up
+ // (previously only for remote connection, not for local)
+ connection = null;
}
/// Disconnect host mode.
// this is needed to call DisconnectMessage for the host client too.
+ [Obsolete("Call NetworkClient.Disconnect() instead. Nobody should use DisconnectLocalServer.")]
public static void DisconnectLocalServer()
{
// only if host connection is running
@@ -248,12 +232,13 @@ namespace Mirror
// local connection. should we send a DisconnectMessage here too?
// (if we do then we get an Unknown Message ID log)
//NetworkServer.localConnection.Send(new DisconnectMessage());
- NetworkServer.OnDisconnected(NetworkServer.localConnection.connectionId);
+ NetworkServer.OnTransportDisconnected(NetworkServer.localConnection.connectionId);
}
}
// transport events ////////////////////////////////////////////////////
- static void OnConnected()
+ // called by Transport
+ static void OnTransportConnected()
{
if (connection != null)
{
@@ -269,16 +254,66 @@ namespace Mirror
else Debug.LogError("Skipped Connect message handling because connection is null.");
}
- internal static void OnDataReceived(ArraySegment data, int channelId)
+ // helper function
+ static bool UnpackAndInvoke(NetworkReader reader, int channelId)
+ {
+ if (MessagePacking.Unpack(reader, out ushort msgType))
+ {
+ // try to invoke the handler for that message
+ if (handlers.TryGetValue(msgType, out NetworkMessageDelegate handler))
+ {
+ handler.Invoke(connection, reader, channelId);
+ connection.lastMessageTime = Time.time;
+ return true;
+ }
+ else
+ {
+ // Debug.Log("Unknown message ID " + msgType + " " + this + ". May be due to no existing RegisterHandler for this message.");
+ return false;
+ }
+ }
+ else
+ {
+ Debug.LogError("Closed connection: " + connection + ". Invalid message header.");
+ connection.Disconnect();
+ return false;
+ }
+ }
+
+ // called by Transport
+ internal static void OnTransportData(ArraySegment data, int channelId)
{
if (connection != null)
{
- connection.TransportReceive(data, channelId);
+ if (data.Count < MessagePacking.HeaderSize)
+ {
+ Debug.LogError($"NetworkClient: received Message was too short (messages should start with message id)");
+ connection.Disconnect();
+ return;
+ }
+
+ // unpack message
+ using (PooledNetworkReader reader = NetworkReaderPool.GetReader(data))
+ {
+ // server might batch multiple messages into one packet.
+ // we need to try to unpack multiple times.
+ while (reader.Position < reader.Length)
+ {
+ if (!UnpackAndInvoke(reader, channelId))
+ break;
+ }
+ }
}
else Debug.LogError("Skipped Data message handling because connection is null.");
}
- static void OnDisconnected()
+ // called by Transport
+ // IMPORTANT: often times when disconnecting, we call this from Mirror
+ // too because we want to remove the connection and handle
+ // the disconnect immediately.
+ // => which is fine as long as we guarantee it only runs once
+ // => which we do by setting the state to Disconnected!
+ static void OnTransportDisconnected()
{
// StopClient called from user code triggers Disconnected event
// from transport which calls StopClient again, so check here
@@ -315,7 +350,7 @@ namespace Mirror
public static void RegisterHandler(Action handler, bool requireAuthentication = true)
where T : struct, NetworkMessage
{
- int msgType = MessagePacking.GetId();
+ ushort msgType = MessagePacking.GetId();
if (handlers.ContainsKey(msgType))
{
Debug.LogWarning($"NetworkClient.RegisterHandler replacing handler for {typeof(T).FullName}, id={msgType}. If replacement is intentional, use ReplaceHandler instead to avoid this warning.");
@@ -327,7 +362,7 @@ namespace Mirror
public static void RegisterHandler(Action handler, bool requireAuthentication = true)
where T : struct, NetworkMessage
{
- int msgType = MessagePacking.GetId();
+ ushort msgType = MessagePacking.GetId();
if (handlers.ContainsKey(msgType))
{
Debug.LogWarning($"NetworkClient.RegisterHandler replacing handler for {typeof(T).FullName}, id={msgType}. If replacement is intentional, use ReplaceHandler instead to avoid this warning.");
@@ -335,8 +370,8 @@ namespace Mirror
// we use the same WrapHandler function for server and client.
// so let's wrap it to ignore the NetworkConnection parameter.
// it's not needed on client. it's always NetworkClient.connection.
- Action handlerWrapped = (_, value) => { handler(value); };
- handlers[msgType] = MessagePacking.WrapHandler(handlerWrapped, requireAuthentication);
+ void HandlerWrapped(NetworkConnection _, T value) => handler(value);
+ handlers[msgType] = MessagePacking.WrapHandler((Action) HandlerWrapped, requireAuthentication);
}
/// Replace a handler for a particular message type. Should require authentication by default.
@@ -344,7 +379,7 @@ namespace Mirror
public static void ReplaceHandler(Action handler, bool requireAuthentication = true)
where T : struct, NetworkMessage
{
- int msgType = MessagePacking.GetId();
+ ushort msgType = MessagePacking.GetId();
handlers[msgType] = MessagePacking.WrapHandler(handler, requireAuthentication);
}
@@ -361,7 +396,7 @@ namespace Mirror
where T : struct, NetworkMessage
{
// use int to minimize collisions
- int msgType = MessagePacking.GetId();
+ ushort msgType = MessagePacking.GetId();
return handlers.Remove(msgType);
}
@@ -978,7 +1013,7 @@ namespace Mirror
NetworkIdentity identity = GetAndRemoveSceneObject(message.sceneId);
if (identity == null)
{
- Debug.LogError($"Spawn scene object not found for {message.sceneId:X} SpawnableObjects.Count={spawnableObjects.Count}");
+ Debug.LogError($"Spawn scene object not found for {message.sceneId:X}. Make sure that client and server use exactly the same project. This only happens if the hierarchy gets out of sync.");
// dump the whole spawnable objects dict for easier debugging
//foreach (KeyValuePair kvp in spawnableObjects)
@@ -1113,7 +1148,7 @@ namespace Mirror
}
// client-only mode callbacks //////////////////////////////////////////
- static void OnUpdateVarsMessage(UpdateVarsMessage message)
+ static void OnEntityStateMessage(EntityStateMessage message)
{
// Debug.Log("NetworkClient.OnUpdateVarsMessage " + msg.netId);
if (NetworkIdentity.spawned.TryGetValue(message.netId, out NetworkIdentity localObject) && localObject != null)
@@ -1223,7 +1258,7 @@ namespace Mirror
}
}
- // process all incoming messages after updating the world
+ // process all outgoing messages after updating the world
if (Transport.activeTransport != null)
Transport.activeTransport.ClientLateUpdate();
}
@@ -1291,6 +1326,7 @@ namespace Mirror
// supposed to be shut down too!
if (Transport.activeTransport != null)
Transport.activeTransport.ClientDisconnect();
+ connection = null;
}
}
}
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkClient.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkClient.cs.meta
index 20cb211..bbf1a4d 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkClient.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkClient.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkConnection.cs b/UnityProject/Assets/Mirror/Runtime/NetworkConnection.cs
index 366c080..36da18a 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkConnection.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkConnection.cs
@@ -13,10 +13,6 @@ namespace Mirror
// TODO move to server's NetworkConnectionToClient?
internal readonly HashSet observing = new HashSet();
- // TODO this is NetworkServer.handlers on server and NetworkClient.handlers on client.
- // maybe use them directly. avoid extra state.
- Dictionary messageHandlers;
-
/// Unique identifier for this connection that is assigned by the transport layer.
// assigned by transport, this id is unique for every connection on server.
// clients don't know their own id and they don't know other client's ids.
@@ -64,13 +60,25 @@ namespace Mirror
}
/// Disconnects this connection.
+ // for future reference, here is how Disconnects work in Mirror.
+ //
+ // first, there are two types of disconnects:
+ // * voluntary: the other end simply disconnected
+ // * involuntary: server disconnects a client by itself
+ //
+ // UNET had special (complex) code to handle both cases differently.
+ //
+ // Mirror handles both cases the same way:
+ // * Disconnect is called from TOP to BOTTOM
+ // NetworkServer/Client -> NetworkConnection -> Transport.Disconnect()
+ // * Disconnect is handled from BOTTOM to TOP
+ // Transport.OnDisconnected -> ...
+ //
+ // in other words, calling Disconnect() does no cleanup whatsoever.
+ // it simply asks the transport to disconnect.
+ // then later the transport events will do the clean up.
public abstract void Disconnect();
- internal void SetHandlers(Dictionary handlers)
- {
- messageHandlers = handlers;
- }
-
/// Send a NetworkMessage to this connection over the given channel.
public void Send(T msg, int channelId = Channels.Reliable)
where T : struct, NetworkMessage
@@ -136,7 +144,7 @@ namespace Mirror
}
// TODO move to server's NetworkConnectionToClient?
- internal void RemoveObservers()
+ internal void RemoveFromObservingsObservers()
{
foreach (NetworkIdentity netIdentity in observing)
{
@@ -145,55 +153,6 @@ namespace Mirror
observing.Clear();
}
- // helper function
- protected bool UnpackAndInvoke(NetworkReader reader, int channelId)
- {
- if (MessagePacking.Unpack(reader, out int msgType))
- {
- // try to invoke the handler for that message
- if (messageHandlers.TryGetValue(msgType, out NetworkMessageDelegate msgDelegate))
- {
- msgDelegate.Invoke(this, reader, channelId);
- lastMessageTime = Time.time;
- return true;
- }
- else
- {
- // Debug.Log("Unknown message ID " + msgType + " " + this + ". May be due to no existing RegisterHandler for this message.");
- return false;
- }
- }
- else
- {
- Debug.LogError("Closed connection: " + this + ". Invalid message header.");
- Disconnect();
- return false;
- }
- }
-
- // called when receiving data from the transport
- internal void TransportReceive(ArraySegment buffer, int channelId)
- {
- if (buffer.Count < MessagePacking.HeaderSize)
- {
- Debug.LogError($"ConnectionRecv {this} Message was too short (messages should start with message id)");
- Disconnect();
- return;
- }
-
- // unpack message
- using (PooledNetworkReader reader = NetworkReaderPool.GetReader(buffer))
- {
- // the other end might batch multiple messages into one packet.
- // we need to try to unpack multiple times.
- while (reader.Position < reader.Length)
- {
- if (!UnpackAndInvoke(reader, channelId))
- break;
- }
- }
- }
-
/// Check if we received a message within the last 'timeout' seconds.
internal virtual bool IsAlive(float timeout) => Time.time - lastMessageTime < timeout;
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkConnection.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkConnection.cs.meta
index 32c4ba2..2ece7b6 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkConnection.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkConnection.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToClient.cs b/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToClient.cs
index bc2b584..eb3ddca 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToClient.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToClient.cs
@@ -20,37 +20,23 @@ namespace Mirror
internal class Batch
{
// batched messages
+ // IMPORTANT: we queue the serialized messages!
+ // queueing NetworkMessage would box and allocate!
internal Queue messages = new Queue();
-
- // each channel's batch has its own lastSendTime.
- // (use NetworkTime for maximum precision over days)
- //
- // channel batches are full and flushed at different times. using
- // one global time wouldn't make sense.
- // -> we want to be able to reset a channels send time after Send()
- // flushed it because full. global time wouldn't allow that, so
- // we would often flush in Send() and then flush again in Update
- // even though we just flushed in Send().
- // -> initialize with current NetworkTime so first update doesn't
- // calculate elapsed via 'now - 0'
- internal double lastSendTime = NetworkTime.time;
}
Dictionary batches = new Dictionary();
// batch messages and send them out in LateUpdate (or after batchInterval)
bool batching;
- // batch interval is 0 by default, meaning that we send immediately.
- // (useful to run tests without waiting for intervals too)
- float batchInterval;
-
- public NetworkConnectionToClient(int networkConnectionId, bool batching, float batchInterval)
+ public NetworkConnectionToClient(int networkConnectionId, bool batching)
: base(networkConnectionId)
{
this.batching = batching;
- this.batchInterval = batchInterval;
}
+ // TODO if we only have Reliable/Unreliable, then we could initialize
+ // two batches and avoid this code
Batch GetBatchForChannelId(int channelId)
{
// get existing or create new writer for the channelId
@@ -91,8 +77,8 @@ namespace Mirror
writer.Position + segment.Count >= max)
{
// flush & reset writer
- Transport.activeTransport.ServerSend(connectionId, channelId, writer.ToArraySegment());
- writer.SetLength(0);
+ Transport.activeTransport.ServerSend(connectionId, writer.ToArraySegment(), channelId);
+ writer.Position = 0;
}
// now add to writer in any case
@@ -113,13 +99,10 @@ namespace Mirror
// send it.
if (writer.Position > 0)
{
- Transport.activeTransport.ServerSend(connectionId, channelId, writer.ToArraySegment());
- writer.SetLength(0);
+ Transport.activeTransport.ServerSend(connectionId, writer.ToArraySegment(), channelId);
+ writer.Position = 0;
}
}
-
- // reset send time for this channel's batch
- batch.lastSendTime = NetworkTime.time;
}
internal override void Send(ArraySegment segment, int channelId = Channels.Reliable)
@@ -144,13 +127,11 @@ namespace Mirror
batch.messages.Enqueue(writer);
}
// otherwise send directly to minimize latency
- else Transport.activeTransport.ServerSend(connectionId, channelId, segment);
+ else Transport.activeTransport.ServerSend(connectionId, segment, channelId);
}
}
- // flush batched messages every batchInterval to make sure that they are
- // sent out every now and then, even if the batch isn't full yet.
- // (avoids 30s latency if batches would only get full every 30s)
+ // flush batched messages at the end of every Update.
internal void Update()
{
// batching?
@@ -159,12 +140,10 @@ namespace Mirror
// go through batches for all channels
foreach (KeyValuePair kvp in batches)
{
- // enough time elapsed to flush this channel's batch?
- // and not empty?
- double elapsed = NetworkTime.time - kvp.Value.lastSendTime;
- if (elapsed >= batchInterval && kvp.Value.messages.Count > 0)
+ // is this channel's batch not empty?
+ if (kvp.Value.messages.Count > 0)
{
- // send the batch. time will be reset internally.
+ // send the batch.
//Debug.Log($"sending batch of {kvp.Value.writer.Position} bytes for channel={kvp.Key} connId={connectionId}");
SendBatch(kvp.Key, kvp.Value);
}
@@ -179,7 +158,13 @@ namespace Mirror
// (might be client or host mode here)
isReady = false;
Transport.activeTransport.ServerDisconnect(connectionId);
- RemoveObservers();
+
+ // IMPORTANT: NetworkConnection.Disconnect() is NOT called for
+ // voluntary disconnects from the other end.
+ // -> so all 'on disconnect' cleanup code needs to be in
+ // OnTransportDisconnect, where it's called for both voluntary
+ // and involuntary disconnects!
+ RemoveFromObservingsObservers();
}
}
}
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToClient.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToClient.cs.meta
index 6001a71..8ec6133 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToClient.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToClient.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToServer.cs b/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToServer.cs
index 29b1827..434147c 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToServer.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToServer.cs
@@ -13,7 +13,7 @@ namespace Mirror
// validate packet size first.
if (ValidatePacketSize(segment, channelId))
{
- Transport.activeTransport.ClientSend(channelId, segment);
+ Transport.activeTransport.ClientSend(segment, channelId);
}
}
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToServer.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToServer.cs.meta
index 3424b58..12d66c9 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToServer.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkConnectionToServer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkDiagnostics.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkDiagnostics.cs.meta
index fe37316..6979333 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkDiagnostics.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkDiagnostics.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkIdentity.cs b/UnityProject/Assets/Mirror/Runtime/NetworkIdentity.cs
index f38466b..b796580 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkIdentity.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkIdentity.cs
@@ -19,10 +19,23 @@ namespace Mirror
// to everyone etc.
public enum Visibility { Default, ForceHidden, ForceShown }
+ public struct NetworkIdentitySerialization
+ {
+ public float tickTimeStamp;
+ public NetworkWriter ownerWriter;
+ public NetworkWriter observersWriter;
+ // TODO there is probably a more simple way later
+ public int ownerWritten;
+ public int observersWritten;
+ }
+
/// NetworkIdentity identifies objects across the network.
[DisallowMultipleComponent]
+ // NetworkIdentity.Awake initializes all NetworkComponents.
+ // let's make sure it's always called before their Awake's.
+ [DefaultExecutionOrder(-1)]
[AddComponentMenu("Network/NetworkIdentity")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkIdentity.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-identity")]
public sealed class NetworkIdentity : MonoBehaviour
{
/// Returns true if running as a client and this object was spawned by a server.
@@ -126,41 +139,11 @@ namespace Mirror
new Dictionary();
// get all NetworkBehaviour components
- // => currently lazily initialized so tests can add components after
- // creating a NetworkIdentity.
- NetworkBehaviour[] _NetworkBehaviours;
- public NetworkBehaviour[] NetworkBehaviours
- {
- get
- {
- if (_NetworkBehaviours == null)
- {
- _NetworkBehaviours = GetComponents();
- if (_NetworkBehaviours.Length > byte.MaxValue)
- {
- Debug.LogError($"Only {byte.MaxValue} NetworkBehaviour components are allowed for NetworkIdentity: {name} because we send the index as byte.", this);
- // Log error once then resize array so that NetworkIdentity does not throw exceptions later
- Array.Resize(ref _NetworkBehaviours, byte.MaxValue);
- }
- }
- return _NetworkBehaviours;
- }
- }
+ public NetworkBehaviour[] NetworkBehaviours { get; private set; }
#pragma warning disable 618
- NetworkVisibility visibilityCache;
[Obsolete(NetworkVisibilityObsoleteMessage.Message)]
- public NetworkVisibility visibility
- {
- get
- {
- if (visibilityCache == null)
- {
- visibilityCache = GetComponent();
- }
- return visibilityCache;
- }
- }
+ public NetworkVisibility visibility { get; private set; }
#pragma warning restore 618
// current visibility
@@ -174,6 +157,19 @@ namespace Mirror
[Tooltip("Visibility can overwrite interest management. ForceHidden can be useful to hide monsters while they respawn. ForceShown can be useful for score NetworkIdentities that should always broadcast to everyone in the world.")]
public Visibility visible = Visibility.Default;
+ // broadcasting serializes all entities around a player for each player.
+ // we don't want to serialize one entity twice in the same tick.
+ // so we cache the last serialization and remember the timestamp so we
+ // know which Update it was serialized.
+ // (timestamp is the same while inside Update)
+ // => this way we don't need to pool thousands of writers either.
+ // => way easier to store them per object
+ NetworkIdentitySerialization lastSerialization = new NetworkIdentitySerialization
+ {
+ ownerWriter = new NetworkWriter(),
+ observersWriter = new NetworkWriter()
+ };
+
/// Prefab GUID used to spawn prefabs across the network.
//
// The AssetId trick:
@@ -276,8 +272,41 @@ namespace Mirror
[SerializeField, HideInInspector] bool hasSpawned;
public bool SpawnedFromInstantiate { get; private set; }
- void Awake()
+ // NetworkBehaviour components are initialized in Awake once.
+ // Changing them at runtime would get client & server out of sync.
+ // BUT internal so tests can add them after creating the NetworkIdentity
+ internal void InitializeNetworkBehaviours()
{
+ // Get all NetworkBehaviours
+ // (never null. GetComponents returns [] if none found)
+ NetworkBehaviours = GetComponents();
+ if (NetworkBehaviours.Length > byte.MaxValue)
+ Debug.LogError($"Only {byte.MaxValue} NetworkBehaviour components are allowed for NetworkIdentity: {name} because we send the index as byte.", this);
+
+ // initialize each one
+ for (int i = 0; i < NetworkBehaviours.Length; ++i)
+ {
+ NetworkBehaviour component = NetworkBehaviours[i];
+ component.netIdentity = this;
+ component.ComponentIndex = i;
+ }
+ }
+
+ // Awake is only called in Play mode.
+ // internal so we can call it during unit tests too.
+ internal void Awake()
+ {
+ // initialize NetworkBehaviour components.
+ // Awake() is called immediately after initialization.
+ // no one can overwrite it because NetworkIdentity is sealed.
+ // => doing it here is the fastest and easiest solution.
+ InitializeNetworkBehaviours();
+
+ // initialize visibility component. only call GetComponent once.
+#pragma warning disable 618
+ visibility = GetComponent();
+#pragma warning restore 618
+
if (hasSpawned)
{
Debug.LogError($"{name} has already spawned. Don't call Instantiate for NetworkIdentities that were in the scene since the beginning (aka scene objects). Otherwise the client won't know which object to use for a SpawnSceneObject message.");
@@ -816,7 +845,7 @@ namespace Mirror
// (jumping back later is WAY faster than allocating a temporary
// writer for the payload, then writing payload.size, payload)
int headerPosition = writer.Position;
- writer.WriteInt32(0);
+ writer.WriteInt(0);
int contentPosition = writer.Position;
// write payload
@@ -834,7 +863,7 @@ namespace Mirror
// fill in length now
writer.Position = headerPosition;
- writer.WriteInt32(endPosition - contentPosition);
+ writer.WriteInt(endPosition - contentPosition);
writer.Position = endPosition;
// Debug.Log("OnSerializeSafely written for object=" + comp.name + " component=" + comp.GetType() + " sceneId=" + sceneId.ToString("X") + "header@" + headerPosition + " content@" + contentPosition + " end@" + endPosition + " contentSize=" + (endPosition - contentPosition));
@@ -900,10 +929,36 @@ namespace Mirror
}
}
+ // get cached serialization for this tick (or serialize if none yet)
+ internal NetworkIdentitySerialization GetSerializationAtTick(float tickTimeStamp)
+ {
+ // serialize fresh if tick is newer than last one
+ if (lastSerialization.tickTimeStamp < tickTimeStamp)
+ {
+ // reset
+ lastSerialization.ownerWriter.Position = 0;
+ lastSerialization.observersWriter.Position = 0;
+
+ // serialize
+ OnSerializeAllSafely(false,
+ lastSerialization.ownerWriter,
+ out lastSerialization.ownerWritten,
+ lastSerialization.observersWriter,
+ out lastSerialization.observersWritten);
+
+ // set timestamp
+ lastSerialization.tickTimeStamp = tickTimeStamp;
+ //Debug.Log($"{name} (netId={netId}) serialized for tick={tickTimeStamp}");
+ }
+
+ // return it
+ return lastSerialization;
+ }
+
void OnDeserializeSafely(NetworkBehaviour comp, NetworkReader reader, bool initialState)
{
// read header as 4 bytes and calculate this chunk's start+end
- int contentSize = reader.ReadInt32();
+ int contentSize = reader.ReadInt();
int chunkStart = reader.Position;
int chunkEnd = reader.Position + contentSize;
@@ -1113,6 +1168,10 @@ namespace Mirror
}
}
+ // Reset is called when the user hits the Reset button in the
+ // Inspector's context menu or when adding the component the first time.
+ // This function is only called in editor mode.
+ //
// Reset() seems to be called only for Scene objects.
// we can't destroy them (they are always in the scene).
// instead we disable them and call Reset().
@@ -1136,7 +1195,6 @@ namespace Mirror
netId = 0;
connectionToServer = null;
connectionToClient = null;
- _NetworkBehaviours = null;
ClearObservers();
@@ -1177,6 +1235,13 @@ namespace Mirror
void ResetSyncObjects()
{
+ // ResetSyncObjects is called by Reset, which is called by Unity.
+ // AddComponent() calls Reset().
+ // AddComponent() is called before Awake().
+ // so NetworkBehaviours may not be initialized yet.
+ if (NetworkBehaviours == null)
+ return;
+
foreach (NetworkBehaviour comp in NetworkBehaviours)
{
comp.ResetSyncObjects();
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkIdentity.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkIdentity.cs.meta
index 7b96521..45dacb6 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkIdentity.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkIdentity.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkLoop.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkLoop.cs.meta
index 52b6e6a..3432200 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkLoop.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkLoop.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkManager.cs b/UnityProject/Assets/Mirror/Runtime/NetworkManager.cs
index 0a0de99..04d80ed 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkManager.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkManager.cs
@@ -13,7 +13,7 @@ namespace Mirror
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkManager")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkManager.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-manager")]
public class NetworkManager : MonoBehaviour
{
/// Enable to keep NetworkManager alive when changing scenes.
@@ -23,7 +23,7 @@ namespace Mirror
[Tooltip("Should the Network Manager object be persisted through scene changes?")]
public bool dontDestroyOnLoad = true;
- // Deprecated 3/10/2021
+ // Deprecated 2021-03-10
// Temporary bool to allow Network Manager to persist to offline scene
// Based on Discord convo, BigBox is invoking StopHost in startup sequence, bouncing the server and clients back to offline scene, which resets Network Manager.
// Request is for a checkbox to persist Network Manager to offline scene, despite the collision and warning.
@@ -49,10 +49,6 @@ namespace Mirror
[Tooltip("Batch message and send them out in LateUpdate (or after batchInterval). This is pretty much always a good idea.")]
public bool serverBatching = true;
- /// Server can batch messages to significantly reduce transport calls and improve performance/scale.
- [Tooltip("Server can batch messages up to Transport.GetMaxPacketSize to significantly reduce transport calls and improve performance/scale.\nIf batch interval is 0, then we only batch until the Update() call. Otherwise we batch until interval elapsed (note that this increases latency).")]
- public float serverBatchInterval = 0;
-
/// Automatically switch to this scene upon going offline (on start / on disconnect / on shutdown).
[Header("Scene Management")]
[Scene]
@@ -82,12 +78,10 @@ namespace Mirror
[Tooltip("Maximum number of concurrent connections.")]
public int maxConnections = 100;
- /// Server Only - Disconnects remote connections that have been silent for more than Server Idle Timeout
- [Tooltip("Server Only - Disconnects remote connections that have been silent for more than Server Idle Timeout")]
+ [Obsolete("Transport is responsible for timeouts.")]
public bool disconnectInactiveConnections;
- /// Timeout in seconds since last message from a client after which server will auto-disconnect if Disconnect Inactive Connections is enabled.
- [Tooltip("Timeout in seconds since last message from a client after which server will auto-disconnect if Disconnect Inactive Connections is enabled.")]
+ [Obsolete("Transport is responsible for timeouts. Configure the Transport's timeout setting instead.")]
public float disconnectInactiveTimeout = 60f;
[Header("Authentication")]
@@ -130,6 +124,7 @@ namespace Mirror
[NonSerialized]
public bool isNetworkActive;
+ // TODO remove this
static NetworkConnection clientReadyConnection;
/// True if the client loaded a new scene when connecting to the server.
@@ -171,9 +166,16 @@ namespace Mirror
if (playerPrefab != null && playerPrefab.GetComponent() == null)
{
- Debug.LogError("NetworkManager - playerPrefab must have a NetworkIdentity.");
+ Debug.LogError("NetworkManager - Player Prefab must have a NetworkIdentity.");
playerPrefab = null;
}
+
+ // This avoids the mysterious "Replacing existing prefab with assetId ... Old prefab 'Player', New prefab 'Player'" warning.
+ if (playerPrefab != null && spawnPrefabs.Contains(playerPrefab))
+ {
+ Debug.LogWarning("NetworkManager - Player Prefab should not be added to Registered Spawnable Prefabs list...removed it.");
+ spawnPrefabs.Remove(playerPrefab);
+ }
}
// virtual so that inheriting classes' Awake() can call base.Awake() too
@@ -246,11 +248,12 @@ namespace Mirror
// batching
NetworkServer.batching = serverBatching;
- NetworkServer.batchInterval = serverBatchInterval;
// Copy auto-disconnect settings to NetworkServer
+#pragma warning disable 618
NetworkServer.disconnectInactiveTimeout = disconnectInactiveTimeout;
NetworkServer.disconnectInactiveConnections = disconnectInactiveConnections;
+#pragma warning restore 618
// start listening to network connections
NetworkServer.Listen(maxConnections);
@@ -520,13 +523,12 @@ namespace Mirror
{
OnStopHost();
- // TODO try to move DisconnectLocalServer into StopClient(), and
- // then call StopClient() before StopServer(). needs testing!.
-
- // DisconnectLocalServer needs to be called so that the host client
- // receives a DisconnectMessage too.
- // fixes: https://github.com/vis2k/Mirror/issues/1515
- NetworkClient.DisconnectLocalServer();
+ // calling OnTransportDisconnected was needed to fix
+ // https://github.com/vis2k/Mirror/issues/1515
+ // so that the host client receives a DisconnectMessage
+ // TODO reevaluate if this is still needed after all the disconnect
+ // fixes, and try to put this into LocalConnection.Disconnect!
+ NetworkServer.OnTransportDisconnected(NetworkConnection.LocalConnectionId);
StopClient();
StopServer();
@@ -687,7 +689,7 @@ namespace Mirror
void RegisterServerMessages()
{
NetworkServer.OnConnectedEvent = OnServerConnectInternal;
- NetworkServer.OnDisconnectedEvent = OnServerDisconnectInternal;
+ NetworkServer.OnDisconnectedEvent = OnServerDisconnect;
NetworkServer.RegisterHandler(OnServerAddPlayerInternal);
// Network Server initially registers its own handler for this, so we replace it here.
@@ -1089,12 +1091,6 @@ namespace Mirror
OnServerConnect(conn);
}
- void OnServerDisconnectInternal(NetworkConnection conn)
- {
- //Debug.Log("NetworkManager.OnServerDisconnectInternal");
- OnServerDisconnect(conn);
- }
-
void OnServerReadyMessageInternal(NetworkConnection conn, ReadyMessage msg)
{
//Debug.Log("NetworkManager.OnServerReadyMessageInternal");
@@ -1133,7 +1129,7 @@ namespace Mirror
if (authenticator != null)
{
// we have an authenticator - let it handle authentication
- authenticator.OnClientAuthenticate(NetworkClient.connection);
+ authenticator.OnClientAuthenticate();
}
else
{
@@ -1164,6 +1160,7 @@ namespace Mirror
}
}
+ // TODO call OnClientDisconnect directly, don't pass the connection
void OnClientDisconnectInternal()
{
//Debug.Log("NetworkManager.OnClientDisconnectInternal");
@@ -1191,10 +1188,14 @@ namespace Mirror
public virtual void OnServerConnect(NetworkConnection conn) {}
/// Called on the server when a client disconnects.
+ // Called by NetworkServer.OnTransportDisconnect!
public virtual void OnServerDisconnect(NetworkConnection conn)
{
+ // by default, this function destroys the connection's player.
+ // can be overwritten for cases like delayed logouts in MMOs to
+ // avoid players escaping from PvP situations by logging out.
NetworkServer.DestroyPlayerForConnection(conn);
- Debug.Log("OnServerDisconnect: Client disconnected.");
+ //Debug.Log("OnServerDisconnect: Client disconnected.");
}
/// Called on the server when a client is ready (= loaded the scene)
@@ -1208,7 +1209,7 @@ namespace Mirror
NetworkServer.SetClientReady(conn);
}
- /// Called on server when a client requests to add the player. Adds playerPrefab by default. Can be overwritte.
+ /// Called on server when a client requests to add the player. Adds playerPrefab by default. Can be overwritten.
// The default implementation for this function creates a new player object from the playerPrefab.
public virtual void OnServerAddPlayer(NetworkConnection conn)
{
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkManager.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkManager.cs.meta
index 0a7564a..4a0c1ca 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkManager.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkManager.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkManagerHUD.cs b/UnityProject/Assets/Mirror/Runtime/NetworkManagerHUD.cs
index c7377ea..7bb2fad 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkManagerHUD.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkManagerHUD.cs
@@ -9,7 +9,7 @@ namespace Mirror
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkManagerHUD")]
[RequireComponent(typeof(NetworkManager))]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkManagerHUD.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-manager-hud")]
public class NetworkManagerHUD : MonoBehaviour
{
NetworkManager manager;
@@ -105,14 +105,23 @@ namespace Mirror
void StatusLabels()
{
- // server / client status message
- if (NetworkServer.active)
+ // host mode
+ // display separately because this always confused people:
+ // Server: ...
+ // Client: ...
+ if (NetworkServer.active && NetworkClient.active)
{
- GUILayout.Label("Server: active. Transport: " + Transport.activeTransport);
+ GUILayout.Label($"Host: running via {Transport.activeTransport}");
}
- if (NetworkClient.isConnected)
+ // server only
+ else if (NetworkServer.active)
{
- GUILayout.Label("Client: address=" + manager.networkAddress);
+ GUILayout.Label($"Server: running via {Transport.activeTransport}");
+ }
+ // client only
+ else if (NetworkClient.isConnected)
+ {
+ GUILayout.Label($"Client: connected to {manager.networkAddress} via {Transport.activeTransport}");
}
}
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkManagerHUD.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkManagerHUD.cs.meta
index a720b9c..c1437a7 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkManagerHUD.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkManagerHUD.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkMessage.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkMessage.cs.meta
index 73d3d8f..ce49c4e 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkMessage.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkMessage.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkReader.cs b/UnityProject/Assets/Mirror/Runtime/NetworkReader.cs
index d77717f..d2e52e8 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkReader.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkReader.cs
@@ -111,18 +111,38 @@ namespace Mirror
public static byte ReadByte(this NetworkReader reader) => reader.ReadByte();
public static sbyte ReadSByte(this NetworkReader reader) => (sbyte)reader.ReadByte();
- public static char ReadChar(this NetworkReader reader) => (char)reader.ReadUInt16();
- public static bool ReadBoolean(this NetworkReader reader) => reader.ReadByte() != 0;
- public static short ReadInt16(this NetworkReader reader) => (short)reader.ReadUInt16();
- public static ushort ReadUInt16(this NetworkReader reader)
+ public static char ReadChar(this NetworkReader reader) => (char)reader.ReadUShort();
+
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use ReadBool instead.")]
+ public static bool ReadBoolean(this NetworkReader reader) => reader.ReadBool();
+ public static bool ReadBool(this NetworkReader reader) => reader.ReadByte() != 0;
+
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use ReadShort instead.")]
+ public static short ReadInt16(this NetworkReader reader) => reader.ReadShort();
+ public static short ReadShort(this NetworkReader reader) => (short)reader.ReadUShort();
+
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use ReadUShort instead.")]
+ public static ushort ReadUInt16(this NetworkReader reader) => reader.ReadUShort();
+ public static ushort ReadUShort(this NetworkReader reader)
{
ushort value = 0;
value |= reader.ReadByte();
value |= (ushort)(reader.ReadByte() << 8);
return value;
}
- public static int ReadInt32(this NetworkReader reader) => (int)reader.ReadUInt32();
- public static uint ReadUInt32(this NetworkReader reader)
+
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use ReadInt instead.")]
+ public static int ReadInt32(this NetworkReader reader) => reader.ReadInt();
+ public static int ReadInt(this NetworkReader reader) => (int)reader.ReadUInt();
+
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use ReadUInt instead.")]
+ public static uint ReadUInt32(this NetworkReader reader) => reader.ReadUInt();
+ public static uint ReadUInt(this NetworkReader reader)
{
uint value = 0;
value |= reader.ReadByte();
@@ -131,8 +151,16 @@ namespace Mirror
value |= (uint)(reader.ReadByte() << 24);
return value;
}
- public static long ReadInt64(this NetworkReader reader) => (long)reader.ReadUInt64();
- public static ulong ReadUInt64(this NetworkReader reader)
+
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use ReadLong instead.")]
+ public static long ReadInt64(this NetworkReader reader) => reader.ReadLong();
+ public static long ReadLong(this NetworkReader reader) => (long)reader.ReadULong();
+
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use ReadULong instead.")]
+ public static ulong ReadUInt64(this NetworkReader reader) => reader.ReadULong();
+ public static ulong ReadULong(this NetworkReader reader)
{
ulong value = 0;
value |= reader.ReadByte();
@@ -145,23 +173,28 @@ namespace Mirror
value |= ((ulong)reader.ReadByte()) << 56;
return value;
}
- public static float ReadSingle(this NetworkReader reader)
+
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use ReadFloat instead.")]
+ public static float ReadSingle(this NetworkReader reader) => reader.ReadFloat();
+ public static float ReadFloat(this NetworkReader reader)
{
UIntFloat converter = new UIntFloat();
- converter.intValue = reader.ReadUInt32();
+ converter.intValue = reader.ReadUInt();
return converter.floatValue;
}
+
public static double ReadDouble(this NetworkReader reader)
{
UIntDouble converter = new UIntDouble();
- converter.longValue = reader.ReadUInt64();
+ converter.longValue = reader.ReadULong();
return converter.doubleValue;
}
public static decimal ReadDecimal(this NetworkReader reader)
{
UIntDecimal converter = new UIntDecimal();
- converter.longValue1 = reader.ReadUInt64();
- converter.longValue2 = reader.ReadUInt64();
+ converter.longValue1 = reader.ReadULong();
+ converter.longValue2 = reader.ReadULong();
return converter.decimalValue;
}
@@ -169,7 +202,7 @@ namespace Mirror
public static string ReadString(this NetworkReader reader)
{
// read number of bytes
- ushort size = reader.ReadUInt16();
+ ushort size = reader.ReadUShort();
// null support, see NetworkWriter
if (size == 0)
@@ -194,7 +227,7 @@ namespace Mirror
{
// count = 0 means the array was null
// otherwise count -1 is the length of the array
- uint count = reader.ReadUInt32();
+ uint count = reader.ReadUInt();
// Use checked() to force it to throw OverflowException if data is invalid
return count == 0 ? null : reader.ReadBytes(checked((int)(count - 1u)));
}
@@ -204,42 +237,42 @@ namespace Mirror
{
// count = 0 means the array was null
// otherwise count - 1 is the length of the array
- uint count = reader.ReadUInt32();
+ uint count = reader.ReadUInt();
// Use checked() to force it to throw OverflowException if data is invalid
return count == 0 ? default : reader.ReadBytesSegment(checked((int)(count - 1u)));
}
- public static Vector2 ReadVector2(this NetworkReader reader) => new Vector2(reader.ReadSingle(), reader.ReadSingle());
- public static Vector3 ReadVector3(this NetworkReader reader) => new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
- public static Vector4 ReadVector4(this NetworkReader reader) => new Vector4(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
- public static Vector2Int ReadVector2Int(this NetworkReader reader) => new Vector2Int(reader.ReadInt32(), reader.ReadInt32());
- public static Vector3Int ReadVector3Int(this NetworkReader reader) => new Vector3Int(reader.ReadInt32(), reader.ReadInt32(), reader.ReadInt32());
- public static Color ReadColor(this NetworkReader reader) => new Color(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
+ public static Vector2 ReadVector2(this NetworkReader reader) => new Vector2(reader.ReadFloat(), reader.ReadFloat());
+ public static Vector3 ReadVector3(this NetworkReader reader) => new Vector3(reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat());
+ public static Vector4 ReadVector4(this NetworkReader reader) => new Vector4(reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat());
+ public static Vector2Int ReadVector2Int(this NetworkReader reader) => new Vector2Int(reader.ReadInt(), reader.ReadInt());
+ public static Vector3Int ReadVector3Int(this NetworkReader reader) => new Vector3Int(reader.ReadInt(), reader.ReadInt(), reader.ReadInt());
+ public static Color ReadColor(this NetworkReader reader) => new Color(reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat());
public static Color32 ReadColor32(this NetworkReader reader) => new Color32(reader.ReadByte(), reader.ReadByte(), reader.ReadByte(), reader.ReadByte());
- public static Quaternion ReadQuaternion(this NetworkReader reader) => new Quaternion(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
- public static Rect ReadRect(this NetworkReader reader) => new Rect(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
- public static Plane ReadPlane(this NetworkReader reader) => new Plane(reader.ReadVector3(), reader.ReadSingle());
+ public static Quaternion ReadQuaternion(this NetworkReader reader) => new Quaternion(reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat());
+ public static Rect ReadRect(this NetworkReader reader) => new Rect(reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat());
+ public static Plane ReadPlane(this NetworkReader reader) => new Plane(reader.ReadVector3(), reader.ReadFloat());
public static Ray ReadRay(this NetworkReader reader) => new Ray(reader.ReadVector3(), reader.ReadVector3());
public static Matrix4x4 ReadMatrix4x4(this NetworkReader reader)
{
return new Matrix4x4
{
- m00 = reader.ReadSingle(),
- m01 = reader.ReadSingle(),
- m02 = reader.ReadSingle(),
- m03 = reader.ReadSingle(),
- m10 = reader.ReadSingle(),
- m11 = reader.ReadSingle(),
- m12 = reader.ReadSingle(),
- m13 = reader.ReadSingle(),
- m20 = reader.ReadSingle(),
- m21 = reader.ReadSingle(),
- m22 = reader.ReadSingle(),
- m23 = reader.ReadSingle(),
- m30 = reader.ReadSingle(),
- m31 = reader.ReadSingle(),
- m32 = reader.ReadSingle(),
- m33 = reader.ReadSingle()
+ m00 = reader.ReadFloat(),
+ m01 = reader.ReadFloat(),
+ m02 = reader.ReadFloat(),
+ m03 = reader.ReadFloat(),
+ m10 = reader.ReadFloat(),
+ m11 = reader.ReadFloat(),
+ m12 = reader.ReadFloat(),
+ m13 = reader.ReadFloat(),
+ m20 = reader.ReadFloat(),
+ m21 = reader.ReadFloat(),
+ m22 = reader.ReadFloat(),
+ m23 = reader.ReadFloat(),
+ m30 = reader.ReadFloat(),
+ m31 = reader.ReadFloat(),
+ m32 = reader.ReadFloat(),
+ m33 = reader.ReadFloat()
};
}
public static byte[] ReadBytes(this NetworkReader reader, int count)
@@ -266,7 +299,7 @@ namespace Mirror
public static NetworkIdentity ReadNetworkIdentity(this NetworkReader reader)
{
- uint netId = reader.ReadUInt32();
+ uint netId = reader.ReadUInt();
if (netId == 0)
return null;
@@ -284,7 +317,7 @@ namespace Mirror
public static NetworkBehaviour ReadNetworkBehaviour(this NetworkReader reader)
{
- uint netId = reader.ReadUInt32();
+ uint netId = reader.ReadUInt();
if (netId == 0)
return null;
@@ -310,7 +343,7 @@ namespace Mirror
public static NetworkBehaviour.NetworkBehaviourSyncVar ReadNetworkBehaviourSyncVar(this NetworkReader reader)
{
- uint netId = reader.ReadUInt32();
+ uint netId = reader.ReadUInt();
byte componentIndex = default;
// if netId is not 0, then index is also sent to read before returning
@@ -324,7 +357,7 @@ namespace Mirror
public static List ReadList(this NetworkReader reader)
{
- int length = reader.ReadInt32();
+ int length = reader.ReadInt();
if (length < 0)
return null;
List result = new List(length);
@@ -337,7 +370,7 @@ namespace Mirror
public static T[] ReadArray(this NetworkReader reader)
{
- int length = reader.ReadInt32();
+ int length = reader.ReadInt();
// we write -1 for null
if (length < 0)
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkReader.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkReader.cs.meta
index 65ad3f0..4957f80 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkReader.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkReader.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkReaderPool.cs b/UnityProject/Assets/Mirror/Runtime/NetworkReaderPool.cs
index ea46412..b5591ba 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkReaderPool.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkReaderPool.cs
@@ -18,7 +18,9 @@ namespace Mirror
// position and array before reusing.
static readonly Pool Pool = new Pool(
// byte[] will be assigned in GetReader
- () => new PooledNetworkReader(new byte[]{})
+ () => new PooledNetworkReader(new byte[]{}),
+ // initial capacity to avoid allocations in the first few frames
+ 1000
);
/// Get the next reader in the pool. If pool is empty, creates a new Reader
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkReaderPool.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkReaderPool.cs.meta
index 2c94768..7db6ef0 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkReaderPool.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkReaderPool.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkServer.cs b/UnityProject/Assets/Mirror/Runtime/NetworkServer.cs
index cb552ef..6bad781 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkServer.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkServer.cs
@@ -23,8 +23,8 @@ namespace Mirror
new Dictionary();
/// Message Handlers dictionary, with mesageId as key
- static Dictionary handlers =
- new Dictionary();
+ internal static Dictionary handlers =
+ new Dictionary();
/// Single player mode can use dontListen to not accept incoming connections
// see also: https://github.com/vis2k/Mirror/pull/2595
@@ -37,20 +37,15 @@ namespace Mirror
// (this is pretty much always a good idea)
public static bool batching = true;
- /// interval in seconds used for batching. 0 means send in every LateUpdate.
- public static float batchInterval = 0;
-
// interest management component (optional)
// by default, everyone observes everyone
public static InterestManagement aoi;
- /// Automatically disconnect inactive connections after a timeout. Can be changed at runtime.
+ [Obsolete("Transport is responsible for timeouts.")]
public static bool disconnectInactiveConnections;
- /// Timeout in seconds to disconnect inactive connections. Can be changed at runtime.
- // By default, clients send at least a Ping message every 2 seconds.
- // The Host client is immune from idle timeout disconnection.
- public static float disconnectInactiveTimeout = 60;
+ [Obsolete("Transport is responsible for timeouts. Configure the Transport's timeout setting instead.")]
+ public static float disconnectInactiveTimeout = 60f;
// OnConnected / OnDisconnected used to be NetworkMessages that were
// invoked. this introduced a bug where external clients could send
@@ -71,18 +66,23 @@ namespace Mirror
//Make sure connections are cleared in case any old connections references exist from previous sessions
connections.Clear();
+ // reset NetworkTime
+ NetworkTime.Reset();
+
Debug.Assert(Transport.activeTransport != null, "There was no active transport when calling NetworkServer.Listen, If you are calling Listen manually then make sure to set 'Transport.activeTransport' first");
AddTransportHandlers();
}
static void AddTransportHandlers()
{
- Transport.activeTransport.OnServerConnected = OnConnected;
- Transport.activeTransport.OnServerDataReceived = OnDataReceived;
- Transport.activeTransport.OnServerDisconnected = OnDisconnected;
+ Transport.activeTransport.OnServerConnected = OnTransportConnected;
+ Transport.activeTransport.OnServerDataReceived = OnTransportData;
+ Transport.activeTransport.OnServerDisconnected = OnTransportDisconnected;
Transport.activeTransport.OnServerError = OnError;
}
+ // calls OnStartClient for all SERVER objects in host mode once.
+ // client doesn't get spawn messages for those, so need to call manually.
public static void ActivateHostScene()
{
foreach (NetworkIdentity identity in NetworkIdentity.spawned.Values)
@@ -179,7 +179,6 @@ namespace Mirror
// connection cannot be null here or conn.connectionId
// would throw NRE
connections[conn.connectionId] = conn;
- conn.SetHandlers(handlers);
return true;
}
// already a connection with this id
@@ -350,7 +349,8 @@ namespace Mirror
}
// transport events ////////////////////////////////////////////////////
- static void OnConnected(int connectionId)
+ // called by transport
+ static void OnTransportConnected(int connectionId)
{
// Debug.Log("Server accepted client:" + connectionId);
@@ -380,7 +380,7 @@ namespace Mirror
if (connections.Count < maxConnections)
{
// add connection
- NetworkConnectionToClient conn = new NetworkConnectionToClient(connectionId, batching, batchInterval);
+ NetworkConnectionToClient conn = new NetworkConnectionToClient(connectionId, batching);
OnConnected(conn);
}
else
@@ -400,34 +400,76 @@ namespace Mirror
OnConnectedEvent?.Invoke(conn);
}
- static void OnDataReceived(int connectionId, ArraySegment data, int channelId)
+ static void UnpackAndInvoke(NetworkConnectionToClient connection, NetworkReader reader, int channelId)
{
- if (connections.TryGetValue(connectionId, out NetworkConnectionToClient conn))
+ if (MessagePacking.Unpack(reader, out ushort msgType))
{
- conn.TransportReceive(data, channelId);
+ // try to invoke the handler for that message
+ if (handlers.TryGetValue(msgType, out NetworkMessageDelegate handler))
+ {
+ handler.Invoke(connection, reader, channelId);
+ connection.lastMessageTime = Time.time;
+ }
+ else
+ {
+ // Debug.Log("Unknown message ID " + msgType + " " + this + ". May be due to no existing RegisterHandler for this message.");
+ }
}
else
{
- Debug.LogError("HandleData Unknown connectionId:" + connectionId);
+ Debug.LogError("Closed connection: " + connection + ". Invalid message header.");
+ connection.Disconnect();
}
}
- internal static void OnDisconnected(int connectionId)
+ // called by transport
+ internal static void OnTransportData(int connectionId, ArraySegment data, int channelId)
+ {
+ if (connections.TryGetValue(connectionId, out NetworkConnectionToClient connection))
+ {
+ if (data.Count < MessagePacking.HeaderSize)
+ {
+ Debug.LogError($"NetworkServer: received Message was too short (messages should start with message id)");
+ connection.Disconnect();
+ return;
+ }
+
+ // unpack message
+ using (PooledNetworkReader reader = NetworkReaderPool.GetReader(data))
+ {
+ UnpackAndInvoke(connection, reader, channelId);
+ }
+ }
+ else Debug.LogError("HandleData Unknown connectionId:" + connectionId);
+ }
+
+ // called by transport
+ // IMPORTANT: often times when disconnecting, we call this from Mirror
+ // too because we want to remove the connection and handle
+ // the disconnect immediately.
+ // => which is fine as long as we guarantee it only runs once
+ // => which we do by removing the connection!
+ internal static void OnTransportDisconnected(int connectionId)
{
// Debug.Log("Server disconnect client:" + connectionId);
if (connections.TryGetValue(connectionId, out NetworkConnectionToClient conn))
{
- conn.Disconnect();
RemoveConnection(connectionId);
// Debug.Log("Server lost client:" + connectionId);
- OnDisconnected(conn);
- }
- }
- static void OnDisconnected(NetworkConnection conn)
- {
- OnDisconnectedEvent?.Invoke(conn);
- //Debug.Log("Server lost client:" + conn);
+ // NetworkManager hooks into OnDisconnectedEvent to make
+ // DestroyPlayerForConnection(conn) optional, e.g. for PvP MMOs
+ // where players shouldn't be able to escape combat instantly.
+ if (OnDisconnectedEvent != null)
+ {
+ OnDisconnectedEvent.Invoke(conn);
+ }
+ // if nobody hooked into it, then simply call DestroyPlayerForConnection
+ else
+ {
+ DestroyPlayerForConnection(conn);
+ }
+ }
}
static void OnError(int connectionId, Exception exception)
@@ -441,7 +483,7 @@ namespace Mirror
public static void RegisterHandler(Action handler, bool requireAuthentication = true)
where T : struct, NetworkMessage
{
- int msgType = MessagePacking.GetId();
+ ushort msgType = MessagePacking.GetId();
if (handlers.ContainsKey(msgType))
{
Debug.LogWarning($"NetworkServer.RegisterHandler replacing handler for {typeof(T).FullName}, id={msgType}. If replacement is intentional, use ReplaceHandler instead to avoid this warning.");
@@ -461,7 +503,7 @@ namespace Mirror
public static void ReplaceHandler(Action handler, bool requireAuthentication = true)
where T : struct, NetworkMessage
{
- int msgType = MessagePacking.GetId();
+ ushort msgType = MessagePacking.GetId();
handlers[msgType] = MessagePacking.WrapHandler(handler, requireAuthentication);
}
@@ -476,7 +518,7 @@ namespace Mirror
public static void UnregisterHandler()
where T : struct, NetworkMessage
{
- int msgType = MessagePacking.GetId();
+ ushort msgType = MessagePacking.GetId();
handlers.Remove(msgType);
}
@@ -496,15 +538,8 @@ namespace Mirror
// disconnect //////////////////////////////////////////////////////////
/// Disconnect all connections, including the local connection.
+ // synchronous: handles disconnect events and cleans up fully before returning!
public static void DisconnectAll()
- {
- DisconnectAllExternalConnections();
- localConnection = null;
- active = false;
- }
-
- /// Disconnect all currently connected clients except the local connection.
- public static void DisconnectAllExternalConnections()
{
// disconnect and remove all connections.
// we can not use foreach here because if
@@ -519,16 +554,33 @@ namespace Mirror
// copy is no performance problem.
foreach (NetworkConnectionToClient conn in connections.Values.ToList())
{
+ // disconnect via connection->transport
conn.Disconnect();
- // call OnDisconnected unless local player in host mode
+
+ // we want this function to be synchronous: handle disconnect
+ // events and clean up fully before returning.
+ // -> OnTransportDisconnected can safely be called without
+ // waiting for the Transport's callback.
+ // -> it has checks to only run once.
+
+ // call OnDisconnected unless local player in host mod
+ // TODO unnecessary check?
if (conn.connectionId != NetworkConnection.LocalConnectionId)
- OnDisconnected(conn);
+ OnTransportDisconnected(conn.connectionId);
}
+
+ // cleanup
connections.Clear();
+ localConnection = null;
+ active = false;
}
- [Obsolete("DisconnectAllConnections was renamed to DisconnectAllExternalConnections because that's what it does.")]
- public static void DisconnectAllConnections() => DisconnectAllExternalConnections();
+ /// Disconnect all currently connected clients except the local connection.
+ [Obsolete("Call NetworkClient.DisconnectAll() instead")]
+ public static void DisconnectAllExternalConnections() => DisconnectAll();
+
+ [Obsolete("Call NetworkClient.DisconnectAll() instead")]
+ public static void DisconnectAllConnections() => DisconnectAll();
// add/remove/replace player ///////////////////////////////////////////
/// Called by server after AddPlayer message to add the player for the connection.
@@ -687,7 +739,7 @@ namespace Mirror
{
// Debug.Log("PlayerNotReady " + conn);
conn.isReady = false;
- conn.RemoveObservers();
+ conn.RemoveFromObservingsObservers();
conn.Send(new NotReadyMessage());
}
@@ -831,7 +883,7 @@ namespace Mirror
// verify if we an spawn this
if (Utils.IsPrefab(obj))
{
- Debug.LogError($"GameObject {obj.name} is a prefab, it can't be spawned. This will cause errors in builds.");
+ Debug.LogError($"GameObject {obj.name} is a prefab, it can't be spawned. Instantiate it first.");
return;
}
@@ -934,6 +986,8 @@ namespace Mirror
return false;
NetworkIdentity[] identities = Resources.FindObjectsOfTypeAll();
+
+ // first pass: activate all scene objects
foreach (NetworkIdentity identity in identities)
{
if (ValidateSceneObject(identity))
@@ -943,6 +997,7 @@ namespace Mirror
}
}
+ // second pass: spawn all scene objects
foreach (NetworkIdentity identity in identities)
{
if (ValidateSceneObject(identity))
@@ -1059,6 +1114,12 @@ namespace Mirror
{
// destroy all objects owned by this connection, including the player object
conn.DestroyOwnedObjects();
+ // remove connection from all of its observing entities observers
+ // fixes https://github.com/vis2k/Mirror/issues/2737
+ // -> cleaning those up in NetworkConnection.Disconnect is NOT enough
+ // because voluntary disconnects from the other end don't call
+ // NetworkConnectionn.Disconnect()
+ conn.RemoveFromObservingsObservers();
conn.identity = null;
}
@@ -1069,11 +1130,11 @@ namespace Mirror
identity.connectionToClient?.RemoveOwnedObject(identity);
- ObjectDestroyMessage msg = new ObjectDestroyMessage
+ ObjectDestroyMessage message = new ObjectDestroyMessage
{
netId = identity.netId
};
- SendToObservers(identity, msg);
+ SendToObservers(identity, message);
identity.ClearObservers();
if (NetworkClient.active && localClientActive)
@@ -1311,6 +1372,173 @@ namespace Mirror
}
}
+ // broadcasting ////////////////////////////////////////////////////////
+ // helper function to get the right serialization for a connection
+ static NetworkWriter GetEntitySerializationForConnection(NetworkIdentity identity, NetworkConnectionToClient connection)
+ {
+ // get serialization for this entity (cached)
+ NetworkIdentitySerialization serialization = identity.GetSerializationAtTick(Time.time);
+
+ // is this entity owned by this connection?
+ bool owned = identity.connectionToClient == connection;
+
+ // send serialized data
+ // owner writer if owned
+ if (owned)
+ {
+ // was it dirty / did we actually serialize anything?
+ if (serialization.ownerWritten > 0)
+ return serialization.ownerWriter;
+ }
+ // observers writer if not owned
+ else
+ {
+ // was it dirty / did we actually serialize anything?
+ if (serialization.observersWritten > 0)
+ return serialization.observersWriter;
+ }
+
+ // nothing was serialized
+ return null;
+ }
+
+ // helper function to clear dirty bits of all spawned entities
+ static void ClearSpawnedDirtyBits()
+ {
+ // TODO clear dirty bits when removing the last observer instead!
+ // no need to do it for ALL entities ALL the time.
+ //
+ // for each spawned:
+ // clear dirty bits if it has no observers.
+ // we did this before push->pull broadcasting so let's keep
+ // doing this for now.
+ foreach (NetworkIdentity identity in NetworkIdentity.spawned.Values)
+ {
+ if (identity.observers == null || identity.observers.Count == 0)
+ {
+ // clear all component's dirty bits.
+ // it would be spawned on new observers anyway.
+ identity.ClearAllComponentsDirtyBits();
+ }
+ }
+ }
+
+ // helper function to broadcast the world to a connection
+ static void BroadcastToConnection(NetworkConnectionToClient connection)
+ {
+ // for each entity that this connection is seeing
+ foreach (NetworkIdentity identity in connection.observing)
+ {
+ // make sure it's not null or destroyed.
+ // (which can happen if someone uses
+ // GameObject.Destroy instead of
+ // NetworkServer.Destroy)
+ if (identity != null)
+ {
+ // get serialization for this entity viewed by this connection
+ // (if anything was serialized this time)
+ NetworkWriter serialization = GetEntitySerializationForConnection(identity, connection);
+ if (serialization != null)
+ {
+ EntityStateMessage message = new EntityStateMessage
+ {
+ netId = identity.netId,
+ payload = serialization.ToArraySegment()
+ };
+ connection.Send(message);
+ }
+
+ // clear dirty bits only for the components that we serialized
+ // DO NOT clean ALL component's dirty bits, because
+ // components can have different syncIntervals and we don't
+ // want to reset dirty bits for the ones that were not
+ // synced yet.
+ // (we serialized only the IsDirty() components, or all of
+ // them if initialState. clearing the dirty ones is enough.)
+ //
+ // NOTE: this is what we did before push->pull
+ // broadcasting. let's keep doing this for
+ // feature parity to not break anyone's project.
+ // TODO make this more simple / unnecessary later.
+ identity.ClearDirtyComponentsDirtyBits();
+ }
+ // spawned list should have no null entries because we
+ // always call Remove in OnObjectDestroy everywhere.
+ // if it does have null then someone used
+ // GameObject.Destroy instead of NetworkServer.Destroy.
+ else Debug.LogWarning("Found 'null' entry in observing list for connectionId=" + connection.connectionId + ". Please call NetworkServer.Destroy to destroy networked objects. Don't use GameObject.Destroy.");
+ }
+ }
+
+ // helper function to check a connection for inactivity
+ // and disconnect if necessary
+ // => returns true if disconnected
+ static bool DisconnectIfInactive(NetworkConnectionToClient connection)
+ {
+ // check for inactivity
+#pragma warning disable 618
+ if (disconnectInactiveConnections &&
+ !connection.IsAlive(disconnectInactiveTimeout))
+ {
+ Debug.LogWarning($"Disconnecting {connection} for inactivity!");
+ connection.Disconnect();
+ return true;
+ }
+#pragma warning restore 618
+ return false;
+ }
+
+ // NetworkLateUpdate called after any Update/FixedUpdate/LateUpdate
+ // (we add this to the UnityEngine in NetworkLoop)
+ static readonly List connectionsCopy =
+ new List();
+
+ static void Broadcast()
+ {
+ // copy all connections into a helper collection so that
+ // OnTransportDisconnected can be called while iterating.
+ // -> OnTransportDisconnected removes from the collection
+ // -> which would throw 'can't modify while iterating' errors
+ // => see also: https://github.com/vis2k/Mirror/issues/2739
+ // (copy nonalloc)
+ // TODO remove this when we move to 'lite' transports with only
+ // socket send/recv later.
+ connectionsCopy.Clear();
+ connections.Values.CopyTo(connectionsCopy);
+
+ // go through all connections
+ foreach (NetworkConnectionToClient connection in connectionsCopy)
+ {
+ // check for inactivity. disconnects if necessary.
+ if (DisconnectIfInactive(connection))
+ continue;
+
+ // has this connection joined the world yet?
+ // for each READY connection:
+ // pull in UpdateVarsMessage for each entity it observes
+ if (connection.isReady)
+ {
+ // broadcast world state to this connection
+ BroadcastToConnection(connection);
+ }
+
+ // update connection to flush out batched messages
+ connection.Update();
+ }
+
+ // TODO we already clear the serialized component's dirty bits above
+ // might as well clear everything???
+ //
+ // TODO this unfortunately means we still need to iterate ALL
+ // spawned and not just the ones with observers. figure
+ // out a way to get rid of this.
+ //
+ // TODO clear dirty bits when removing the last observer instead!
+ // no need to do it for ALL entities ALL the time.
+ //
+ ClearSpawnedDirtyBits();
+ }
+
// update //////////////////////////////////////////////////////////////
// NetworkEarlyUpdate called before any Update/FixedUpdate
// (we add this to the UnityEngine in NetworkLoop)
@@ -1321,170 +1549,13 @@ namespace Mirror
Transport.activeTransport.ServerEarlyUpdate();
}
- // cache NetworkIdentity serializations
- // Update() shouldn't serialize multiple times for multiple connections
- struct Serialization
- {
- public PooledNetworkWriter ownerWriter;
- public PooledNetworkWriter observersWriter;
- // TODO there is probably a more simple way later
- public int ownerWritten;
- public int observersWritten;
- }
- static Dictionary serializations =
- new Dictionary();
-
- // NetworkLateUpdate called after any Update/FixedUpdate/LateUpdate
- // (we add this to the UnityEngine in NetworkLoop)
internal static void NetworkLateUpdate()
{
- // only process spawned & connections if active
+ // only broadcast world if active
if (active)
- {
- // go through all connections
- foreach (NetworkConnectionToClient connection in connections.Values)
- {
- // check for inactivity
- if (disconnectInactiveConnections &&
- !connection.IsAlive(disconnectInactiveTimeout))
- {
- Debug.LogWarning($"Disconnecting {connection} for inactivity!");
- connection.Disconnect();
- continue;
- }
+ Broadcast();
- // has this connection joined the world yet?
- // for each READY connection:
- // pull in UpdateVarsMessage for each entity it observes
- if (connection.isReady)
- {
- // for each entity that this connection is seeing
- foreach (NetworkIdentity identity in connection.observing)
- {
- // make sure it's not null or destroyed.
- // (which can happen if someone uses
- // GameObject.Destroy instead of
- // NetworkServer.Destroy)
- if (identity != null)
- {
- // multiple connections might be observed by the
- // same NetworkIdentity, but we don't want to
- // serialize them multiple times. look it up first.
- //
- // IMPORTANT: don't forget to return them to pool!
- // TODO make this easier later. for now aim for
- // feature parity to not break projects.
- if (!serializations.ContainsKey(identity))
- {
- // serialize all the dirty components.
- // one version for owner, one for observers.
- PooledNetworkWriter ownerWriter = NetworkWriterPool.GetWriter();
- PooledNetworkWriter observersWriter = NetworkWriterPool.GetWriter();
- identity.OnSerializeAllSafely(false, ownerWriter, out int ownerWritten, observersWriter, out int observersWritten);
- serializations[identity] = new Serialization
- {
- ownerWriter = ownerWriter,
- observersWriter = observersWriter,
- ownerWritten = ownerWritten,
- observersWritten = observersWritten
- };
-
- // clear dirty bits only for the components that we serialized
- // DO NOT clean ALL component's dirty bits, because
- // components can have different syncIntervals and we don't
- // want to reset dirty bits for the ones that were not
- // synced yet.
- // (we serialized only the IsDirty() components, or all of
- // them if initialState. clearing the dirty ones is enough.)
- //
- // NOTE: this is what we did before push->pull
- // broadcasting. let's keep doing this for
- // feature parity to not break anyone's project.
- // TODO make this more simple / unnecessary later.
- identity.ClearDirtyComponentsDirtyBits();
- }
-
- // get serialization
- Serialization serialization = serializations[identity];
-
- // is this entity owned by this connection?
- bool owned = identity.connectionToClient == connection;
-
- // send serialized data
- // owner writer if owned
- if (owned)
- {
- // was it dirty / did we actually serialize anything?
- if (serialization.ownerWritten > 0)
- {
- UpdateVarsMessage message = new UpdateVarsMessage
- {
- netId = identity.netId,
- payload = serialization.ownerWriter.ToArraySegment()
- };
- connection.Send(message);
- }
- }
- // observers writer if not owned
- else
- {
- // was it dirty / did we actually serialize anything?
- if (serialization.observersWritten > 0)
- {
- UpdateVarsMessage message = new UpdateVarsMessage
- {
- netId = identity.netId,
- payload = serialization.observersWriter.ToArraySegment()
- };
- connection.Send(message);
- }
- }
- }
- // spawned list should have no null entries because we
- // always call Remove in OnObjectDestroy everywhere.
- // if it does have null then someone used
- // GameObject.Destroy instead of NetworkServer.Destroy.
- else Debug.LogWarning("Found 'null' entry in observing list for connectionId=" + connection.connectionId + ". Please call NetworkServer.Destroy to destroy networked objects. Don't use GameObject.Destroy.");
- }
- }
-
- // update connection to flush out batched messages
- connection.Update();
- }
-
- // return serialized writers to pool, clear set
- // TODO this is for feature parity before push->pull change.
- // make this more simple / unnecessary later.
- foreach (Serialization entry in serializations.Values)
- {
- NetworkWriterPool.Recycle(entry.ownerWriter);
- NetworkWriterPool.Recycle(entry.observersWriter);
- }
- serializations.Clear();
-
- // TODO this unfortunately means we still need to iterate ALL
- // spawned and not just the ones with observers. figure
- // out a way to get rid of this.
- //
- // TODO clear dirty bits when removing the last observer instead!
- // no need to do it for ALL entities ALL the time.
- //
- // for each spawned:
- // clear dirty bits if it has no observers.
- // we did this before push->pull broadcasting so let's keep
- // doing this for now.
- foreach (NetworkIdentity identity in NetworkIdentity.spawned.Values)
- {
- if (identity.observers == null || identity.observers.Count == 0)
- {
- // clear all component's dirty bits.
- // it would be spawned on new observers anyway.
- identity.ClearAllComponentsDirtyBits();
- }
- }
- }
-
- // process all incoming messages after updating the world
+ // process all outgoing messages after updating the world
// (even if not active. still want to process disconnects etc.)
if (Transport.activeTransport != null)
Transport.activeTransport.ServerLateUpdate();
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkServer.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkServer.cs.meta
index 9861342..af1a068 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkServer.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkServer.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkStartPosition.cs b/UnityProject/Assets/Mirror/Runtime/NetworkStartPosition.cs
index 4948680..91f2623 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkStartPosition.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkStartPosition.cs
@@ -5,7 +5,7 @@ namespace Mirror
/// Start position for player spawning, automatically registers itself in the NetworkManager.
[DisallowMultipleComponent]
[AddComponentMenu("Network/NetworkStartPosition")]
- [HelpURL("https://mirror-networking.com/docs/Articles/Components/NetworkStartPosition.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/components/network-start-position")]
public class NetworkStartPosition : MonoBehaviour
{
public void Awake()
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkStartPosition.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkStartPosition.cs.meta
index ae9ab89..286d5f7 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkStartPosition.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkStartPosition.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkTime.cs b/UnityProject/Assets/Mirror/Runtime/NetworkTime.cs
index 5e8a9bc..9154794 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkTime.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkTime.cs
@@ -36,6 +36,7 @@ namespace Mirror
public static void Reset()
{
+ stopwatch.Restart();
_rtt = new ExponentialMovingAverage(PingWindowSize);
_offset = new ExponentialMovingAverage(PingWindowSize);
offsetMin = double.MinValue;
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkTime.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkTime.cs.meta
index 1dc9e0a..ee55ad5 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkTime.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkTime.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkVisibility.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkVisibility.cs.meta
index f71b7be..9e3d280 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkVisibility.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkVisibility.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkWriter.cs b/UnityProject/Assets/Mirror/Runtime/NetworkWriter.cs
index 2c435c7..9881bdb 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkWriter.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkWriter.cs
@@ -24,61 +24,15 @@ namespace Mirror
// => 1500 bytes by default because on average, most packets will be <= MTU
byte[] buffer = new byte[1500];
- // 'int' is the best type for .Position. 'short' is too small if we send >32kb which would result in negative .Position
- // -> converting long to int is fine until 2GB of data (MAX_INT), so we don't have to worry about overflows here
- int position;
- int length;
-
- /// Number of bytes writen to the buffer
- public int Length => length;
-
/// Next position to write to the buffer
- public int Position
- {
- get => position;
- set
- {
- position = value;
- EnsureLength(value);
- }
- }
+ public int Position;
/// Reset both the position and length of the stream
// Leaves the capacity the same so that we can reuse this writer without
// extra allocations
public void Reset()
{
- position = 0;
- length = 0;
- }
-
- /// Sets length, moves position if it is greater than new length
- /// Zeros out any extra length created by setlength
- public void SetLength(int newLength)
- {
- int oldLength = length;
-
- // ensure length & capacity
- EnsureLength(newLength);
-
- // zero out new length
- if (oldLength < newLength)
- {
- Array.Clear(buffer, oldLength, newLength - oldLength);
- }
-
- length = newLength;
- position = Mathf.Min(position, length);
- }
-
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- void EnsureLength(int value)
- {
- if (length < value)
- {
- length = value;
- EnsureCapacity(value);
- }
+ Position = 0;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
@@ -91,33 +45,33 @@ namespace Mirror
}
}
- /// Copies buffer to new array of size 'Length'. Ignores 'Position'.
+ /// Copies buffer until 'Position' to a new array.
public byte[] ToArray()
{
- byte[] data = new byte[length];
- Array.ConstrainedCopy(buffer, 0, data, 0, length);
+ byte[] data = new byte[Position];
+ Array.ConstrainedCopy(buffer, 0, data, 0, Position);
return data;
}
- /// Returns allocatin-free ArraySegment which points to buffer up to 'Length' (ignores 'Position').
+ /// Returns allocation-free ArraySegment until 'Position'.
public ArraySegment ToArraySegment()
{
- return new ArraySegment(buffer, 0, length);
+ return new ArraySegment(buffer, 0, Position);
}
public void WriteByte(byte value)
{
- EnsureLength(position + 1);
- buffer[position++] = value;
+ EnsureCapacity(Position + 1);
+ buffer[Position++] = value;
}
// for byte arrays with consistent size, where the reader knows how many to read
// (like a packet opcode that's always the same)
public void WriteBytes(byte[] buffer, int offset, int count)
{
- EnsureLength(position + count);
- Array.ConstrainedCopy(buffer, offset, this.buffer, position, count);
- position += count;
+ EnsureCapacity(Position + count);
+ Array.ConstrainedCopy(buffer, offset, this.buffer, Position, count);
+ Position += count;
}
/// Writes any type that mirror supports. Uses weaver populated Writer(T).write.
@@ -149,19 +103,31 @@ namespace Mirror
public static void WriteSByte(this NetworkWriter writer, sbyte value) => writer.WriteByte((byte)value);
- public static void WriteChar(this NetworkWriter writer, char value) => writer.WriteUInt16(value);
+ public static void WriteChar(this NetworkWriter writer, char value) => writer.WriteUShort(value);
- public static void WriteBoolean(this NetworkWriter writer, bool value) => writer.WriteByte((byte)(value ? 1 : 0));
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use WriteBool instead.")]
+ public static void WriteBoolean(this NetworkWriter writer, bool value) => writer.WriteBool(value);
+ public static void WriteBool(this NetworkWriter writer, bool value) => writer.WriteByte((byte)(value ? 1 : 0));
- public static void WriteUInt16(this NetworkWriter writer, ushort value)
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use WriteUShort instead.")]
+ public static void WriteUInt16(this NetworkWriter writer, ushort value) => writer.WriteUShort(value);
+ public static void WriteUShort(this NetworkWriter writer, ushort value)
{
writer.WriteByte((byte)value);
writer.WriteByte((byte)(value >> 8));
}
- public static void WriteInt16(this NetworkWriter writer, short value) => writer.WriteUInt16((ushort)value);
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use WriteShort instead.")]
+ public static void WriteInt16(this NetworkWriter writer, short value) => writer.WriteShort(value);
+ public static void WriteShort(this NetworkWriter writer, short value) => writer.WriteUShort((ushort)value);
- public static void WriteUInt32(this NetworkWriter writer, uint value)
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use WriteUInt instead.")]
+ public static void WriteUInt32(this NetworkWriter writer, uint value) => writer.WriteUInt(value);
+ public static void WriteUInt(this NetworkWriter writer, uint value)
{
writer.WriteByte((byte)value);
writer.WriteByte((byte)(value >> 8));
@@ -169,9 +135,15 @@ namespace Mirror
writer.WriteByte((byte)(value >> 24));
}
- public static void WriteInt32(this NetworkWriter writer, int value) => writer.WriteUInt32((uint)value);
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use WriteInt instead.")]
+ public static void WriteInt32(this NetworkWriter writer, int value) => writer.WriteInt(value);
+ public static void WriteInt(this NetworkWriter writer, int value) => writer.WriteUInt((uint)value);
- public static void WriteUInt64(this NetworkWriter writer, ulong value)
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use WriteULong instead.")]
+ public static void WriteUInt64(this NetworkWriter writer, ulong value) => writer.WriteULong(value);
+ public static void WriteULong(this NetworkWriter writer, ulong value)
{
writer.WriteByte((byte)value);
writer.WriteByte((byte)(value >> 8));
@@ -183,15 +155,21 @@ namespace Mirror
writer.WriteByte((byte)(value >> 56));
}
- public static void WriteInt64(this NetworkWriter writer, long value) => writer.WriteUInt64((ulong)value);
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use WriteLong instead.")]
+ public static void WriteInt64(this NetworkWriter writer, long value) => writer.WriteLong(value);
+ public static void WriteLong(this NetworkWriter writer, long value) => writer.WriteULong((ulong)value);
- public static void WriteSingle(this NetworkWriter writer, float value)
+ // Deprecated 2021-05-18
+ [Obsolete("We've cleaned up the API. Use WriteFloat instead.")]
+ public static void WriteSingle(this NetworkWriter writer, float value) => writer.WriteFloat(value);
+ public static void WriteFloat(this NetworkWriter writer, float value)
{
UIntFloat converter = new UIntFloat
{
floatValue = value
};
- writer.WriteUInt32(converter.intValue);
+ writer.WriteUInt(converter.intValue);
}
public static void WriteDouble(this NetworkWriter writer, double value)
@@ -200,7 +178,7 @@ namespace Mirror
{
doubleValue = value
};
- writer.WriteUInt64(converter.longValue);
+ writer.WriteULong(converter.longValue);
}
public static void WriteDecimal(this NetworkWriter writer, decimal value)
@@ -212,8 +190,8 @@ namespace Mirror
{
decimalValue = value
};
- writer.WriteUInt64(converter.longValue1);
- writer.WriteUInt64(converter.longValue2);
+ writer.WriteULong(converter.longValue1);
+ writer.WriteULong(converter.longValue2);
}
public static void WriteString(this NetworkWriter writer, string value)
@@ -224,7 +202,7 @@ namespace Mirror
// on the client)
if (value == null)
{
- writer.WriteUInt16(0);
+ writer.WriteUShort(0);
return;
}
@@ -239,7 +217,7 @@ namespace Mirror
}
// write size and bytes
- writer.WriteUInt16(checked((ushort)(size + 1)));
+ writer.WriteUShort(checked((ushort)(size + 1)));
writer.WriteBytes(stringBuffer, 0, size);
}
@@ -252,10 +230,10 @@ namespace Mirror
// (using size=-1 for null would limit max size to 32kb instead of 64kb)
if (buffer == null)
{
- writer.WriteUInt32(0u);
+ writer.WriteUInt(0u);
return;
}
- writer.WriteUInt32(checked((uint)count) + 1u);
+ writer.WriteUInt(checked((uint)count) + 1u);
writer.WriteBytes(buffer, offset, count);
}
@@ -274,44 +252,44 @@ namespace Mirror
public static void WriteVector2(this NetworkWriter writer, Vector2 value)
{
- writer.WriteSingle(value.x);
- writer.WriteSingle(value.y);
+ writer.WriteFloat(value.x);
+ writer.WriteFloat(value.y);
}
public static void WriteVector3(this NetworkWriter writer, Vector3 value)
{
- writer.WriteSingle(value.x);
- writer.WriteSingle(value.y);
- writer.WriteSingle(value.z);
+ writer.WriteFloat(value.x);
+ writer.WriteFloat(value.y);
+ writer.WriteFloat(value.z);
}
public static void WriteVector4(this NetworkWriter writer, Vector4 value)
{
- writer.WriteSingle(value.x);
- writer.WriteSingle(value.y);
- writer.WriteSingle(value.z);
- writer.WriteSingle(value.w);
+ writer.WriteFloat(value.x);
+ writer.WriteFloat(value.y);
+ writer.WriteFloat(value.z);
+ writer.WriteFloat(value.w);
}
public static void WriteVector2Int(this NetworkWriter writer, Vector2Int value)
{
- writer.WriteInt32(value.x);
- writer.WriteInt32(value.y);
+ writer.WriteInt(value.x);
+ writer.WriteInt(value.y);
}
public static void WriteVector3Int(this NetworkWriter writer, Vector3Int value)
{
- writer.WriteInt32(value.x);
- writer.WriteInt32(value.y);
- writer.WriteInt32(value.z);
+ writer.WriteInt(value.x);
+ writer.WriteInt(value.y);
+ writer.WriteInt(value.z);
}
public static void WriteColor(this NetworkWriter writer, Color value)
{
- writer.WriteSingle(value.r);
- writer.WriteSingle(value.g);
- writer.WriteSingle(value.b);
- writer.WriteSingle(value.a);
+ writer.WriteFloat(value.r);
+ writer.WriteFloat(value.g);
+ writer.WriteFloat(value.b);
+ writer.WriteFloat(value.a);
}
public static void WriteColor32(this NetworkWriter writer, Color32 value)
@@ -324,24 +302,24 @@ namespace Mirror
public static void WriteQuaternion(this NetworkWriter writer, Quaternion value)
{
- writer.WriteSingle(value.x);
- writer.WriteSingle(value.y);
- writer.WriteSingle(value.z);
- writer.WriteSingle(value.w);
+ writer.WriteFloat(value.x);
+ writer.WriteFloat(value.y);
+ writer.WriteFloat(value.z);
+ writer.WriteFloat(value.w);
}
public static void WriteRect(this NetworkWriter writer, Rect value)
{
- writer.WriteSingle(value.xMin);
- writer.WriteSingle(value.yMin);
- writer.WriteSingle(value.width);
- writer.WriteSingle(value.height);
+ writer.WriteFloat(value.xMin);
+ writer.WriteFloat(value.yMin);
+ writer.WriteFloat(value.width);
+ writer.WriteFloat(value.height);
}
public static void WritePlane(this NetworkWriter writer, Plane value)
{
writer.WriteVector3(value.normal);
- writer.WriteSingle(value.distance);
+ writer.WriteFloat(value.distance);
}
public static void WriteRay(this NetworkWriter writer, Ray value)
@@ -352,22 +330,22 @@ namespace Mirror
public static void WriteMatrix4x4(this NetworkWriter writer, Matrix4x4 value)
{
- writer.WriteSingle(value.m00);
- writer.WriteSingle(value.m01);
- writer.WriteSingle(value.m02);
- writer.WriteSingle(value.m03);
- writer.WriteSingle(value.m10);
- writer.WriteSingle(value.m11);
- writer.WriteSingle(value.m12);
- writer.WriteSingle(value.m13);
- writer.WriteSingle(value.m20);
- writer.WriteSingle(value.m21);
- writer.WriteSingle(value.m22);
- writer.WriteSingle(value.m23);
- writer.WriteSingle(value.m30);
- writer.WriteSingle(value.m31);
- writer.WriteSingle(value.m32);
- writer.WriteSingle(value.m33);
+ writer.WriteFloat(value.m00);
+ writer.WriteFloat(value.m01);
+ writer.WriteFloat(value.m02);
+ writer.WriteFloat(value.m03);
+ writer.WriteFloat(value.m10);
+ writer.WriteFloat(value.m11);
+ writer.WriteFloat(value.m12);
+ writer.WriteFloat(value.m13);
+ writer.WriteFloat(value.m20);
+ writer.WriteFloat(value.m21);
+ writer.WriteFloat(value.m22);
+ writer.WriteFloat(value.m23);
+ writer.WriteFloat(value.m30);
+ writer.WriteFloat(value.m31);
+ writer.WriteFloat(value.m32);
+ writer.WriteFloat(value.m33);
}
public static void WriteGuid(this NetworkWriter writer, Guid value)
@@ -380,20 +358,20 @@ namespace Mirror
{
if (value == null)
{
- writer.WriteUInt32(0);
+ writer.WriteUInt(0);
return;
}
- writer.WriteUInt32(value.netId);
+ writer.WriteUInt(value.netId);
}
public static void WriteNetworkBehaviour(this NetworkWriter writer, NetworkBehaviour value)
{
if (value == null)
{
- writer.WriteUInt32(0);
+ writer.WriteUInt(0);
return;
}
- writer.WriteUInt32(value.netId);
+ writer.WriteUInt(value.netId);
writer.WriteByte((byte)value.ComponentIndex);
}
@@ -401,18 +379,18 @@ namespace Mirror
{
if (value == null)
{
- writer.WriteUInt32(0);
+ writer.WriteUInt(0);
return;
}
NetworkIdentity identity = value.GetComponent();
if (identity != null)
{
- writer.WriteUInt32(identity.netId);
+ writer.WriteUInt(identity.netId);
}
else
{
Debug.LogWarning("NetworkWriter " + value + " has no NetworkIdentity");
- writer.WriteUInt32(0);
+ writer.WriteUInt(0);
}
}
@@ -420,18 +398,18 @@ namespace Mirror
{
if (value == null)
{
- writer.WriteUInt32(0);
+ writer.WriteUInt(0);
return;
}
NetworkIdentity identity = value.GetComponent();
if (identity != null)
{
- writer.WriteUInt32(identity.netId);
+ writer.WriteUInt(identity.netId);
}
else
{
Debug.LogWarning("NetworkWriter " + value + " has no NetworkIdentity");
- writer.WriteUInt32(0);
+ writer.WriteUInt(0);
}
}
@@ -444,10 +422,10 @@ namespace Mirror
{
if (list is null)
{
- writer.WriteInt32(-1);
+ writer.WriteInt(-1);
return;
}
- writer.WriteInt32(list.Count);
+ writer.WriteInt(list.Count);
for (int i = 0; i < list.Count; i++)
writer.Write(list[i]);
}
@@ -456,10 +434,10 @@ namespace Mirror
{
if (array is null)
{
- writer.WriteInt32(-1);
+ writer.WriteInt(-1);
return;
}
- writer.WriteInt32(array.Length);
+ writer.WriteInt(array.Length);
for (int i = 0; i < array.Length; i++)
writer.Write(array[i]);
}
@@ -467,7 +445,7 @@ namespace Mirror
public static void WriteArraySegment(this NetworkWriter writer, ArraySegment segment)
{
int length = segment.Count;
- writer.WriteInt32(length);
+ writer.WriteInt(length);
for (int i = 0; i < length; i++)
{
writer.Write(segment.Array[segment.Offset + i]);
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkWriter.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkWriter.cs.meta
index c938496..0ffc0fc 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkWriter.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkWriter.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkWriterPool.cs b/UnityProject/Assets/Mirror/Runtime/NetworkWriterPool.cs
index 415a9c2..785d4e7 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkWriterPool.cs
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkWriterPool.cs
@@ -17,7 +17,10 @@ namespace Mirror
// this is also more consistent with NetworkReaderPool where we need to
// assign the internal buffer before reusing.
static readonly Pool Pool = new Pool(
- () => new PooledNetworkWriter()
+ () => new PooledNetworkWriter(),
+ // initial capacity to avoid allocations in the first few frames
+ // 1000 * 1200 bytes = around 1 MB.
+ 1000
);
/// Get a writer from the pool. Creates new one if pool is empty.
diff --git a/UnityProject/Assets/Mirror/Runtime/NetworkWriterPool.cs.meta b/UnityProject/Assets/Mirror/Runtime/NetworkWriterPool.cs.meta
index 19d2bb7..593bfa8 100644
--- a/UnityProject/Assets/Mirror/Runtime/NetworkWriterPool.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/NetworkWriterPool.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Pool.cs b/UnityProject/Assets/Mirror/Runtime/Pool.cs
index 308a56b..5e078f7 100644
--- a/UnityProject/Assets/Mirror/Runtime/Pool.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Pool.cs
@@ -13,9 +13,14 @@ namespace Mirror
// we use a Func generator
readonly Func objectGenerator;
- public Pool(Func objectGenerator)
+ public Pool(Func objectGenerator, int initialCapacity)
{
this.objectGenerator = objectGenerator;
+
+ // allocate an initial pool so we have fewer (if any)
+ // allocations in the first few frames (or seconds).
+ for (int i = 0; i < initialCapacity; ++i)
+ objects.Push(objectGenerator());
}
// take an element from the pool, or create a new one if empty
diff --git a/UnityProject/Assets/Mirror/Runtime/Pool.cs.meta b/UnityProject/Assets/Mirror/Runtime/Pool.cs.meta
index 7d12a20..66db3cc 100644
--- a/UnityProject/Assets/Mirror/Runtime/Pool.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Pool.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/RemoteCallHelper.cs.meta b/UnityProject/Assets/Mirror/Runtime/RemoteCallHelper.cs.meta
index 62b3288..bece114 100644
--- a/UnityProject/Assets/Mirror/Runtime/RemoteCallHelper.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/RemoteCallHelper.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/SyncDictionary.cs b/UnityProject/Assets/Mirror/Runtime/SyncDictionary.cs
index 4371371..f3a0b5a 100644
--- a/UnityProject/Assets/Mirror/Runtime/SyncDictionary.cs
+++ b/UnityProject/Assets/Mirror/Runtime/SyncDictionary.cs
@@ -84,8 +84,8 @@ namespace Mirror
public void OnSerializeAll(NetworkWriter writer)
{
- // if init, write the full list content
- writer.WriteUInt32((uint)objects.Count);
+ // if init, write the full list content
+ writer.WriteUInt((uint)objects.Count);
foreach (KeyValuePair syncItem in objects)
{
@@ -97,13 +97,13 @@ namespace Mirror
// thus the client will need to skip all the pending changes
// or they would be applied again.
// So we write how many changes are pending
- writer.WriteUInt32((uint)changes.Count);
+ writer.WriteUInt((uint)changes.Count);
}
public void OnSerializeDelta(NetworkWriter writer)
{
// write all the queued up changes
- writer.WriteUInt32((uint)changes.Count);
+ writer.WriteUInt((uint)changes.Count);
for (int i = 0; i < changes.Count; i++)
{
@@ -130,7 +130,7 @@ namespace Mirror
IsReadOnly = true;
// if init, write the full list content
- int count = (int)reader.ReadUInt32();
+ int count = (int)reader.ReadUInt();
objects.Clear();
changes.Clear();
@@ -145,7 +145,7 @@ namespace Mirror
// We will need to skip all these changes
// the next time the list is synchronized
// because they have already been applied
- changesAhead = (int)reader.ReadUInt32();
+ changesAhead = (int)reader.ReadUInt();
}
public void OnDeserializeDelta(NetworkReader reader)
@@ -153,7 +153,7 @@ namespace Mirror
// This list can now only be modified by synchronization
IsReadOnly = true;
- int changesCount = (int)reader.ReadUInt32();
+ int changesCount = (int)reader.ReadUInt();
for (int i = 0; i < changesCount; i++)
{
diff --git a/UnityProject/Assets/Mirror/Runtime/SyncDictionary.cs.meta b/UnityProject/Assets/Mirror/Runtime/SyncDictionary.cs.meta
index 1c20b57..9c5728b 100644
--- a/UnityProject/Assets/Mirror/Runtime/SyncDictionary.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/SyncDictionary.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/SyncList.cs b/UnityProject/Assets/Mirror/Runtime/SyncList.cs
index a9f3699..1ac230e 100644
--- a/UnityProject/Assets/Mirror/Runtime/SyncList.cs
+++ b/UnityProject/Assets/Mirror/Runtime/SyncList.cs
@@ -4,23 +4,23 @@ using System.Collections.Generic;
namespace Mirror
{
- // Deprecated 10/02/2020
+ // Deprecated 2020-10-02
[Obsolete("Use SyncList instead")]
public class SyncListString : SyncList {}
- // Deprecated 10/02/2020
+ // Deprecated 2020-10-02
[Obsolete("Use SyncList instead")]
public class SyncListFloat : SyncList {}
- // Deprecated 10/02/2020
+ // Deprecated 2020-10-02
[Obsolete("Use SyncList instead")]
public class SyncListInt : SyncList {}
- // Deprecated 10/02/2020
+ // Deprecated 2020-10-02
[Obsolete("Use SyncList instead")]
public class SyncListUInt : SyncList {}
- // Deprecated 10/02/2020
+ // Deprecated 2020-10-02
[Obsolete("Use SyncList instead")]
public class SyncListBool : SyncList {}
@@ -108,7 +108,7 @@ namespace Mirror
public void OnSerializeAll(NetworkWriter writer)
{
// if init, write the full list content
- writer.WriteUInt32((uint)objects.Count);
+ writer.WriteUInt((uint)objects.Count);
for (int i = 0; i < objects.Count; i++)
{
@@ -120,13 +120,13 @@ namespace Mirror
// thus the client will need to skip all the pending changes
// or they would be applied again.
// So we write how many changes are pending
- writer.WriteUInt32((uint)changes.Count);
+ writer.WriteUInt((uint)changes.Count);
}
public void OnSerializeDelta(NetworkWriter writer)
{
// write all the queued up changes
- writer.WriteUInt32((uint)changes.Count);
+ writer.WriteUInt((uint)changes.Count);
for (int i = 0; i < changes.Count; i++)
{
@@ -143,12 +143,12 @@ namespace Mirror
break;
case Operation.OP_REMOVEAT:
- writer.WriteUInt32((uint)change.index);
+ writer.WriteUInt((uint)change.index);
break;
case Operation.OP_INSERT:
case Operation.OP_SET:
- writer.WriteUInt32((uint)change.index);
+ writer.WriteUInt((uint)change.index);
writer.Write(change.item);
break;
}
@@ -161,7 +161,7 @@ namespace Mirror
IsReadOnly = true;
// if init, write the full list content
- int count = (int)reader.ReadUInt32();
+ int count = (int)reader.ReadUInt();
objects.Clear();
changes.Clear();
@@ -175,7 +175,7 @@ namespace Mirror
// We will need to skip all these changes
// the next time the list is synchronized
// because they have already been applied
- changesAhead = (int)reader.ReadUInt32();
+ changesAhead = (int)reader.ReadUInt();
}
public void OnDeserializeDelta(NetworkReader reader)
@@ -183,7 +183,7 @@ namespace Mirror
// This list can now only be modified by synchronization
IsReadOnly = true;
- int changesCount = (int)reader.ReadUInt32();
+ int changesCount = (int)reader.ReadUInt();
for (int i = 0; i < changesCount; i++)
{
@@ -215,7 +215,7 @@ namespace Mirror
break;
case Operation.OP_INSERT:
- index = (int)reader.ReadUInt32();
+ index = (int)reader.ReadUInt();
newItem = reader.Read();
if (apply)
{
@@ -224,7 +224,7 @@ namespace Mirror
break;
case Operation.OP_REMOVEAT:
- index = (int)reader.ReadUInt32();
+ index = (int)reader.ReadUInt();
if (apply)
{
oldItem = objects[index];
@@ -233,7 +233,7 @@ namespace Mirror
break;
case Operation.OP_SET:
- index = (int)reader.ReadUInt32();
+ index = (int)reader.ReadUInt();
newItem = reader.Read();
if (apply)
{
diff --git a/UnityProject/Assets/Mirror/Runtime/SyncList.cs.meta b/UnityProject/Assets/Mirror/Runtime/SyncList.cs.meta
index 088ef1e..a1bffbc 100644
--- a/UnityProject/Assets/Mirror/Runtime/SyncList.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/SyncList.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/SyncObject.cs.meta b/UnityProject/Assets/Mirror/Runtime/SyncObject.cs.meta
index 736c651..20fc035 100644
--- a/UnityProject/Assets/Mirror/Runtime/SyncObject.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/SyncObject.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/SyncSet.cs b/UnityProject/Assets/Mirror/Runtime/SyncSet.cs
index d8a8c47..29dc2ed 100644
--- a/UnityProject/Assets/Mirror/Runtime/SyncSet.cs
+++ b/UnityProject/Assets/Mirror/Runtime/SyncSet.cs
@@ -76,7 +76,7 @@ namespace Mirror
public void OnSerializeAll(NetworkWriter writer)
{
// if init, write the full list content
- writer.WriteUInt32((uint)objects.Count);
+ writer.WriteUInt((uint)objects.Count);
foreach (T obj in objects)
{
@@ -87,13 +87,13 @@ namespace Mirror
// thus the client will need to skip all the pending changes
// or they would be applied again.
// So we write how many changes are pending
- writer.WriteUInt32((uint)changes.Count);
+ writer.WriteUInt((uint)changes.Count);
}
public void OnSerializeDelta(NetworkWriter writer)
{
// write all the queued up changes
- writer.WriteUInt32((uint)changes.Count);
+ writer.WriteUInt((uint)changes.Count);
for (int i = 0; i < changes.Count; i++)
{
@@ -122,7 +122,7 @@ namespace Mirror
IsReadOnly = true;
// if init, write the full list content
- int count = (int)reader.ReadUInt32();
+ int count = (int)reader.ReadUInt();
objects.Clear();
changes.Clear();
@@ -136,7 +136,7 @@ namespace Mirror
// We will need to skip all these changes
// the next time the list is synchronized
// because they have already been applied
- changesAhead = (int)reader.ReadUInt32();
+ changesAhead = (int)reader.ReadUInt();
}
public void OnDeserializeDelta(NetworkReader reader)
@@ -144,7 +144,7 @@ namespace Mirror
// This list can now only be modified by synchronization
IsReadOnly = true;
- int changesCount = (int)reader.ReadUInt32();
+ int changesCount = (int)reader.ReadUInt();
for (int i = 0; i < changesCount; i++)
{
diff --git a/UnityProject/Assets/Mirror/Runtime/SyncSet.cs.meta b/UnityProject/Assets/Mirror/Runtime/SyncSet.cs.meta
index 6eeef1c..8f15ffc 100644
--- a/UnityProject/Assets/Mirror/Runtime/SyncSet.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/SyncSet.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/FallbackTransport.cs b/UnityProject/Assets/Mirror/Runtime/Transport/FallbackTransport.cs
index 880ec47..4d784fe 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/FallbackTransport.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/FallbackTransport.cs
@@ -6,8 +6,9 @@ using UnityEngine;
namespace Mirror
{
- [HelpURL("https://mirror-networking.com/docs/Articles/Transports/Fallback.html")]
+ [HelpURL("https://mirror-networking.gitbook.io/docs/transports/fallback-transport")]
[DisallowMultipleComponent]
+ [Obsolete("Fallback Transport will be retired. It was only needed for Apathy/Libuv. Use kcp or Telepathy instead, those run everywhere.")]
public class FallbackTransport : Transport
{
public Transport[] transports;
@@ -92,9 +93,9 @@ namespace Mirror
available.ClientDisconnect();
}
- public override void ClientSend(int channelId, ArraySegment segment)
+ public override void ClientSend(ArraySegment segment, int channelId)
{
- available.ClientSend(channelId, segment);
+ available.ClientSend(segment, channelId);
}
// right now this just returns the first available uri,
@@ -111,14 +112,14 @@ namespace Mirror
return available.ServerGetClientAddress(connectionId);
}
- public override bool ServerDisconnect(int connectionId)
+ public override void ServerDisconnect(int connectionId)
{
- return available.ServerDisconnect(connectionId);
+ available.ServerDisconnect(connectionId);
}
- public override void ServerSend(int connectionId, int channelId, ArraySegment segment)
+ public override void ServerSend(int connectionId, ArraySegment segment, int channelId)
{
- available.ServerSend(connectionId, channelId, segment);
+ available.ServerSend(connectionId, segment, channelId);
}
public override void ServerStart()
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/FallbackTransport.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/FallbackTransport.cs.meta
index 509a58f..f4f199e 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/FallbackTransport.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/FallbackTransport.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP.meta
index ba9d190..3577324 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP.meta
@@ -3,6 +3,6 @@ guid: 953bb5ec5ab2346a092f58061e01ba65
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport.meta
index dedea2f..8fbdc54 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport.meta
@@ -3,6 +3,6 @@ guid: 7bdb797750d0a490684410110bf48192
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport/KcpTransport.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport/KcpTransport.cs
index 3dce7fc..4e77ff2 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport/KcpTransport.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport/KcpTransport.cs
@@ -20,6 +20,9 @@ namespace kcp2k
public bool NoDelay = true;
[Tooltip("KCP internal update interval. 100ms is KCP default, but a lower interval is recommended to minimize latency and to scale to more networked entities.")]
public uint Interval = 10;
+ [Tooltip("KCP timeout in milliseconds. Note that KCP sends a ping automatically.")]
+ public int Timeout = 10000;
+
[Header("Advanced")]
[Tooltip("KCP fastresend parameter. Faster resend for the cost of higher bandwidth. 0 in normal mode, 2 in turbo mode.")]
public int FastResend = 2;
@@ -71,7 +74,8 @@ namespace kcp2k
FastResend,
CongestionWindow,
SendWindowSize,
- ReceiveWindowSize
+ ReceiveWindowSize,
+ Timeout
);
if (statisticsLog)
@@ -88,9 +92,9 @@ namespace kcp2k
public override bool ClientConnected() => client.connected;
public override void ClientConnect(string address)
{
- client.Connect(address, Port, NoDelay, Interval, FastResend, CongestionWindow, SendWindowSize, ReceiveWindowSize);
+ client.Connect(address, Port, NoDelay, Interval, FastResend, CongestionWindow, SendWindowSize, ReceiveWindowSize, Timeout);
}
- public override void ClientSend(int channelId, ArraySegment segment)
+ public override void ClientSend(ArraySegment segment, int channelId)
{
// switch to kcp channel.
// unreliable or reliable.
@@ -149,7 +153,7 @@ namespace kcp2k
}
public override bool ServerActive() => server.IsActive();
public override void ServerStart() => server.Start(Port);
- public override void ServerSend(int connectionId, int channelId, ArraySegment segment)
+ public override void ServerSend(int connectionId, ArraySegment segment, int channelId)
{
// switch to kcp channel.
// unreliable or reliable.
@@ -164,11 +168,7 @@ namespace kcp2k
break;
}
}
- public override bool ServerDisconnect(int connectionId)
- {
- server.Disconnect(connectionId);
- return true;
- }
+ public override void ServerDisconnect(int connectionId) => server.Disconnect(connectionId);
public override string ServerGetClientAddress(int connectionId) => server.GetClientAddress(connectionId);
public override void ServerStop() => server.Stop();
public override void ServerEarlyUpdate()
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport/KcpTransport.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport/KcpTransport.cs.meta
index f7280c8..14c1089 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport/KcpTransport.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/MirrorTransport/KcpTransport.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k.meta
index 1dceadf..95f3484 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k.meta
@@ -3,6 +3,6 @@ guid: 71a1c8e8c022d4731a481c1808f37e5d
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/LICENSE.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/LICENSE.meta
index 49dc767..70f4468 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/LICENSE.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/LICENSE.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 9a3e8369060cf4e94ac117603de47aa6
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/VERSION b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/VERSION
index 3884310..44a22ce 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/VERSION
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/VERSION
@@ -1,3 +1,30 @@
+V1.11 [2021-06-01]
+- perf: where-allocation (https://github.com/vis2k/where-allocation):
+ nearly removes all socket.SendTo/ReceiveFrom allocations
+- perf: Segment MemoryStream initial capacity set to MTU to avoid early runtime
+ resizing/allocations
+
+V1.10 [2021-05-28]
+- feature: configurable Timeout
+- allocations explained with comments (C# ReceiveFrom / IPEndPoint.GetHashCode)
+- fix: #17 KcpConnection.ReceiveNextReliable now assigns message default so it
+ works in .net too
+- fix: Segment pool is not static anymore. Each kcp instance now has it's own
+ Pool. fixes #18 concurrency issues
+
+V1.9 [2021-03-02]
+- Tick() split into TickIncoming()/TickOutgoing() to use in Mirror's new update
+ functions. allows to minimize latency.
+ => original Tick() is still supported for convenience. simply processes both!
+
+V1.8 [2021-02-14]
+- fix: Unity IPv6 errors on Nintendo Switch
+- fix: KcpConnection now disconnects if data message was received without content.
+ previously it would call OnData with an empty ArraySegment, causing all kinds of
+ weird behaviour in Mirror/DOTSNET. Added tests too.
+- fix: KcpConnection.SendData: don't allow sending empty messages anymore. disconnect
+ and log a warning to make it completely obvious.
+
V1.7 [2021-01-13]
- fix: unreliable messages reset timeout now too
- perf: KcpConnection OnCheckEnabled callback changed to a simple 'paused' boolean.
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/VERSION.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/VERSION.meta
index 2a07daa..cd9d20d 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/VERSION.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/VERSION.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: ed3f2cf1bbf1b4d53a6f2c103d311f71
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel.meta
index 1c11c3d..a9e212c 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel.meta
@@ -3,6 +3,6 @@ guid: 5a54d18b954cb4407a28b633fc32ea6d
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpChannel.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpChannel.cs.meta
index 2721025..1889c6c 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpChannel.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpChannel.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: 9e852b2532fb248d19715cfebe371db3
-timeCreated: 1610081248
\ No newline at end of file
+timeCreated: 1610081248
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClient.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClient.cs
index 97612ba..d2420a9 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClient.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClient.cs
@@ -22,7 +22,7 @@ namespace kcp2k
this.OnDisconnected = OnDisconnected;
}
- public void Connect(string address, ushort port, bool noDelay, uint interval, int fastResend = 0, bool congestionWindow = true, uint sendWindowSize = Kcp.WND_SND, uint receiveWindowSize = Kcp.WND_RCV)
+ public void Connect(string address, ushort port, bool noDelay, uint interval, int fastResend = 0, bool congestionWindow = true, uint sendWindowSize = Kcp.WND_SND, uint receiveWindowSize = Kcp.WND_RCV, int timeout = KcpConnection.DEFAULT_TIMEOUT)
{
if (connected)
{
@@ -53,7 +53,7 @@ namespace kcp2k
};
// connect
- connection.Connect(address, port, noDelay, interval, fastResend, congestionWindow, sendWindowSize, receiveWindowSize);
+ connection.Connect(address, port, noDelay, interval, fastResend, congestionWindow, sendWindowSize, receiveWindowSize, timeout);
}
public void Send(ArraySegment segment, KcpChannel channel)
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClient.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClient.cs.meta
index e55306b..b972397 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClient.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClient.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: 6aa069a28ed24fedb533c102d9742b36
-timeCreated: 1603786960
\ No newline at end of file
+timeCreated: 1603786960
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClientConnection.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClientConnection.cs
index bab3328..914ca48 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClientConnection.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClientConnection.cs
@@ -1,5 +1,6 @@
using System.Net;
using System.Net.Sockets;
+using WhereAllocation;
namespace kcp2k
{
@@ -12,7 +13,10 @@ namespace kcp2k
// => we need the MTU to fit channel + message!
readonly byte[] rawReceiveBuffer = new byte[Kcp.MTU_DEF];
- public void Connect(string host, ushort port, bool noDelay, uint interval = Kcp.INTERVAL, int fastResend = 0, bool congestionWindow = true, uint sendWindowSize = Kcp.WND_SND, uint receiveWindowSize = Kcp.WND_RCV)
+ // where-allocation
+ IPEndPointNonAlloc reusableEP;
+
+ public void Connect(string host, ushort port, bool noDelay, uint interval = Kcp.INTERVAL, int fastResend = 0, bool congestionWindow = true, uint sendWindowSize = Kcp.WND_SND, uint receiveWindowSize = Kcp.WND_RCV, int timeout = DEFAULT_TIMEOUT)
{
Log.Info($"KcpClient: connect to {host}:{port}");
IPAddress[] ipAddress = Dns.GetHostAddresses(host);
@@ -21,8 +25,13 @@ namespace kcp2k
remoteEndpoint = new IPEndPoint(ipAddress[0], port);
socket = new Socket(remoteEndpoint.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
+
+ // create reusableEP with same address family as remoteEndPoint.
+ // otherwise ReceiveFrom_NonAlloc couldn't use it.
+ reusableEP = new IPEndPointNonAlloc(ipAddress[0], port);
+
socket.Connect(remoteEndpoint);
- SetupKcp(noDelay, interval, fastResend, congestionWindow, sendWindowSize, receiveWindowSize);
+ SetupKcp(noDelay, interval, fastResend, congestionWindow, sendWindowSize, receiveWindowSize, timeout);
// client should send handshake to server as very first message
SendHandshake();
@@ -39,7 +48,8 @@ namespace kcp2k
{
while (socket.Poll(0, SelectMode.SelectRead))
{
- int msgLength = socket.ReceiveFrom(rawReceiveBuffer, ref remoteEndpoint);
+ // where-allocation: receive nonalloc.
+ int msgLength = socket.ReceiveFrom_NonAlloc(rawReceiveBuffer, reusableEP);
// IMPORTANT: detect if buffer was too small for the
// received msgLength. otherwise the excess
// data would be silently lost.
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClientConnection.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClientConnection.cs.meta
index 3369918..7995890 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClientConnection.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpClientConnection.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: 96512e74aa8214a6faa8a412a7a07877
-timeCreated: 1602601237
\ No newline at end of file
+timeCreated: 1602601237
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpConnection.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpConnection.cs
index 5cdc1ab..adbd927 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpConnection.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpConnection.cs
@@ -28,7 +28,8 @@ namespace kcp2k
// If we don't receive anything these many milliseconds
// then consider us disconnected
- public const int TIMEOUT = 10000;
+ public const int DEFAULT_TIMEOUT = 10000;
+ public int timeout = DEFAULT_TIMEOUT;
uint lastReceiveTime;
// internal time.
@@ -123,9 +124,11 @@ namespace kcp2k
public uint MaxReceiveRate =>
kcp.rcv_wnd * kcp.mtu * 1000 / kcp.interval;
- // NoDelay, interval, window size are the most important configurations.
- // let's force require the parameters so we don't forget it anywhere.
- protected void SetupKcp(bool noDelay, uint interval = Kcp.INTERVAL, int fastResend = 0, bool congestionWindow = true, uint sendWindowSize = Kcp.WND_SND, uint receiveWindowSize = Kcp.WND_RCV)
+ // SetupKcp creates and configures a new KCP instance.
+ // => useful to start from a fresh state every time the client connects
+ // => NoDelay, interval, wnd size are the most important configurations.
+ // let's force require the parameters so we don't forget it anywhere.
+ protected void SetupKcp(bool noDelay, uint interval = Kcp.INTERVAL, int fastResend = 0, bool congestionWindow = true, uint sendWindowSize = Kcp.WND_SND, uint receiveWindowSize = Kcp.WND_RCV, int timeout = DEFAULT_TIMEOUT)
{
// set up kcp over reliable channel (that's what kcp is for)
kcp = new Kcp(0, RawSendReliable);
@@ -140,6 +143,7 @@ namespace kcp2k
// message afterwards.
kcp.SetMtu(Kcp.MTU_DEF - CHANNEL_HEADER_SIZE);
+ this.timeout = timeout;
state = KcpState.Connected;
refTime.Start();
@@ -149,9 +153,9 @@ namespace kcp2k
{
// note: we are also sending a ping regularly, so timeout should
// only ever happen if the connection is truly gone.
- if (time >= lastReceiveTime + TIMEOUT)
+ if (time >= lastReceiveTime + timeout)
{
- Log.Warning($"KCP: Connection timed out after not receiving any message for {TIMEOUT}ms. Disconnecting.");
+ Log.Warning($"KCP: Connection timed out after not receiving any message for {timeout}ms. Disconnecting.");
Disconnect();
}
}
@@ -240,6 +244,7 @@ namespace kcp2k
}
}
+ message = default;
header = KcpHeader.Disconnect;
return false;
}
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpConnection.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpConnection.cs.meta
index fa5dcff..9c41eb5 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpConnection.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpConnection.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: 3915c7c62b72d4dc2a9e4e76c94fc484
-timeCreated: 1602600432
\ No newline at end of file
+timeCreated: 1602600432
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpHeader.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpHeader.cs.meta
index 9e81c94..6d12b55 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpHeader.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpHeader.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: 91b5edac31224a49bd76f960ae018942
-timeCreated: 1610081248
\ No newline at end of file
+timeCreated: 1610081248
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServer.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServer.cs
index 2195ce1..b198ae4 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServer.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServer.cs
@@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
+using WhereAllocation;
namespace kcp2k
{
@@ -36,14 +37,18 @@ namespace kcp2k
// 8192, 8192 for 20k monsters
public uint SendWindowSize;
public uint ReceiveWindowSize;
+ // timeout in milliseconds
+ public int Timeout;
// state
Socket socket;
#if UNITY_SWITCH
// switch does not support ipv6
- EndPoint newClientEP = new IPEndPoint(IPAddress.Any, 0);
+ //EndPoint newClientEP = new IPEndPoint(IPAddress.Any, 0);
+ IPEndPointNonAlloc reusableClientEP = new IPEndPointNonAlloc(IPAddress.Any, 0); // where-allocation
#else
- EndPoint newClientEP = new IPEndPoint(IPAddress.IPv6Any, 0);
+ //EndPoint newClientEP = new IPEndPoint(IPAddress.IPv6Any, 0);
+ IPEndPointNonAlloc reusableClientEP = new IPEndPointNonAlloc(IPAddress.IPv6Any, 0); // where-allocation
#endif
// IMPORTANT: raw receive buffer always needs to be of 'MTU' size, even
// if MaxMessageSize is larger. kcp always sends in MTU
@@ -63,7 +68,8 @@ namespace kcp2k
int FastResend = 0,
bool CongestionWindow = true,
uint SendWindowSize = Kcp.WND_SND,
- uint ReceiveWindowSize = Kcp.WND_RCV)
+ uint ReceiveWindowSize = Kcp.WND_RCV,
+ int Timeout = KcpConnection.DEFAULT_TIMEOUT)
{
this.OnConnected = OnConnected;
this.OnData = OnData;
@@ -74,6 +80,7 @@ namespace kcp2k
this.CongestionWindow = CongestionWindow;
this.SendWindowSize = SendWindowSize;
this.ReceiveWindowSize = ReceiveWindowSize;
+ this.Timeout = Timeout;
}
public bool IsActive() => socket != null;
@@ -131,11 +138,31 @@ namespace kcp2k
{
try
{
- int msgLength = socket.ReceiveFrom(rawReceiveBuffer, 0, rawReceiveBuffer.Length, SocketFlags.None, ref newClientEP);
+ // NOTE: ReceiveFrom allocates.
+ // we pass our IPEndPoint to ReceiveFrom.
+ // receive from calls newClientEP.Create(socketAddr).
+ // IPEndPoint.Create always returns a new IPEndPoint.
+ // https://github.com/mono/mono/blob/f74eed4b09790a0929889ad7fc2cf96c9b6e3757/mcs/class/System/System.Net.Sockets/Socket.cs#L1761
+ //int msgLength = socket.ReceiveFrom(rawReceiveBuffer, 0, rawReceiveBuffer.Length, SocketFlags.None, ref newClientEP);
//Log.Info($"KCP: server raw recv {msgLength} bytes = {BitConverter.ToString(buffer, 0, msgLength)}");
+ // where-allocation nonalloc ReceiveFrom.
+ int msgLength = socket.ReceiveFrom_NonAlloc(rawReceiveBuffer, 0, rawReceiveBuffer.Length, SocketFlags.None, reusableClientEP);
+ SocketAddress remoteAddress = reusableClientEP.temp;
+
// calculate connectionId from endpoint
- int connectionId = newClientEP.GetHashCode();
+ // NOTE: IPEndPoint.GetHashCode() allocates.
+ // it calls m_Address.GetHashCode().
+ // m_Address is an IPAddress.
+ // GetHashCode() allocates for IPv6:
+ // https://github.com/mono/mono/blob/bdd772531d379b4e78593587d15113c37edd4a64/mcs/class/referencesource/System/net/System/Net/IPAddress.cs#L699
+ //
+ // => using only newClientEP.Port wouldn't work, because
+ // different connections can have the same port.
+ //int connectionId = newClientEP.GetHashCode();
+
+ // where-allocation nonalloc GetHashCode
+ int connectionId = remoteAddress.GetHashCode();
// IMPORTANT: detect if buffer was too small for the received
// msgLength. otherwise the excess data would be
@@ -146,8 +173,19 @@ namespace kcp2k
// is this a new connection?
if (!connections.TryGetValue(connectionId, out KcpServerConnection connection))
{
+ // IPEndPointNonAlloc is reused all the time.
+ // we can't store that as the connection's endpoint.
+ // we need a new copy!
+ IPEndPoint newClientEP = reusableClientEP.DeepCopyIPEndPoint();
+
+ // for allocation free sending, we also need another
+ // IPEndPointNonAlloc...
+ IPEndPointNonAlloc reusableSendEP = new IPEndPointNonAlloc(newClientEP.Address, newClientEP.Port);
+
// create a new KcpConnection
- connection = new KcpServerConnection(socket, newClientEP, NoDelay, Interval, FastResend, CongestionWindow, SendWindowSize, ReceiveWindowSize);
+ // -> where-allocation IPEndPointNonAlloc is reused.
+ // need to create a new one from the temp address.
+ connection = new KcpServerConnection(socket, newClientEP, reusableSendEP, NoDelay, Interval, FastResend, CongestionWindow, SendWindowSize, ReceiveWindowSize, Timeout);
// DO NOT add to connections yet. only if the first message
// is actually the kcp handshake. otherwise it's either:
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServer.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServer.cs.meta
index ef720d4..509aca2 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServer.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServer.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: 9759159c6589494a9037f5e130a867ed
-timeCreated: 1603787747
\ No newline at end of file
+timeCreated: 1603787747
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServerConnection.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServerConnection.cs
index bd2358e..295845e 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServerConnection.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServerConnection.cs
@@ -1,20 +1,25 @@
using System.Net;
using System.Net.Sockets;
+using WhereAllocation;
namespace kcp2k
{
public class KcpServerConnection : KcpConnection
{
- public KcpServerConnection(Socket socket, EndPoint remoteEndpoint, bool noDelay, uint interval = Kcp.INTERVAL, int fastResend = 0, bool congestionWindow = true, uint sendWindowSize = Kcp.WND_SND, uint receiveWindowSize = Kcp.WND_RCV)
+ IPEndPointNonAlloc reusableSendEndPoint;
+
+ public KcpServerConnection(Socket socket, EndPoint remoteEndPoint, IPEndPointNonAlloc reusableSendEndPoint, bool noDelay, uint interval = Kcp.INTERVAL, int fastResend = 0, bool congestionWindow = true, uint sendWindowSize = Kcp.WND_SND, uint receiveWindowSize = Kcp.WND_RCV, int timeout = DEFAULT_TIMEOUT)
{
this.socket = socket;
- this.remoteEndpoint = remoteEndpoint;
- SetupKcp(noDelay, interval, fastResend, congestionWindow, sendWindowSize, receiveWindowSize);
+ this.remoteEndpoint = remoteEndPoint;
+ this.reusableSendEndPoint = reusableSendEndPoint;
+ SetupKcp(noDelay, interval, fastResend, congestionWindow, sendWindowSize, receiveWindowSize, timeout);
}
protected override void RawSend(byte[] data, int length)
{
- socket.SendTo(data, 0, length, SocketFlags.None, remoteEndpoint);
+ // where-allocation nonalloc
+ socket.SendTo_NonAlloc(data, 0, length, SocketFlags.None, reusableSendEndPoint);
}
}
}
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServerConnection.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServerConnection.cs.meta
index 10d9803..32b97c6 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServerConnection.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/KcpServerConnection.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: 80a9b1ce9a6f14abeb32bfa9921d097b
-timeCreated: 1602601483
\ No newline at end of file
+timeCreated: 1602601483
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/Log.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/Log.cs.meta
index 333bee5..bdc1fa5 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/Log.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/highlevel/Log.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp.meta
index a7d6e11..32121b3 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp.meta
@@ -3,6 +3,6 @@ guid: 5cafb8851a0084f3e94a580c207b3923
folderAsset: yes
DefaultImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/AssemblyInfo.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/AssemblyInfo.cs.meta
index 6b442a9..1f0cec5 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/AssemblyInfo.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/AssemblyInfo.cs.meta
@@ -1,3 +1,3 @@
-fileFormatVersion: 2
+fileFormatVersion: 2
guid: aec6a15ac7bd43129317ea1f01f19782
-timeCreated: 1602665988
\ No newline at end of file
+timeCreated: 1602665988
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Kcp.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Kcp.cs
index bb3676e..253757a 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Kcp.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Kcp.cs
@@ -87,6 +87,17 @@ namespace kcp2k
// get how many packet is waiting to be sent
public int WaitSnd => snd_buf.Count + snd_queue.Count;
+ // segment pool to avoid allocations in C#.
+ // this is not part of the original C code.
+ readonly Pool SegmentPool = new Pool(
+ // create new segment
+ () => new Segment(),
+ // reset segment before reuse
+ (segment) => segment.Reset(),
+ // initial capacity
+ 32
+ );
+
// ikcp_create
// create a new kcp control object, 'conv' must equal in two endpoint
// from the same connection.
@@ -112,18 +123,12 @@ namespace kcp2k
// ikcp_segment_new
// we keep the original function and add our pooling to it.
// this way we'll never miss it anywhere.
- static Segment SegmentNew()
- {
- return Segment.Take();
- }
+ Segment SegmentNew() => SegmentPool.Take();
// ikcp_segment_delete
// we keep the original function and add our pooling to it.
// this way we'll never miss it anywhere.
- static void SegmentDelete(Segment seg)
- {
- Segment.Return(seg);
- }
+ void SegmentDelete(Segment seg) => SegmentPool.Return(seg);
// ikcp_recv
// receive data from kcp state machine
@@ -742,10 +747,15 @@ namespace kcp2k
// calculate window size
uint cwnd_ = Math.Min(snd_wnd, rmt_wnd);
+ // if congestion window:
if (!nocwnd) cwnd_ = Math.Min(cwnd, cwnd_);
// move data from snd_queue to snd_buf
// sliding window, controlled by snd_nxt && sna_una+cwnd
+ //
+ // ELI5: 'snd_nxt' is what we want to send.
+ // 'snd_una' is what hasn't been acked yet.
+ // copy up to 'cwnd_' difference between them (sliding window)
while (Utils.TimeDiff(snd_nxt, snd_una + cwnd_) < 0)
{
if (snd_queue.Count == 0) break;
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Kcp.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Kcp.cs.meta
index 935b423..ec0a3e1 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Kcp.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Kcp.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Pool.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Pool.cs
new file mode 100644
index 0000000..81b5289
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Pool.cs
@@ -0,0 +1,46 @@
+// Pool to avoid allocations (from libuv2k & Mirror)
+using System;
+using System.Collections.Generic;
+
+namespace kcp2k
+{
+ public class Pool
+ {
+ // Mirror is single threaded, no need for concurrent collections
+ readonly Stack objects = new Stack();
+
+ // some types might need additional parameters in their constructor, so
+ // we use a Func generator
+ readonly Func objectGenerator;
+
+ // some types might need additional cleanup for returned objects
+ readonly Action objectResetter;
+
+ public Pool(Func objectGenerator, Action objectResetter, int initialCapacity)
+ {
+ this.objectGenerator = objectGenerator;
+ this.objectResetter = objectResetter;
+
+ // allocate an initial pool so we have fewer (if any)
+ // allocations in the first few frames (or seconds).
+ for (int i = 0; i < initialCapacity; ++i)
+ objects.Push(objectGenerator());
+ }
+
+ // take an element from the pool, or create a new one if empty
+ public T Take() => objects.Count > 0 ? objects.Pop() : objectGenerator();
+
+ // return an element to the pool
+ public void Return(T item)
+ {
+ objectResetter(item);
+ objects.Push(item);
+ }
+
+ // clear the pool
+ public void Clear() => objects.Clear();
+
+ // count to see how many objects are in the pool. useful for tests.
+ public int Count => objects.Count;
+ }
+}
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Pool.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Pool.cs.meta
new file mode 100644
index 0000000..0f4bd57
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Pool.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 35c07818fc4784bb4ba472c8e5029002
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Segment.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Segment.cs
index fa2bac7..b5c9dcf 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Segment.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Segment.cs
@@ -1,4 +1,3 @@
-using System.Collections.Generic;
using System.IO;
namespace kcp2k
@@ -17,30 +16,12 @@ namespace kcp2k
internal int rto;
internal uint fastack;
internal uint xmit;
- // we need a auto scaling byte[] with a WriteBytes function.
+
+ // we need an auto scaling byte[] with a WriteBytes function.
// MemoryStream does that perfectly, no need to reinvent the wheel.
// note: no need to pool it, because Segment is already pooled.
- internal MemoryStream data = new MemoryStream();
-
- // pool ////////////////////////////////////////////////////////////////
- internal static readonly Stack Pool = new Stack(32);
-
- public static Segment Take()
- {
- if (Pool.Count > 0)
- {
- Segment seg = Pool.Pop();
- return seg;
- }
- return new Segment();
- }
-
- public static void Return(Segment seg)
- {
- seg.Reset();
- Pool.Push(seg);
- }
- ////////////////////////////////////////////////////////////////////////
+ // -> MTU as initial capacity to avoid most runtime resizing/allocations
+ internal MemoryStream data = new MemoryStream(Kcp.MTU_DEF);
// ikcp_encode_seg
// encode a segment into buffer
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Segment.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Segment.cs.meta
index d14dc1a..913d137 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Segment.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Segment.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Utils.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Utils.cs.meta
index 86118bc..0b5a45b 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Utils.cs.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp/Utils.cs.meta
@@ -6,6 +6,6 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp2k.asmdef b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp2k.asmdef
index 296fc06..9a90c82 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp2k.asmdef
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp2k.asmdef
@@ -1,12 +1,15 @@
{
"name": "kcp2k",
- "references": [],
- "optionalUnityReferences": [],
+ "references": [
+ "GUID:63c380d6dae6946209ed0832388a657c"
+ ],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": true,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
- "defineConstraints": []
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
}
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp2k.asmdef.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp2k.asmdef.meta
index 1d70e80..d01a562 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp2k.asmdef.meta
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/kcp2k.asmdef.meta
@@ -2,6 +2,6 @@ fileFormatVersion: 2
guid: 6806a62c384838046a3c66c44f06d75f
AssemblyDefinitionImporter:
externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation.meta
new file mode 100644
index 0000000..229506b
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e9de45e025f26411bbb52d1aefc8d5a5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/LICENSE b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/LICENSE
new file mode 100644
index 0000000..0330370
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Mirror Networking (vis2k, FakeByte)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/LICENSE.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/LICENSE.meta
new file mode 100644
index 0000000..f8b7f34
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/LICENSE.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a857d4e863bbf4a7dba70bc2cd1b5949
+DefaultImporter:
+ externalObjects: {}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts.meta
new file mode 100644
index 0000000..91f78ee
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6b7f3f8e8fa16475bbe48a8e9fbe800b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/AssemblyInfo.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/AssemblyInfo.cs
new file mode 100644
index 0000000..246a5d1
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/AssemblyInfo.cs
@@ -0,0 +1,3 @@
+using System.Runtime.CompilerServices;
+
+[assembly: InternalsVisibleTo("where-allocations.Tests")]
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/AssemblyInfo.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/AssemblyInfo.cs.meta
new file mode 100644
index 0000000..f7bc149
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/AssemblyInfo.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 158a96a7489b450485a8b06a13328871
+timeCreated: 1622356221
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/Extensions.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/Extensions.cs
new file mode 100644
index 0000000..fcf18f6
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/Extensions.cs
@@ -0,0 +1,58 @@
+using System.Net;
+using System.Net.Sockets;
+
+namespace WhereAllocation
+{
+ public static class Extensions
+ {
+ // always pass the same IPEndPointNonAlloc instead of allocating a new
+ // one each time.
+ //
+ // use IPEndPointNonAlloc.temp to get the latest SocketAdddress written
+ // by ReceiveFrom_Internal!
+ //
+ // IMPORTANT: .temp will be overwritten in next call!
+ // hash or manually copy it if you need to store it, e.g.
+ // when adding a new connection.
+ public static int ReceiveFrom_NonAlloc(
+ this Socket socket,
+ byte[] buffer,
+ int offset,
+ int size,
+ SocketFlags socketFlags,
+ IPEndPointNonAlloc remoteEndPoint)
+ {
+ // call ReceiveFrom with IPEndPointNonAlloc.
+ // need to wrap this in ReceiveFrom_NonAlloc because it's not
+ // obvious that IPEndPointNonAlloc.Create does NOT create a new
+ // IPEndPoint. it saves the result in IPEndPointNonAlloc.temp!
+ EndPoint casted = remoteEndPoint;
+ return socket.ReceiveFrom(buffer, offset, size, socketFlags, ref casted);
+ }
+
+ // same as above, different parameters
+ public static int ReceiveFrom_NonAlloc(this Socket socket, byte[] buffer, IPEndPointNonAlloc remoteEndPoint)
+ {
+ EndPoint casted = remoteEndPoint;
+ return socket.ReceiveFrom(buffer, ref casted);
+ }
+
+ // SendTo allocates too:
+ // https://github.com/mono/mono/blob/f74eed4b09790a0929889ad7fc2cf96c9b6e3757/mcs/class/System/System.Net.Sockets/Socket.cs#L2240
+ // -> the allocation is in EndPoint.Serialize()
+ // NOTE: technically this function isn't necessary.
+ // could just pass IPEndPointNonAlloc.
+ // still good for strong typing.
+ public static int SendTo_NonAlloc(
+ this Socket socket,
+ byte[] buffer,
+ int offset,
+ int size,
+ SocketFlags socketFlags,
+ IPEndPointNonAlloc remoteEndPoint)
+ {
+ EndPoint casted = remoteEndPoint;
+ return socket.SendTo(buffer, offset, size, socketFlags, casted);
+ }
+ }
+}
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/Extensions.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/Extensions.cs.meta
new file mode 100644
index 0000000..9ac6767
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/Extensions.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9e801942544d44d65808fb250623fe25
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/IPEndPointNonAlloc.cs b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/IPEndPointNonAlloc.cs
new file mode 100644
index 0000000..65eb453
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/IPEndPointNonAlloc.cs
@@ -0,0 +1,208 @@
+using System;
+using System.Net;
+using System.Net.Sockets;
+
+namespace WhereAllocation
+{
+ public class IPEndPointNonAlloc : IPEndPoint
+ {
+ // Two steps to remove allocations in ReceiveFrom_Internal:
+ //
+ // 1.) remoteEndPoint.Serialize():
+ // https://github.com/mono/mono/blob/f74eed4b09790a0929889ad7fc2cf96c9b6e3757/mcs/class/System/System.Net.Sockets/Socket.cs#L1733
+ // -> creates an EndPoint for ReceiveFrom_Internal to write into
+ // -> it's never read from:
+ // ReceiveFrom_Internal passes it to native:
+ // https://github.com/mono/mono/blob/f74eed4b09790a0929889ad7fc2cf96c9b6e3757/mcs/class/System/System.Net.Sockets/Socket.cs#L1885
+ // native recv populates 'sockaddr* from' with the remote address:
+ // https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-recvfrom
+ // -> can NOT be null. bricks both Unity and Unity Hub otherwise.
+ // -> it seems as if Serialize() is only called to avoid allocating
+ // a 'new SocketAddress' in ReceiveFrom. it's up to the EndPoint.
+ //
+ // 2.) EndPoint.Create(SocketAddress):
+ // https://github.com/mono/mono/blob/f74eed4b09790a0929889ad7fc2cf96c9b6e3757/mcs/class/System/System.Net.Sockets/Socket.cs#L1761
+ // -> SocketAddress is the remote's address that we want to return
+ // -> to avoid 'new EndPoint(SocketAddress), it seems up to the user
+ // to decide how to create a new EndPoint via .Create
+ // -> SocketAddress is the object that was returned by Serialize()
+ //
+ // in other words, all we need is an extra SocketAddress field that we
+ // can pass to ReceiveFrom_Internal to write the result into.
+ // => callers can then get the result from the extra field!
+ // => no allocations
+ //
+ // IMPORTANT: remember that IPEndPointNonAlloc is always the same object
+ // and never changes. only the helper field is changed.
+ public SocketAddress temp;
+
+ // constructors simply create the field once by calling the base method.
+ // (our overwritten method would create anything new)
+ public IPEndPointNonAlloc(long address, int port) : base(address, port)
+ {
+ temp = base.Serialize();
+ }
+ public IPEndPointNonAlloc(IPAddress address, int port) : base(address, port)
+ {
+ temp = base.Serialize();
+ }
+
+ // Serialize simply returns it
+ public override SocketAddress Serialize() => temp;
+
+ // Create doesn't need to create anything.
+ // SocketAddress object is already the one we returned in Serialize().
+ // ReceiveFrom_Internal simply wrote into it.
+ public override EndPoint Create(SocketAddress socketAddress)
+ {
+ // original IPEndPoint.Create validates:
+ if (socketAddress.Family != AddressFamily)
+ throw new ArgumentException($"Unsupported socketAddress.AddressFamily: {socketAddress.Family}. Expected: {AddressFamily}");
+ if (socketAddress.Size < 8)
+ throw new ArgumentException($"Unsupported socketAddress.Size: {socketAddress.Size}. Expected: <8");
+
+ // double check to guarantee that ReceiveFrom actually did write
+ // into our 'temp' field. just in case that's ever changed.
+ if (socketAddress != temp)
+ {
+ // well this is fun.
+ // in the latest mono from the above github links,
+ // the result of Serialize() is passed as 'ref' so ReceiveFrom
+ // does in fact write into it.
+ //
+ // in Unity 2019 LTS's mono version, it does create a new one
+ // each time. this is from ILSpy Receive_From:
+ //
+ // SocketPal.CheckDualModeReceiveSupport(this);
+ // ValidateBlockingMode();
+ // if (NetEventSource.IsEnabled)
+ // {
+ // NetEventSource.Info(this, $"SRC{LocalEndPoint} size:{size} remoteEP:{remoteEP}", "ReceiveFrom");
+ // }
+ // EndPoint remoteEP2 = remoteEP;
+ // System.Net.Internals.SocketAddress socketAddress = SnapshotAndSerialize(ref remoteEP2);
+ // System.Net.Internals.SocketAddress socketAddress2 = IPEndPointExtensions.Serialize(remoteEP2);
+ // int bytesTransferred;
+ // SocketError socketError = SocketPal.ReceiveFrom(_handle, buffer, offset, size, socketFlags, socketAddress.Buffer, ref socketAddress.InternalSize, out bytesTransferred);
+ // SocketException ex = null;
+ // if (socketError != 0)
+ // {
+ // ex = new SocketException((int)socketError);
+ // UpdateStatusAfterSocketError(ex);
+ // if (NetEventSource.IsEnabled)
+ // {
+ // NetEventSource.Error(this, ex, "ReceiveFrom");
+ // }
+ // if (ex.SocketErrorCode != SocketError.MessageSize)
+ // {
+ // throw ex;
+ // }
+ // }
+ // if (!socketAddress2.Equals(socketAddress))
+ // {
+ // try
+ // {
+ // remoteEP = remoteEP2.Create(socketAddress);
+ // }
+ // catch
+ // {
+ // }
+ // if (_rightEndPoint == null)
+ // {
+ // _rightEndPoint = remoteEP2;
+ // }
+ // }
+ // if (ex != null)
+ // {
+ // throw ex;
+ // }
+ // if (NetEventSource.IsEnabled)
+ // {
+ // NetEventSource.DumpBuffer(this, buffer, offset, size, "ReceiveFrom");
+ // NetEventSource.Exit(this, bytesTransferred, "ReceiveFrom");
+ // }
+ // return bytesTransferred;
+ //
+
+ // so until they upgrade their mono version, we are stuck with
+ // some allocations.
+ //
+ // for now, let's pass the newly created on to our temp so at
+ // least we reuse it next time.
+ temp = socketAddress;
+
+ // SocketAddress.GetHashCode() depends on SocketAddress.m_changed.
+ // ReceiveFrom only sets the buffer, it does not seem to set m_changed.
+ // we need to reset m_changed for two reasons:
+ // * if m_changed is false, GetHashCode() returns the cahced m_hash
+ // which is '0'. that would be a problem.
+ // https://github.com/mono/mono/blob/bdd772531d379b4e78593587d15113c37edd4a64/mcs/class/referencesource/System/net/System/Net/SocketAddress.cs#L262
+ // * if we have a cached m_hash, but ReceiveFrom modified the buffer
+ // then the GetHashCode() should change too. so we need to reset
+ // either way.
+ //
+ // the only way to do that is by _actually_ modifying the buffer:
+ // https://github.com/mono/mono/blob/bdd772531d379b4e78593587d15113c37edd4a64/mcs/class/referencesource/System/net/System/Net/SocketAddress.cs#L99
+ // so let's do that.
+ // -> unchecked in case it's byte.Max
+ unchecked
+ {
+ temp[0] += 1;
+ temp[0] -= 1;
+ }
+
+ // make sure this worked.
+ // at least throw an Exception to make it obvious if the trick does
+ // not work anymore, in case ReceiveFrom is ever changed.
+ if (temp.GetHashCode() == 0)
+ throw new Exception($"SocketAddress GetHashCode() is 0 after ReceiveFrom. Does the m_changed trick not work anymore?");
+
+ // in the future, enable this again:
+ //throw new Exception($"Socket.ReceiveFrom(): passed SocketAddress={socketAddress} but expected {temp}. This should never happen. Did ReceiveFrom() change?");
+ }
+
+ // ReceiveFrom sets seed_endpoint to the result of Create():
+ // https://github.com/mono/mono/blob/f74eed4b09790a0929889ad7fc2cf96c9b6e3757/mcs/class/System/System.Net.Sockets/Socket.cs#L1764
+ // so let's return ourselves at least.
+ // (seed_endpoint only seems to matter for BeginSend etc.)
+ return this;
+ }
+
+ // we need to overwrite GetHashCode() for two reasons.
+ // https://github.com/mono/mono/blob/bdd772531d379b4e78593587d15113c37edd4a64/mcs/class/referencesource/System/net/System/Net/IPEndPoint.cs#L160
+ // * it uses m_Address. but our true SocketAddress is in m_temp.
+ // m_Address might not be set at all.
+ // * m_Address.GetHashCode() allocates:
+ // https://github.com/mono/mono/blob/bdd772531d379b4e78593587d15113c37edd4a64/mcs/class/referencesource/System/net/System/Net/IPAddress.cs#L699
+ public override int GetHashCode() => temp.GetHashCode();
+
+ // helper function to create an ACTUAL new IPEndPoint from this.
+ // server needs it to store new connections as unique IPEndPoints.
+ public IPEndPoint DeepCopyIPEndPoint()
+ {
+ // we need to create a new IPEndPoint from 'temp' SocketAddress.
+ // there is no 'new IPEndPoint(SocketAddress) constructor.
+ // so we need to be a bit creative...
+
+ // allocate a placeholder IPAddress to copy
+ // our SocketAddress into.
+ // -> needs to be the same address family.
+ IPAddress ipAddress;
+ if (temp.Family == AddressFamily.InterNetworkV6)
+ ipAddress = IPAddress.IPv6Any;
+ else if (temp.Family == AddressFamily.InterNetwork)
+ ipAddress = IPAddress.Any;
+ else
+ throw new Exception($"Unexpected SocketAddress family: {temp.Family}");
+
+ // allocate a placeholder IPEndPoint
+ // with the needed size form IPAddress.
+ // (the real class. not NonAlloc)
+ IPEndPoint placeholder = new IPEndPoint(ipAddress, 0);
+
+ // the real IPEndPoint's .Create function can create a new IPEndPoint
+ // copy from a SocketAddress.
+ return (IPEndPoint)placeholder.Create(temp);
+ }
+ }
+}
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/IPEndPointNonAlloc.cs.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/IPEndPointNonAlloc.cs.meta
new file mode 100644
index 0000000..4a01958
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/IPEndPointNonAlloc.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: af0279d15e39b484792394f1d3cad4d9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Cloud/Mirror.Cloud.asmdef b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/where-allocations.asmdef
similarity index 56%
rename from UnityProject/Assets/Mirror/Cloud/Mirror.Cloud.asmdef
rename to UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/where-allocations.asmdef
index dbea971..a185c2b 100644
--- a/UnityProject/Assets/Mirror/Cloud/Mirror.Cloud.asmdef
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/where-allocations.asmdef
@@ -1,14 +1,13 @@
{
- "name": "Mirror.Cloud",
- "references": [
- "Mirror"
- ],
- "optionalUnityReferences": [],
+ "name": "where-allocations",
+ "references": [],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
- "defineConstraints": []
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
}
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/where-allocations.asmdef.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/where-allocations.asmdef.meta
new file mode 100644
index 0000000..835fa1f
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/Scripts/where-allocations.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 63c380d6dae6946209ed0832388a657c
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/VERSION b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/VERSION
new file mode 100644
index 0000000..8341d28
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/VERSION
@@ -0,0 +1,2 @@
+V0.1 [2021-06-01]
+- initial release
\ No newline at end of file
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/VERSION.meta b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/VERSION.meta
new file mode 100644
index 0000000..5e5fd6a
--- /dev/null
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/KCP/kcp2k/where-allocation/VERSION.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f1256cadc037546ccb66071784fce137
+DefaultImporter:
+ externalObjects: {}
+ userData: ''
+ assetBundleName: ''
+ assetBundleVariant: ''
diff --git a/UnityProject/Assets/Mirror/Runtime/Transport/LatencySimulation.cs b/UnityProject/Assets/Mirror/Runtime/Transport/LatencySimulation.cs
index bc492a4..d6f836d 100644
--- a/UnityProject/Assets/Mirror/Runtime/Transport/LatencySimulation.cs
+++ b/UnityProject/Assets/Mirror/Runtime/Transport/LatencySimulation.cs
@@ -91,7 +91,7 @@ namespace Mirror
}
// helper function to simulate a send with latency/loss/scramble
- void SimulateSend(int connectionId, int channelId, ArraySegment segment, float latency, List reliableQueue, List unreliableQueue)
+ void SimulateSend(int connectionId, ArraySegment segment, int channelId, float latency, List