diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d3da8ad187..0e4da88de5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -281,7 +281,7 @@ jobs: with: token: ${{ env.PHOTON_PAT }} repository: icosa-mirror/photon-fusion - ref: v1.1.8 + ref: Fusion_v2_Voice_2 path: photon-fusion-mirror/ - name: Copy photon files @@ -378,6 +378,11 @@ jobs: run: | sed -e 's/androidUseCustomKeystore.*$/androidUseCustomKeystore: 1/' -i ProjectSettings/ProjectSettings.asset + - name: Add PHOTON_PAT specific define + if: ${{ env.PHOTON_PAT }} + run: | + echo -e "\n -define:MP_PHOTON \n -define:PHOTON_UNITY_NETWORKING \n-define:PUN_2_0_OR_NEWER \n-define:PUN_2_OR_NEWER \n-define:PUN_2_19_OR_NEWER \n-define:FUSION_WEAVER \n-define:FUSION2 \n-define:CROSS_PLATFORM_INPUT \n-define:MOBILE_INPUT \n-define:PHOTON_VOICE_DEFINED" | tee -a Assets/csc.rsp + - name: Update build matrix specific defines in csc.rsp if: ${{ matrix.extra_defines }} run: | @@ -462,7 +467,7 @@ jobs: du -mcsh Library/* find Library -size +50M -exec ls -altrh {} \; # chown all files, since some are owned by root after the docker run - docker run -v $(pwd)/Library:/mnt alpine chown $(id -u).$(id -g) -R /mnt/ + docker run -v $(pwd)/Library:/mnt alpine chown $(id -u):$(id -g) -R /mnt/ # Print the files to be deleted find Library/Bee/ -name 'symbols.zip' -or -name 'libil2cpp*.so' -or -name 'launcher-release.apk' | tee todelete.txt cat todelete.txt | xargs -r rm diff --git a/.gitignore b/.gitignore index 59515fb0ee..4fbcae46ea 100644 --- a/.gitignore +++ b/.gitignore @@ -80,6 +80,8 @@ /Assets/Photon/** /Assets/Photon.meta !/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion* +!/Assets/Photon/Fusion/Resources/PhotonAppSettings.asset* +!/Assets/Photon/Fusion/User/NetworkPrefabAssetCollection.asset* # Cache files *.cache diff --git a/Assets/Editor/BuildTiltBrush.cs b/Assets/Editor/BuildTiltBrush.cs index 76d86cc79a..256c81d9dd 100644 --- a/Assets/Editor/BuildTiltBrush.cs +++ b/Assets/Editor/BuildTiltBrush.cs @@ -1376,7 +1376,7 @@ static void ShowBrushExportTextures() using (var unused = new TempHookUpSingletons()) { // Set consultUserConfig = false to keep user config from affecting the build output. - TiltBrushManifest manifest = App.Instance.GetMergedManifest(forceExperimental: true); + TiltBrushManifest manifest = App.Instance.ManifestFull; StringBuilder s = new StringBuilder(); foreach (BrushDescriptor desc in manifest.UniqueBrushes()) @@ -1488,7 +1488,7 @@ public static void DoBuild(TiltBuildOptions tiltOptions) // to be run at build-time (ie when nobody has called Start(), Awake()). // TempHookupSingletons() has done just enough initialization to make it happy. // Also set consultUserConfig = false to keep user config from affecting the build output. - TiltBrushManifest manifest = App.Instance.GetMergedManifest(forceExperimental: true); + TiltBrushManifest manifest = App.Instance.ManifestFull; // Some sanity checks { diff --git a/Assets/Editor/MultiplayerManagerEditor.cs b/Assets/Editor/MultiplayerManagerEditor.cs new file mode 100644 index 0000000000..91434ebf73 --- /dev/null +++ b/Assets/Editor/MultiplayerManagerEditor.cs @@ -0,0 +1,189 @@ +// MultiplayerManagerInspector.cs +using UnityEditor; +using UnityEngine; +using OpenBrush.Multiplayer; +using System.Threading.Tasks; +using System.ComponentModel.Composition; + +#if UNITY_EDITOR +[CustomEditor(typeof(MultiplayerManager))] +public class MultiplayerManagerInspector : Editor +{ + private MultiplayerManager multiplayerManager; + private string roomName = "1234"; + private bool isPrivate = false; + private int maxPlayers = 4; + private bool voiceDisabled = false; + + public override void OnInspectorGUI() + { + multiplayerManager = (MultiplayerManager)target; + + DrawDefaultInspector(); + + GUILayout.Space(10); + EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); + GUILayout.Space(10); + + roomName = EditorGUILayout.TextField("Room Name", roomName); + + //State + string connectionState = ""; + if (multiplayerManager != null) connectionState = multiplayerManager.State.ToString(); + else connectionState = "Not Assigned"; + + GUILayout.Space(10); + EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); + EditorGUILayout.BeginHorizontal(); + GUILayout.Label("Connection State: ", EditorStyles.boldLabel); + EditorGUILayout.LabelField($"{connectionState}"); + EditorGUILayout.EndHorizontal(); + GUILayout.Space(5); + + if (GUILayout.Button("Connect")) + { + ConnectToLobby(); + EditorUtility.SetDirty(target); + } + + + if (GUILayout.Button("Join Room")) + { + ConnectToRoom(); + EditorUtility.SetDirty(target); + } + + + if (GUILayout.Button("Exit Room")) + { + DisconnectFromRoom(); + EditorUtility.SetDirty(target); + } + + + if (GUILayout.Button("Disconnect")) + { + Disconnect(); + EditorUtility.SetDirty(target); + } + + if (GUILayout.Button("Refresh Room List")) + { + CheckIfRoomExists(); + EditorUtility.SetDirty(target); + } + + //Local Player Id + string localPlayerId = ""; + if (multiplayerManager.m_LocalPlayer != null) localPlayerId = multiplayerManager.m_LocalPlayer.PlayerId.ToString(); + else localPlayerId = "Not Assigned"; + + GUILayout.Space(10); + EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); + EditorGUILayout.BeginHorizontal(); + GUILayout.Label("Local Player ID: ", EditorStyles.boldLabel); + EditorGUILayout.LabelField($"{localPlayerId}"); + EditorGUILayout.EndHorizontal(); + + //Room Ownership + string ownership = ""; + if (multiplayerManager != null && multiplayerManager.IsUserRoomOwner()) ownership = "Yes"; + else if (multiplayerManager != null && !multiplayerManager.IsUserRoomOwner()) ownership = "No"; + else ownership = "Not Assigned"; + + EditorGUILayout.BeginHorizontal(); + GUILayout.Label("Is Local Player Room Owner:", EditorStyles.boldLabel); + EditorGUILayout.LabelField($"{ownership}"); + EditorGUILayout.EndHorizontal(); + + //Remote Users + string remoteUsersRegistered = ""; + if (multiplayerManager.m_RemotePlayers != null && multiplayerManager.m_RemotePlayers.Count > 0) + { + remoteUsersRegistered = "UserIds:[ "; + foreach (var remotePlayer in multiplayerManager.m_RemotePlayers) + { + remoteUsersRegistered += remotePlayer.PlayerId.ToString() + ","; + } + remoteUsersRegistered += "]"; + } + else remoteUsersRegistered = "Not Assigned"; + + //Registered remote players + + EditorGUILayout.BeginHorizontal(); + GUILayout.Label("Registered Remote Players IDs:", EditorStyles.boldLabel); + EditorGUILayout.LabelField($"{remoteUsersRegistered}"); + EditorGUILayout.EndHorizontal(); + + // Display and edit Nickname + GUILayout.Space(10); + EditorGUILayout.LabelField("Nickname", GUI.skin.horizontalSlider); + string currentNickname = multiplayerManager.UserInfo.Nickname; + GUILayout.Label("Nickname", EditorStyles.boldLabel); + string newNickname = EditorGUILayout.TextField("Edit Nickname", currentNickname); + if (newNickname != currentNickname) + { + ConnectionUserInfo updatedUserInfo = multiplayerManager.UserInfo; + updatedUserInfo.Nickname = newNickname; + multiplayerManager.UserInfo = updatedUserInfo; + EditorUtility.SetDirty(target); // Mark the target as dirty to apply changes + } + + + Repaint(); + + } + + private async void ConnectToLobby() + { + if (multiplayerManager != null) + { + bool success = await multiplayerManager.Connect(); + } + } + + private async void ConnectToRoom() + { + if (multiplayerManager != null) + { + RoomCreateData roomData = new RoomCreateData + { + roomName = roomName, + @private = isPrivate, + maxPlayers = maxPlayers, + voiceDisabled = voiceDisabled + }; + + bool success = await multiplayerManager.JoinRoom(roomData); + + } + } + + private async void DisconnectFromRoom() + { + if (multiplayerManager != null) + { + bool success = await multiplayerManager.LeaveRoom(); + + } + } + + private async void Disconnect() + { + if (multiplayerManager != null) + { + bool success = await multiplayerManager.Disconnect(); + + } + } + + private void CheckIfRoomExists() + { + if (multiplayerManager != null) + { + bool roomExists = multiplayerManager.DoesRoomNameExist(roomName); + } + } +} +#endif diff --git a/Assets/Editor/MultiplayerManagerEditor.cs.meta b/Assets/Editor/MultiplayerManagerEditor.cs.meta new file mode 100644 index 0000000000..48c328620f --- /dev/null +++ b/Assets/Editor/MultiplayerManagerEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dd27756f885442546a0ff09f78c36081 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/OculusMR/OculusMRController.cs b/Assets/OculusMR/OculusMRController.cs index 746b74b1df..0e67eeecab 100644 --- a/Assets/OculusMR/OculusMRController.cs +++ b/Assets/OculusMR/OculusMRController.cs @@ -57,11 +57,19 @@ public async void StartMRExperience(bool isHosting) { await m_SpatialAnchorManager.CreateSpatialAnchor(); m_SpatialAnchorManager.SceneLocalizeToAnchor(); - MultiplayerManager.m_Instance.Connect(); + MultiplayerManager.m_Instance.JoinRoom(new RoomCreateData() + { + roomName = "OculusMRRoom", + maxPlayers = 12 + }); } else { - MultiplayerManager.m_Instance.Connect(); + MultiplayerManager.m_Instance.JoinRoom(new RoomCreateData() + { + roomName = "OculusMRRoom", + maxPlayers = 12 + }); } } diff --git a/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion b/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion index 526a559a17..84a91810f2 100644 --- a/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion +++ b/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion @@ -2,160 +2,69 @@ "Version": 1, "TypeId": "NetworkProjectConfig", "PeerMode": 0, - "PhysicsEngine": 0, - "ServerPhysicsMode": 0, - "UseLagCompensation": true, "LagCompensation": { - "HitboxBufferSize": 12, - "HitboxCapacity": 512, - "ExpansionFactor": 0.20000000298023225, - "Optimize": false, - "DebugBroadphase": false, - "DebugHistory": false, - "DebugColor": { - "r": 0.0, - "g": 1.0, - "b": 0.0, - "a": 0.5 - }, - "ClientDebugColor": { - "r": 0.0, - "g": 0.0, - "b": 1.0, - "a": 0.5 - }, - "HistoryDebugColor": { - "r": 0.0, - "g": 0.0, - "b": 1.0, - "a": 0.5 - } + "Enabled": false, + "HitboxBufferLengthInMs": 200, + "HitboxDefaultCapacity": 512, + "CachedStaticCollidersSize": 64 }, - "SceneLoadSpawnMode": 0, - "DeltaCompressor": 0, + "EnqueueIncompleteSynchronousSpawns": false, "InvokeRenderInBatchMode": true, - "MaxNetworkedObjectCount": 8192, "NetworkIdIsObjectName": false, "HideNetworkObjectInactivityGuard": false, - "EnableHostMigration": false, - "HostMigrationSnapshotInterval": 60, + "AllowClientServerModesInWebGL": false, "Simulation": { "InputDataWordCount": 0, - "TickRate": 60, - "MaxPrediction": 60, - "DefaultPlayers": 10, - "ReplicationMode": 0, - "ObjectInterest": false, - "ServerPacketInterval": 1, - "ClientPacketInterval": 1 - }, - "Interpolation": { - "DeltaAdjustment": 1, - "AllowedJitter": 25, - "SnapLimit": 200, - "MultiplierMin": 1.25, - "MultiplierMax": 3.0 + "ReplicationFeatures": 1, + "InputTransferMode": 0, + "SimulationUpdateTimeMode": 0, + "PlayerCount": 10, + "TickRateSelection": { + "Client": 64, + "ServerIndex": 0, + "ClientSendIndex": 1, + "ServerSendIndex": 1 + } }, "Network": { - "SocketSendBufferSize": 256, - "SocketRecvBufferSize": 256, - "ConnectAttempts": 10, - "ConnectInterval": 0.5, - "ConnectionDefaultRtt": 0.1, "ConnectionTimeout": 10.0, - "ConnectionPingInterval": 1.0, "ConnectionShutdownTime": 1.0, - "MtuDefault": 1136, "ReliableDataTransferModes": 3 }, + "HostMigration": { + "EnableAutoUpdate": false, + "UpdateDelay": 10 + }, + "EncryptionConfig": { + "EnableEncryption": false + }, "NetworkConditions": { "Enabled": false, - "DelayShape": 1, - "DelayMin": 0.01, - "DelayMax": 0.1, - "DelayPeriod": 3.0, - "DelayThreshold": 0.5, - "AdditionalJitter": 0.01, - "LossChanceShape": 1, - "LossChanceMin": 0.0, - "LossChanceMax": 0.02, - "LossChanceThreshold": 0.9, - "LossChancePeriod": 3.0, - "AdditionalLoss": 0.005 + "DelayShape": 0, + "DelayMin": 0.15, + "DelayMax": 0.15, + "DelayPeriod": 0.0, + "DelayThreshold": 0.0, + "AdditionalJitter": 0.05, + "LossChanceShape": 0, + "LossChanceMin": 0.05, + "LossChanceMax": 0.05, + "LossChanceThreshold": 0.0, + "LossChancePeriod": 0.0, + "AdditionalLoss": 0.0 }, "Heap": { - "PageShift": 14, - "PageCount": 128, + "PageShift": 15, + "PageCount": 256, "GlobalsSize": 0 }, - "AccuracyDefaults": { - "coreKeys": [ - "Uncompressed", - "Default", - "Position", - "Rotation", - "NormalizedTime" - ], - "coreDefs": [ - { - "_value": 0.0, - "_inverse": Infinity, - "_hash": -1382104104 - }, - { - "_value": 0.0010000000474974514, - "_inverse": 999.9999389648438, - "_hash": -814817977 - }, - { - "_value": 0.0010000000474974514, - "_inverse": 999.9999389648438, - "_hash": -194233199 - }, - { - "_value": 0.0010000000474974514, - "_inverse": 999.9999389648438, - "_hash": -258202764 - }, - { - "_value": 0.00009999999747378752, - "_inverse": 10000.0, - "_hash": 1061325578 - } - ], - "coreVals": [ - { - "_value": 0.0, - "_inverse": Infinity, - "_hash": -1382104104 - }, - { - "_value": 0.0010000000474974514, - "_inverse": 999.9999389648438, - "_hash": -814817977 - }, - { - "_value": 0.0010000000474974514, - "_inverse": 999.9999389648438, - "_hash": -194233199 - }, - { - "_value": 0.0010000000474974514, - "_inverse": 999.9999389648438, - "_hash": -258202764 - }, - { - "_value": 0.00009999999747378752, - "_inverse": 10000.0, - "_hash": 1061325578 - } - ], - "tags": [], - "values": [] - }, "AssembliesToWeave": [ + "Fusion.Unity", "Assembly-CSharp", - "Assembly-CSharp-firstpass" + "Assembly-CSharp-firstpass", + "Fusion.Addons.Physics", + "Fusion.Addons.FSM", + "PhotonVoice.Fusion" ], "UseSerializableDictionary": true, "NullChecksForNetworkedProperties": true, diff --git a/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion.meta b/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion.meta index 4e2a77bdf0..b51f264e1e 100644 --- a/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion.meta +++ b/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion.meta @@ -1,5 +1,7 @@ fileFormatVersion: 2 -guid: dd4ca0370d231e84e889cd4edcaf0bde +guid: 9c11b716d72ba6c4cb7ca372c6e1590d +labels: +- FusionDefaultGlobal ScriptedImporter: internalIDToNameTable: [] externalObjects: {} @@ -8,4 +10,6 @@ ScriptedImporter: assetBundleName: assetBundleVariant: script: {fileID: 11500000, guid: 66a64a17d0b40f34f9224317a5a84bf2, type: 3} - PrefabAssetsContainerPath: + PrefabOptions: + UnloadPrefabOnReleasingLastInstance: 0 + UnloadUnusedPrefabsOnShutdown: 0 diff --git a/Assets/Photon/Fusion/Resources/PhotonAppSettings.asset b/Assets/Photon/Fusion/Resources/PhotonAppSettings.asset new file mode 100644 index 0000000000..947441c8ca --- /dev/null +++ b/Assets/Photon/Fusion/Resources/PhotonAppSettings.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1878438611, guid: 7de3b8b9e1263ad479e2d0c4261b7646, type: 3} + m_Name: PhotonAppSettings + m_EditorClassIdentifier: + AppSettings: + AppIdFusion: + AppIdChat: + AppIdVoice: + AppVersion: + UseNameServer: 1 + FixedRegion: + Server: + Port: 0 + ProxyServer: + Protocol: 0 + EnableProtocolFallback: 1 + AuthMode: 0 + EnableLobbyStatistics: 0 + NetworkLogging: 1 + encryptionMode: 0 + emptyRoomTtl: 0 diff --git a/Assets/Plugins/Android/AndroidManifest.xml b/Assets/Plugins/Android/AndroidManifest.xml index 7e580a070e..e7a72b1558 100644 --- a/Assets/Plugins/Android/AndroidManifest.xml +++ b/Assets/Plugins/Android/AndroidManifest.xml @@ -18,9 +18,9 @@ + - diff --git a/Assets/Prefabs/BetaTag.prefab b/Assets/Prefabs/BetaTag.prefab new file mode 100644 index 0000000000..fe7bbe60fe --- /dev/null +++ b/Assets/Prefabs/BetaTag.prefab @@ -0,0 +1,415 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &492106549256326987 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8171046643914759413} + - component: {fileID: 2382359695583312413} + - component: {fileID: 7242636611821479444} + m_Layer: 16 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8171046643914759413 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492106549256326987} + m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0.0041000843, z: 0.002} + m_LocalScale: {x: 10, y: 6, z: 6} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4378067676344109730} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2382359695583312413 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492106549256326987} + m_Mesh: {fileID: 4300002, guid: 3efe5b86b55995545a231ce66a53b402, type: 3} +--- !u!23 &7242636611821479444 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492106549256326987} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 28d0bd4d20e3f8143994275754956c5e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &768695854730814423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7395277295064072936} + - component: {fileID: 400887753388735756} + - component: {fileID: 2556331195588322189} + - component: {fileID: 6612620938781836974} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7395277295064072936 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 768695854730814423} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4378067676344109730} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &400887753388735756 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 768695854730814423} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &2556331195588322189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 768695854730814423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: BETA + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 0.79 + m_fontSizeBase: 0.79 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 400887753388735756} + m_maskType: 0 +--- !u!114 &6612620938781836974 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 768695854730814423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69beb381e244f92449b8c4cf954630e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjects: + - rid: 3215294302546034780 + references: + version: 2 + RefIds: + - rid: 3215294302546034780 + type: {class: TrackedUGuiGraphic, ns: UnityEngine.Localization.PropertyVariants.TrackedObjects, + asm: Unity.Localization} + data: + m_Target: {fileID: 2556331195588322189} + m_TrackedProperties: + items: + - rid: 3215294302546034781 + m_UpdateType: 0 + - rid: 3215294302546034781 + type: {class: LocalizedStringProperty, ns: UnityEngine.Localization.PropertyVariants.TrackedProperties, + asm: Unity.Localization} + data: + m_Localized: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 76121021711179776 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_PropertyPath: m_text +--- !u!1 &2206467382688623040 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4378067676344109730} + m_Layer: 0 + m_Name: BetaTag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4378067676344109730 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2206467382688623040} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7395277295064072936} + - {fileID: 8171046643914759413} + - {fileID: 1853447512016924465} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2586623423367620634 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1853447512016924465} + - component: {fileID: 6116880465705314692} + - component: {fileID: 5545206284097801361} + m_Layer: 16 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1853447512016924465 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2586623423367620634} + m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0.0041000843, z: 0.004} + m_LocalScale: {x: 10.75, y: 10.75, z: 7} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4378067676344109730} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6116880465705314692 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2586623423367620634} + m_Mesh: {fileID: 4300002, guid: 3efe5b86b55995545a231ce66a53b402, type: 3} +--- !u!23 &5545206284097801361 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2586623423367620634} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d153b453067a0724889fb677fef801a1, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/Prefabs/BetaTag.prefab.meta b/Assets/Prefabs/BetaTag.prefab.meta new file mode 100644 index 0000000000..cef13a179b --- /dev/null +++ b/Assets/Prefabs/BetaTag.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2538d4a3972b37c4c9e8649481dd9a2b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/HMDMesh.prefab b/Assets/Prefabs/HMDMesh.prefab index 6656788973..0a620cf954 100644 --- a/Assets/Prefabs/HMDMesh.prefab +++ b/Assets/Prefabs/HMDMesh.prefab @@ -25,13 +25,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1448111865499013753} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &1448111865499013748 MeshFilter: diff --git a/Assets/Prefabs/Panels/AdminPanel.prefab b/Assets/Prefabs/Panels/AdminPanel.prefab index 44487082a1..b3c8e4d9f6 100644 --- a/Assets/Prefabs/Panels/AdminPanel.prefab +++ b/Assets/Prefabs/Panels/AdminPanel.prefab @@ -25,6 +25,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000816559363234} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 6.277, y: 15.634, z: 3.794} m_LocalScale: {x: 1, y: 1, z: 1} @@ -34,7 +35,6 @@ Transform: - {fileID: 4603977406768154} - {fileID: 4035380900912510} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &114828844590133850 MonoBehaviour: @@ -48,7 +48,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8aef76c4a1603ae4a9b2be90c69653da, type: 3} m_Name: m_EditorClassIdentifier: - m_PanelType: 26 + m_PanelType: 4 m_Collider: {fileID: 65962833710381506} m_Mesh: {fileID: 1577576848578658} m_Border: {fileID: 23798923668222696} @@ -164,6 +164,14 @@ MonoBehaviour: renderer: {fileID: 0} baseLocalPos: {x: 0, y: 0, z: 0} baseScale: {x: 0, y: 0, z: 0} + - button: {fileID: 541920620010414687} + renderer: {fileID: 0} + baseLocalPos: {x: 0, y: 0, z: 0} + baseScale: {x: 0, y: 0, z: 0} + - button: {fileID: 3913670656884359384} + renderer: {fileID: 0} + baseLocalPos: {x: 0, y: 0, z: 0} + baseScale: {x: 0, y: 0, z: 0} m_SaveNewButton: {fileID: 1922662397484504} m_SaveOptionsButton: {fileID: 1151082384707834} m_SettingsButton: {fileID: 1936268928807740} @@ -177,6 +185,7 @@ MonoBehaviour: m_MemoryWarning: {fileID: 1603096109966042} m_MemoryWarningButton: {fileID: 1712905289553642} m_MemoryWarningColor: {r: 0.78676474, g: 0.09256055, b: 0.09256055, a: 1} + m_MultiplayerButton: {fileID: 5787249127137797294} m_ButtonRotationAngle: 45 m_ShareButtonLoggedOutExtraText: m_TableReference: @@ -228,13 +237,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1106930226929544} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -0.049999878} m_LocalScale: {x: 0.85057116, y: 0.85057116, z: 0.85057116} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4402161299253448} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33482202212998726 MeshFilter: @@ -313,13 +322,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1151082384707834} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.4499998, z: 0.049999952} + m_LocalPosition: {x: -0.218, y: 0.476, z: 0.049999952} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33825377552793314 MeshFilter: @@ -379,9 +388,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1151082384707834} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.1} m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} --- !u!114 &114436392384945342 @@ -403,7 +420,7 @@ MonoBehaviour: m_TableReference: m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 m_TableEntryReference: - m_KeyId: 5064506084139008 + m_KeyId: 312729904472465408 m_Key: m_FallbackState: 0 m_WaitForCompletion: 0 @@ -487,13 +504,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1192991703587922} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1.6, y: 1.6, z: 1.6} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4482757564845618} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33907749212384082 MeshFilter: @@ -569,13 +586,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1222021979522926} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: -0.04, z: 0.05} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4035380900912510} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33386300729919342 MeshFilter: @@ -609,13 +626,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1229321774763870} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4035380900912510} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!65 &65063648299555090 BoxCollider: @@ -625,9 +642,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1229321774763870} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1.5, y: 1.55, z: 0.05} m_Center: {x: 0, y: -0.05, z: -0.03} --- !u!1 &1262073490112886 @@ -657,13 +682,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1262073490112886} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.38999987, y: 0.22500038, z: 0.049999952} + m_LocalPosition: {x: 0.463, y: 0.216, z: 0.049999952} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33941583646683618 MeshFilter: @@ -723,9 +748,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1262073490112886} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.1} m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} --- !u!114 &114969883342015630 @@ -831,13 +864,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1289872023204522} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4402161299253448} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33356562983312826 MeshFilter: @@ -912,6 +945,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1349288981255934} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -919,18 +953,19 @@ Transform: m_Children: - {fileID: 4931497879020284} - {fileID: 4298548666588398} + - {fileID: 3913670656884359384} - {fileID: 4476673398456346} - {fileID: 4115296977812378} - {fileID: 4670881044846100} - {fileID: 4334957410348514} - {fileID: 4286627721716940} + - {fileID: 541920620010414687} - {fileID: 4478129342109116} - {fileID: 4736542122326996} - {fileID: 4766230287867736} - {fileID: 4569698380707294} - {fileID: 412988840869617173} m_Father: {fileID: 4035380900912510} - m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1411794300516396 GameObject: @@ -959,6 +994,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1411794300516396} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.025} m_LocalScale: {x: 0.45, y: 0.45, z: 0.45} @@ -967,7 +1003,6 @@ Transform: - {fileID: 4176161590853336} - {fileID: 4188334422648780} m_Father: {fileID: 4035380900912510} - m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33703830478315952 MeshFilter: @@ -1092,7 +1127,7 @@ MonoBehaviour: m_WaitForCompletion: 0 m_LocalVariables: [] m_ToggleOnTexture: {fileID: 0} - m_AllowUnavailable: 0 + m_AllowUnavailable: 1 m_LinkedUIObject: {fileID: 0} m_AdjustDistanceAmount: 1 m_IconRenderer: {fileID: 23861549990399966} @@ -1107,9 +1142,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1411794300516396} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.25} m_Center: {x: 0, y: 0, z: 0} --- !u!1 &1577576848578658 @@ -1135,6 +1178,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1577576848578658} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -1148,7 +1192,6 @@ Transform: - {fileID: 4402161299253448} - {fileID: 4315711334760372} m_Father: {fileID: 4482757564845618} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1603096109966042 GameObject: @@ -1176,13 +1219,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1603096109966042} + serializedVersion: 2 m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071067} - m_LocalPosition: {x: 0.25899982, y: 0.21700001, z: -0.035000086} + m_LocalPosition: {x: 0.432, y: 0.444, z: -0.035000086} m_LocalScale: {x: 0.08, y: 0.029999977, z: 0.07999991} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4035380900912510} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33529072324201512 MeshFilter: @@ -1274,13 +1317,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1712905289553642} + serializedVersion: 2 m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} - m_LocalPosition: {x: 0.34899998, y: 0.5290003, z: 0.049999952} + m_LocalPosition: {x: 0.5220003, y: 0.75599957, z: 0.049999952} m_LocalScale: {x: 10, y: 10, z: 10} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} --- !u!33 &33766935304042522 MeshFilter: @@ -1340,9 +1383,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1712905289553642} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 0.026, y: 0.023, z: 0.0035} m_Center: {x: 0, y: 0.0025, z: 0} --- !u!114 &114210005370009680 @@ -1450,13 +1501,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1784932838058358} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.38999987, y: -0.19999981, z: 0.049999952} - m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalPosition: {x: 0.49, y: -0.184, z: 0.049999952} + m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33541849226562688 MeshFilter: @@ -1516,9 +1567,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1784932838058358} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.1} m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} --- !u!114 &114451730632273282 @@ -1626,13 +1685,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1793958170638982} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.38999987, y: 0.22500038, z: 0.049999952} + m_LocalPosition: {x: -0.48, y: 0.193, z: 0.049999952} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33821366212915112 MeshFilter: @@ -1692,9 +1751,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1793958170638982} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.1} m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} --- !u!114 &114524679305128758 @@ -1801,13 +1868,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1835688465934486} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 1.3, y: 1.3, z: 1.3} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4035380900912510} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33453747807715154 MeshFilter: @@ -1899,13 +1966,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1841057133452878} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.38999987, y: 0.22500038, z: 0.049999952} + m_LocalPosition: {x: 0.459, y: 0.213, z: 0.049999952} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33555655433307320 MeshFilter: @@ -1965,9 +2032,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1841057133452878} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.1} m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} --- !u!114 &114553944017920612 @@ -2075,13 +2150,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1843451682130658} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0.4499998, z: 0.049999952} + m_LocalPosition: {x: -0.206, y: -0.488, z: 0.049999952} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33394186971539132 MeshFilter: @@ -2141,9 +2216,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1843451682130658} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1.0000001, y: 1.0000001, z: 0.1} m_Center: {x: 0, y: 0, z: 0} --- !u!114 &114591466390577530 @@ -2163,9 +2246,9 @@ MonoBehaviour: m_DescriptionText: m_LocalizedDescription: m_TableReference: - m_TableCollectionName: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 m_TableEntryReference: - m_KeyId: 0 + m_KeyId: 5065626072358912 m_Key: m_FallbackState: 0 m_WaitForCompletion: 0 @@ -2271,13 +2354,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1857847558550948} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 1.3, y: 1.3, z: 1.3} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4035380900912510} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33266412785695894 MeshFilter: @@ -2366,13 +2449,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1900864892112550} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4482757564845618} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!65 &65962833710381506 BoxCollider: @@ -2382,9 +2465,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1900864892112550} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 2, y: 2, z: 0.5} m_Center: {x: 0, y: 0, z: 0} --- !u!1 &1922662397484504 @@ -2414,13 +2505,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1922662397484504} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.4499998, z: 0.049999952} + m_LocalPosition: {x: -0.221, y: 0.47, z: 0.049999952} m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33700391611944570 MeshFilter: @@ -2480,9 +2571,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1922662397484504} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.1} m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} --- !u!114 &114805731067982576 @@ -2504,7 +2603,7 @@ MonoBehaviour: m_TableReference: m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 m_TableEntryReference: - m_KeyId: 5064506084139008 + m_KeyId: 312730512516521984 m_Key: m_FallbackState: 0 m_WaitForCompletion: 0 @@ -2590,13 +2689,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1936268928807740} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.38999987, y: -0.19999981, z: 0.049999952} - m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalPosition: {x: 0.487, y: -0.178, z: 0.049999952} + m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33183811785653948 MeshFilter: @@ -2656,9 +2755,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1936268928807740} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.1} m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} --- !u!114 &114213771481485110 @@ -2766,13 +2873,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1960334381407134} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.38999987, y: -0.19999981, z: 0.049999952} - m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalPosition: {x: -0.487, y: -0.19999981, z: 0.049999952} + m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33145436996304012 MeshFilter: @@ -2832,9 +2939,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1960334381407134} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.1} m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} --- !u!114 &114459347850906084 @@ -2910,7 +3025,7 @@ MonoBehaviour: m_WaitForCompletion: 0 m_LocalVariables: [] m_ToggleOnTexture: {fileID: 0} - m_AllowUnavailable: 0 + m_AllowUnavailable: 1 m_LinkedUIObject: {fileID: 0} references: version: 2 @@ -2942,13 +3057,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1976071349665942} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.38999987, y: -0.19999981, z: 0.049999952} - m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalPosition: {x: -0.484, y: -0.19999981, z: 0.049999952} + m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315711334760372} - m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &33631275512957272 MeshFilter: @@ -3008,9 +3123,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1976071349665942} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 0.1} m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} --- !u!114 &114961917929844728 @@ -3086,6 +3209,374 @@ MonoBehaviour: m_WaitForCompletion: 0 m_LocalVariables: [] m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 1 + m_LinkedUIObject: {fileID: 0} + references: + version: 2 + RefIds: [] +--- !u!1 &1283872556223845477 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3913670656884359384} + - component: {fileID: 1109356708297080057} + - component: {fileID: 6407745213757458711} + - component: {fileID: 6605348980898369502} + - component: {fileID: 8695917633644188848} + m_Layer: 16 + m_Name: Button_Empty + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3913670656884359384 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283872556223845477} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.186, y: 0.482, z: 0.049999952} + m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4315711334760372} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1109356708297080057 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283872556223845477} + m_Mesh: {fileID: 4300000, guid: 3eae18cf12435234ab8717789135e90b, type: 3} +--- !u!23 &6407745213757458711 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283872556223845477} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &6605348980898369502 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283872556223845477} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &8695917633644188848 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283872556223845477} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c6859eec74651247968d56b594ac313, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: ADMIN_PANEL_WHAT_S_NEW_BUTTON_DESCRIPTION + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 5064506084139008 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: 78bb99e2fe13ca44d9d0b4ab7882f4ce, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 0 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.05 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 101 + m_CommandParam: -1 + m_CommandParam2: -1 + m_RequiresPopup: 0 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 1 + m_LinkedUIObject: {fileID: 0} + references: + version: 2 + RefIds: [] +--- !u!1 &5787249127137797294 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 541920620010414687} + - component: {fileID: 1706514172525796950} + - component: {fileID: 2050874730965094072} + - component: {fileID: 5241187314589267000} + - component: {fileID: 6550189700625956158} + m_Layer: 16 + m_Name: Button_Multiplayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &541920620010414687 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5787249127137797294} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.196, y: -0.488, z: 0.049999952} + m_LocalScale: {x: 0.35, y: 0.35, z: 0.35} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4315711334760372} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1706514172525796950 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5787249127137797294} + m_Mesh: {fileID: 4300000, guid: 3eae18cf12435234ab8717789135e90b, type: 3} +--- !u!23 &2050874730965094072 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5787249127137797294} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &5241187314589267000 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5787249127137797294} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &6550189700625956158 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5787249127137797294} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c6859eec74651247968d56b594ac313, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: ADMIN_PANEL_MULTIPLAYER_BUTTON_DESCRIPTION + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 313111533204348928 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: a33145647a3f52648829afbd03b5fa9b, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 0 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.05 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1001 + m_CommandParam: -1 + m_CommandParam2: -1 + m_RequiresPopup: 0 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} m_AllowUnavailable: 0 m_LinkedUIObject: {fileID: 0} references: @@ -3096,6 +3587,7 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 4315711334760372} m_Modifications: - target: {fileID: 478447133200725155, guid: 604a64bb74b56a44bb9fbbc997be3ef7, @@ -3224,6 +3716,9 @@ PrefabInstance: value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 604a64bb74b56a44bb9fbbc997be3ef7, type: 3} --- !u!4 &412988840869617173 stripped Transform: diff --git a/Assets/Prefabs/Panels/AdminPanel_Mobile.prefab b/Assets/Prefabs/Panels/AdminPanel_Mobile.prefab index b37d1cd893..cb9e4b1151 100644 --- a/Assets/Prefabs/Panels/AdminPanel_Mobile.prefab +++ b/Assets/Prefabs/Panels/AdminPanel_Mobile.prefab @@ -5,16 +5,13 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - target: {fileID: 1000816559363234, guid: f5b291cbc819737469486452ea6748b8, type: 3} propertyPath: m_Name value: AdminPanel_Mobile objectReference: {fileID: 0} - - target: {fileID: 4482757564845618, guid: f5b291cbc819737469486452ea6748b8, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - target: {fileID: 4482757564845618, guid: f5b291cbc819737469486452ea6748b8, type: 3} propertyPath: m_LocalPosition.x value: 6.277 @@ -55,11 +52,6 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 114828844590133850, guid: f5b291cbc819737469486452ea6748b8, - type: 3} - propertyPath: m_PanelType - value: 4 - objectReference: {fileID: 0} - target: {fileID: 114828844590133850, guid: f5b291cbc819737469486452ea6748b8, type: 3} propertyPath: m_PanelPopUpMap.Array.data[2].m_PopUpPrefab @@ -79,4 +71,7 @@ PrefabInstance: objectReference: {fileID: 563727746153209697, guid: 60ddeefaa28cf76478a6671a1193e2c9, type: 3} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: f5b291cbc819737469486452ea6748b8, type: 3} diff --git a/Assets/Prefabs/Panels/MultiplayerPanel.prefab b/Assets/Prefabs/Panels/MultiplayerPanel.prefab new file mode 100644 index 0000000000..8757271258 --- /dev/null +++ b/Assets/Prefabs/Panels/MultiplayerPanel.prefab @@ -0,0 +1,6006 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &160214 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 415082} + - component: {fileID: 114984344201106630} + - component: {fileID: 114120113036906770} + m_Layer: 16 + m_Name: MultiplayerPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &415082 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160214} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2965947989537662772} + - {fileID: 8346410928580794432} + - {fileID: 438733611317437076} + - {fileID: 3405719730669880946} + - {fileID: 1954481780995984980} + - {fileID: 4000011007410470} + - {fileID: 498528} + - {fileID: 499980} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &114984344201106630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160214} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8826790ad4eae8c4b9690bfac756b1ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PanelType: 34 + m_Collider: {fileID: 6536704} + m_Mesh: {fileID: 184986} + m_Border: {fileID: 23425245546884932} + m_MeshCollider: {fileID: 6569620} + m_ParticleBounds: {x: 0, y: 0, z: 0} + m_PanelPopUpMap: + - m_PopUpPrefab: {fileID: 8644332587479430734, guid: bdb7d2ac05cca8346b210c2b576878cb, + type: 3} + m_Command: 1005 + - m_PopUpPrefab: {fileID: 8644332587479430734, guid: bdb7d2ac05cca8346b210c2b576878cb, + type: 3} + m_Command: 1009 + m_PanelDescription: + m_LocalizedPanelDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_PanelDescriptionPrefab: {fileID: 160918, guid: 3491f4f01ba6cac47b1633f36d7c6c84, + type: 3} + m_PanelDescriptionOffset: {x: 1, y: 1, z: 0} + m_PanelDescriptionColor: {r: 1, g: 1, b: 1, a: 1} + m_PanelFlairPrefab: {fileID: 0} + m_PanelFlairOffset: {x: 0, y: 0, z: 0} + m_DescriptionSpringK: 4 + m_DescriptionSpringDampen: 0.2 + m_DescriptionClosedAngle: -90 + m_DescriptionOpenAngle: 0 + m_DescriptionAlphaDistance: 90 + m_Decor: + - {fileID: 1889327720883680} + m_GazeHighlightScaleMultiplier: 1.1 + m_BorderMeshWidth: 0.02 + m_BorderMeshAdvWidth: 0.01 + m_PanelSensitivity: 0.1 + m_ClampToBounds: 1 + m_ReticleBounds: {x: 2.15, y: 2.55, z: 0} + m_BorderSphereHighlightRadius: 2.5 + m_PositioningSpheresBounds: {x: 1, y: 1} + m_PositioningSphereRadius: 0.4 + m_UseGazeRotation: 1 + m_MaxGazeRotation: 20 + m_GazeActivateSpeed: 8 + m_InitialSpawnPos: {x: 0, y: 13, z: 5} + m_InitialSpawnRotEulers: {x: 0, y: 0, z: 0} + m_WandAttachAngle: 0 + m_WandAttachYOffset: 0 + m_WandAttachHalfHeight: 1.3 + m_BeginFixed: 0 + m_CanBeFixedToWand: 1 + m_CanBeDetachedFromWand: 0 + m_PopUpGazeDuration: 0.2 + m_PromoBorders: [] + m_State: {fileID: 352620620088219705} + m_StatString: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 312783011751469056 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_RoomNumber: {fileID: 9160963822650286723} + m_RoomNumberString: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 312783116814589952 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_Nickname: {fileID: 4888819335275065630} + m_NicknameString: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 312783250461892608 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_RoomOwnership: {fileID: 1415528830258304631} + m_RoomOwnerString: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 312963339069759488 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_NotRoomOwnerString: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 312963447907753984 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_AlertsErrors: {fileID: 6437857310660163665} + m_AlertsErrorBeginnerModeActive: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 312967307862810624 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_AlertsRoomAlreadyExistent: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 312967604588847104 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_AlertsPassThroughAcive: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 156198200358006784 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + references: + version: 2 + RefIds: [] +--- !u!114 &114120113036906770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160214} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739d5b1996234d64992a2ae60c3723e9, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &169614 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 420492} + - component: {fileID: 6569620} + m_Layer: 16 + m_Name: MeshCollider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &420492 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 169614} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.022, y: 0.479, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 499980} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &6569620 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 169614} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.94, y: 2.55, z: 0.02} + m_Center: {x: 0.06, y: -0.06, z: 0} +--- !u!1 &173754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 498528} + - component: {fileID: 6536704} + m_Layer: 16 + m_Name: Collider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &498528 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173754} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.674, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 415082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &6536704 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173754} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 2, y: 2, z: 0.5} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &176750 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 480900} + - component: {fileID: 3378504} + m_Layer: 16 + m_Name: HighlightMesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &480900 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176750} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 499980} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3378504 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176750} + m_Mesh: {fileID: 4300000, guid: 92d56c40cdd919e449581a5798c4c533, type: 3} +--- !u!1 &184986 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 499980} + m_Layer: 16 + m_Name: Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &499980 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 184986} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 420492} + - {fileID: 480900} + - {fileID: 6533003833265780531} + - {fileID: 3728028955869875737} + - {fileID: 4696385544466816} + - {fileID: 4410849844686322} + m_Father: {fileID: 415082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1000013067707022 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4000011007410470} + - component: {fileID: 33000014291051348} + - component: {fileID: 23000013088760582} + m_Layer: 16 + m_Name: _Bounds(inactive) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &4000011007410470 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013067707022} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2.5, z: 2.55} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 415082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &33000014291051348 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013067707022} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &23000013088760582 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013067707022} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1007290988937762 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4153922631777284} + - component: {fileID: 33058761823212030} + - component: {fileID: 23101283692199882} + m_Layer: 16 + m_Name: Quad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4153922631777284 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1007290988937762} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.65, y: 0.65, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4410849844686322} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &33058761823212030 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1007290988937762} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &23101283692199882 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1007290988937762} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0d7eb02b18ffb4c419fb75924cb900dc, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1204492690482570 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4410849844686322} + - component: {fileID: 33802401890004714} + - component: {fileID: 23132643551969806} + - component: {fileID: 65355371710737186} + - component: {fileID: 114889102552369014} + m_Layer: 16 + m_Name: Button_ClosePopup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4410849844686322 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1204492690482570} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.635, y: -0.477, z: -0.01} + m_LocalScale: {x: 0.29999998, y: 0.29999998, z: 0.29999998} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4153922631777284} + - {fileID: 4402564000880478} + m_Father: {fileID: 499980} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &33802401890004714 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1204492690482570} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &23132643551969806 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1204492690482570} + m_Enabled: 0 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 3c8ca511828182747a0b79564892ec57, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &65355371710737186 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1204492690482570} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.0000001, y: 1, z: 0.01} + m_Center: {x: 0, y: 0, z: -0.01} +--- !u!114 &114889102552369014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1204492690482570} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c6859eec74651247968d56b594ac313, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: SETTINGS_PANEL_CLOSE_BUTTON_DESCRIPTION + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 157582826200739840 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 0} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.05 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1001 + m_CommandParam: -1 + m_CommandParam2: -1 + m_RequiresPopup: 0 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 0 + m_LinkedUIObject: {fileID: 0} + references: + version: 2 + RefIds: [] +--- !u!1 &1744263076835604 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4148024965627128} + - component: {fileID: 33937921472497080} + - component: {fileID: 23425245546884932} + m_Layer: 0 + m_Name: SettingsPanelBorder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4148024965627128 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744263076835604} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4696385544466816} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &33937921472497080 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744263076835604} + m_Mesh: {fileID: 43497663539397816, guid: eb32a73de999860498953bf6c8960982, type: 3} +--- !u!23 &23425245546884932 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744263076835604} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 77dd4ff8b1158a84397aba783cd0af05, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1850095996710182 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4887086521611946} + - component: {fileID: 33901426776633756} + - component: {fileID: 23979510237070564} + m_Layer: 0 + m_Name: SettingsPanelBg + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &4887086521611946 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850095996710182} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4696385544466816} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &33901426776633756 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850095996710182} + m_Mesh: {fileID: 4300000, guid: 90e92f1d849f0b448ac3e9a402f08bed, type: 3} +--- !u!23 &23979510237070564 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850095996710182} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: db0305ff9081c3b448ac79e85d26e5d4, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1852253978840482 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4696385544466816} + m_Layer: 0 + m_Name: SettingsPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4696385544466816 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1852253978840482} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.448, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4887086521611946} + - {fileID: 4148024965627128} + m_Father: {fileID: 499980} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1889327720883680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4402564000880478} + - component: {fileID: 33054958406634006} + - component: {fileID: 23246000722874742} + m_Layer: 16 + m_Name: ExitButtonBackground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4402564000880478 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889327720883680} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0.025} + m_LocalScale: {x: 0.79999995, y: 0.02, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4410849844686322} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!33 &33054958406634006 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889327720883680} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &23246000722874742 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889327720883680} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 77dd4ff8b1158a84397aba783cd0af05, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &420082715076421484 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7629051910496749139} + - component: {fileID: 787750087721286071} + - component: {fileID: 3172630236204918582} + - component: {fileID: 6105232356552213013} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7629051910496749139 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420082715076421484} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3728028955869875737} + 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: 20, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &787750087721286071 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420082715076421484} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &3172630236204918582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420082715076421484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: BETA + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 0.79 + m_fontSizeBase: 0.79 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 787750087721286071} + m_maskType: 0 +--- !u!114 &6105232356552213013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420082715076421484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69beb381e244f92449b8c4cf954630e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjects: + - rid: 3215294302546034780 + references: + version: 2 + RefIds: + - rid: 3215294302546034780 + type: {class: TrackedUGuiGraphic, ns: UnityEngine.Localization.PropertyVariants.TrackedObjects, + asm: Unity.Localization} + data: + m_Target: {fileID: 3172630236204918582} + m_TrackedProperties: + items: + - rid: 3215294302546034781 + m_UpdateType: 0 + - rid: 3215294302546034781 + type: {class: LocalizedStringProperty, ns: UnityEngine.Localization.PropertyVariants.TrackedProperties, + asm: Unity.Localization} + data: + m_Localized: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 76121021711179776 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_PropertyPath: m_text +--- !u!1 &696592855043656688 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9087129829786851406} + - component: {fileID: 3346539883246239398} + - component: {fileID: 7781543330541298351} + m_Layer: 16 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9087129829786851406 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 696592855043656688} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0.0041000843, z: 0.002} + m_LocalScale: {x: 10, y: 6, z: 6} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3728028955869875737} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3346539883246239398 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 696592855043656688} + m_Mesh: {fileID: 4300002, guid: 3efe5b86b55995545a231ce66a53b402, type: 3} +--- !u!23 &7781543330541298351 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 696592855043656688} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 28d0bd4d20e3f8143994275754956c5e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1032351299171828485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 682210897750110130} + - component: {fileID: 9059887426427637701} + - component: {fileID: 6477758959252966850} + - component: {fileID: 5621504769770497967} + - component: {fileID: 3224196841018929977} + m_Layer: 16 + m_Name: ConnectButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &682210897750110130 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032351299171828485} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.617, y: -0.484, z: -0.042} + m_LocalScale: {x: 0.33, y: 0.33, z: 0.33} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &9059887426427637701 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032351299171828485} + m_Mesh: {fileID: 4300000, guid: 5501f437160666942ae970f3648fbeb8, type: 3} +--- !u!23 &6477758959252966850 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032351299171828485} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &5621504769770497967 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032351299171828485} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.1, y: 1.1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &3224196841018929977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032351299171828485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b78a8d7209bbdc546979b549a875d550, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 294636550056648704 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: 366faf1780512c44b84568938fb37aaa, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.02 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1007 + m_CommandParam: 1 + m_CommandParam2: -1 + m_RequiresPopup: 0 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 1 + m_LinkedUIObject: {fileID: 0} + m_CommandIgnored: 0 + references: + version: 2 + RefIds: [] +--- !u!1 &1288145675384974715 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3728028955869875737} + m_Layer: 0 + m_Name: Beta Tag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3728028955869875737 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1288145675384974715} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: -0.38268343, w: 0.92387956} + m_LocalPosition: {x: 0.823, y: 1.249, z: -0.02} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 7629051910496749139} + - {fileID: 9087129829786851406} + - {fileID: 1641104114940865418} + m_Father: {fileID: 499980} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -45} +--- !u!1 &1499154774102387286 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8994233172856634412} + - component: {fileID: 3100622910448847287} + - component: {fileID: 352620620088219705} + m_Layer: 16 + m_Name: Status + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8994233172856634412 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1499154774102387286} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + 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.147, y: 0.138} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &3100622910448847287 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1499154774102387286} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &352620620088219705 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1499154774102387286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Status: + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.5 + m_fontSizeBase: 1.5 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: -0.12023544, z: -0.1872099, w: 1.1764753} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 3100622910448847287} + m_maskType: 0 +--- !u!1 &1697630693985053451 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1141409664942745479} + - component: {fileID: 1760323139199521700} + - component: {fileID: 4490950674500302730} + - component: {fileID: 6816865797365254487} + - component: {fileID: 7781273403086602364} + m_Layer: 16 + m_Name: join Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1141409664942745479 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1697630693985053451} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.329, y: 0.31899986, z: -0.042} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.35} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7015233605674447413} + m_Father: {fileID: 2965947989537662772} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1760323139199521700 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1697630693985053451} + m_Mesh: {fileID: 4300000, guid: 70d5ab47bcc3aa0439e20bd40350c05a, type: 3} +--- !u!23 &4490950674500302730 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1697630693985053451} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &6816865797365254487 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1697630693985053451} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.4, y: 1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &7781273403086602364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1697630693985053451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b78a8d7209bbdc546979b549a875d550, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: cdc7d38d9e0b30443961d1cc27195586, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.02 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1004 + m_CommandParam: 1 + m_CommandParam2: -1 + m_RequiresPopup: 0 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 1 + m_LinkedUIObject: {fileID: 0} + m_CommandIgnored: 0 + references: + version: 2 + RefIds: [] +--- !u!1 &2296016956045778647 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 47429484269554977} + - component: {fileID: 3374390498020739628} + - component: {fileID: 5985317331042495584} + - component: {fileID: 2841728730450484306} + m_Layer: 16 + m_Name: AllertBeginnerMode + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &47429484269554977 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2296016956045778647} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2965947989537662772} + 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.143, y: 1.355} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &3374390498020739628 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2296016956045778647} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &5985317331042495584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2296016956045778647} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: To enter a room turn first set to beginner mode + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190335 + m_fontColor: {r: 1, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 0.8 + m_fontSizeBase: 0.8 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: 0.74942493, z: 0.083378464, w: 0.49275255} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 3374390498020739628} + m_maskType: 0 +--- !u!114 &2841728730450484306 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2296016956045778647} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69beb381e244f92449b8c4cf954630e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjects: [] + references: + version: 2 + RefIds: [] +--- !u!1 &2571361884171689698 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6876281661055682962} + - component: {fileID: 5708211407015971906} + - component: {fileID: 3923005959821366055} + m_Layer: 16 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6876281661055682962 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2571361884171689698} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.057142857} + m_LocalScale: {x: 2.5, y: 2.5, z: 2.8571427} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7383649761766971007} + 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.56, y: 0.8399991} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &5708211407015971906 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2571361884171689698} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &3923005959821366055 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2571361884171689698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Edit + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.4 + m_fontSizeBase: 1.4 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0.48827845, y: 0.8604479, z: 0.054796636, w: 0.19184232} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 5708211407015971906} + m_maskType: 0 +--- !u!1 &2994060372226562491 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3068395288206314123} + - component: {fileID: 3015414681375869025} + - component: {fileID: 2890656081255549429} + - component: {fileID: 942730275356831299} + m_Layer: 16 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3068395288206314123 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2994060372226562491} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 438733611317437076} + 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.104, y: 0.9} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &3015414681375869025 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2994060372226562491} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &2890656081255549429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2994060372226562491} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: You have successfully joined the room! Share the room number with your + collaborators so they can join too. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.4 + m_fontSizeBase: 1.4 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: 0.6332202, z: -0.094255626, w: -0.027681828} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 3015414681375869025} + m_maskType: 0 +--- !u!114 &942730275356831299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2994060372226562491} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69beb381e244f92449b8c4cf954630e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjects: [] + references: + version: 2 + RefIds: [] +--- !u!1 &3134540981707160973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7015233605674447413} + - component: {fileID: 6931700069523288738} + - component: {fileID: 8426405893577217330} + m_Layer: 16 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7015233605674447413 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3134540981707160973} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.057142857} + m_LocalScale: {x: 2.5, y: 2.5, z: 2.8571427} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1141409664942745479} + 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.56, y: 0.8399991} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &6931700069523288738 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3134540981707160973} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &8426405893577217330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3134540981707160973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Join + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.4 + m_fontSizeBase: 1.4 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0.48827845, y: 0.8604479, z: 0.054796636, w: 0.19184232} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 6931700069523288738} + m_maskType: 0 +--- !u!1 &3214184211823652001 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1641104114940865418} + - component: {fileID: 6601465140255059263} + - component: {fileID: 4866733623279814698} + m_Layer: 16 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1641104114940865418 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214184211823652001} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0, y: 0.0041000843, z: 0.004} + m_LocalScale: {x: 10.75, y: 10.75, z: 7} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3728028955869875737} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6601465140255059263 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214184211823652001} + m_Mesh: {fileID: 4300002, guid: 3efe5b86b55995545a231ce66a53b402, type: 3} +--- !u!23 &4866733623279814698 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214184211823652001} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d153b453067a0724889fb677fef801a1, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &3644177191085397888 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2965947989537662772} + m_Layer: 16 + m_Name: LobbyElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &2965947989537662772 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3644177191085397888} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -0.113, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6321725960906406704} + - {fileID: 47429484269554977} + - {fileID: 1141409664942745479} + - {fileID: 7383649761766971007} + - {fileID: 1616599776894361023} + - {fileID: 7584752043559634152} + m_Father: {fileID: 415082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4076170750158864688 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7584752043559634152} + - component: {fileID: 8238648932876523510} + - component: {fileID: 1974621732855197313} + m_Layer: 16 + m_Name: RoomNumber + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7584752043559634152 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4076170750158864688} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2965947989537662772} + 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.586, y: 0.13399984} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &8238648932876523510 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4076170750158864688} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &1974621732855197313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4076170750158864688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 202020 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.7 + m_fontSizeBase: 1.7 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: -0.12023544, z: 0.49373662, w: 1.1764753} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 8238648932876523510} + m_maskType: 0 +--- !u!1 &4597522067460985994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6321725960906406704} + - component: {fileID: 2972459032532661851} + - component: {fileID: 5365545856024163458} + - component: {fileID: 2149637936205218271} + m_Layer: 16 + m_Name: DoesRoomExistLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6321725960906406704 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4597522067460985994} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2965947989537662772} + 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.143, y: 1.138} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &2972459032532661851 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4597522067460985994} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &5365545856024163458 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4597522067460985994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: This room does not exist yet. By pressing join, the room will be created. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 0.8 + m_fontSizeBase: 0.8 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: 0.6332202, z: 0.083378464, w: 0.49275255} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 2972459032532661851} + m_maskType: 0 +--- !u!114 &2149637936205218271 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4597522067460985994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69beb381e244f92449b8c4cf954630e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjects: [] + references: + version: 2 + RefIds: [] +--- !u!1 &4649946342403727185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3577413846294365787} + - component: {fileID: 1001195632747271077} + - component: {fileID: 404572183770810615} + m_Layer: 16 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3577413846294365787 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4649946342403727185} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 438733611317437076} + 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.36000013} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &1001195632747271077 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4649946342403727185} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &404572183770810615 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4649946342403727185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: ' Room :' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.7 + m_fontSizeBase: 1.7 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: -0.12023544, z: 0.49373662, w: 1.1764753} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 1001195632747271077} + m_maskType: 0 +--- !u!1 &4683949721667896528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4609499178869085959} + - component: {fileID: 8677733851088090031} + - component: {fileID: 9160963822650286723} + m_Layer: 16 + m_Name: Room + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4609499178869085959 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4683949721667896528} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + 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.466, y: -0.1400001} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &8677733851088090031 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4683949721667896528} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &9160963822650286723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4683949721667896528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: RoomName + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.5 + m_fontSizeBase: 1.5 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: -0.12023544, z: 0.19494265, w: 1.1764753} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 8677733851088090031} + m_maskType: 0 +--- !u!1 &5874556256608128191 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2677652558882906679} + - component: {fileID: 2426349157769062346} + - component: {fileID: 4888819335275065630} + m_Layer: 16 + m_Name: NickName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2677652558882906679 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5874556256608128191} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + 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.466, y: -0.44200057} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &2426349157769062346 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5874556256608128191} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &4888819335275065630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5874556256608128191} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: NickName + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.5 + m_fontSizeBase: 1.5 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: -0.12023544, z: 0.19494265, w: 1.1764753} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 2426349157769062346} + m_maskType: 0 +--- !u!1 &5899900900417153719 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3858004711376697373} + - component: {fileID: 9157174449584494178} + - component: {fileID: 4845429684781977610} + - component: {fileID: 1175572973535382090} + - component: {fileID: 2867525648481663953} + m_Layer: 16 + m_Name: DisconnectButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &3858004711376697373 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5899900900417153719} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.62, y: -0.48400003, z: -0.042} + m_LocalScale: {x: 0.33, y: 0.33, z: 0.33} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &9157174449584494178 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5899900900417153719} + m_Mesh: {fileID: 4300000, guid: 5501f437160666942ae970f3648fbeb8, type: 3} +--- !u!23 &4845429684781977610 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5899900900417153719} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &1175572973535382090 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5899900900417153719} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.1, y: 1.1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &2867525648481663953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5899900900417153719} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b78a8d7209bbdc546979b549a875d550, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 294637000357126144 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: 56e5ebeba70465c44bf75491d40b6f3d, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.02 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1008 + m_CommandParam: 1 + m_CommandParam2: -1 + m_RequiresPopup: 0 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 1 + m_LinkedUIObject: {fileID: 0} + m_CommandIgnored: 0 + references: + version: 2 + RefIds: [] +--- !u!1 &5921902206488690915 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7383649761766971007} + - component: {fileID: 2926107150197885019} + - component: {fileID: 8582249604316496249} + - component: {fileID: 3106886073238925572} + - component: {fileID: 1443552876586975744} + m_Layer: 16 + m_Name: Edit Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7383649761766971007 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5921902206488690915} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.337, y: 0.319, z: -0.042} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.35} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6876281661055682962} + m_Father: {fileID: 2965947989537662772} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2926107150197885019 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5921902206488690915} + m_Mesh: {fileID: 4300000, guid: 70d5ab47bcc3aa0439e20bd40350c05a, type: 3} +--- !u!23 &8582249604316496249 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5921902206488690915} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &3106886073238925572 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5921902206488690915} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.4, y: 1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &1443552876586975744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5921902206488690915} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b78a8d7209bbdc546979b549a875d550, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: cdc7d38d9e0b30443961d1cc27195586, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.02 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1005 + m_CommandParam: 1 + m_CommandParam2: -1 + m_RequiresPopup: 1 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 0 + m_LinkedUIObject: {fileID: 0} + m_CommandIgnored: 0 + references: + version: 2 + RefIds: [] +--- !u!1 &6083642199730771223 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8346410928580794432} + m_Layer: 16 + m_Name: Elements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8346410928580794432 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083642199730771223} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.336, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 682210897750110130} + - {fileID: 332726704664592371} + - {fileID: 3830748526666750540} + - {fileID: 3858004711376697373} + - {fileID: 8148098001997981085} + - {fileID: 2683548132759635989} + - {fileID: 4609499178869085959} + - {fileID: 2677652558882906679} + - {fileID: 8994233172856634412} + - {fileID: 3004064693637687833} + - {fileID: 5239577752120043582} + m_Father: {fileID: 415082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6171746570159008301 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 438733611317437076} + m_Layer: 16 + m_Name: JoinedElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &438733611317437076 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6171746570159008301} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3068395288206314123} + - {fileID: 3577413846294365787} + - {fileID: 4072971569122874247} + - {fileID: 977540286295220915} + m_Father: {fileID: 415082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6437768756802778087 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4072971569122874247} + - component: {fileID: 6918572163598264854} + - component: {fileID: 932498118536074667} + m_Layer: 16 + m_Name: RoomNumber + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4072971569122874247 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437768756802778087} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 438733611317437076} + 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.586, y: 0.353} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &6918572163598264854 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437768756802778087} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &932498118536074667 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437768756802778087} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 202020 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.7 + m_fontSizeBase: 1.7 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: -0.12023544, z: 0.49373662, w: 1.1764753} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 6918572163598264854} + m_maskType: 0 +--- !u!1 &6530187638887373145 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3830748526666750540} + - component: {fileID: 500043193495277236} + - component: {fileID: 7032505750277561405} + - component: {fileID: 6109381147238388491} + - component: {fileID: 8427148437490211341} + m_Layer: 16 + m_Name: LeaveRoomButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3830748526666750540 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6530187638887373145} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.208, y: -0.4470001, z: -0.042} + m_LocalScale: {x: 0.33, y: 0.33, z: 0.33} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &500043193495277236 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6530187638887373145} + m_Mesh: {fileID: 4300000, guid: 5501f437160666942ae970f3648fbeb8, type: 3} +--- !u!23 &7032505750277561405 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6530187638887373145} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &6109381147238388491 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6530187638887373145} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.1, y: 1.1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &8427148437490211341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6530187638887373145} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b78a8d7209bbdc546979b549a875d550, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 294636908816441344 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: f856211cd511f8445b96396ddd0c59bf, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.02 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1006 + m_CommandParam: 1 + m_CommandParam2: -1 + m_RequiresPopup: 0 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 1 + m_LinkedUIObject: {fileID: 0} + m_CommandIgnored: 0 + references: + version: 2 + RefIds: [] +--- !u!1 &6603807884407399516 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3004064693637687833} + - component: {fileID: 4811598343171871539} + - component: {fileID: 1415528830258304631} + m_Layer: 16 + m_Name: Room Ownership Status + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3004064693637687833 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6603807884407399516} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + 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.147, y: -0.755} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &4811598343171871539 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6603807884407399516} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &1415528830258304631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6603807884407399516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Room Owner + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.5 + m_fontSizeBase: 1.5 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: -0.12023544, z: -0.1872099, w: 1.1764753} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 4811598343171871539} + m_maskType: 0 +--- !u!1 &7101128147202961155 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 332726704664592371} + - component: {fileID: 5687544308279590595} + - component: {fileID: 8038925281922313174} + - component: {fileID: 1407599492849254995} + - component: {fileID: 9055833328840286294} + m_Layer: 16 + m_Name: JoinRoomButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &332726704664592371 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7101128147202961155} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.206, y: -0.447, z: -0.042} + m_LocalScale: {x: 0.33, y: 0.33, z: 0.33} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5687544308279590595 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7101128147202961155} + m_Mesh: {fileID: 4300000, guid: 5501f437160666942ae970f3648fbeb8, type: 3} +--- !u!23 &8038925281922313174 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7101128147202961155} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &1407599492849254995 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7101128147202961155} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.1, y: 1.1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &9055833328840286294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7101128147202961155} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b78a8d7209bbdc546979b549a875d550, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 294636769901092864 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: 1ac81545f10c4fb4d9ada583e88b2f43, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.02 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1004 + m_CommandParam: 1 + m_CommandParam2: -1 + m_RequiresPopup: 0 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 1 + m_LinkedUIObject: {fileID: 0} + m_CommandIgnored: 0 + references: + version: 2 + RefIds: [] +--- !u!1 &7355810358076377629 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2683548132759635989} + - component: {fileID: 5233991143414185181} + - component: {fileID: 454729548256029537} + - component: {fileID: 3902811276401445089} + - component: {fileID: 8163065677955154448} + m_Layer: 16 + m_Name: NickNameEditButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2683548132759635989 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7355810358076377629} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.619, y: 0.20199952, z: -0.042} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5233991143414185181 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7355810358076377629} + m_Mesh: {fileID: 4300000, guid: 5501f437160666942ae970f3648fbeb8, type: 3} +--- !u!23 &454729548256029537 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7355810358076377629} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &3902811276401445089 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7355810358076377629} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.1, y: 1.1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &8163065677955154448 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7355810358076377629} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b78a8d7209bbdc546979b549a875d550, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 294637384320491520 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: 0141ac6bf9f578f4e95706cdd2117914, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.02 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1009 + m_CommandParam: 1 + m_CommandParam2: -1 + m_RequiresPopup: 1 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 1 + m_LinkedUIObject: {fileID: 0} + m_CommandIgnored: 0 + references: + version: 2 + RefIds: [] +--- !u!1 &7389879374748736206 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 977540286295220915} + - component: {fileID: 1862823799823796671} + - component: {fileID: 6441155883621675907} + - component: {fileID: 837553751123664783} + - component: {fileID: 4434619620066107605} + m_Layer: 16 + m_Name: Disconnect Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &977540286295220915 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7389879374748736206} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.01, y: -0.008, z: -0.042} + m_LocalScale: {x: 0.5, y: 0.4, z: 0.35} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5290855516666066687} + m_Father: {fileID: 438733611317437076} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1862823799823796671 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7389879374748736206} + m_Mesh: {fileID: 4300000, guid: 70d5ab47bcc3aa0439e20bd40350c05a, type: 3} +--- !u!23 &6441155883621675907 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7389879374748736206} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &837553751123664783 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7389879374748736206} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.5, y: 1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &4434619620066107605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7389879374748736206} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b78a8d7209bbdc546979b549a875d550, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: cdc7d38d9e0b30443961d1cc27195586, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.02 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1006 + m_CommandParam: 1 + m_CommandParam2: -1 + m_RequiresPopup: 0 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 0 + m_LinkedUIObject: {fileID: 0} + m_CommandIgnored: 0 + references: + version: 2 + RefIds: [] +--- !u!1 &7521510091458286424 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8148098001997981085} + - component: {fileID: 4216493873191797517} + - component: {fileID: 1879947414287806692} + - component: {fileID: 2655394652004014560} + - component: {fileID: 6215490754924617493} + m_Layer: 16 + m_Name: RoomNameEditButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8148098001997981085 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7521510091458286424} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.619, y: 0.504, z: -0.042} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4216493873191797517 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7521510091458286424} + m_Mesh: {fileID: 4300000, guid: 5501f437160666942ae970f3648fbeb8, type: 3} +--- !u!23 &1879947414287806692 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7521510091458286424} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 40d29de2bdc11f04dbfa25059165916e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &2655394652004014560 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7521510091458286424} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.1, y: 1.1, z: 0.1} + m_Center: {x: -0.000000074505806, y: 0.000000022351742, z: 0} +--- !u!114 &6215490754924617493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7521510091458286424} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b78a8d7209bbdc546979b549a875d550, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 294637073212186624 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: 0141ac6bf9f578f4e95706cdd2117914, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.02 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Command: 1005 + m_CommandParam: 1 + m_CommandParam2: -1 + m_RequiresPopup: 1 + m_CenterPopupOnButton: 0 + m_PopupOffset: {x: 0, y: 0, z: 0} + m_PopupText: + m_LocalizedPopup: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnDescription: + m_LocalizedToggleOnDescription: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_ToggleOnTexture: {fileID: 0} + m_AllowUnavailable: 1 + m_LinkedUIObject: {fileID: 0} + m_CommandIgnored: 0 + references: + version: 2 + RefIds: [] +--- !u!1 &7868523408258216887 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5239577752120043582} + - component: {fileID: 8722975735802607274} + - component: {fileID: 6437857310660163665} + m_Layer: 16 + m_Name: AlertsErrors + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5239577752120043582 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7868523408258216887} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8346410928580794432} + 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.088, y: 0.614} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &8722975735802607274 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7868523408258216887} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &6437857310660163665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7868523408258216887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Alerts + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190335 + m_fontColor: {r: 1, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.5 + m_fontSizeBase: 1.5 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: -1.0333014, z: -0.1872099, w: 1.1764753} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 8722975735802607274} + m_maskType: 0 +--- !u!1 &8016613551395990211 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1616599776894361023} + - component: {fileID: 9202472902960767262} + - component: {fileID: 6387985900290305946} + m_Layer: 16 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1616599776894361023 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8016613551395990211} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2965947989537662772} + 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.14099984} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &9202472902960767262 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8016613551395990211} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &6387985900290305946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8016613551395990211} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: ' Room :' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.7 + m_fontSizeBase: 1.7 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -0.31141979, y: -0.12023544, z: 0.49373662, w: 1.1764753} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 9202472902960767262} + m_maskType: 0 +--- !u!1 &8600076904461278434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5290855516666066687} + - component: {fileID: 6290074660409098260} + - component: {fileID: 9129926250020437674} + m_Layer: 16 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5290855516666066687 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8600076904461278434} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.057142857} + m_LocalScale: {x: 2.5, y: 2.5, z: 2.8571427} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 977540286295220915} + 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.56, y: 0.8399991} + m_SizeDelta: {x: 1.104868, y: 1.4460607} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &6290074660409098260 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8600076904461278434} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &9129926250020437674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8600076904461278434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Disconnect + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.4 + m_fontSizeBase: 1.4 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -30 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0.48827845, y: 0.8604479, z: 0.054796636, w: 0.19184232} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 6290074660409098260} + m_maskType: 0 +--- !u!1 &8667602655244155954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1954481780995984980} + m_Layer: 16 + m_Name: GeneralSettingsElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1954481780995984980 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8667602655244155954} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 415082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8921512026995007485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3405719730669880946} + m_Layer: 16 + m_Name: RoomSettingsElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &3405719730669880946 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8921512026995007485} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 415082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &7380239823636675985 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 499980} + m_Modifications: + - target: {fileID: 2206467382688623040, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_Name + value: AlphaTag + objectReference: {fileID: 0} + - target: {fileID: 2206467382688623040, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalScale.x + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalScale.y + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalScale.z + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.823 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalPosition.y + value: 1.249 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalPosition.z + value: -0.02 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.92387956 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.38268343 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -45 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_ConstrainProportionsScale + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6612620938781836974, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: managedReferences[3215294302546034781].m_Localized.m_TableEntryReference.m_KeyId + value: 176097607781543936 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2538d4a3972b37c4c9e8649481dd9a2b, type: 3} +--- !u!4 &6533003833265780531 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + m_PrefabInstance: {fileID: 7380239823636675985} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/Panels/MultiplayerPanel.prefab.meta b/Assets/Prefabs/Panels/MultiplayerPanel.prefab.meta new file mode 100644 index 0000000000..f5ef283737 --- /dev/null +++ b/Assets/Prefabs/Panels/MultiplayerPanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5a442232cda8d79489436e6d45958790 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/PopUps/GDriveSync/DisabledElements.prefab b/Assets/Prefabs/PopUps/GDriveSync/DisabledElements.prefab index cf9219e504..f420f8cd55 100644 --- a/Assets/Prefabs/PopUps/GDriveSync/DisabledElements.prefab +++ b/Assets/Prefabs/PopUps/GDriveSync/DisabledElements.prefab @@ -166,89 +166,6 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &437988600671713722 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5183940061544528065} - - component: {fileID: 4225421745048100917} - - component: {fileID: 8734623784063967320} - m_Layer: 16 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5183940061544528065 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 437988600671713722} - m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071067} - m_LocalPosition: {x: 0, y: 0.0041000843, z: 0.002} - m_LocalScale: {x: 10, y: 6, z: 6} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4937758326570016829} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &4225421745048100917 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 437988600671713722} - m_Mesh: {fileID: 4300002, guid: 3efe5b86b55995545a231ce66a53b402, type: 3} ---- !u!23 &8734623784063967320 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 437988600671713722} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 28d0bd4d20e3f8143994275754956c5e, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &461309234141555871 GameObject: m_ObjectHideFlags: 0 @@ -497,7 +414,7 @@ Transform: - {fileID: 60557364801231681} - {fileID: 3310547944333858703} - {fileID: 1038922574623870723} - - {fileID: 4937758326570016829} + - {fileID: 5342878369760894836} m_Father: {fileID: 7092514869646762003} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -642,123 +559,6 @@ BoxCollider: serializedVersion: 2 m_Size: {x: 1.3, y: 0.3, z: 0.01} m_Center: {x: 0, y: 0, z: -0.01} ---- !u!1 &3221966458938766337 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4937758326570016829} - m_Layer: 0 - m_Name: BetaTag - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4937758326570016829 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3221966458938766337} - m_LocalRotation: {x: -0, y: -0, z: 0.3746118, w: 0.9271818} - m_LocalPosition: {x: 0.55, y: -0.03399992, z: -0.013999999} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4946005680407247088} - - {fileID: 5183940061544528065} - - {fileID: 7329579163772372070} - m_Father: {fileID: 7446882484427533872} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 44.001003} ---- !u!1 &4452402264514060099 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7329579163772372070} - - component: {fileID: 3004005737530521341} - - component: {fileID: 2292147869231861182} - m_Layer: 16 - m_Name: Border - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7329579163772372070 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4452402264514060099} - m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071067} - m_LocalPosition: {x: 0, y: 0.0041000843, z: 0.004} - m_LocalScale: {x: 10.75, y: 10.75, z: 7} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4937758326570016829} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3004005737530521341 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4452402264514060099} - m_Mesh: {fileID: 4300002, guid: 3efe5b86b55995545a231ce66a53b402, type: 3} ---- !u!23 &2292147869231861182 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4452402264514060099} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: d153b453067a0724889fb677fef801a1, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &5108924410514366489 GameObject: m_ObjectHideFlags: 0 @@ -793,219 +593,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5700003095927352931 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4946005680407247088} - - component: {fileID: 2655483490364869926} - - component: {fileID: 3656094398338665249} - - component: {fileID: 7356415779420507544} - m_Layer: 0 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4946005680407247088 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5700003095927352931} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4937758326570016829} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!23 &2655483490364869926 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5700003095927352931} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!114 &3656094398338665249 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5700003095927352931} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: BETA - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} - m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 0.79 - m_fontSizeBase: 0.79 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 0 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - _SortingLayer: 0 - _SortingLayerID: 0 - _SortingOrder: 0 - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 2655483490364869926} - m_maskType: 0 ---- !u!114 &7356415779420507544 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5700003095927352931} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 69beb381e244f92449b8c4cf954630e9, type: 3} - m_Name: - m_EditorClassIdentifier: - m_TrackedObjects: - - rid: 3215294302546034804 - references: - version: 2 - RefIds: - - rid: 3215294302546034804 - type: {class: TrackedUGuiGraphic, ns: UnityEngine.Localization.PropertyVariants.TrackedObjects, - asm: Unity.Localization} - data: - m_Target: {fileID: 3656094398338665249} - m_TrackedProperties: - items: - - rid: 3215294302546034805 - m_UpdateType: 0 - - rid: 3215294302546034805 - type: {class: LocalizedStringProperty, ns: UnityEngine.Localization.PropertyVariants.TrackedProperties, - asm: Unity.Localization} - data: - m_Localized: - m_TableReference: - m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 - m_TableEntryReference: - m_KeyId: 76121021711179776 - m_Key: - m_FallbackState: 0 - m_WaitForCompletion: 0 - m_LocalVariables: [] - m_PropertyPath: m_text --- !u!1 &8618323702079337633 GameObject: m_ObjectHideFlags: 0 @@ -1434,3 +1021,78 @@ MonoBehaviour: m_WaitForCompletion: 0 m_LocalVariables: [] m_PropertyPath: m_text +--- !u!1001 &8568013399981233622 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7446882484427533872} + m_Modifications: + - target: {fileID: 2206467382688623040, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_Name + value: BetaTag + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalPosition.y + value: -0.03399992 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalPosition.z + value: -0.013999999 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.9271818 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.3746118 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2538d4a3972b37c4c9e8649481dd9a2b, type: 3} +--- !u!4 &5342878369760894836 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + m_PrefabInstance: {fileID: 8568013399981233622} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/PopUps/GDriveSync/EnabledElements.prefab b/Assets/Prefabs/PopUps/GDriveSync/EnabledElements.prefab index 014438560f..d39c2550ac 100644 --- a/Assets/Prefabs/PopUps/GDriveSync/EnabledElements.prefab +++ b/Assets/Prefabs/PopUps/GDriveSync/EnabledElements.prefab @@ -2933,123 +2933,6 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &6604792200441248002 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7058727754757553705} - - component: {fileID: 3219758793499752604} - - component: {fileID: 3799314549064326537} - m_Layer: 16 - m_Name: Border - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7058727754757553705 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6604792200441248002} - m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071067} - m_LocalPosition: {x: 0, y: 0.0041000843, z: 0.004} - m_LocalScale: {x: 10.75, y: 10.75, z: 7} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4940275707197938618} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3219758793499752604 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6604792200441248002} - m_Mesh: {fileID: 4300002, guid: 3efe5b86b55995545a231ce66a53b402, type: 3} ---- !u!23 &3799314549064326537 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6604792200441248002} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: d153b453067a0724889fb677fef801a1, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &7409430375216068824 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4940275707197938618} - m_Layer: 0 - m_Name: BetaTag - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4940275707197938618 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7409430375216068824} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.721, y: 0.481, z: -0.02} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2228202418004579312} - - {fileID: 659782219572039149} - - {fileID: 7058727754757553705} - m_Father: {fileID: 8058103854604790177} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7465046787535995228 GameObject: m_ObjectHideFlags: 0 @@ -3748,219 +3631,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8daae932e00bdb749b4f667b08f50ca8, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &8279748072826843855 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2228202418004579312} - - component: {fileID: 9069504756444048404} - - component: {fileID: 6572034308306940565} - - component: {fileID: 2560815885350393782} - m_Layer: 0 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2228202418004579312 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8279748072826843855} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4940275707197938618} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!23 &9069504756444048404 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8279748072826843855} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!114 &6572034308306940565 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8279748072826843855} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: BETA - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} - m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 0.79 - m_fontSizeBase: 0.79 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 0 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - _SortingLayer: 0 - _SortingLayerID: 0 - _SortingOrder: 0 - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 9069504756444048404} - m_maskType: 0 ---- !u!114 &2560815885350393782 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8279748072826843855} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 69beb381e244f92449b8c4cf954630e9, type: 3} - m_Name: - m_EditorClassIdentifier: - m_TrackedObjects: - - rid: 3215294302546034780 - references: - version: 2 - RefIds: - - rid: 3215294302546034780 - type: {class: TrackedUGuiGraphic, ns: UnityEngine.Localization.PropertyVariants.TrackedObjects, - asm: Unity.Localization} - data: - m_Target: {fileID: 6572034308306940565} - m_TrackedProperties: - items: - - rid: 3215294302546034781 - m_UpdateType: 0 - - rid: 3215294302546034781 - type: {class: LocalizedStringProperty, ns: UnityEngine.Localization.PropertyVariants.TrackedProperties, - asm: Unity.Localization} - data: - m_Localized: - m_TableReference: - m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 - m_TableEntryReference: - m_KeyId: 76121021711179776 - m_Key: - m_FallbackState: 0 - m_WaitForCompletion: 0 - m_LocalVariables: [] - m_PropertyPath: m_text --- !u!1 &8383965637925172465 GameObject: m_ObjectHideFlags: 0 @@ -4690,86 +4360,78 @@ MonoBehaviour: m_WaitForCompletion: 0 m_LocalVariables: [] m_PropertyPath: m_text ---- !u!1 &9122383556718042707 -GameObject: +--- !u!1001 &8668698999585902872 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 659782219572039149} - - component: {fileID: 6431897053494340357} - - component: {fileID: 2075706908915906316} - m_Layer: 16 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &659782219572039149 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8058103854604790177} + m_Modifications: + - target: {fileID: 2206467382688623040, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_Name + value: BetaTag + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.721 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0.481 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalPosition.z + value: -0.02 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2538d4a3972b37c4c9e8649481dd9a2b, type: 3} +--- !u!4 &4940275707197938618 stripped Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9122383556718042707} - m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071067} - m_LocalPosition: {x: 0, y: 0.0041000843, z: 0.002} - m_LocalScale: {x: 10, y: 6, z: 6} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4940275707197938618} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6431897053494340357 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 4378067676344109730, guid: 2538d4a3972b37c4c9e8649481dd9a2b, + type: 3} + m_PrefabInstance: {fileID: 8668698999585902872} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9122383556718042707} - m_Mesh: {fileID: 4300002, guid: 3efe5b86b55995545a231ce66a53b402, type: 3} ---- !u!23 &2075706908915906316 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9122383556718042707} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 28d0bd4d20e3f8143994275754956c5e, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/Prefabs/PopUps/PopUpWindow_Keyboard.prefab b/Assets/Prefabs/PopUps/PopUpWindow_Keyboard.prefab index 64a0e8461e..03e12c60cd 100644 --- a/Assets/Prefabs/PopUps/PopUpWindow_Keyboard.prefab +++ b/Assets/Prefabs/PopUps/PopUpWindow_Keyboard.prefab @@ -27,6 +27,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 293902843205586148} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 1.251, y: -0.752, z: -0.018} m_LocalScale: {x: 0.29999998, y: 0.29999998, z: 0.29999998} @@ -35,7 +36,6 @@ Transform: - {fileID: 1534559809702098178} - {fileID: 1332166645596930261} m_Father: {fileID: 8645625735778197046} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &6720148685990472896 MeshFilter: @@ -95,9 +95,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 293902843205586148} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1.0000001, y: 1, z: 0.01} m_Center: {x: 0, y: 0, z: -0.01} --- !u!114 &5466685659915710089 @@ -178,13 +186,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2617002625324559686} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.65, y: 0.65, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 334991469541287722} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &1778020965354640619 MeshFilter: @@ -236,6 +244,176 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4765895928551080905 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1914744345865055709} + - component: {fileID: 2805378110410830168} + - component: {fileID: 3270546546881808181} + - component: {fileID: 5754635738034065764} + - component: {fileID: 8804208351212219551} + m_Layer: 16 + m_Name: Button_ClearText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1914744345865055709 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4765895928551080905} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.023, y: 0.565, z: -0.018} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8645625735778197046} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2805378110410830168 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4765895928551080905} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3270546546881808181 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4765895928551080905} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 3c8ca511828182747a0b79564892ec57, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &5754635738034065764 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4765895928551080905} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.0000001, y: 1, z: 0.01} + m_Center: {x: 0, y: 0, z: -0.01} +--- !u!114 &8804208351212219551 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4765895928551080905} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 07f172f1096366841bb9362060bb0095, type: 3} + m_Name: + m_EditorClassIdentifier: + m_DescriptionType: 0 + m_DescriptionYOffset: 0 + m_DescriptionText: + m_LocalizedDescription: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 307216698459103232 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionTextExtra: + m_LocalizedDescriptionExtra: + m_TableReference: + m_TableCollectionName: + m_TableEntryReference: + m_KeyId: 0 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_DescriptionActivateSpeed: 12 + m_DescriptionZScale: 1 + m_ButtonTexture: {fileID: 2800000, guid: 567e825788c120d499fb56ab4ce674f1, type: 3} + m_AtlasTexture: 1 + m_ToggleButton: 0 + m_LongPressReleaseButton: 0 + m_ButtonHasPressedAudio: 1 + m_ZAdjustHover: -0.02 + m_ZAdjustClick: 0.05 + m_HoverScale: 1.1 + m_HoverBoxColliderGrow: 0.2 + m_AddOverlay: 0 + m_Action: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6543094775333332137} + m_TargetAssemblyTypeName: TiltBrush.KeyboardUI, Assembly-CSharp + m_MethodName: Clear + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + references: + version: 2 + RefIds: [] --- !u!1 &6530336952169636648 GameObject: m_ObjectHideFlags: 0 @@ -261,13 +439,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6530336952169636648} + serializedVersion: 2 m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} m_LocalPosition: {x: 0, y: 0, z: 0.025} m_LocalScale: {x: 0.79999995, y: 0.02, z: 0.8} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 334991469541287722} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!33 &6179665678031837250 MeshFilter: @@ -344,13 +522,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332587409793350} + serializedVersion: 2 m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 100, y: 100, z: 100} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8645625735778197046} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &8610995081492312010 MeshFilter: @@ -428,6 +606,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332587479430734} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1.5, y: 1.5, z: 1.5} @@ -435,7 +614,6 @@ Transform: m_Children: - {fileID: 8645625735778197046} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &3095268576859284452 MonoBehaviour: @@ -479,9 +657,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332587479430734} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 2.5, y: 1.5, z: 0.01} m_Center: {x: 0, y: 0, z: -0.01} --- !u!114 &8533537593755566908 @@ -519,6 +705,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332587709734578} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -528,8 +715,8 @@ Transform: - {fileID: 8645625740661137770} - {fileID: 6360790635351249531} - {fileID: 334991469541287722} + - {fileID: 1914744345865055709} m_Father: {fileID: 8645625734765961102} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8644332588524666284 GameObject: @@ -556,13 +743,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332588524666284} + serializedVersion: 2 m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 100, y: 100, z: 100} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8645625735778197046} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &8610995081988753086 MeshFilter: @@ -619,12 +806,23 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 8645625735778197046} m_Modifications: - target: {fileID: 1934243545717122, guid: ef7eb6dda2db50c4bbf6c682e4a21736, type: 3} propertyPath: m_Name value: Keyboard objectReference: {fileID: 0} + - target: {fileID: 199519161696781973, guid: ef7eb6dda2db50c4bbf6c682e4a21736, + type: 3} + propertyPath: m_SizeDelta.x + value: 2200 + objectReference: {fileID: 0} + - target: {fileID: 199519161696781973, guid: ef7eb6dda2db50c4bbf6c682e4a21736, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -192 + objectReference: {fileID: 0} - target: {fileID: 224560323429904302, guid: ef7eb6dda2db50c4bbf6c682e4a21736, type: 3} propertyPath: m_Pivot.x @@ -730,7 +928,15 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 8210763275035622327, guid: ef7eb6dda2db50c4bbf6c682e4a21736, + type: 3} + propertyPath: m_FontData.m_HorizontalOverflow + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: ef7eb6dda2db50c4bbf6c682e4a21736, type: 3} --- !u!224 &6360790635351249531 stripped RectTransform: @@ -738,3 +944,15 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 6583098329881755093} m_PrefabAsset: {fileID: 0} +--- !u!114 &6543094775333332137 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 114387715371604348, guid: ef7eb6dda2db50c4bbf6c682e4a21736, + type: 3} + m_PrefabInstance: {fileID: 6583098329881755093} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 85e65ed8ff0832245869f1b6941e9eb1, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/PopUps/PopUpWindow_NumericKeyboard.prefab b/Assets/Prefabs/PopUps/PopUpWindow_NumericKeyboard.prefab index 81d84db7e4..97d03a4b77 100644 --- a/Assets/Prefabs/PopUps/PopUpWindow_NumericKeyboard.prefab +++ b/Assets/Prefabs/PopUps/PopUpWindow_NumericKeyboard.prefab @@ -27,6 +27,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 293902843205586148} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0.672, y: -0.291, z: -0.018} m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} @@ -35,7 +36,6 @@ Transform: - {fileID: 1534559809702098178} - {fileID: 1332166645596930261} m_Father: {fileID: 8645625735778197046} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &6720148685990472896 MeshFilter: @@ -95,9 +95,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 293902843205586148} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1.0000001, y: 1, z: 0.01} m_Center: {x: 0, y: 0, z: -0.01} --- !u!114 &5466685659915710089 @@ -178,13 +186,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2617002625324559686} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.65, y: 0.65, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 334991469541287722} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &1778020965354640619 MeshFilter: @@ -261,13 +269,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6530336952169636648} + serializedVersion: 2 m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} m_LocalPosition: {x: 0, y: 0, z: 0.025} m_LocalScale: {x: 0.79999995, y: 0.02, z: 0.8} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 334991469541287722} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!33 &6179665678031837250 MeshFilter: @@ -344,13 +352,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332587409793350} + serializedVersion: 2 m_LocalRotation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} m_LocalPosition: {x: -1.084, y: 0.21799995, z: 0} m_LocalScale: {x: 42.020817, y: 61.109, z: 55.761967} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8645625735778197046} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 90, z: 90} --- !u!33 &8610995081492312010 MeshFilter: @@ -428,6 +436,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332587479430734} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1.5, y: 1.5, z: 1.5} @@ -435,7 +444,6 @@ Transform: m_Children: - {fileID: 8645625735778197046} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &3095268576859284452 MonoBehaviour: @@ -479,11 +487,19 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332587479430734} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 2.5, y: 1.5, z: 0.01} - m_Center: {x: 0, y: 0, z: -0.01} + serializedVersion: 3 + m_Size: {x: 1.1, y: 1.3, z: 0} + m_Center: {x: -1.1, y: 0.2, z: 0} --- !u!114 &8533537593755566908 MonoBehaviour: m_ObjectHideFlags: 0 @@ -519,6 +535,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332587709734578} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -529,7 +546,6 @@ Transform: - {fileID: 4947855712410042213} - {fileID: 334991469541287722} m_Father: {fileID: 8645625734765961102} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8644332588524666284 GameObject: @@ -556,13 +572,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8644332588524666284} + serializedVersion: 2 m_LocalRotation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} m_LocalPosition: {x: -1.084, y: 0.218, z: 0} m_LocalScale: {x: 42.020817, y: 61.109, z: 55.761967} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8645625735778197046} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 90, z: 90} --- !u!33 &8610995081988753086 MeshFilter: @@ -619,6 +635,7 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 8645625735778197046} m_Modifications: - target: {fileID: 1934243545717122, guid: 8f1667dadbe5d554b83228c3a246c49f, type: 3} @@ -751,6 +768,9 @@ PrefabInstance: value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 8f1667dadbe5d554b83228c3a246c49f, type: 3} --- !u!224 &4947855712410042213 stripped RectTransform: diff --git a/Assets/Prefabs/PopUps/PopUpWindow_WaitOnSync.prefab b/Assets/Prefabs/PopUps/PopUpWindow_WaitOnSync.prefab new file mode 100644 index 0000000000..038cfa161e --- /dev/null +++ b/Assets/Prefabs/PopUps/PopUpWindow_WaitOnSync.prefab @@ -0,0 +1,597 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2652504797212982477 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8862736451656621753} + m_Layer: 16 + m_Name: BackgroundMesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8862736451656621753 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2652504797212982477} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5597448937484054268} + - {fileID: 6595699621784020893} + m_Father: {fileID: 6918750040410781998} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4462233062032953290 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5938522692040871171} + m_Layer: 16 + m_Name: Foreground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5938522692040871171 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4462233062032953290} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.147, z: -0.049} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5863778336799380782} + - {fileID: 7513470686747838780} + m_Father: {fileID: 6918750040410781998} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5389001181572028869 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5597448937484054268} + - component: {fileID: 7633643865989961388} + - component: {fileID: 191522133314116346} + m_Layer: 16 + m_Name: PopupBg + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5597448937484054268 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5389001181572028869} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8862736451656621753} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7633643865989961388 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5389001181572028869} + m_Mesh: {fileID: 4300004, guid: 13b025046bc7e8549a5e8a4b5b416f65, type: 3} +--- !u!23 &191522133314116346 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5389001181572028869} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: db0305ff9081c3b448ac79e85d26e5d4, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &7548996660066679482 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5863778336799380782} + - component: {fileID: 1539577259540886247} + - component: {fileID: 1773628967189394366} + - component: {fileID: 8099100206524301147} + m_Layer: 16 + m_Name: TextLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5863778336799380782 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7548996660066679482} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5938522692040871171} + 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.723125, y: 0.47999996} + m_SizeDelta: {x: 1.5, y: 0.25} + m_Pivot: {x: 0, y: 1} +--- !u!23 &1539577259540886247 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7548996660066679482} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &1773628967189394366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7548996660066679482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Sketch Synching... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1.915 + m_fontSizeBase: 1.915 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 1539577259540886247} + m_maskType: 0 +--- !u!114 &8099100206524301147 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7548996660066679482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69beb381e244f92449b8c4cf954630e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjects: + - rid: 3215294302546034690 + references: + version: 2 + RefIds: + - rid: 3215294302546034690 + type: {class: TrackedUGuiGraphic, ns: UnityEngine.Localization.PropertyVariants.TrackedObjects, + asm: Unity.Localization} + data: + m_Target: {fileID: 1773628967189394366} + m_TrackedProperties: + items: + - rid: 3215294302546034691 + m_UpdateType: 0 + - rid: 3215294302546034691 + type: {class: LocalizedStringProperty, ns: UnityEngine.Localization.PropertyVariants.TrackedProperties, + asm: Unity.Localization} + data: + m_Localized: + m_TableReference: + m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 + m_TableEntryReference: + m_KeyId: 76036335840321536 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_PropertyPath: m_text +--- !u!1 &7637706609544861618 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6918750040410781998} + - component: {fileID: 3290215492046785806} + - component: {fileID: 512701638737710248} + m_Layer: 16 + m_Name: PopUpWindow_WaitOnSync + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6918750040410781998 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7637706609544861618} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.967, y: 0.871, z: -0.227} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5938522692040871171} + - {fileID: 8862736451656621753} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &3290215492046785806 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7637706609544861618} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.8, y: 1.2, z: 0.025} + m_Center: {x: 0, y: 0, z: -0.01} +--- !u!114 &512701638737710248 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7637706609544861618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739d5b1996234d64992a2ae60c3723e9, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &7769116428690201533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7513470686747838780} + - component: {fileID: 8199552546709320430} + - component: {fileID: 6802880386612899571} + m_Layer: 16 + m_Name: ProgressBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7513470686747838780 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7769116428690201533} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.05699998, z: 0} + m_LocalScale: {x: 1.3392899, y: 0.05952, z: 0.0029799999} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5938522692040871171} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8199552546709320430 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7769116428690201533} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &6802880386612899571 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7769116428690201533} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4a0eeebe9bd8bbd43adbe477b3bbb6e1, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &8862480506093304917 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6595699621784020893} + - component: {fileID: 6713759721725640257} + - component: {fileID: 5066816512544986141} + m_Layer: 16 + m_Name: PopupBorder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6595699621784020893 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8862480506093304917} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8862736451656621753} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6713759721725640257 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8862480506093304917} + m_Mesh: {fileID: 4300002, guid: 13b025046bc7e8549a5e8a4b5b416f65, type: 3} +--- !u!23 &5066816512544986141 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8862480506093304917} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 77dd4ff8b1158a84397aba783cd0af05, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/Prefabs/PopUps/PopUpWindow_WaitOnSync.prefab.meta b/Assets/Prefabs/PopUps/PopUpWindow_WaitOnSync.prefab.meta new file mode 100644 index 0000000000..ad88667293 --- /dev/null +++ b/Assets/Prefabs/PopUps/PopUpWindow_WaitOnSync.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 393a05ee4f380ac4d8d049e2242356c8 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Environments/Passthrough/Passthrough.asset b/Assets/Resources/Environments/Passthrough/Passthrough.asset index 3e70c8f39b..d44d6a7ace 100644 --- a/Assets/Resources/Environments/Passthrough/Passthrough.asset +++ b/Assets/Resources/Environments/Passthrough/Passthrough.asset @@ -14,7 +14,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_Guid: m_storage: e38af599-4575-46ff-a040-459703dbcd36 - m_Description: ENVIRONMENT_PASSTHROUGH m_EnvironmentDescription: m_TableReference: m_TableCollectionName: GUID:c84355079ab3f3e4f8f3812258805f86 @@ -63,6 +62,7 @@ MonoBehaviour: m_WidgetHome: {x: 0, y: 0, z: 0} m_SkyboxColorA: {r: 0, g: 0, b: 0, a: 0} m_SkyboxColorB: {r: 0, g: 0, b: 0, a: 0} + isPassthrough: 1 references: version: 2 RefIds: [] diff --git a/Assets/Resources/Icons/connect.png b/Assets/Resources/Icons/connect.png new file mode 100644 index 0000000000..e1958af94d Binary files /dev/null and b/Assets/Resources/Icons/connect.png differ diff --git a/Assets/Resources/Icons/connect.png.meta b/Assets/Resources/Icons/connect.png.meta new file mode 100644 index 0000000000..8dd4bd72be --- /dev/null +++ b/Assets/Resources/Icons/connect.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 366faf1780512c44b84568938fb37aaa +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Icons/disconnect.png b/Assets/Resources/Icons/disconnect.png new file mode 100644 index 0000000000..70a31a1427 Binary files /dev/null and b/Assets/Resources/Icons/disconnect.png differ diff --git a/Assets/Resources/Icons/disconnect.png.meta b/Assets/Resources/Icons/disconnect.png.meta new file mode 100644 index 0000000000..680e2aa673 --- /dev/null +++ b/Assets/Resources/Icons/disconnect.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 56e5ebeba70465c44bf75491d40b6f3d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Icons/edit.png b/Assets/Resources/Icons/edit.png new file mode 100644 index 0000000000..4ac63b6a45 Binary files /dev/null and b/Assets/Resources/Icons/edit.png differ diff --git a/Assets/Resources/Icons/edit.png.meta b/Assets/Resources/Icons/edit.png.meta new file mode 100644 index 0000000000..a6e5151319 --- /dev/null +++ b/Assets/Resources/Icons/edit.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 0141ac6bf9f578f4e95706cdd2117914 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Icons/enter.png b/Assets/Resources/Icons/enter.png new file mode 100644 index 0000000000..a0f0b8a4b1 Binary files /dev/null and b/Assets/Resources/Icons/enter.png differ diff --git a/Assets/Resources/Icons/enter.png.meta b/Assets/Resources/Icons/enter.png.meta new file mode 100644 index 0000000000..d64e5903d1 --- /dev/null +++ b/Assets/Resources/Icons/enter.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 1ac81545f10c4fb4d9ada583e88b2f43 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Icons/exitmultiplayer.png b/Assets/Resources/Icons/exitmultiplayer.png new file mode 100644 index 0000000000..c57e6ef721 Binary files /dev/null and b/Assets/Resources/Icons/exitmultiplayer.png differ diff --git a/Assets/Resources/Icons/exitmultiplayer.png.meta b/Assets/Resources/Icons/exitmultiplayer.png.meta new file mode 100644 index 0000000000..5f6e2feacf --- /dev/null +++ b/Assets/Resources/Icons/exitmultiplayer.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: f856211cd511f8445b96396ddd0c59bf +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Icons/multiplayer.png b/Assets/Resources/Icons/multiplayer.png new file mode 100644 index 0000000000..0c3aae8f8f Binary files /dev/null and b/Assets/Resources/Icons/multiplayer.png differ diff --git a/Assets/Resources/Icons/multiplayer.png.meta b/Assets/Resources/Icons/multiplayer.png.meta new file mode 100644 index 0000000000..3a62b8aaab --- /dev/null +++ b/Assets/Resources/Icons/multiplayer.png.meta @@ -0,0 +1,171 @@ +fileFormatVersion: 2 +guid: a33145647a3f52648829afbd03b5fa9b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Multiplayer/Photon/PhotonPlayerRig.prefab b/Assets/Resources/Multiplayer/Photon/PhotonPlayerRig.prefab index 524ebbe795..9c60844319 100644 --- a/Assets/Resources/Multiplayer/Photon/PhotonPlayerRig.prefab +++ b/Assets/Resources/Multiplayer/Photon/PhotonPlayerRig.prefab @@ -9,8 +9,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 6718544642020818535} - - component: {fileID: 7533779467632377196} - - component: {fileID: 6752862290110515822} + - component: {fileID: 7215016235458371273} + - component: {fileID: 2967658244113361874} m_Layer: 0 m_Name: PhotonPlayerRig m_TagString: Untagged @@ -25,66 +25,1974 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 303516855785969295} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5041384770245166357} + - {fileID: 2164438665615948153} + - {fileID: 5267290339349674983} + - {fileID: 1457871284126546349} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7215016235458371273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 303516855785969295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f250b0d6a1df335439813ad43ce3dbdb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PlayArea: {fileID: 1840530316396516229} + m_PlayerHead: {fileID: 2866855712475842972} + m_Left: {fileID: 6993845821128094923} + m_Right: {fileID: 1621605232836574636} + m_Tool: {fileID: 4282572128721117942} + _oculusPlayerId: 0 + _IsRoomOwner: 0 + _SceneScale: 0 + _isReceivingVoiceTransmission: 0 + _Nickname: + headTransform: {fileID: 5041384770245166357} + rightHandTransform: {fileID: 5267290339349674983} + leftHandTransform: {fileID: 2164438665615948153} + HMDMeshRenderer: {fileID: 7120707258077581555} + NicknameText: {fileID: 4731291393105903535} + m_PlayerId: 0 + m_LeftControllerModel: {fileID: 4048656607324710010} + m_RightControllerModel: {fileID: 2292257892099998613} +--- !u!114 &2967658244113361874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 303516855785969295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1552182283, guid: e725a070cec140c4caffb81624c8c787, type: 3} + m_Name: + m_EditorClassIdentifier: + SortKey: 2839312778 + ObjectInterest: 1 + Flags: 264449 + NestedObjects: [] + NetworkedBehaviours: + - {fileID: 7215016235458371273} + - {fileID: 1840530316396516229} + - {fileID: 2866855712475842972} + - {fileID: 6993845821128094923} + - {fileID: 1621605232836574636} + - {fileID: 4282572128721117942} +--- !u!1 &459460118330075700 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6539275587195953435} + - component: {fileID: 1840530316396516229} + m_Layer: 0 + m_Name: Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6539275587195953435 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 459460118330075700} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3005319065403690882} + m_Father: {fileID: 1457871284126546349} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1840530316396516229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 459460118330075700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3} + m_Name: + m_EditorClassIdentifier: + SyncScale: 0 + SyncParent: 0 + _autoAOIOverride: 1 + DisableSharedModeInterpolation: 0 +--- !u!1 &1184365666732702344 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7668165333132264083} + - component: {fileID: 1621605232836574636} + m_Layer: 0 + m_Name: RightHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7668165333132264083 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1184365666732702344} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4501806461527917157} + m_Father: {fileID: 1457871284126546349} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1621605232836574636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1184365666732702344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3} + m_Name: + m_EditorClassIdentifier: + SyncScale: 0 + SyncParent: 0 + _autoAOIOverride: 1 + DisableSharedModeInterpolation: 0 +--- !u!1 &2181518286534520838 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2439271445520760248} + m_Layer: 0 + m_Name: DummyTool + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2439271445520760248 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2181518286534520838} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 5041384770245166357} - - {fileID: 1457871284126546349} - m_Father: {fileID: 0} - m_RootOrder: 0 + m_Children: [] + m_Father: {fileID: 8617970912018780043} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2292257892099998613 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907573} + - component: {fileID: 2292257892107399219} + m_Layer: 0 + m_Name: quest_controller_R + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907573 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998613} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2292257892099907457} + - {fileID: 2292257892099907461} + - {fileID: 2292257892099907473} + - {fileID: 2292257892099907463} + - {fileID: 2292257892099907467} + - {fileID: 2292257892099907479} + - {fileID: 2292257892099907477} + - {fileID: 2292257892099907483} + - {fileID: 2292257892099907459} + - {fileID: 2292257892099907481} + - {fileID: 2292257892099907487} + - {fileID: 2292257892099907485} + m_Father: {fileID: 5267290339349674983} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!95 &2292257892107399219 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998613} + m_Enabled: 1 + m_Avatar: {fileID: 9000000, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} + m_Controller: {fileID: 0} + m_CullingMode: 1 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &2292257892099998625 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907457} + - component: {fileID: 2292257892097007513} + - component: {fileID: 2292257892098006489} + m_Layer: 0 + m_Name: r_A + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907457 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998625} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007513 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998625} + m_Mesh: {fileID: 4300054, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006489 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998625} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998627 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907459} + - component: {fileID: 2292257892097007515} + - component: {fileID: 2292257892098006491} + m_Layer: 0 + m_Name: r_Stick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907459 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998627} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007515 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998627} + m_Mesh: {fileID: 4300050, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006491 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998627} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998629 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907461} + - component: {fileID: 2292257892097007517} + - component: {fileID: 2292257892098006493} + m_Layer: 0 + m_Name: r_A_Highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907461 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998629} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007517 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998629} + m_Mesh: {fileID: 4300056, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006493 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998629} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7b9cf867faf6d814a825b3507c7f61ac, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998631 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907463} + - component: {fileID: 2292257892097007519} + - component: {fileID: 2292257892098006495} + m_Layer: 0 + m_Name: r_B + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907463 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998631} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007519 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998631} + m_Mesh: {fileID: 4300052, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006495 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998631} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907467} + - component: {fileID: 2292257892097007491} + - component: {fileID: 2292257892098006467} + m_Layer: 0 + m_Name: r_B_Highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907467 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998635} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007491 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998635} + m_Mesh: {fileID: 4300058, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006467 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998635} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7b9cf867faf6d814a825b3507c7f61ac, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998641 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907473} + - component: {fileID: 2292257892097007599} + - component: {fileID: 2292257892098006319} + m_Layer: 0 + m_Name: r_A_Slice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907473 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998641} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007599 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998641} + m_Mesh: {fileID: 4300038, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006319 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998641} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998645 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907477} + - component: {fileID: 2292257892097007507} + - component: {fileID: 2292257892098006483} + m_Layer: 0 + m_Name: r_Controller_Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907477 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998645} + serializedVersion: 2 + m_LocalRotation: {x: 0.000000043711392, y: 1, z: 0.000000081460335, w: -0.000000043711385} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007507 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998645} + m_Mesh: {fileID: 4300046, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006483 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998645} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998647 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907479} + - component: {fileID: 2292257892097007597} + - component: {fileID: 2292257892098006317} + m_Layer: 0 + m_Name: r_B_Slice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907479 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998647} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007597 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998647} + m_Mesh: {fileID: 4300040, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006317 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998647} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998649 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907481} + - component: {fileID: 2292257892097007511} + - component: {fileID: 2292257892098006487} + m_Layer: 0 + m_Name: r_Stick_Slice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907481 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998649} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0.0000000018348941, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007511 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998649} + m_Mesh: {fileID: 4300036, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006487 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998649} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998651 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907483} + - component: {fileID: 2292257892097007505} + - component: {fileID: 2292257892098006481} + m_Layer: 0 + m_Name: r_Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907483 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998651} + serializedVersion: 2 + m_LocalRotation: {x: 0.000000043711385, y: 1, z: 0.000000081460335, w: 0.000000043711392} + m_LocalPosition: {x: 0.0000000045872355, y: 0.000000014900893, z: 0.00000007824109} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007505 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998651} + m_Mesh: {fileID: 4300048, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006481 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998651} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2292257892099998653 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907485} + - component: {fileID: 2292257892111503075} + m_Layer: 0 + m_Name: r_Trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907485 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998653} + serializedVersion: 2 + m_LocalRotation: {x: 0.000000043711392, y: 1, z: 0.000000081460335, w: -0.000000043711385} + m_LocalPosition: {x: -1.323489e-23, y: -1.8087828e-23, z: 1.110223e-16} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!137 &2292257892111503075 +SkinnedMeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998653} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 3 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 1 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300044, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} + m_Bones: [] + m_BlendShapeWeights: [] + m_RootBone: {fileID: 0} + m_AABB: + m_Center: {x: 0, y: -0.022013616, z: -0.0046860487} + m_Extent: {x: 0.013755702, y: 0.012507235, z: 0.01091928} + m_DirtyAABB: 0 +--- !u!1 &2292257892099998655 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2292257892099907487} + - component: {fileID: 2292257892097007509} + - component: {fileID: 2292257892098006485} + m_Layer: 0 + m_Name: r_Transform_Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2292257892099907487 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998655} + serializedVersion: 2 + m_LocalRotation: {x: 0.000000043711392, y: 1, z: 0.000000081460335, w: -0.000000043711385} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2292257892099907573} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2292257892097007509 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998655} + m_Mesh: {fileID: 4300042, guid: f85ad479a7d3ac54d91b088b924de5ae, type: 3} +--- !u!23 &2292257892098006485 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2292257892099998655} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: e5104658cc13cef4097a511ebaf6f3aa, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2546328019691961597 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1030654070696327489} + - component: {fileID: 2866855712475842972} + m_Layer: 0 + m_Name: Head + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1030654070696327489 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2546328019691961597} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2514485848220458462} + m_Father: {fileID: 1457871284126546349} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2866855712475842972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2546328019691961597} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3} + m_Name: + m_EditorClassIdentifier: + SyncScale: 0 + SyncParent: 0 + _autoAOIOverride: 1 + DisableSharedModeInterpolation: 0 +--- !u!1 &2568790808486584579 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5887326793658353859} + - component: {fileID: 6993845821128094923} + m_Layer: 0 + m_Name: LeftHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5887326793658353859 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2568790808486584579} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1310333546402417676} + m_Father: {fileID: 1457871284126546349} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6993845821128094923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2568790808486584579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3} + m_Name: + m_EditorClassIdentifier: + SyncScale: 0 + SyncParent: 0 + _autoAOIOverride: 1 + DisableSharedModeInterpolation: 0 +--- !u!1 &3333659737751141766 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3005319065403690882} + m_Layer: 0 + m_Name: DummyArea + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3005319065403690882 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3333659737751141766} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6539275587195953435} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4048656607324709984 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4048656607325141056} + - component: {fileID: 4048656607323846756} + - component: {fileID: 4048656607322716836} + m_Layer: 0 + m_Name: l_Y + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4048656607325141056 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709984} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4048656607325141082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4048656607323846756 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709984} + m_Mesh: {fileID: 4300018, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716836 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709984} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324709988 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4048656607325141060} + - component: {fileID: 4048656607323846776} + - component: {fileID: 4048656607322716856} + m_Layer: 0 + m_Name: l_Stick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4048656607325141060 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709988} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4048656607325141082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4048656607323846776 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709988} + m_Mesh: {fileID: 4300016, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716856 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709988} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324709990 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4048656607325141062} + - component: {fileID: 4048656607323846778} + - component: {fileID: 4048656607322716858} + m_Layer: 0 + m_Name: l_X + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4048656607325141062 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709990} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4048656607325141082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4048656607323846778 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709990} + m_Mesh: {fileID: 4300014, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716858 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709990} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324709992 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4048656607325141064} + - component: {fileID: 4048656607323846764} + - component: {fileID: 4048656607322716844} + m_Layer: 0 + m_Name: l_Y_Highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4048656607325141064 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709992} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4048656607325141082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4048656607323846764 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709992} + m_Mesh: {fileID: 4300026, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716844 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709992} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7b9cf867faf6d814a825b3507c7f61ac, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324709998 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4048656607325141070} + - component: {fileID: 4048656607323846754} + - component: {fileID: 4048656607322716834} + m_Layer: 0 + m_Name: l_X_Highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4048656607325141070 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709998} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4048656607325141082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4048656607323846754 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709998} + m_Mesh: {fileID: 4300024, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716834 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324709998} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7b9cf867faf6d814a825b3507c7f61ac, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324710000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4048656607325141072} + - component: {fileID: 4048656607323846768} + - component: {fileID: 4048656607322716848} + m_Layer: 0 + m_Name: l_Stick_Slice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4048656607325141072 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710000} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0.0000000018348941, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4048656607325141082} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4048656607323846768 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710000} + m_Mesh: {fileID: 4300012, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716848 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324710002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4048656607325141074} + - component: {fileID: 4048656607323846770} + - component: {fileID: 4048656607322716850} + m_Layer: 0 + m_Name: l_Transform_Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4048656607325141074 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710002} + serializedVersion: 2 + m_LocalRotation: {x: -6.1500847e-15, y: -0.000000081460335, z: 1, w: 0.0000000754979} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4048656607325141082} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &7533779467632377196 -MonoBehaviour: +--- !u!33 &4048656607323846770 +MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 303516855785969295} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f250b0d6a1df335439813ad43ce3dbdb, type: 3} - m_Name: - m_EditorClassIdentifier: - _interpolationDataSource: 0 - m_PlayArea: {fileID: 8895232112724846442} - m_PlayerHead: {fileID: 5083753190464579125} - m_Left: {fileID: 6268094594865570998} - m_Right: {fileID: 4999079164026519325} - m_Tool: {fileID: 5771162771103583132} - headTransform: {fileID: 5041384770245166357} - _oculusPlayerId: 0 ---- !u!114 &6752862290110515822 -MonoBehaviour: + m_GameObject: {fileID: 4048656607324710002} + m_Mesh: {fileID: 4300000, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716850 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 303516855785969295} + m_GameObject: {fileID: 4048656607324710002} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1552182283, guid: e725a070cec140c4caffb81624c8c787, type: 3} - m_Name: - m_EditorClassIdentifier: - ObjectInterest: 1 - DefaultInterestGroups: [] - DestroyWhenStateAuthorityLeaves: 0 - AllowStateAuthorityOverride: 0 - AoiPositionSource: {fileID: 0} - Flags: 2305 - NetworkGuid: - RawGuidValue: 9ee52735aebb6a445b4905c8aba8cfe3 - NestedObjects: [] - NetworkedBehaviours: - - {fileID: 7533779467632377196} - - {fileID: 8895232112724846442} - - {fileID: 5083753190464579125} - - {fileID: 6268094594865570998} - - {fileID: 4999079164026519325} - - {fileID: 5771162771103583132} - SimulationBehaviours: [] ---- !u!1 &459460118330075700 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b52077cdc60e6c9458bea3c463972a79, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324710004 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -92,60 +2000,82 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6539275587195953435} - - component: {fileID: 8895232112724846442} + - component: {fileID: 4048656607325141076} + - component: {fileID: 4048656607323846772} + - component: {fileID: 4048656607322716852} m_Layer: 0 - m_Name: Area + m_Name: l_Controller_Body m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &6539275587195953435 +--- !u!4 &4048656607325141076 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 459460118330075700} - 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_GameObject: {fileID: 4048656607324710004} + serializedVersion: 2 + m_LocalRotation: {x: -6.1500847e-15, y: -0.000000081460335, z: 1, w: 0.0000000754979} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3005319065403690882} - m_Father: {fileID: 1457871284126546349} - m_RootOrder: 0 + m_Children: [] + m_Father: {fileID: 4048656607325141082} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &8895232112724846442 -MonoBehaviour: +--- !u!33 &4048656607323846772 +MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 459460118330075700} + m_GameObject: {fileID: 4048656607324710004} + m_Mesh: {fileID: 4300004, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716852 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710004} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3} - m_Name: - m_EditorClassIdentifier: - _interpolationDataSource: 0 - InterpolationSpace: 0 - InterpolationTarget: {fileID: 3005319065403690882} - InterpolateErrorCorrection: 1 - InterpolatedErrorCorrectionSettings: - MinRate: 3.3 - MaxRate: 10 - PosBlendStart: 0.25 - PosBlendEnd: 1 - PosMinCorrection: 0.025 - PosTeleportDistance: 2 - RotBlendStart: 0.1 - RotBlendEnd: 0.5 - RotTeleportRadians: 1.5 - UseLegacySharedModeInterpolation: 0 - TargetInterpolationDelay: 0.03 ---- !u!1 &1184365666732702344 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324710006 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -153,60 +2083,82 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7668165333132264083} - - component: {fileID: 4999079164026519325} + - component: {fileID: 4048656607325141078} + - component: {fileID: 4048656607323846774} + - component: {fileID: 4048656607322716854} m_Layer: 0 - m_Name: RightHand + m_Name: l_Grip m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &7668165333132264083 +--- !u!4 &4048656607325141078 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1184365666732702344} - 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_GameObject: {fileID: 4048656607324710006} + serializedVersion: 2 + m_LocalRotation: {x: -4.141339e-15, y: -0.000000081460335, z: 1, w: 0.0000000754979} + m_LocalPosition: {x: -0.0000000027523415, y: 0.000000014900893, z: 0.00000007824109} + m_LocalScale: {x: -100, y: -100, z: -100} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4501806461527917157} - m_Father: {fileID: 1457871284126546349} - m_RootOrder: 3 + m_Children: [] + m_Father: {fileID: 4048656607325141082} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &4999079164026519325 -MonoBehaviour: +--- !u!33 &4048656607323846774 +MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1184365666732702344} + m_GameObject: {fileID: 4048656607324710006} + m_Mesh: {fileID: 4300002, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716854 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710006} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3} - m_Name: - m_EditorClassIdentifier: - _interpolationDataSource: 0 - InterpolationSpace: 0 - InterpolationTarget: {fileID: 4501806461527917157} - InterpolateErrorCorrection: 1 - InterpolatedErrorCorrectionSettings: - MinRate: 3.3 - MaxRate: 10 - PosBlendStart: 0.25 - PosBlendEnd: 1 - PosMinCorrection: 0.025 - PosTeleportDistance: 2 - RotBlendStart: 0.1 - RotBlendEnd: 0.5 - RotTeleportRadians: 1.5 - UseLegacySharedModeInterpolation: 0 - TargetInterpolationDelay: 0.03 ---- !u!1 &2181518286534520838 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324710008 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -214,30 +2166,82 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2439271445520760248} + - component: {fileID: 4048656607325141080} + - component: {fileID: 4048656607323846782} + - component: {fileID: 4048656607322716862} m_Layer: 0 - m_Name: DummyTool + m_Name: l_Y_Slice m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2439271445520760248 +--- !u!4 &4048656607325141080 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2181518286534520838} - 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_GameObject: {fileID: 4048656607324710008} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0.0000000018348941, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 8617970912018780043} - m_RootOrder: 0 + m_Father: {fileID: 4048656607325141082} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2546328019691961597 +--- !u!33 &4048656607323846782 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710008} + m_Mesh: {fileID: 4300008, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716862 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710008} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4048656607324710010 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -245,60 +2249,64 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1030654070696327489} - - component: {fileID: 5083753190464579125} + - component: {fileID: 4048656607325141082} + - component: {fileID: 4048656607334225844} m_Layer: 0 - m_Name: Head + m_Name: quest_controller_L m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1030654070696327489 +--- !u!4 &4048656607325141082 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2546328019691961597} + m_GameObject: {fileID: 4048656607324710010} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 2514485848220458462} - m_Father: {fileID: 1457871284126546349} - m_RootOrder: 1 + - {fileID: 4048656607325141076} + - {fileID: 4048656607325141078} + - {fileID: 4048656607325141060} + - {fileID: 4048656607325141072} + - {fileID: 4048656607325141074} + - {fileID: 4048656607325141084} + - {fileID: 4048656607325141062} + - {fileID: 4048656607325141070} + - {fileID: 4048656607325141086} + - {fileID: 4048656607325141056} + - {fileID: 4048656607325141064} + - {fileID: 4048656607325141080} + m_Father: {fileID: 2164438665615948153} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &5083753190464579125 -MonoBehaviour: +--- !u!95 &4048656607334225844 +Animator: + serializedVersion: 5 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2546328019691961597} + m_GameObject: {fileID: 4048656607324710010} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3} - m_Name: - m_EditorClassIdentifier: - _interpolationDataSource: 0 - InterpolationSpace: 0 - InterpolationTarget: {fileID: 2514485848220458462} - InterpolateErrorCorrection: 1 - InterpolatedErrorCorrectionSettings: - MinRate: 3.3 - MaxRate: 10 - PosBlendStart: 0.25 - PosBlendEnd: 1 - PosMinCorrection: 0.025 - PosTeleportDistance: 2 - RotBlendStart: 0.1 - RotBlendEnd: 0.5 - RotTeleportRadians: 1.5 - UseLegacySharedModeInterpolation: 0 - TargetInterpolationDelay: 0.03 ---- !u!1 &2568790808486584579 + m_Avatar: {fileID: 9000000, guid: a725a200199f50f45989f92aa2e2c840, type: 3} + m_Controller: {fileID: 0} + m_CullingMode: 1 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &4048656607324710012 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -306,60 +2314,84 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5887326793658353859} - - component: {fileID: 6268094594865570998} + - component: {fileID: 4048656607325141084} + - component: {fileID: 4048656607338310004} m_Layer: 0 - m_Name: LeftHand + m_Name: l_Trigger m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &5887326793658353859 +--- !u!4 &4048656607325141084 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2568790808486584579} - 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_GameObject: {fileID: 4048656607324710012} + serializedVersion: 2 + m_LocalRotation: {x: -6.1500847e-15, y: -0.000000081460335, z: 1, w: 0.0000000754979} + m_LocalPosition: {x: 0.0000000018348941, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1310333546402417676} - m_Father: {fileID: 1457871284126546349} - m_RootOrder: 2 + m_Children: [] + m_Father: {fileID: 4048656607325141082} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6268094594865570998 -MonoBehaviour: +--- !u!137 &4048656607338310004 +SkinnedMeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2568790808486584579} + m_GameObject: {fileID: 4048656607324710012} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3} - m_Name: - m_EditorClassIdentifier: - _interpolationDataSource: 0 - InterpolationSpace: 0 - InterpolationTarget: {fileID: 1310333546402417676} - InterpolateErrorCorrection: 1 - InterpolatedErrorCorrectionSettings: - MinRate: 3.3 - MaxRate: 10 - PosBlendStart: 0.25 - PosBlendEnd: 1 - PosMinCorrection: 0.025 - PosTeleportDistance: 2 - RotBlendStart: 0.1 - RotBlendEnd: 0.5 - RotTeleportRadians: 1.5 - UseLegacySharedModeInterpolation: 0 - TargetInterpolationDelay: 0.03 ---- !u!1 &3333659737751141766 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 3 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 1 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300006, guid: a725a200199f50f45989f92aa2e2c840, type: 3} + m_Bones: [] + m_BlendShapeWeights: [] + m_RootBone: {fileID: 0} + m_AABB: + m_Center: {x: 0, y: -0.022013616, z: -0.0046860487} + m_Extent: {x: 0.013755702, y: 0.012507235, z: 0.01091928} + m_DirtyAABB: 0 +--- !u!1 &4048656607324710014 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -367,29 +2399,252 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3005319065403690882} + - component: {fileID: 4048656607325141086} + - component: {fileID: 4048656607323846780} + - component: {fileID: 4048656607322716860} m_Layer: 0 - m_Name: DummyArea + m_Name: l_X_Slice m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3005319065403690882 +--- !u!4 &4048656607325141086 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3333659737751141766} - 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_GameObject: {fileID: 4048656607324710014} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: -0, w: 0.7071067} + m_LocalPosition: {x: 0.0000000018348941, y: 0, z: 0} + m_LocalScale: {x: -100, y: -100, z: -100} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 6539275587195953435} - m_RootOrder: 0 + m_Father: {fileID: 4048656607325141082} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4048656607323846780 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710014} + m_Mesh: {fileID: 4300010, guid: a725a200199f50f45989f92aa2e2c840, type: 3} +--- !u!23 &4048656607322716860 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4048656607324710014} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0febb0642a50e644ab2b4f075fe32a9b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &4787901167856176139 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1111145119338584871} + - component: {fileID: 889561678788871044} + - component: {fileID: 4731291393105903535} + m_Layer: 0 + m_Name: NickNameText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1111145119338584871 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4787901167856176139} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5041384770245166357} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.009, y: -0.07} + m_SizeDelta: {x: 20, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &889561678788871044 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4787901167856176139} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &4731291393105903535 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4787901167856176139} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Nickname + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36.75 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 24 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: -3.07 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 1 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 1.7013121, y: -0.40430713, z: 1.7602301, w: 1.2983242} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 889561678788871044} + m_maskType: 0 --- !u!1 &5681254972916902966 GameObject: m_ObjectHideFlags: 0 @@ -406,8 +2661,8 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &5041384770245166357 -Transform: +--- !u!224 &5041384770245166357 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -419,9 +2674,14 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7120707258077581554} + - {fileID: 1111145119338584871} m_Father: {fileID: 6718544642020818535} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 5} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &5736389435991655852 GameObject: m_ObjectHideFlags: 0 @@ -445,13 +2705,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5736389435991655852} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5887326793658353859} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &6003437268994292288 GameObject: @@ -476,13 +2736,77 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6003437268994292288} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7668165333132264083} - m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6046791714391239329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5267290339349674983} + m_Layer: 0 + m_Name: RightHandTransform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5267290339349674983 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6046791714391239329} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2292257892099907573} + m_Father: {fileID: 6718544642020818535} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7683395605648486609 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2164438665615948153} + m_Layer: 0 + m_Name: LeftHandTransform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2164438665615948153 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7683395605648486609} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4048656607325141082} + m_Father: {fileID: 6718544642020818535} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7803168780329886017 GameObject: @@ -493,7 +2817,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 8617970912018780043} - - component: {fileID: 5771162771103583132} + - component: {fileID: 4282572128721117942} m_Layer: 0 m_Name: Tool m_TagString: Untagged @@ -508,6 +2832,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7803168780329886017} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -515,9 +2840,8 @@ Transform: m_Children: - {fileID: 2439271445520760248} m_Father: {fileID: 1457871284126546349} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &5771162771103583132 +--- !u!114 &4282572128721117942 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -529,22 +2853,10 @@ MonoBehaviour: m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3} m_Name: m_EditorClassIdentifier: - _interpolationDataSource: 0 - InterpolationSpace: 0 - InterpolationTarget: {fileID: 2439271445520760248} - InterpolateErrorCorrection: 1 - InterpolatedErrorCorrectionSettings: - MinRate: 3.3 - MaxRate: 10 - PosBlendStart: 0.25 - PosBlendEnd: 1 - PosMinCorrection: 0.025 - PosTeleportDistance: 2 - RotBlendStart: 0.1 - RotBlendEnd: 0.5 - RotTeleportRadians: 1.5 - UseLegacySharedModeInterpolation: 0 - TargetInterpolationDelay: 0.03 + SyncScale: 0 + SyncParent: 0 + _autoAOIOverride: 1 + DisableSharedModeInterpolation: 0 --- !u!1 &8601996063017238699 GameObject: m_ObjectHideFlags: 0 @@ -568,6 +2880,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8601996063017238699} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -579,7 +2892,6 @@ Transform: - {fileID: 7668165333132264083} - {fileID: 8617970912018780043} m_Father: {fileID: 6718544642020818535} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8742815544225261104 GameObject: @@ -604,19 +2916,20 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8742815544225261104} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1030654070696327489} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &8559495263563694728 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 5041384770245166357} m_Modifications: - target: {fileID: 1448111865499013753, guid: 834f4ac71ec35d148acacfca28f04405, @@ -624,6 +2937,11 @@ PrefabInstance: propertyPath: m_Name value: HMDMesh objectReference: {fileID: 0} + - target: {fileID: 1448111865499013753, guid: 834f4ac71ec35d148acacfca28f04405, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 1448111865499013754, guid: 834f4ac71ec35d148acacfca28f04405, type: 3} propertyPath: m_RootOrder @@ -695,6 +3013,9 @@ PrefabInstance: value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 834f4ac71ec35d148acacfca28f04405, type: 3} --- !u!4 &7120707258077581554 stripped Transform: @@ -702,3 +3023,9 @@ Transform: type: 3} m_PrefabInstance: {fileID: 8559495263563694728} m_PrefabAsset: {fileID: 0} +--- !u!23 &7120707258077581555 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: 1448111865499013755, guid: 834f4ac71ec35d148acacfca28f04405, + type: 3} + m_PrefabInstance: {fileID: 8559495263563694728} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Resources/Multiplayer/Photon/SpeakerPrefab.prefab b/Assets/Resources/Multiplayer/Photon/SpeakerPrefab.prefab new file mode 100644 index 0000000000..6644b3839e --- /dev/null +++ b/Assets/Resources/Multiplayer/Photon/SpeakerPrefab.prefab @@ -0,0 +1,148 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &9139372413509065517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3083929738384175756} + - component: {fileID: 5056828011079605640} + - component: {fileID: 2878855519606601759} + m_Layer: 0 + m_Name: SpeakerPrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3083929738384175756 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9139372413509065517} + 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!82 &5056828011079605640 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9139372413509065517} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &2878855519606601759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9139372413509065517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd7fea91fe63f4e1b884ef1e16a975c3, type: 3} + m_Name: + m_EditorClassIdentifier: + playDelayConfig: + Low: 200 + High: 400 + Max: 1000 + SpeedUpPerc: 5 + restartOnDeviceChange: 1 diff --git a/Assets/Resources/Multiplayer/Photon/SpeakerPrefab.prefab.meta b/Assets/Resources/Multiplayer/Photon/SpeakerPrefab.prefab.meta new file mode 100644 index 0000000000..a41da51989 --- /dev/null +++ b/Assets/Resources/Multiplayer/Photon/SpeakerPrefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 482e38719c8825849a31f10f4f27c046 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/UnityGLTFSettings.asset b/Assets/Resources/UnityGLTFSettings.asset index b7aaddc95f..643766150c 100644 --- a/Assets/Resources/UnityGLTFSettings.asset +++ b/Assets/Resources/UnityGLTFSettings.asset @@ -32,6 +32,18 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 056f401eae1a4f76b6f580ebf76127a9, type: 3} m_Name: GPUInstancingImport m_EditorClassIdentifier: +--- !u!114 &-7610138946625775758 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c261146868c45eb4eb6b9987bd8c9084, type: 3} + m_Name: OpenBrushExportPlugin + m_EditorClassIdentifier: --- !u!114 &-7373113640993280472 MonoBehaviour: m_ObjectHideFlags: 3 @@ -63,6 +75,18 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9571021a85f04ddfb74e8aa5aad9cc5a, type: 3} m_Name: UnlitMaterialsExport m_EditorClassIdentifier: +--- !u!114 &-6092789625841630549 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6843a59b1a844430b7b7c08e8711a6d7, type: 3} + m_Name: OpenBrushLightsImport + m_EditorClassIdentifier: --- !u!114 &-5728475199642485532 MonoBehaviour: m_ObjectHideFlags: 3 @@ -182,7 +206,7 @@ MonoBehaviour: - {fileID: -5020980606651475385} - {fileID: 8372111537548844026} - {fileID: -7716978867629807533} - - {fileID: 6916234453510156686} + - {fileID: -6092789625841630549} ExportPlugins: - {fileID: 242952683485160214} - {fileID: -5728475199642485532} @@ -194,8 +218,7 @@ MonoBehaviour: - {fileID: -7373113640993280472} - {fileID: 7420168740226561727} - {fileID: -6755212205620999988} - - {fileID: 8207833083978872644} - - {fileID: -682178813687408182} + - {fileID: -7610138946625775758} exportNames: 1 exportFullPath: 0 requireExtensions: 0 diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index a1de00bfb8..facd783bf4 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -38,7 +38,6 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 8900000, guid: 378efb751ea39e14cb1fd93f49ead278, type: 3} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &4 LightmapSettings: @@ -715,7 +714,7 @@ MonoBehaviour: lensDirtScatterFactor: 0.5 lensDirtIntensity: 0.05 lensDirtTexture: {fileID: 0} - inputIsHDR: 1 + inputIsHDR: 0 lowQuality: 1 depthBlending: 0 depthBlendFunction: 0 @@ -3655,7 +3654,7 @@ MonoBehaviour: m_SdkMode: 0 m_AutoProfile: 0 m_AutoProfileWaitTime: 10 - Secrets: {fileID: 11400000, guid: 2f5f8e93c6bc7be49a5023148b50e7a0, type: 2} + Secrets: {fileID: 11400000, guid: 2958d93356c83c5409c5fc930c42e6fc, type: 2} m_SketchFiles: [] DisableAccountLogins: 0 m_OdsNumFrames: 0 @@ -10198,7 +10197,7 @@ MonoBehaviour: m_FadeFromBlackDuration: 3 m_QuickLoadHintDelay: 2 m_GpuIntersector: {fileID: 165291219} - m_Manifest: {fileID: 11400000, guid: 0be87170c871bfc4f91119634daa9c79, type: 2} + m_ManifestStandard: {fileID: 11400000, guid: 0be87170c871bfc4f91119634daa9c79, type: 2} m_ManifestExperimental: {fileID: 11400000, guid: 1121701af0c4d7145af70356f0ac2a83, type: 2} m_ZapboxManifest: {fileID: 11400000, guid: 7be45b23483e18347a0170a596bf2867, type: 2} @@ -15177,6 +15176,9 @@ GameObject: m_Component: - component: {fileID: 1052269831} - component: {fileID: 1052269832} + - component: {fileID: 1052269837} + - component: {fileID: 1052269836} + - component: {fileID: 1052269835} m_Layer: 0 m_Name: MultiplayerManager m_TagString: Untagged @@ -15212,6 +15214,113 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_MultiplayerType: 2 + CurrentRoomName: + data: + roomName: + roomPassword: + private: 0 + maxPlayers: 0 + voiceDisabled: 0 +--- !u!114 &1052269835 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1052269830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 91175dcc15224463780e01a8a98b1b60, type: 3} + m_Name: + m_EditorClassIdentifier: + voiceDetection: 1 + voiceDetectionThreshold: 0.01 + voiceDetectionDelayMs: 500 + interestGroup: 0 + useTargetPlayers: 0 + targetPlayers: + debugEchoMode: 0 + reliableMode: 0 + encrypt: 0 + transmitEnabled: 1 + samplingRate: 24000 + frameDuration: 20000 + bitrate: 30000 + sourceType: 0 + microphoneType: 0 + audioClip: {fileID: 0} + loopAudioClip: 1 + recordingEnabled: 1 + audioSessionParameters: + Category: 4 + Mode: 1 + CategoryOptions: 0800000004000000 + editorAudioSessionPreset: 1 + androidMicrophoneSettings: + EnableAEC: 1 + EnableAGC: 1 + EnableNS: 1 + stopRecordingWhenPaused: 0 + useOnAudioFilterRead: 0 + useMicrophoneTypeFallback: 1 + recordWhenJoined: 1 +--- !u!114 &1052269836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1052269830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 697c1cda529a1419782f2a2e3afe37a2, type: 3} + m_Name: + m_EditorClassIdentifier: + DisconnectAfterKeepAlive: 0 + KeepAliveInBackground: 60000 + ApplyDontDestroyOnLoad: 1 + runInBackground: 1 + statsResetInterval: 1000 + speakerPrefab: {fileID: 9139372413509065517, guid: 482e38719c8825849a31f10f4f27c046, + type: 3} + primaryRecorder: {fileID: 1052269835} + usePrimaryRecorder: 0 + cppCompatibilityMode: 0 + Settings: + AppIdRealtime: + AppIdFusion: + AppIdChat: + AppIdVoice: + AppVersion: + UseNameServer: 1 + FixedRegion: + Server: + Port: 0 + ProxyServer: + Protocol: 0 + EnableProtocolFallback: 1 + AuthMode: 0 + EnableLobbyStatistics: 0 + NetworkLogging: 1 + ShowSettings: 0 + UseVoiceAppSettings: 0 +--- !u!114 &1052269837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1052269830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a751437a9d2b2724584655aaead0ddfe, type: 3} + m_Name: + m_EditorClassIdentifier: + batchSize: 60 + delayBetweenBatches: 0.05 + m_SyncType: 0 + numberOfCommandsExpected: 0 + numberOfCommandsSent: 0 --- !u!1 &1057179852 GameObject: m_ObjectHideFlags: 0 @@ -29152,6 +29261,37 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1726887557} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1728487473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1728487474} + m_Layer: 0 + m_Name: RegionHandler + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1728487474 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1728487473} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1731474005 GameObject: m_ObjectHideFlags: 0 @@ -30322,6 +30462,12 @@ MonoBehaviour: m_ModeQuest: 0 m_Basic: 0 m_Advanced: 0 + - m_PanelPrefab: {fileID: 160214, guid: 5a442232cda8d79489436e6d45958790, type: 3} + m_ModeVr: 1 + m_ModeMono: 1 + m_ModeQuest: 1 + m_Basic: 1 + m_Advanced: 1 - m_PanelPrefab: {fileID: 1272310558547734, guid: 38a4b95a5f6824c41994709bfbd012ad, type: 3} m_ModeVr: 1 @@ -33613,7 +33759,7 @@ MonoBehaviour: lensDirtScatterFactor: 0.5 lensDirtIntensity: 0.05 lensDirtTexture: {fileID: 0} - inputIsHDR: 1 + inputIsHDR: 0 lowQuality: 1 depthBlending: 0 depthBlendFunction: 0 @@ -34413,6 +34559,51 @@ MeshRenderer: type: 3} m_PrefabInstance: {fileID: 2052658242} m_PrefabAsset: {fileID: 0} +--- !u!1 &2066419199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2066419201} + - component: {fileID: 2066419200} + m_Layer: 0 + m_Name: VoiceLogger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2066419200 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2066419199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a86f533fd9917dd4da8601e9eb542c96, type: 3} + m_Name: + m_EditorClassIdentifier: + LogLevel: 4 +--- !u!4 &2066419201 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2066419199} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2073328682 GameObject: m_ObjectHideFlags: 0 @@ -34516,7 +34707,7 @@ MonoBehaviour: lensDirtScatterFactor: 0.5 lensDirtIntensity: 0.05 lensDirtTexture: {fileID: 0} - inputIsHDR: 1 + inputIsHDR: 0 lowQuality: 1 depthBlending: 0 depthBlendFunction: 0 @@ -36951,3 +37142,5 @@ SceneRoots: - {fileID: 1802399861} - {fileID: 106206546} - {fileID: 1848773840} + - {fileID: 2066419201} + - {fileID: 1728487474} diff --git a/Assets/Scripts/App.cs b/Assets/Scripts/App.cs index dce1687e1e..ab6265f266 100644 --- a/Assets/Scripts/App.cs +++ b/Assets/Scripts/App.cs @@ -23,6 +23,7 @@ using UnityEngine; using Newtonsoft.Json; using TMPro; +using UnityEngine.Serialization; #if USD_SUPPORTED using Unity.Formats.USD; #endif @@ -191,11 +192,22 @@ public static void Log(string msg) [SerializeField] GpuIntersector m_GpuIntersector; - public TiltBrushManifest m_Manifest; - - // Previously Experimental-Mode only + [SerializeField] private TiltBrushManifest m_ManifestStandard; [SerializeField] private TiltBrushManifest m_ManifestExperimental; [SerializeField] private TiltBrushManifest m_ZapboxManifest; + private TiltBrushManifest m_ManifestFull; + + public TiltBrushManifest ManifestFull + { + get + { + if (m_ManifestFull == null) + { + m_ManifestFull = MergeManifests(); + } + return m_ManifestFull; + } + } [SerializeField] private SelectionEffect m_SelectionEffect; @@ -558,8 +570,6 @@ void Awake() gameObject.AddComponent(); } - m_Manifest = GetMergedManifest(); - m_HttpServer = GetComponentInChildren(); if (!Config.IsMobileHardware) { @@ -1201,6 +1211,10 @@ private void StartReset() { PanelManager.m_Instance.ToggleBrushLabPanels(); } + else if (PanelManager.m_Instance.MultiplayerActive()) + { + PanelManager.m_Instance.ToggleMultiplayerPanels(); + } // Hide all panels. SketchControlsScript.m_Instance.RequestPanelsVisibility(false); @@ -2207,19 +2221,16 @@ void OnPlaybackComplete() } } - public TiltBrushManifest GetMergedManifest(bool forceExperimental = false) + private TiltBrushManifest MergeManifests() { - var manifest = m_Manifest; - if (Config.IsExperimental || forceExperimental) +#if ZAPBOX_SUPPORTED + var manifest = m_ZapboxManifest; +#else + var manifest = Instantiate(m_ManifestStandard); + if (m_ManifestExperimental != null) { - if (m_ManifestExperimental != null) - { - manifest = Instantiate(m_Manifest); - manifest.AppendFrom(m_ManifestExperimental); - } + manifest.AppendFrom(m_ManifestExperimental); } -#if ZAPBOX_SUPPORTED - manifest = m_ZapboxManifest; #endif return manifest; } diff --git a/Assets/Scripts/BrushCatalog.cs b/Assets/Scripts/BrushCatalog.cs index f63bd968da..072535e86b 100644 --- a/Assets/Scripts/BrushCatalog.cs +++ b/Assets/Scripts/BrushCatalog.cs @@ -185,19 +185,22 @@ public void BeginReload() m_GuiBrushList.Clear(); foreach (var brush in m_GuidToBrush.Values) { - if (brush.m_HiddenInGui) + // Some brushes are hardcoded as hidden + if (brush.m_HiddenInGui) continue; + // Always include if experimental mode is on + if (Config.IsExperimental || !App.Instance.IsBrushExperimental(brush)) { - continue; + m_GuiBrushList.Add(brush); } - m_GuiBrushList.Add(brush); } + BrushCatalogChanged?.Invoke(); } public Brush[] GetTagFilteredBrushList() { - List includeTags = App.UserConfig.Brushes.IncludeTags.ToList(); - List excludeTags = App.UserConfig.Brushes.ExcludeTags.ToList(); + List includeTags = App.UserConfig.Brushes.IncludeTags?.ToList(); + List excludeTags = App.UserConfig.Brushes.ExcludeTags?.ToList(); if (includeTags == null || includeTags.Count == 0) { @@ -285,7 +288,7 @@ Brush _FindBrushByDescription(string brushDescription) static private List LoadBrushesInManifest() { List output = new List(); - var manifest = App.Instance.m_Manifest; + var manifest = App.Instance.ManifestFull; foreach (var desc in manifest.Brushes) { if (desc != null) diff --git a/Assets/Scripts/Commands/BaseCommand.cs b/Assets/Scripts/Commands/BaseCommand.cs index 45492bcf57..5ba656cac7 100644 --- a/Assets/Scripts/Commands/BaseCommand.cs +++ b/Assets/Scripts/Commands/BaseCommand.cs @@ -16,6 +16,7 @@ using System.Linq; using System.Collections.Generic; using UnityEngine; +using OpenBrush.Multiplayer; namespace TiltBrush { @@ -29,6 +30,24 @@ public class BaseCommand : IDisposable private Guid m_Guid; private BaseCommand m_Parent; protected List m_Children; + private int m_Timestamp; + private int? m_NetworkTimestamp; + + public void SetParent(BaseCommand parent) + { + m_Parent = parent; + } + public int Timestamp + { + get { return m_Timestamp; } + set { m_Timestamp = value; } + } + + public int? NetworkTimestamp + { + get { return m_NetworkTimestamp; } + set { m_NetworkTimestamp = value; } + } public int ChildrenCount { @@ -77,6 +96,23 @@ public BaseCommand(BaseCommand parent = null) parent.m_Children.Add(this); m_Parent = parent; } + + m_Timestamp = (int)(App.Instance.CurrentSketchTime * 1000); // convert to milliseconds + m_NetworkTimestamp = MultiplayerManager.m_Instance?.GetNetworkedTimestampMilliseconds(); + } + + // constructor that takes an existing Guid and Timestamp used in multiplayer to mantain consistences of commands across peers + public BaseCommand(Guid existingGuid, int timestamp, BaseCommand parent = null) + { + m_Guid = existingGuid; + m_Children = new List(); + if (parent != null) + { + parent.m_Children.Add(this); + m_Parent = parent; + } + m_Timestamp = timestamp; + m_NetworkTimestamp = timestamp; } /// True if this command changes the sketch in a saveable diff --git a/Assets/Scripts/Commands/BrushStrokeCommand.cs b/Assets/Scripts/Commands/BrushStrokeCommand.cs index 3cce0caa6b..586f5dca07 100644 --- a/Assets/Scripts/Commands/BrushStrokeCommand.cs +++ b/Assets/Scripts/Commands/BrushStrokeCommand.cs @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +using System; using UnityEngine; namespace TiltBrush @@ -31,6 +32,18 @@ public BrushStrokeCommand(Stroke stroke, StencilWidget widget = null, float lineLength = -1, BaseCommand parent = null) : base(parent) { m_Stroke = stroke; + m_Stroke.Command = this; + m_Widget = widget; + m_LineLength_CS = lineLength; + } + + // New constructor that accepts an existing Guid + public BrushStrokeCommand(Stroke stroke, Guid existingGuid, int timestamp, StencilWidget widget = null, + float lineLength = -1, BaseCommand parent = null) + : base(existingGuid, timestamp, parent) + { + m_Stroke = stroke; + m_Stroke.Command = this; m_Widget = widget; m_LineLength_CS = lineLength; } diff --git a/Assets/Scripts/Commands/DeleteStrokeCommand.cs b/Assets/Scripts/Commands/DeleteStrokeCommand.cs index 18f86c1d30..c8d5abe85c 100644 --- a/Assets/Scripts/Commands/DeleteStrokeCommand.cs +++ b/Assets/Scripts/Commands/DeleteStrokeCommand.cs @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +using System; +using UnityEditor; using UnityEngine; namespace TiltBrush @@ -33,6 +35,13 @@ public DeleteStrokeCommand(Stroke stroke, BaseCommand parent = null) m_SilenceFirstAudio = true; } + public DeleteStrokeCommand(Stroke stroke, Guid existingGuid, int timestamp, BaseCommand parent = null) + : base(existingGuid, timestamp, parent) + { + m_TargetStroke = stroke; + m_SilenceFirstAudio = true; + } + public override bool NeedsSave { get { return true; } } protected override void OnRedo() diff --git a/Assets/Scripts/Commands/SwitchEnvironmentCommand.cs b/Assets/Scripts/Commands/SwitchEnvironmentCommand.cs index f4d721dea2..dab3d40b58 100644 --- a/Assets/Scripts/Commands/SwitchEnvironmentCommand.cs +++ b/Assets/Scripts/Commands/SwitchEnvironmentCommand.cs @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +using System; + namespace TiltBrush { public class SwitchEnvironmentCommand : BaseCommand @@ -19,7 +21,7 @@ public class SwitchEnvironmentCommand : BaseCommand private CustomLights m_PrevLights; private CustomEnvironment m_PrevBackdrop; private Environment m_PrevEnvironment; - private Environment m_NextEnvironment; + public Environment m_NextEnvironment; public SwitchEnvironmentCommand(Environment nextEnv, BaseCommand parent = null) : base(parent) { @@ -36,6 +38,22 @@ public SwitchEnvironmentCommand(Environment nextEnv, BaseCommand parent = null) } } + public SwitchEnvironmentCommand(Environment nextEnv, Guid existingGuid, int timestamp, BaseCommand parent = null) + : base(existingGuid, timestamp, parent) + { + m_NextEnvironment = nextEnv; + m_PrevBackdrop = SceneSettings.m_Instance.CustomEnvironment; + if (SceneSettings.m_Instance.IsTransitioning) + { + m_PrevEnvironment = SceneSettings.m_Instance.GetDesiredPreset(); + } + else + { + m_PrevLights = LightsControlScript.m_Instance.CustomLights; + m_PrevEnvironment = SceneSettings.m_Instance.CurrentEnvironment; + } + } + public override bool NeedsSave { get diff --git a/Assets/Scripts/Config.cs b/Assets/Scripts/Config.cs index 377ee2f218..7b29ae29c8 100644 --- a/Assets/Scripts/Config.cs +++ b/Assets/Scripts/Config.cs @@ -113,9 +113,6 @@ private class UserConfigChange // The sdk mode indicates which SDK that we're using to drive the display. public SdkMode m_SdkMode; - // Stores the value of IsExperimental at startup time - [NonSerialized] public bool m_WasExperimentalAtStartup; - // Whether or not to just do an automatic profile and then exit. public bool m_AutoProfile; // How long to wait before starting to profile. @@ -126,12 +123,13 @@ private class UserConfigChange public string[] m_SketchFiles = new string[0]; [NonSerialized] public bool m_QuickLoad = true; - public SecretsConfig.ServiceAuthData GoogleSecrets => Secrets[SecretsConfig.Service.Google]; + public SecretsConfig.ServiceAuthData GoogleSecrets => Secrets?[SecretsConfig.Service.Google]; public SecretsConfig.ServiceAuthData SketchfabSecrets => Secrets[SecretsConfig.Service.Sketchfab]; public SecretsConfig.ServiceAuthData OculusSecrets => Secrets[SecretsConfig.Service.Oculus]; public SecretsConfig.ServiceAuthData OculusMobileSecrets => Secrets[SecretsConfig.Service.OculusMobile]; public SecretsConfig.ServiceAuthData PimaxSecrets => Secrets[SecretsConfig.Service.Pimax]; public SecretsConfig.ServiceAuthData PhotonFusionSecrets => Secrets[SecretsConfig.Service.PhotonFusion]; + public SecretsConfig.ServiceAuthData PhotonVoiceSecrets => Secrets[SecretsConfig.Service.PhotonVoice]; /// Return a value kinda sorta half-way between "building for Android" and "running on Android" /// In order of increasing strictness, here are the in-Editor semantics of various methods @@ -524,12 +522,6 @@ public bool GeometryShaderSuppported } } - // Non-Static version of above - public bool GetIsExperimental() - { - return PlayerPrefs.HasKey("ExperimentalMode") && PlayerPrefs.GetInt("ExperimentalMode") == 1; - } - public void SetIsExperimental(bool active) { PlayerPrefs.SetInt("ExperimentalMode", active ? 1 : 0); @@ -540,7 +532,6 @@ public void SetIsExperimental(bool active) void Awake() { m_SingletonState = this; - m_WasExperimentalAtStartup = GetIsExperimental(); #if UNITY_EDITOR if (!string.IsNullOrEmpty(m_FakeCommandLineArgsInEditor)) @@ -574,12 +565,9 @@ void Awake() #endif m_BrushReplacement = new Dictionary(); - if (IsExperimental) + foreach (var brush in m_BrushReplacementMap) { - foreach (var brush in m_BrushReplacementMap) - { - m_BrushReplacement.Add(new Guid(brush.FromGuid), new Guid(brush.ToGuid)); - } + m_BrushReplacement.Add(new Guid(brush.FromGuid), new Guid(brush.ToGuid)); } } diff --git a/Assets/Scripts/Environment.cs b/Assets/Scripts/Environment.cs index fae21811ef..5b57756971 100644 --- a/Assets/Scripts/Environment.cs +++ b/Assets/Scripts/Environment.cs @@ -175,6 +175,7 @@ public Material m_SkyboxMaterial public Color m_SkyboxColorA; public Color m_SkyboxColorB; + public bool isPassthrough; } } // namespace TiltBrush diff --git a/Assets/Scripts/EnvironmentCatalog.cs b/Assets/Scripts/EnvironmentCatalog.cs index ffe69c8924..827a4d194a 100644 --- a/Assets/Scripts/EnvironmentCatalog.cs +++ b/Assets/Scripts/EnvironmentCatalog.cs @@ -107,7 +107,7 @@ void Update() static void LoadEnvironmentsInManifest(List output) { - var manifest = App.Instance.m_Manifest; + var manifest = App.Instance.ManifestFull; foreach (var asset in manifest.Environments) { if (asset != null) diff --git a/Assets/Scripts/GUI/AdminPanel.cs b/Assets/Scripts/GUI/AdminPanel.cs index d46b99c9c0..e6c0003c05 100644 --- a/Assets/Scripts/GUI/AdminPanel.cs +++ b/Assets/Scripts/GUI/AdminPanel.cs @@ -43,6 +43,7 @@ public class AdminPanel : BasePanel [SerializeField] GameObject m_MemoryWarning; [SerializeField] GameObject m_MemoryWarningButton; [SerializeField] Color m_MemoryWarningColor; + [SerializeField] GameObject m_MultiplayerButton; [SerializeField] float m_ButtonRotationAngle = 45f; [SerializeField] LocalizedString m_ShareButtonLoggedOutExtraText; diff --git a/Assets/Scripts/GUI/AppSettingsPanel.cs b/Assets/Scripts/GUI/AppSettingsPanel.cs index ffe5450a9a..d26c00abcf 100644 --- a/Assets/Scripts/GUI/AppSettingsPanel.cs +++ b/Assets/Scripts/GUI/AppSettingsPanel.cs @@ -24,7 +24,7 @@ public class AppSettingsPanel : BasePanel public override void InitPanel() { base.InitPanel(); - m_ExperimentalModeToggle.IsToggledOn = App.Config.GetIsExperimental(); + m_ExperimentalModeToggle.IsToggledOn = Config.IsExperimental; } public void HandleToggleHandedness() @@ -43,7 +43,6 @@ public void HandleResetFirstUse() public void HandleToggleExperimentalMode(ToggleButton btn) { App.Config.SetIsExperimental(btn.IsToggledOn); - RestartNotification(); } private void RestartNotification() diff --git a/Assets/Scripts/GUI/BasePanel.cs b/Assets/Scripts/GUI/BasePanel.cs index 5868bc41c7..62e963ddcd 100644 --- a/Assets/Scripts/GUI/BasePanel.cs +++ b/Assets/Scripts/GUI/BasePanel.cs @@ -106,6 +106,7 @@ public enum PanelType ReferenceMobile, CameraPath, BrushLab, + Multiplayer, WebcamPanel = 5200, Scripts = 6000, SnapSettings = 8000, diff --git a/Assets/Scripts/GUI/BrushTypeButton.cs b/Assets/Scripts/GUI/BrushTypeButton.cs index 359b404a0e..dd63934f8b 100644 --- a/Assets/Scripts/GUI/BrushTypeButton.cs +++ b/Assets/Scripts/GUI/BrushTypeButton.cs @@ -114,10 +114,7 @@ public void SetButtonProperties(BrushDescriptor rBrush) VisualizerManager.m_Instance.VisualsRequested); // Play standard click sound if brush doesn't have a custom button sound m_ButtonHasPressedAudio = (rBrush.m_ButtonAudio == null); - if (App.Config.m_WasExperimentalAtStartup) - { - m_ExperimentalIcon.SetActive(App.Instance.IsBrushExperimental(rBrush)); - } + m_ExperimentalIcon.SetActive(App.Instance.IsBrushExperimental(rBrush)); } override protected void OnDescriptionActivated() diff --git a/Assets/Scripts/GUI/LightingPopUpWindow.cs b/Assets/Scripts/GUI/LightingPopUpWindow.cs index 2c2bab2411..e0681c3d2d 100644 --- a/Assets/Scripts/GUI/LightingPopUpWindow.cs +++ b/Assets/Scripts/GUI/LightingPopUpWindow.cs @@ -20,13 +20,13 @@ using UnityEngine; using System.Collections.Generic; using System.Linq; +using OpenBrush.Multiplayer; namespace TiltBrush { public class LightingPopUpWindow : PagingPopUpWindow { - private const string PASSTHROUGH_GUID = "e38af599-4575-46ff-a040-459703dbcd36"; private string m_CurrentPresetGuid; [SerializeField] private Transform m_PassthroughControls; @@ -62,17 +62,12 @@ override public void Init(GameObject rParent, string sText) // Remove passthrough scene for devices that don't support it if (App.VrSdk.PassthroughMode == PassthroughMode.None) { - foreach (var env in m_Environments) - { - // Passthrough - if (env.m_Guid.ToString() == PASSTHROUGH_GUID) - { - m_Environments.Remove(env); - break; - } - } + RemovePassthrough(); } + // Remove passthrough if multiplayer connected + if (MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM) RemovePassthrough(); + //find the active lighting preset TiltBrush.Environment rCurrentPreset = SceneSettings.m_Instance.GetDesiredPreset(); if (rCurrentPreset != null) @@ -104,6 +99,18 @@ override public void Init(GameObject rParent, string sText) base.Init(rParent, sText); } + public void RemovePassthrough() + { + foreach (var env in m_Environments) + { + if (env.isPassthrough) + { + m_Environments.Remove(env); + break; + } + } + } + public void HandleCanvasLockToggle() { SketchControlsScript.m_Instance.m_DisableWorldGrabbing = m_WorldLockToggle.IsToggledOn; @@ -117,8 +124,7 @@ public void HandleCanvasReset(ActionButton btn) override protected void RefreshPage() { base.RefreshPage(); - bool passthroughActive = m_CurrentPresetGuid == PASSTHROUGH_GUID; - if (passthroughActive) + if (isPassThroughActive()) { m_PassthroughControls.gameObject.SetActive(true); } @@ -134,8 +140,7 @@ protected void OnFadingToDesiredEnvironment() if (rCurrentPreset != null) { m_CurrentPresetGuid = rCurrentPreset.m_Guid.ToString(); - bool passthroughActive = m_CurrentPresetGuid == PASSTHROUGH_GUID; - if (passthroughActive) + if (isPassThroughActive()) { m_PassthroughControls.gameObject.SetActive(true); m_WorldLockToggle.IsToggledOn = true; @@ -151,9 +156,15 @@ protected void OnFadingToDesiredEnvironment() RefreshPage(); } + private bool isPassThroughActive() + { + return m_Environments.Any(env => env.isPassthrough && env.m_Guid.ToString() == m_CurrentPresetGuid); + } + void OnDestroy() { SceneSettings.m_Instance.FadingToDesiredEnvironment -= OnFadingToDesiredEnvironment; } + } } // namespace TiltBrush diff --git a/Assets/Scripts/GUI/LocalePopUpWindow.cs b/Assets/Scripts/GUI/LocalePopUpWindow.cs index f4344858cb..0a907810f1 100644 --- a/Assets/Scripts/GUI/LocalePopUpWindow.cs +++ b/Assets/Scripts/GUI/LocalePopUpWindow.cs @@ -47,7 +47,7 @@ override public void Init(GameObject rParent, string sText) //build list of locale presets we're going to show Locale currentSelectedLocale = LocalizationSettings.SelectedLocale; - m_Locales = App.Instance.m_Manifest.Locales; + m_Locales = App.Instance.ManifestFull.Locales; int iPresetIndex = -1; m_CurrentPresetIdCode = currentSelectedLocale.Identifier.Code; diff --git a/Assets/Scripts/GUI/MultiplayerPanel.cs b/Assets/Scripts/GUI/MultiplayerPanel.cs new file mode 100644 index 0000000000..6e70a0d5c5 --- /dev/null +++ b/Assets/Scripts/GUI/MultiplayerPanel.cs @@ -0,0 +1,369 @@ +// Copyright 2023 The Open Brush Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using OpenBrush.Multiplayer; +using System; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.Localization; +using UnityEngine.Localization.Settings; + +namespace TiltBrush +{ + public class MultiplayerPanel : BasePanel + { + + [SerializeField] private TextMeshPro m_State; + [SerializeField] private LocalizedString m_StatString; + [SerializeField] private TextMeshPro m_RoomNumber; + [SerializeField] private LocalizedString m_RoomNumberString; + [SerializeField] private TextMeshPro m_Nickname; + [SerializeField] private LocalizedString m_NicknameString; + [SerializeField] private TextMeshPro m_RoomOwnership; + [SerializeField] private LocalizedString m_RoomOwnerString; + [SerializeField] private LocalizedString m_NotRoomOwnerString; + [SerializeField] private TextMeshPro m_AlertsErrors; + [SerializeField] private LocalizedString m_AlertsErrorBeginnerModeActive; + [SerializeField] private LocalizedString m_AlertsRoomAlreadyExistent; + [SerializeField] private LocalizedString m_AlertsPassThroughAcive; + + private PlayerPrefsDataStore m_multiplayer; + private bool updateDisplay = false; + + public string RoomName + { + get { return data.roomName; } + set + { + data.roomName = value; + UpdateDisplay(); + } + } + + public string NickName + { + get + { + + if (MultiplayerManager.m_Instance) return MultiplayerManager.m_Instance.UserInfo.Nickname; + return ""; + } + set + { + ConnectionUserInfo ui = new ConnectionUserInfo + { + Nickname = value, + UserId = MultiplayerManager.m_Instance.UserInfo.UserId, + Role = MultiplayerManager.m_Instance.UserInfo.Role + }; + MultiplayerManager.m_Instance.UserInfo = ui; + UpdateDisplay(); + SaveNickname(value); + } + } + + private RoomCreateData data; + + private List>> alertChecks; + + public void Awake() + { + data = new RoomCreateData + { + roomName = GenerateUniqueRoomName(), + @private = false, + maxPlayers = 4, + voiceDisabled = false + }; + + alertChecks = new List>> + { + CheckAdvancedModeActive, + CheckIfPassThroughEnvironment, + CheckMultiplayerManagerErrors, + CheckIfRoomExist, + }; + + if (MultiplayerManager.m_Instance != null) + { + MultiplayerManager.m_Instance.StateUpdated += OnStateUpdated; + MultiplayerManager.m_Instance.RoomOwnershipUpdated += OnRoomOwnershipUpdated; + } + + LocalizationSettings.SelectedLocaleChanged += OnLanguageChanged; + + } + + private void OnLanguageChanged(Locale newLocale) + { + updateDisplay = true; + } + + public async void RetrieveUsername() + { + var storedNickname = await m_multiplayer.GetAsync("nickname"); + NickName = storedNickname ?? "Unnamed"; + } + + + private async void SaveNickname(string nickname) + { + await m_multiplayer.StoreAsync("nickname", nickname); + } + + protected override void OnEnablePanel() + { + base.OnEnablePanel(); + + m_multiplayer = new PlayerPrefsDataStore("Multiplayer"); + RetrieveUsername(); + + if (MultiplayerManager.m_Instance == null) return; + if (MultiplayerManager.m_Instance.State == ConnectionState.INITIALIZED || MultiplayerManager.m_Instance.State == ConnectionState.DISCONNECTED) + { + MultiplayerManager.m_Instance.Connect(); + } + + if (updateDisplay) UpdateDisplay(); + } + + protected override void OnDisablePanel() + { + base.OnDisablePanel(); + + if (MultiplayerManager.m_Instance == null) return; + if (MultiplayerManager.m_Instance.State != ConnectionState.IN_ROOM) + { + MultiplayerManager.m_Instance.Disconnect(); + } + } + + private static string GenerateUniqueRoomName() + { + const int maxAttempts = 10; + string roomName; + int attempts = 0; + + do + { + roomName = GenerateRandomRoomName(); + attempts++; + } while (MultiplayerManager.m_Instance != null && + MultiplayerManager.m_Instance.DoesRoomNameExist(roomName) && + attempts < maxAttempts); + + if (attempts >= maxAttempts) + { + return "default room"; + } + + return roomName; + } + + private static string GenerateRandomRoomName() + { + System.Random random = new System.Random(); + return random.Next(100000, 999999).ToString(); + } + + private void UpdateDisplay() + { + if (m_RoomNumber) m_RoomNumber.text = m_RoomNumberString.GetLocalizedString() + data.roomName; + if (m_Nickname) m_Nickname.text = m_NicknameString.GetLocalizedString() + NickName; + Alerts(); + updateDisplay = false; + } + + private async void Connect() + { + if (MultiplayerManager.m_Instance != null) + { + await MultiplayerManager.m_Instance.Connect(); + } + } + + private async void JoinRoom() + { + + if (MultiplayerManager.m_Instance != null) + { + await MultiplayerManager.m_Instance.JoinRoom(data); + } + } + + private async void LeaveRoom() + { + if (MultiplayerManager.m_Instance != null) + { + await MultiplayerManager.m_Instance.LeaveRoom(false); + } + } + + private async void Disconnect() + { + if (MultiplayerManager.m_Instance != null) + { + await MultiplayerManager.m_Instance.Disconnect(); + } + } + + private void OnStateUpdated(ConnectionState newState) + { + if (!m_State) return; + m_State.text = m_StatString.GetLocalizedString() + StateToString(newState); + UpdateDisplay(); + } + + private string StateToString(ConnectionState newState) + { + switch (newState) + { + case ConnectionState.INITIALIZING: + return "Initializing"; + case ConnectionState.INITIALIZED: + return "Initialized"; + case ConnectionState.DISCONNECTED: + return "Disconnected"; + case ConnectionState.DISCONNECTING: + return "Disconnecting"; + case ConnectionState.CONNECTING: + return "Connecting"; + case ConnectionState.AUTHENTICATING: + return "Authenticating"; + case ConnectionState.IN_LOBBY: + return "In Lobby"; + case ConnectionState.IN_ROOM: + return "In Room"; + case ConnectionState.ERROR: + return "Error"; + default: + return "Unknown"; + } + } + + private void OnRoomOwnershipUpdated(bool isRoomOwner) + { + if (!m_RoomOwnership) return; + + var localizedString = isRoomOwner ? m_RoomOwnerString : m_NotRoomOwnerString; + localizedString.GetLocalizedStringAsync().Completed += handle => + { m_RoomOwnership.text = handle.Result; }; + } + + private Tuple CheckAdvancedModeActive() + { + if (PanelManager.m_Instance != null) + { + bool isAdvancedModeActive = PanelManager.m_Instance.AdvancedModeActive(); + return Tuple.Create(isAdvancedModeActive, m_AlertsErrorBeginnerModeActive.GetLocalizedString()); + } + return Tuple.Create(false, ""); + } + + private Tuple CheckMultiplayerManagerErrors() + { + + if (MultiplayerManager.m_Instance != null) + { + if (MultiplayerManager.m_Instance.State == ConnectionState.ERROR) + return Tuple.Create(true, MultiplayerManager.m_Instance.LastError); + } + + return Tuple.Create(false, ""); + + } + + private Tuple CheckIfRoomExist() + { + + if (MultiplayerManager.m_Instance != null && MultiplayerManager.m_Instance.State == ConnectionState.IN_LOBBY) + { + if (MultiplayerManager.m_Instance.DoesRoomNameExist(data.roomName)) + return Tuple.Create(true, m_AlertsRoomAlreadyExistent.GetLocalizedString()); + } + + return Tuple.Create(false, ""); + + } + + private Tuple CheckIfPassThroughEnvironment() + { + + if (MultiplayerManager.m_Instance != null && MultiplayerManager.m_Instance.State == ConnectionState.IN_LOBBY) + { + TiltBrush.Environment targetEnvironment = SceneSettings.m_Instance.GetDesiredPreset(); + if (targetEnvironment.isPassthrough) + return Tuple.Create(true, m_AlertsPassThroughAcive.GetLocalizedString()); + } + + return Tuple.Create(false, ""); + } + + private void Alerts() + { + if (m_AlertsErrors) + { + bool shouldShowAlert = false; + string alertMessage = ""; + + foreach (Func> check in alertChecks) + { + var (isTriggered, message) = check.Invoke(); + if (isTriggered) + { + shouldShowAlert = true; + alertMessage += message + "\n"; + break; + } + } + m_AlertsErrors.gameObject.GetComponent().text = alertMessage; + m_AlertsErrors.gameObject.SetActive(shouldShowAlert); + } + } + + public void OnMultiplayerPanelButtonPressed(MultiplayerPanelButton button) + { + switch (button.m_Command) + { + + case SketchControlsScript.GlobalCommands.Null: + //UpdateMode(Mode.Disconnected); + break; + case SketchControlsScript.GlobalCommands.MultiplayerConnect: + Connect(); + break; + case SketchControlsScript.GlobalCommands.MultiplayerPanelOptions: + //switch ((Mode)button.m_CommandParam) + //{ + // case Mode.Lobby: + // UpdateMode(Mode.Lobby); + // break; + // default: + // break; + //} + break; + case SketchControlsScript.GlobalCommands.MultiplayerJoinRoom: + JoinRoom(); + break; + case SketchControlsScript.GlobalCommands.MultiplayerLeaveRoom: + LeaveRoom(); + break; + case SketchControlsScript.GlobalCommands.MultiplayerDisconnect: + Disconnect(); + break; + } + } + } +} // namespace TiltBrush diff --git a/Assets/Scripts/GUI/MultiplayerPanel.cs.meta b/Assets/Scripts/GUI/MultiplayerPanel.cs.meta new file mode 100644 index 0000000000..de5d3586ae --- /dev/null +++ b/Assets/Scripts/GUI/MultiplayerPanel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8826790ad4eae8c4b9690bfac756b1ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GUI/MultiplayerPanelButton.cs b/Assets/Scripts/GUI/MultiplayerPanelButton.cs new file mode 100644 index 0000000000..2a78479bcb --- /dev/null +++ b/Assets/Scripts/GUI/MultiplayerPanelButton.cs @@ -0,0 +1,45 @@ +// Copyright 2023 The Open Brush Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using UnityEngine; + +namespace TiltBrush +{ + public class MultiplayerPanelButton : OptionButton + { + [SerializeField] private bool m_CommandIgnored = false; + + override protected void OnButtonPressed() + { + + MultiplayerPanel popup = m_Manager.GetComponent(); + + // For some circumstances on mobile, we want to ignore the command, but still + // notify the popup that we were pressed. Which happens below. + if (!m_CommandIgnored) + { + if (m_RequiresPopup & m_Command == SketchControlsScript.GlobalCommands.EditMultiplayerRoomName) + { + KeyboardPopUpWindow.m_InitialText = popup.RoomName; + } + + base.OnButtonPressed(); + } + + + Debug.Assert(popup != null); + popup.OnMultiplayerPanelButtonPressed(this); + } + } +} // namespace TiltBrush diff --git a/Assets/Scripts/GUI/MultiplayerPanelButton.cs.meta b/Assets/Scripts/GUI/MultiplayerPanelButton.cs.meta new file mode 100644 index 0000000000..8cc41752e7 --- /dev/null +++ b/Assets/Scripts/GUI/MultiplayerPanelButton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b78a8d7209bbdc546979b549a875d550 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GUI/PanelManager.cs b/Assets/Scripts/GUI/PanelManager.cs index 7bcea47238..3148ec5851 100644 --- a/Assets/Scripts/GUI/PanelManager.cs +++ b/Assets/Scripts/GUI/PanelManager.cs @@ -162,6 +162,9 @@ public enum PanelMode // StandardToMemoryWarning - Transition to Memory Warning can come from any state. MemoryWarningToStandard, + Multiplayer, + StandardToMultiplayer, + MultiplayerToStandard } public enum PaneVisualsState @@ -225,6 +228,7 @@ public bool AvailableInCurrentMode private List m_MemoryWarningPanels; private List m_CameraPanels; private List m_BrushLabPanels; + private List m_MultiplayerPanels; private BasePanel m_AdminPanel; private AdvancedPanelLayouts m_CachedPanelLayouts; @@ -252,6 +256,7 @@ public bool AvailableInCurrentMode private float m_MemoryWarningScale; private float m_CameraScale; private float m_BrushLabScale; + private float m_MultiplayerScale; private PanelsState m_PanelsState; private PanelMode m_PanelsMode; @@ -291,7 +296,7 @@ public Color PanelBorderMeshOutlineColor public bool PanelsAreStable() { return StandardActive() || SketchbookActive() || SettingsActive() || MemoryWarningActive() || - CameraActive() || BrushLabActive(); + CameraActive() || BrushLabActive() || MultiplayerActive(); } public bool StandardActive() { return m_PanelsMode == PanelMode.Standard; } public bool SketchbookActive() { return m_PanelsMode == PanelMode.Sketchbook; } @@ -299,6 +304,7 @@ public bool PanelsAreStable() public bool CameraActive() { return m_PanelsMode == PanelMode.Camera; } public bool MemoryWarningActive() { return m_PanelsMode == PanelMode.MemoryWarning; } public bool BrushLabActive() { return m_PanelsMode == PanelMode.BrushLab; } + public bool MultiplayerActive() { return m_PanelsMode == PanelMode.Multiplayer; } public bool PanelsHaveBeenCustomized() { return m_PanelsCustomized; } public bool AdvancedModeActive() { return m_AdvancedPanels; } public bool SketchbookActiveIncludingTransitions() @@ -359,7 +365,8 @@ public bool IsPanelUnique(BasePanel.PanelType type) return IsAdminPanel(type) || type == BasePanel.PanelType.AppSettings || type == BasePanel.PanelType.AppSettingsMobile || type == BasePanel.PanelType.Sketchbook || type == BasePanel.PanelType.SketchbookMobile || - type == BasePanel.PanelType.Camera || type == BasePanel.PanelType.MemoryWarning; + type == BasePanel.PanelType.Camera || type == BasePanel.PanelType.MemoryWarning || + type == BasePanel.PanelType.Multiplayer; } // Core panels are those that exist in the basic mode experience. Practically, those that @@ -386,6 +393,7 @@ public void Init() m_MemoryWarningPanels = new List(); m_CameraPanels = new List(); m_BrushLabPanels = new List(); + m_MultiplayerPanels = new List(); m_RevealParticleParent = new GameObject("ParticlesParent"); m_RevealParticleParent.transform.parent = transform; @@ -550,6 +558,10 @@ void CreatePanel(PanelMapKey key, bool advancedPanel) { m_BrushLabPanels.Add(p); } + else if (p.Type == BasePanel.PanelType.Multiplayer) + { + m_MultiplayerPanels.Add(p); + } else if (IsAdminPanel(p.Type)) { Debug.Assert(m_AdminPanel == null, "Multiple Admin Panels are being created."); @@ -873,7 +885,8 @@ public void UpdateWandOrientationControls() (m_PanelsMode == PanelMode.Sketchbook || m_PanelsMode == PanelMode.Settings || m_PanelsMode == PanelMode.MemoryWarning || - m_PanelsMode == PanelMode.Camera); + m_PanelsMode == PanelMode.Camera || + m_PanelsMode == PanelMode.Multiplayer); if (inVisibleAltMode && App.VrSdk.AnalogIsStick(InputManager.ControllerName.Wand)) { if (m_AltModeSwipeEatStickInput) @@ -916,6 +929,10 @@ public void UpdateWandOrientationControls() { ToggleCameraPanels(); } + else if (m_PanelsMode == PanelMode.Multiplayer) + { + ToggleMultiplayerPanels(); + } } } } @@ -1162,7 +1179,8 @@ public void AttachHeldPanelToWand(BasePanel panel) if (m_PanelsMode == PanelMode.Sketchbook || m_PanelsMode == PanelMode.Settings || m_PanelsMode == PanelMode.MemoryWarning || - m_PanelsMode == PanelMode.Camera) + m_PanelsMode == PanelMode.Camera || + m_PanelsMode == PanelMode.Multiplayer) { return; } @@ -1690,6 +1708,11 @@ public void LockPanelsToController() { SetAltPanelXfFromWand(m_BrushLabPanels[i], rBaseTransform); } + + for (int i = 0; i < m_MultiplayerPanels.Count; ++i) + { + SetAltPanelXfFromWand(m_MultiplayerPanels[i], rBaseTransform); + } } // Keep admin panel locked. @@ -1803,7 +1826,10 @@ public void SetVisible(bool bVisible) { m_BrushLabPanels[i].ResetPanel(); } - + for (int i = 0; i < m_MultiplayerPanels.Count; ++i) + { + m_MultiplayerPanels[i].ResetPanel(); + } m_PanelsState = PanelsState.Exiting; } } @@ -1869,6 +1895,12 @@ public void ToggleMemoryWarningMode() } } + public void ToggleMultiplayerPanels() + { + ToggleMode(m_MultiplayerPanels, PanelMode.Multiplayer, PanelMode.StandardToMultiplayer, + PanelMode.MultiplayerToStandard); + } + // This function toggles between the 'mode' parameter and PanelMode.Standard. Currently, // transitions from a non-Standard mode to another non-Standard mode are not allowed. // toMode and fromMode define the transition modes to mode. @@ -1881,7 +1913,8 @@ void ToggleMode(List panels, PanelMode mode, PanelMode toMode, PanelM m_PanelsMode == PanelMode.SketchbookToStandard || m_PanelsMode == PanelMode.SettingsToStandard || m_PanelsMode == PanelMode.CameraToStandard || - m_PanelsMode == PanelMode.BrushLabToStandard) + m_PanelsMode == PanelMode.BrushLabToStandard || + m_PanelsMode == PanelMode.MultiplayerToStandard) { // If we're in full standard mode, reset the panels before we shrink 'em down. if (m_PanelsMode == PanelMode.Standard) @@ -1948,6 +1981,7 @@ void ForceModeScale(PanelMode mode) m_StandardScale = 0.0f; m_BrushLabScale = 0.0f; m_MemoryWarningScale = 0.0f; + m_MultiplayerScale = 0.0f; switch (mode) { @@ -1969,6 +2003,9 @@ void ForceModeScale(PanelMode mode) case PanelMode.BrushLab: m_BrushLabScale = 1.0f; break; + case PanelMode.Multiplayer: + m_MultiplayerScale = 1.0f; + break; default: Debug.LogError("PanelManager.ForceModeScale() called with unsupported mode."); break; @@ -2007,6 +2044,7 @@ void RefreshPanelsForAnimations() SetPanelListScaleAndActive(m_MemoryWarningPanels, m_MemoryWarningScale); SetPanelListScaleAndActive(m_CameraPanels, m_CameraScale); SetPanelListScaleAndActive(m_BrushLabPanels, m_BrushLabScale); + SetPanelListScaleAndActive(m_MultiplayerPanels, m_MultiplayerScale); } void SetPanelListScaleAndActive(List panels, float scale) @@ -2030,6 +2068,7 @@ void Update() case PanelMode.Settings: break; case PanelMode.MemoryWarning: break; case PanelMode.BrushLab: break; + case PanelMode.Multiplayer: break; case PanelMode.StandardToSketchbook: AnimateScaleToMode(ref m_StandardScale, ref m_SketchbookScale, PanelMode.Sketchbook); break; @@ -2051,6 +2090,12 @@ void Update() case PanelMode.StandardToBrushLab: AnimateScaleToMode(ref m_StandardScale, ref m_BrushLabScale, PanelMode.BrushLab); break; + case PanelMode.StandardToMultiplayer: + AnimateScaleToMode(ref m_StandardScale, ref m_MultiplayerScale, PanelMode.Multiplayer); + break; + case PanelMode.MultiplayerToStandard: + AnimateScaleToMode(ref m_MultiplayerScale, ref m_StandardScale, PanelMode.Standard); + break; case PanelMode.BrushLabToStandard: AnimateScaleToMode(ref m_BrushLabScale, ref m_StandardScale, PanelMode.Standard); break; diff --git a/Assets/Scripts/GUI/SketchbookButton.cs b/Assets/Scripts/GUI/SketchbookButton.cs index a8334858fd..4be0054324 100644 --- a/Assets/Scripts/GUI/SketchbookButton.cs +++ b/Assets/Scripts/GUI/SketchbookButton.cs @@ -21,6 +21,14 @@ public class SketchbookButton : OptionButton [SerializeField] private float m_AdjustDistanceAmount; [SerializeField] private Renderer m_IconRenderer; + override public void UpdateVisuals() + { + // this is ugly but for some reason even if this is set to true on the option button it gets turned to false + m_AllowUnavailable = true; + base.UpdateVisuals(); + + } + protected override void AdjustButtonPositionAndScale( float posAmount, float scaleAmount, float boxColliderGrowAmount) { diff --git a/Assets/Scripts/InfoCardAnimation.cs b/Assets/Scripts/InfoCardAnimation.cs index 66af47e99b..72185e26ce 100644 --- a/Assets/Scripts/InfoCardAnimation.cs +++ b/Assets/Scripts/InfoCardAnimation.cs @@ -284,5 +284,16 @@ void UpdateScale(float fScale) { transform.localScale = m_BaseScale * fScale; } + + public void UpdateHoldingDuration(float newDuration) + { + if (m_CurrentState == State.Holding) + { + m_HoldingStateDuration = newDuration; + m_StateTimer = 0.0f; + } + } + } -} // namespace TiltBrush + +}// namespace TiltBrush diff --git a/Assets/Scripts/Multiplayer/MultiplayerDataStructs.cs b/Assets/Scripts/Multiplayer/MultiplayerDataStructs.cs index 2401d272f0..8c7a63cdf1 100644 --- a/Assets/Scripts/Multiplayer/MultiplayerDataStructs.cs +++ b/Assets/Scripts/Multiplayer/MultiplayerDataStructs.cs @@ -23,14 +23,22 @@ public struct PlayerRigData { public Vector3 HeadPosition; public Quaternion HeadRotation; - public Vector3 HeadScale; public Vector3 ToolPosition; public Quaternion ToolRotation; + public Vector3 LeftHandPosition; + public Quaternion LeftHandRotation; + + public Vector3 RightHandPosition; + public Quaternion RightHandRotation; + public BrushData BrushData; public ExtraData ExtraData; - + public bool IsRoomOwner; + public float SceneScale; + public bool isReceivingVoiceTransmission; + public string Nickname; } [System.Serializable] @@ -46,4 +54,33 @@ public struct ExtraData { public ulong OculusPlayerId; } + + [System.Serializable] + public struct RoomCreateData + { + public string roomName; + public string roomPassword; + public bool @private; + public int maxPlayers; + public bool voiceDisabled; + } + + [System.Serializable] + public struct RoomData + { + public string roomName; + public bool @private; + public int numPlayers; + public int maxPlayers; + public bool voiceDisabled; + } + + + [System.Serializable] + public struct ConnectionUserInfo + { + public string UserId; + public string Nickname; + public string Role; + } } diff --git a/Assets/Scripts/Multiplayer/MultiplayerInterfaces.cs b/Assets/Scripts/Multiplayer/MultiplayerInterfaces.cs index a58eeb5210..3edab1b39f 100644 --- a/Assets/Scripts/Multiplayer/MultiplayerInterfaces.cs +++ b/Assets/Scripts/Multiplayer/MultiplayerInterfaces.cs @@ -13,33 +13,75 @@ // limitations under the License. using System; -using System.Numerics; using System.Threading.Tasks; using TiltBrush; -using UnityEngine; namespace OpenBrush.Multiplayer { public interface IConnectionHandler { Task Connect(); + Task JoinRoom(RoomCreateData data); + Task LeaveRoom(bool force = false); + Task Disconnect(); + ConnectionState State { get; } + ConnectionUserInfo UserInfo { get; set; } + string LastError { get; } + } - bool IsConnected(); - Task Disconnect(bool force = false); + public interface IDataConnectionHandler : IConnectionHandler + { void Update(); - + int GetPlayerCount(); + int GetNetworkedTimestampMilliseconds(); + bool GetPlayerRoomOwnershipStatus(int playerId); + void SendLargeDataToPlayer(int playerId, byte[] largeData); Task PerformCommand(BaseCommand command); + Task SendCommandToPlayer(BaseCommand command, int playerId); + Task CheckCommandReception(BaseCommand command, int playerId); + Task CheckStrokeReception(Stroke stroke, int playerId); Task UndoCommand(BaseCommand command); Task RedoCommand(BaseCommand command); Task RpcSyncToSharedAnchor(string uuid); + Task RpcStartSyncHistory(int id); + Task RpcSyncHistoryPercentage(int id, int exp, int snt); + Task RpcHistorySyncComplete(int id); + + event Action Disconnected; + + } - //ITransientData SpawnPlayer(); + public interface IVoiceConnectionHandler : IConnectionHandler + { + void Update(); + bool StartSpeaking(); + bool StopSpeaking(); + public bool isTransmitting { get; } + + } + + public enum ConnectionState + { + INITIALIZING = 0, + INITIALIZED = 1, + DISCONNECTED = 2, + DISCONNECTING = 3, + CONNECTING = 4, + AUTHENTICATING = 5, + IN_LOBBY = 6, + JOINING_ROOM = 7, + IN_ROOM = 8, + RECONNECTING = 9, + ERROR = 10, + LEAVING_ROOM = 11 } public interface ITransientData { + int PlayerId { get; set; } + bool IsSpawned { get; } void TransmitData(T data); - T RecieveData(); + T ReceiveData(); } } diff --git a/Assets/Scripts/Multiplayer/MultiplayerManager.cs b/Assets/Scripts/Multiplayer/MultiplayerManager.cs index 31e68f461a..958d264218 100644 --- a/Assets/Scripts/Multiplayer/MultiplayerManager.cs +++ b/Assets/Scripts/Multiplayer/MultiplayerManager.cs @@ -14,6 +14,8 @@ using System; using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; using UnityEngine; using OVRPlatform = Oculus.Platform; using TiltBrush; @@ -29,22 +31,77 @@ public enum MultiplayerType public class MultiplayerManager : MonoBehaviour { + public static MultiplayerManager m_Instance; public MultiplayerType m_MultiplayerType; + public event Action Disconnected; + + private IDataConnectionHandler m_Manager; + private IVoiceConnectionHandler m_VoiceManager; - private IConnectionHandler m_Manager; + public ITransientData m_LocalPlayer; + public List> m_RemotePlayers; - private ITransientData m_LocalPlayer; - private List> m_RemotePlayers; + public Action> localPlayerJoined; + public Action> remotePlayerJoined; + public Action playerLeft; + public Action> roomDataRefreshed; - public Action> localPlayerJoined; - public Action> remotePlayerJoined; + public event Action StateUpdated; + public event Action RoomOwnershipUpdated; + public event Action UserInfoStateUpdated; + + private List m_RoomData = new List(); + private double? m_NetworkOffsetTimestamp = null; ulong myOculusUserId; List oculusPlayerIds; + internal string UserId; + [HideInInspector] public string CurrentRoomName; - private bool IsConnected { get { return m_Manager != null && m_Manager.IsConnected(); } } + private ConnectionState _state; + + public ConnectionState State + { + get => _state; + private set + { + if (_state != value) + { + _state = value; + StateUpdated?.Invoke(_state); + } + } + } + + public string LastError { get; private set; } + + public ConnectionUserInfo UserInfo + { + get => m_Manager?.UserInfo ?? default; + set + { + if (m_Manager != null) + { + m_Manager.UserInfo = value; + } + } + } + private string m_oldNickName = null; + + [HideInInspector] public RoomCreateData data; + + private bool _isUserRoomOwner = false; + private bool isUserRoomOwner + { + get => _isUserRoomOwner; + set + { + _isUserRoomOwner = value; + RoomOwnershipUpdated?.Invoke(value); + } + } void Awake() { @@ -56,8 +113,8 @@ void Awake() void Start() { - OVRPlatform.Users.GetLoggedInUser()?.OnComplete((msg) => - { +#if OCULUS_SUPPORTED + OVRPlatform.Users.GetLoggedInUser()?.OnComplete((msg) => { if (!msg.IsError) { myOculusUserId = msg.GetUser().ID; @@ -69,20 +126,35 @@ void Start() Debug.LogError(msg.GetError()); } }); +#endif + State = ConnectionState.INITIALIZING; switch (m_MultiplayerType) { case MultiplayerType.Photon: -#if FUSION_WEAVER +#if MP_PHOTON m_Manager = new PhotonManager(this); -#endif // FUSION_WEAVER + m_Manager.Disconnected += OnConnectionHandlerDisconnected; + if (m_Manager != null) ControllerConsoleScript.m_Instance.AddNewLine("PhotonManager Loaded"); + else ControllerConsoleScript.m_Instance.AddNewLine("PhotonManager Not Loaded"); +#endif +#if MP_PHOTON + m_VoiceManager = new PhotonVoiceManager(this); + if (m_VoiceManager != null) ControllerConsoleScript.m_Instance.AddNewLine("PhotonVoiceManager Loaded"); + else ControllerConsoleScript.m_Instance.AddNewLine("PhotonVoiceManager Not Loaded"); +#endif break; default: return; } + if (m_VoiceManager != null && m_Manager != null) State = ConnectionState.INITIALIZED; + roomDataRefreshed += OnRoomDataRefreshed; localPlayerJoined += OnLocalPlayerJoined; remotePlayerJoined += OnRemotePlayerJoined; + playerLeft += OnPlayerLeft; + StateUpdated += UpdateSketchMemoryScriptTimeOffset; + SketchMemoryScript.m_Instance.CommandPerformed += OnCommandPerformed; SketchMemoryScript.m_Instance.CommandUndo += OnCommandUndo; SketchMemoryScript.m_Instance.CommandRedo += OnCommandRedo; @@ -90,16 +162,150 @@ void Start() void OnDestroy() { + roomDataRefreshed -= OnRoomDataRefreshed; localPlayerJoined -= OnLocalPlayerJoined; remotePlayerJoined -= OnRemotePlayerJoined; + playerLeft -= OnPlayerLeft; + StateUpdated -= UpdateSketchMemoryScriptTimeOffset; + SketchMemoryScript.m_Instance.CommandPerformed -= OnCommandPerformed; SketchMemoryScript.m_Instance.CommandUndo -= OnCommandUndo; SketchMemoryScript.m_Instance.CommandRedo -= OnCommandRedo; } - public async void Connect() + public async Task Connect() { - var result = await m_Manager.Connect(); + State = ConnectionState.CONNECTING; + + var successData = false; + if (m_Manager != null) successData = await m_Manager.Connect(); + + var successVoice = false; + if (m_VoiceManager != null) successVoice = await m_VoiceManager.Connect(); + + if (!successData) + { + State = ConnectionState.ERROR; + LastError = m_Manager.LastError; + } + else if (!successVoice) + { + State = ConnectionState.ERROR; + LastError = m_VoiceManager.LastError; + } + else State = ConnectionState.IN_LOBBY; + + + return successData & successVoice; + } + + public async Task JoinRoom(RoomCreateData RoomData) + { + State = ConnectionState.JOINING_ROOM; + + // check if room exist to determine if user is room owner + DoesRoomNameExist(RoomData.roomName); + if (!isUserRoomOwner) SketchMemoryScript.m_Instance.ClearMemory(); + + bool successData = false; + if (m_Manager != null) successData = await m_Manager.JoinRoom(RoomData); + + bool successVoice = false; + if (m_VoiceManager != null) successVoice = await m_VoiceManager.JoinRoom(RoomData); + m_VoiceManager?.StartSpeaking(); + + if (!successData) + { + State = ConnectionState.ERROR; + LastError = m_Manager.LastError; + } + else if (!successVoice) + { + State = ConnectionState.ERROR; + LastError = m_VoiceManager.LastError; + } + else State = ConnectionState.IN_ROOM; + + return successData & successVoice; + } + + public async Task LeaveRoom(bool force = false) + { + State = ConnectionState.LEAVING_ROOM; + + bool successData = false; + if (m_Manager != null) successData = await m_Manager.LeaveRoom(); + + bool successVoice = false; + m_VoiceManager?.StopSpeaking(); + if (m_VoiceManager != null) successVoice = await m_VoiceManager.LeaveRoom(); + + if (!successData) + { + State = ConnectionState.ERROR; + LastError = m_Manager.LastError; + } + else if (!successVoice) + { + State = ConnectionState.ERROR; + LastError = m_VoiceManager.LastError; + } + else State = ConnectionState.IN_LOBBY; + + return successData & successVoice; + } + + public async Task Disconnect() + { + State = ConnectionState.DISCONNECTING; + + bool successData = false; + if (m_Manager != null) successData = await m_Manager.Disconnect(); + + bool successVoice = false; + if (m_VoiceManager != null) successVoice = await m_VoiceManager.Disconnect(); + + if (!successData) + { + State = ConnectionState.ERROR; + LastError = m_Manager.LastError; + } + else if (!successVoice) + { + State = ConnectionState.ERROR; + LastError = m_VoiceManager.LastError; + } + else State = ConnectionState.DISCONNECTED; + + return successData & successVoice; + } + + public bool DoesRoomNameExist(string roomName) + { + + bool roomExist = m_RoomData.Any(room => room.roomName == roomName); + + // Room does not exist + if (!roomExist) + { + isUserRoomOwner = true; + return false; + } + + // Find the room with the given name + RoomData? room = m_RoomData.FirstOrDefault(r => r.roomName == roomName); + + // Room exists + RoomData r = (RoomData)room; + if (r.numPlayers == 0) isUserRoomOwner = true;// and is empty user becomes room owner + else isUserRoomOwner = false; // not empty user is not the room owner + + return true; + } + + void OnRoomDataRefreshed(List rooms) + { + m_RoomData = rooms; } void Update() @@ -109,11 +315,23 @@ void Update() return; } + if (State != ConnectionState.IN_ROOM) + { + m_oldNickName = null; + return; + } + m_Manager.Update(); + m_VoiceManager.Update(); // Transmit local player data relative to scene origin var headRelativeToScene = App.Scene.AsScene[App.VrSdk.GetVrCamera().transform]; var pointerRelativeToScene = App.Scene.AsScene[PointerManager.m_Instance.MainPointer.transform]; + var headScale = App.VrSdk.GetVrCamera().transform.localScale; + var leftController = InputManager.m_Instance.GetController(InputManager.ControllerName.Brush).transform; + var rightController = InputManager.m_Instance.GetController(InputManager.ControllerName.Wand).transform; + var leftHandRelativeToScene = App.Scene.AsScene[leftController]; + var rightHandRelativeToScene = App.Scene.AsScene[rightController]; var data = new PlayerRigData { @@ -121,6 +339,11 @@ void Update() HeadRotation = headRelativeToScene.rotation, ToolPosition = pointerRelativeToScene.translation, ToolRotation = pointerRelativeToScene.rotation, + LeftHandPosition = leftHandRelativeToScene.translation, + LeftHandRotation = leftHandRelativeToScene.rotation, + RightHandPosition = rightHandRelativeToScene.translation, + RightHandRotation = rightHandRelativeToScene.rotation, + BrushData = new BrushData { Color = PointerManager.m_Instance.MainPointer.GetCurrentColor(), @@ -130,9 +353,15 @@ void Update() ExtraData = new ExtraData { OculusPlayerId = myOculusUserId, - } + }, + IsRoomOwner = isUserRoomOwner, + SceneScale = App.Scene.Pose.scale, + isReceivingVoiceTransmission = m_VoiceManager.isTransmitting, + Nickname = UserInfo.Nickname //TODO: remove from PlayerRigData or encode it and use photon to retrieve the string }; + + if (m_LocalPlayer != null) { m_LocalPlayer.TransmitData(data); @@ -143,7 +372,10 @@ void Update() bool newUser = false; foreach (var player in m_RemotePlayers) { - data = player.RecieveData(); + if (!player.IsSpawned) continue; + + data = player.ReceiveData(); +#if OCULUS_SUPPORTED // New user, share the anchor with them if (data.ExtraData.OculusPlayerId != 0 && !oculusPlayerIds.Contains(data.ExtraData.OculusPlayerId)) { @@ -152,6 +384,7 @@ void Update() oculusPlayerIds.Add(data.ExtraData.OculusPlayerId); newUser = true; } +#endif // OCULUS_SUPPORTED } if (newUser) @@ -160,53 +393,158 @@ void Update() } } - void OnLocalPlayerJoined(ITransientData playerData) + void OnLocalPlayerJoined(int id, ITransientData playerData) { + // the user is the room owner if is the firt to get in + isUserRoomOwner = m_Manager.GetPlayerCount() == 1 ? true : false; + // if not room owner clear scene + if (!isUserRoomOwner) SketchMemoryScript.m_Instance.ClearMemory(); + m_LocalPlayer = playerData; + m_LocalPlayer.PlayerId = id; + } - void OnRemotePlayerJoined(ITransientData playerData) + void OnRemotePlayerJoined(int id, ITransientData playerData) { - Debug.Log("Adding new player to track."); + playerData.PlayerId = id; m_RemotePlayers.Add(playerData); + + if (isUserRoomOwner) + { + MultiplayerSceneSync.m_Instance.StartSyncronizationForUser(id); + } } - private async void OnCommandPerformed(BaseCommand command) + public void SendLargeDataToPlayer(int playerId, byte[] Data) { - if (!IsConnected) + m_Manager.SendLargeDataToPlayer(playerId, Data); + } + + + + + void OnPlayerLeft(int id) + { + if (m_LocalPlayer.PlayerId == id) { + m_LocalPlayer = null; + Debug.Log("Possible to get here!"); return; } + var copy = m_RemotePlayers.ToList(); + foreach (var player in copy) + { + if (player.PlayerId == id) + { + m_RemotePlayers.Remove(player); + } + } + + // Reassign Ownership if needed + // Check if any remaining player is the room owner + bool anyRoomOwner = m_RemotePlayers.Any(player => m_Manager.GetPlayerRoomOwnershipStatus(player.PlayerId)) + || isUserRoomOwner; + + // If there's still a room owner, no reassignment is needed + if (anyRoomOwner) return; + + // If there are no other players left, the local player becomes the room owner + if (m_RemotePlayers.Count == 0) + { + isUserRoomOwner = true; + return; + } + + // Since There are other players left + // Determine the new room owner by the lowest PlayerId + var allPlayers = new List> { m_LocalPlayer }; + allPlayers.AddRange(m_RemotePlayers); + + // Find the player with the lowest PlayerId + var newOwner = allPlayers.OrderBy(player => player.PlayerId).First(); + + // If the new owner is the local player, set the flag + if (m_LocalPlayer.PlayerId == newOwner.PlayerId) isUserRoomOwner = true; + + } + + public async void OnCommandPerformed(BaseCommand command) + { + if (State == ConnectionState.IN_ROOM) + { + await m_Manager.PerformCommand(command); + } + } - var success = await m_Manager.PerformCommand(command); + public async void SendCommandToPlayer(BaseCommand command, int playerID) + { + if (State == ConnectionState.IN_ROOM) + { + await m_Manager.SendCommandToPlayer(command, playerID); + } + } - // TODO: Proper rollback if command not possible right now. - // Commented so it doesn't interfere with general use. - // Link actions to connect/disconnect, not Unity lifecycle. + public async Task CheckCommandReception(BaseCommand command, int id) + { + if (State == ConnectionState.IN_ROOM) + { + return await m_Manager.CheckCommandReception(command, id); + } - // if (!success) - // { - // OutputWindowScript.m_Instance.CreateInfoCardAtController(InputManager.ControllerName.Brush, "Don't know how to network this action yet."); - // SketchMemoryScript.m_Instance.StepBack(false); - // } + return false; } - private void OnCommandUndo(BaseCommand command) + public async Task CheckStrokeReception(Stroke stroke, int id) { - if (IsConnected) + if (State == ConnectionState.IN_ROOM) + { + return await m_Manager.CheckStrokeReception(stroke, id); + } + + return false; + } + + public void OnCommandUndo(BaseCommand command) + { + if (State == ConnectionState.IN_ROOM) { m_Manager.UndoCommand(command); } } - private void OnCommandRedo(BaseCommand command) + public void OnCommandRedo(BaseCommand command) { - if (IsConnected) + if (State == ConnectionState.IN_ROOM) { m_Manager.RedoCommand(command); } } + public async void StartSynchHistory(int id) + { + if (State == ConnectionState.IN_ROOM) + { + await m_Manager.RpcStartSyncHistory(id); + } + } + + public async void SynchHistoryPercentage(int id, int expected, int sent) + { + if (State == ConnectionState.IN_ROOM) + { + await m_Manager.RpcSyncHistoryPercentage(id, expected, sent); + } + } + + public async void SynchHistoryComplete(int id) + { + if (State == ConnectionState.IN_ROOM) + { + await m_Manager.RpcHistorySyncComplete(id); + } + } + async void ShareAnchors() { #if OCULUS_SUPPORTED @@ -222,5 +560,85 @@ async void ShareAnchors() } #endif // OCULUS_SUPPORTED } + + private void OnConnectionHandlerDisconnected() + { + m_LocalPlayer = null;// Clean up local player reference + m_RemotePlayers.Clear();// Clean up remote player references + LastError = null; + State = ConnectionState.DISCONNECTED; + StateUpdated?.Invoke(State); + Disconnected?.Invoke();// Invoke the Disconnected event + } + + public void StartSpeaking() + { + m_VoiceManager?.StartSpeaking(); + } + + public void StopSpeaking() + { + m_VoiceManager?.StopSpeaking(); + } + + public bool IsDisconnectable() + { + + return State == ConnectionState.IN_ROOM || State == ConnectionState.IN_LOBBY; + } + + public bool IsConnectable() + { + return State == ConnectionState.INITIALIZED || State == ConnectionState.DISCONNECTED; + } + + public bool CanJoinRoom() + { + return State == ConnectionState.IN_LOBBY; + } + + public bool CanLeaveRoom() + { + return State == ConnectionState.IN_ROOM; + } + + public bool IsUserRoomOwner() + { + return isUserRoomOwner; + } + + public bool IsRemotePlayerStillConnected(int playerId) + { + if (m_RemotePlayers.Any(player => player.PlayerId == playerId)) return true; + return false; + } + + public int? GetNetworkedTimestampMilliseconds() + { + if (State == ConnectionState.IN_ROOM) + { + if (m_Manager != null) return m_Manager.GetNetworkedTimestampMilliseconds(); + } + + return null; + } + + // this only needs to be done once when the room is created + private void UpdateSketchMemoryScriptTimeOffset(ConnectionState state) + { + // Ensure the offset is set only once upon connecting as room owner + if (state == ConnectionState.IN_ROOM + && isUserRoomOwner + && m_NetworkOffsetTimestamp == null) + { + // Capture the current sketch time as the base offset for network synchronization + m_NetworkOffsetTimestamp = (int)(App.Instance.CurrentSketchTime * 1000); + SketchMemoryScript.m_Instance.SetTimeOffsetToAllStacks((int)m_NetworkOffsetTimestamp); + } + + } + + } } + diff --git a/Assets/Scripts/Multiplayer/MultiplayerSceneSync.cs b/Assets/Scripts/Multiplayer/MultiplayerSceneSync.cs new file mode 100644 index 0000000000..9c45185562 --- /dev/null +++ b/Assets/Scripts/Multiplayer/MultiplayerSceneSync.cs @@ -0,0 +1,351 @@ +// Copyright 2023 The Open Brush Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using System.Collections; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using TiltBrush; +using TMPro; +using UnityEngine; + + +namespace OpenBrush.Multiplayer +{ + public class MultiplayerSceneSync : MonoBehaviour + { + public static MultiplayerSceneSync m_Instance; + public Action onLargeDataReceived; + [HideInInspector] public int batchSize = 10; + [HideInInspector] public float delayBetweenBatches = 0.05f; + public SyncType m_SyncType = SyncType.Strokes; + [HideInInspector] public int numberOfCommandsExpected = 0; + [HideInInspector] public int numberOfCommandsSent = 0; + + private bool _isWaiting = false; + private bool _isSendingCommandHistory = false; + + + void Awake() + { + m_Instance = this; + } + + void Start() + { + onLargeDataReceived += OnLargeDataReceived; + } + + private void Update() + { + ProcessQueue(); + } + + void OnDestroy() + { + onLargeDataReceived -= OnLargeDataReceived; + } + + public void StartSyncronizationForUser(int id) + { + + switch (m_SyncType) + { + case SyncType.Strokes: + SendStrokesToPlayer(id); + break; + case SyncType.Commands: + StartCoroutine(SendCommandHistory(id)); + break; + } + + } + + #region Syncronization Logic Strokes + async void SendStrokesToPlayer(int id) + { + LinkedList strokes = SketchMemoryScript.m_Instance.GetMemoryList; + + if (strokes.Count == 0) return; + + SendCurrentTargetEnvironmentCommand(); + StartSyncProgressDisplayForSrokes(id, strokes); + const int chunkSize = 5; + List strokeList = strokes.ToList(); + + int counter = 0; + for (int i = 0; i < strokeList.Count; i += chunkSize) + { + var chunk = strokeList.Skip(i).Take(chunkSize).ToList(); + byte[] strokesData = await MultiplayerStrokeSerialization.SerializeAndCompressMemoryListAsync(chunk); + MultiplayerManager.m_Instance.SendLargeDataToPlayer(id, strokesData); + counter += chunk.Count; + //Debug.Log($"Sent {strokesData.Length} bytes of serialized stroke data (batch {(i / chunkSize) + 1}) to player {id}."); + } + } + + async void DeserializeReceivedStrokes(byte[] largeData) + { + + // Decompress and deserialize strokes asynchronously + List strokes = await MultiplayerStrokeSerialization.DecompressAndDeserializeMemoryListAsync(largeData); + + Debug.Log($"Successfully deserialized {strokes.Count} strokes."); + + // Handle the strokes (e.g., add them to the scene or memory) + foreach (var stroke in strokes) + { + BrushStrokeCommand c = new BrushStrokeCommand(stroke); + SketchMemoryScript.m_Instance.MemoryListAdd(stroke); + SketchMemoryScript.m_Instance.PerformAndRecordNetworkCommand(c, true); + } + + } + + void OnLargeDataReceived(byte[] largeData) + { + //Debug.Log($"[Multiplayer Scene Sync]Successfully received {largeData.Length} bytes from the autosave."); + + DeserializeReceivedStrokes(largeData); + } + + #endregion + + #region Syncronization Logic Commands + public void SendCurrentTargetEnvironmentCommand() + { + TiltBrush.Environment targetEnvironment = SceneSettings.m_Instance.GetDesiredPreset(); + + if (targetEnvironment != null) + { + SwitchEnvironmentCommand command = new SwitchEnvironmentCommand(targetEnvironment); + MultiplayerManager.m_Instance.OnCommandPerformed(command); + } + } + + public IEnumerator SendCommandHistory(int id) + { + if (_isWaiting) yield break; + + if (_isSendingCommandHistory) + { + _isWaiting = true; + while (_isSendingCommandHistory) + { + yield return null; + } + _isWaiting = false; + } + + _isSendingCommandHistory = true; + + + List strokesWithoutCommand = SketchMemoryScript.m_Instance.GetStrokesWithoutCommand(); + IEnumerable commands = SketchMemoryScript.m_Instance.GetAllOperations(); + + int firstCommandTimestamp = commands.Any() ? commands.First().NetworkTimestamp ?? int.MaxValue : int.MaxValue; + + CreateBrushStrokeCommands(strokesWithoutCommand, firstCommandTimestamp); // this add the strokes without commands to the IEnumerable commands + + if (commands.Count() == 0) yield break; + + SendCurrentTargetEnvironmentCommand(); + + StartSyncProgressDisplayForCommands(id, commands.ToList()); + + foreach (BaseCommand command in commands) MultiplayerManager.m_Instance.OnCommandPerformed(command); + + _isSendingCommandHistory = false; + + } + + private void CreateBrushStrokeCommands(List strokes, int LastTimestamp) + { + if (strokes == null || strokes.Count == 0) return; + + strokes = strokes.OrderBy(s => s.HeadTimestampMs).ToList(); + + uint earliestStrokeTimestampMs = strokes.First().HeadTimestampMs; + uint latestStrokeTimestampMs = strokes.Last().TailTimestampMs; + uint totalStrokeTimeMs = latestStrokeTimestampMs - earliestStrokeTimestampMs; + + if (totalStrokeTimeMs == 0) totalStrokeTimeMs = 1; + + foreach (var stroke in strokes) + { + uint strokeTimeMs = stroke.HeadTimestampMs - earliestStrokeTimestampMs; + long numerator = (long)strokeTimeMs * (LastTimestamp - 1); + int timestamp = (int)(numerator / totalStrokeTimeMs); + + if (timestamp >= LastTimestamp) + { + timestamp = LastTimestamp - 1; + } + + BrushStrokeCommand command = new BrushStrokeCommand(stroke, Guid.NewGuid(), timestamp); + SketchMemoryScript.m_Instance.AddCommandToNetworkStack(command); + } + } + + #endregion + + #region Remote infoCard commands + + public async void StartSyncProgressDisplayForSrokes(int TargetPlayerId, LinkedList strokes) + { + StartSynchHistory(TargetPlayerId); + + int sentStrokes = 0; + + foreach (var stroke in strokes) + { + + while (await MultiplayerManager.m_Instance.CheckStrokeReception(stroke, TargetPlayerId)) + { + await Task.Delay(200); + } + + sentStrokes++; + SynchHistoryPercentage(TargetPlayerId, strokes.Count, sentStrokes); + } + + SynchHistoryComplete(TargetPlayerId); + } + + public async void StartSyncProgressDisplayForCommands(int TargetPlayerId, List commands) + { + StartSynchHistory(TargetPlayerId); + + int sentStrokes = 0; + foreach (var command in commands) + { + while (await MultiplayerManager.m_Instance.CheckCommandReception(command, TargetPlayerId)) + { + await Task.Delay(200); + } + sentStrokes++; + SynchHistoryPercentage(TargetPlayerId, commands.Count, sentStrokes); + } + + SynchHistoryComplete(TargetPlayerId); + } + + private void StartSynchHistory(int id) + { + MultiplayerManager.m_Instance.StartSynchHistory(id); + } + + private void SynchHistoryPercentage(int id, int expected, int sent) + { + MultiplayerManager.m_Instance.SynchHistoryPercentage(id, expected, sent); + } + + private void SynchHistoryComplete(int id) + { + MultiplayerManager.m_Instance.SynchHistoryComplete(id); + } + + + #endregion + + #region Local infoCard commands + + private readonly object infoCardLock = new object(); + private ConcurrentQueue messageQueue = new ConcurrentQueue(); + private InfoCardAnimation infoCard; + + private void EnqueueMessage(string message) + { + messageQueue.Enqueue(message); + } + + private void ProcessQueue() //once per frame + { + if (messageQueue.TryDequeue(out string message)) + { + if (infoCard == null) + { + DisplaySynchInfo(message); + } + else + { + UpdateInfoCard(message); + } + } + } + + private void DisplaySynchInfo(string text) + { + if (infoCard == null) + { + OutputWindowScript.m_Instance.CreateInfoCardAtController( + InputManager.ControllerName.Brush, + text, + fPopScalar: 1.0f + ); + infoCard = RetrieveInfoCard(); + } + else + { + UpdateInfoCard(text); + } + } + + private void UpdateInfoCard(string text) + { + infoCard.GetComponentInChildren().text = text; + infoCard.UpdateHoldingDuration(5f); + } + + private InfoCardAnimation RetrieveInfoCard() + { + InfoCardAnimation[] allInfoCards = FindObjectsOfType(); + foreach (var card in allInfoCards) + { + TextMeshPro textComponent = card.GetComponentInChildren(); + if (textComponent != null && textComponent.text.Contains("Sync")) + { + return card; + } + } + return null; + } + + public void StartSynchInfo() + { + EnqueueMessage("Sync Started!"); + } + public void SynchInfoPercentageUpdate() + { + int percentage = (int)((float)SketchMemoryScript.AllStrokesCount() / numberOfCommandsExpected * 100); + EnqueueMessage($"Sync {percentage}%"); + } + + public void HideSynchInfo() + { + EnqueueMessage("Sync Ended!"); + } + + #endregion + + } + + public enum SyncType + { + Strokes, + Commands + } +} \ No newline at end of file diff --git a/Assets/Scripts/Multiplayer/MultiplayerSceneSync.cs.meta b/Assets/Scripts/Multiplayer/MultiplayerSceneSync.cs.meta new file mode 100644 index 0000000000..b3b7a5b0c1 --- /dev/null +++ b/Assets/Scripts/Multiplayer/MultiplayerSceneSync.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a751437a9d2b2724584655aaead0ddfe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Multiplayer/MultiplayerStrokeSerialization.cs b/Assets/Scripts/Multiplayer/MultiplayerStrokeSerialization.cs new file mode 100644 index 0000000000..be8cf21d71 --- /dev/null +++ b/Assets/Scripts/Multiplayer/MultiplayerStrokeSerialization.cs @@ -0,0 +1,162 @@ +// Copyright 2023 The Open Brush Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using UnityEngine; +using TiltBrush; +using System.Threading.Tasks; +using System.Linq; + +namespace OpenBrush.Multiplayer +{ + public static class MultiplayerStrokeSerialization + { + public static async Task SerializeAndCompressMemoryListAsync(List memoryList) + { + byte[] serializedData = await SerializeMemoryList(memoryList); + return await Compress(serializedData); + } + + public static async Task> DecompressAndDeserializeMemoryListAsync(byte[] compressedData) + { + byte[] decompressedData = await Decompress(compressedData); + return await DeserializeMemoryList(decompressedData); + } + + // Serializes a LinkedList of Strokes into a byte array using SketchWriter. + // We did not event anything new we are using SketchWriter.WriteMemory from TiltBrush. + public static async Task SerializeMemoryList(List strokeList) + { + try + { + var strokeSnapshots = SketchWriter.EnumerateAdjustedSnapshots(strokeList).ToList(); + using (var memoryStream = new MemoryStream()) + { + SketchWriter.WriteMemory(memoryStream, strokeSnapshots, new GroupIdMapping()); + Debug.Log($"Serialization complete. Serialized data size: {memoryStream.Length} bytes."); + return memoryStream.ToArray(); + } + } + catch (Exception ex) + { + Debug.LogError($"Error during serialization: {ex.Message}"); + throw; + } + } + + // Deserializes a byte array into a List of Strokes using SketchWriter. + // We did not event anything new we are using SketchWriter.GetStrokes from TiltBrush. + public static async Task> DeserializeMemoryList(byte[] data) + { + try + { + using (var memoryStream = new MemoryStream(data)) + { + var oldGroupToNewGroup = new Dictionary(); + var strokes = SketchWriter.GetStrokes(memoryStream, allowFastPath: true); + + if (strokes != null) + { + Debug.Log($"Successfully deserialized {strokes.Count} strokes from network."); + return strokes; + } + else + { + Debug.LogError("Failed to deserialize strokes."); + return null; + } + } + } + catch (Exception ex) + { + Debug.LogError($"Error during deserialization: {ex.Message}"); + throw; + } + } + + public static Guid[] GetBrushGuidsFromManifest() + { + // List to store brush GUIDs + List brushGuids = new List(); + + // Iterate through each unique brush in the manifest + foreach (BrushDescriptor brush in App.Instance.ManifestFull.UniqueBrushes()) + { + if (brush != null) + { + // Add the brush GUID to the list + brushGuids.Add(brush.m_Guid); + Debug.Log($"Brush: {brush.name}, GUID: {brush.m_Guid}"); + } + else + { + Debug.LogWarning("Encountered a null brush descriptor."); + } + } + + return brushGuids.ToArray(); + } + + // Compresses a byte array using Brotli. + public static async Task Compress(byte[] data) + { + try + { + return await Task.Run(() => + { + using var outputStream = new MemoryStream(); + using var brotliStream = new BrotliStream(outputStream, CompressionMode.Compress, leaveOpen: true); + + brotliStream.Write(data, 0, data.Length); + brotliStream.Flush(); + + Debug.Log($"Compression complete. Compressed data size: {outputStream.Length} bytes."); + + return outputStream.ToArray(); + }); + } + catch (Exception ex) + { + Debug.LogError($"Error during compression: {ex.Message}"); + throw; + } + } + + // Decompresses a Brotli-compressed byte array. + public static async Task Decompress(byte[] compressedData) + { + try + { + return await Task.Run(() => + { + using var input = new MemoryStream(compressedData); + using var brotli = new BrotliStream(input, CompressionMode.Decompress); + using var output = new MemoryStream(); + brotli.CopyTo(output); + Debug.Log($"Decompression complete. Decompressed data size: {output.Length} bytes."); + return output.ToArray(); + }); + } + catch (Exception ex) + { + Debug.LogError($"Error during decompression: {ex.Message}"); + throw; + } + } + + } +} diff --git a/Assets/Scripts/Multiplayer/MultiplayerStrokeSerialization.cs.meta b/Assets/Scripts/Multiplayer/MultiplayerStrokeSerialization.cs.meta new file mode 100644 index 0000000000..23af851873 --- /dev/null +++ b/Assets/Scripts/Multiplayer/MultiplayerStrokeSerialization.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28356a88a4666d446ba7b0510b0d2620 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Multiplayer/Photon/NetworkingConstants.cs b/Assets/Scripts/Multiplayer/Photon/NetworkingConstants.cs new file mode 100644 index 0000000000..365c0b0523 --- /dev/null +++ b/Assets/Scripts/Multiplayer/Photon/NetworkingConstants.cs @@ -0,0 +1,42 @@ +// Copyright 2023 The Open Brush Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if FUSION_WEAVER + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace OpenBrush.Multiplayer +{ + public static class NetworkingConstants + { + // Maximum capacity for NetworkedStroke's NetworkArrays + public const int MaxControlPointsPerChunk = 10; + + // each control point is 36 bytes: + + // public Vector3 m_Pos 12 bytes (3 floats x 4 bytes each) + // public Quaternion m_Orient 16 bytes (4 floats x 4 bytes each) + // public float m_Pressure 4 bytes + // public uint m_TimestampMs 4 bytes + + // Given the maximum payload size of 512 bytes for Fusion RPCs + // (let's assume approximately 50 bytes for overhead) + // we can fit 12 control points in a single RPC + + } +} + +#endif // FUSION_WEAVER diff --git a/Assets/Scripts/Multiplayer/Photon/NetworkingConstants.cs.meta b/Assets/Scripts/Multiplayer/Photon/NetworkingConstants.cs.meta new file mode 100644 index 0000000000..d3b014b699 --- /dev/null +++ b/Assets/Scripts/Multiplayer/Photon/NetworkingConstants.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47b83bde77ea0944890c05128ca9f8a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Multiplayer/Photon/PhotonManager.cs b/Assets/Scripts/Multiplayer/Photon/PhotonManager.cs index 579b06bc88..dbcea03c33 100644 --- a/Assets/Scripts/Multiplayer/Photon/PhotonManager.cs +++ b/Assets/Scripts/Multiplayer/Photon/PhotonManager.cs @@ -12,158 +12,388 @@ // See the License for the specific language governing permissions and // limitations under the License. -#if FUSION_WEAVER +#if MP_PHOTON using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using UnityEngine; using Fusion; using Fusion.Photon.Realtime; using Fusion.Sockets; using TiltBrush; -using System.Linq; +using UnityEditor; +using UnityEngine.SceneManagement; + namespace OpenBrush.Multiplayer { - public class PhotonManager : IConnectionHandler, INetworkRunnerCallbacks + public class PhotonManager : IDataConnectionHandler, INetworkRunnerCallbacks { - private NetworkRunner m_Runner; - MultiplayerManager m_Manager; - - List m_PlayersSpawning; + private NetworkRunner m_Runner; + private MultiplayerManager m_Manager; + private List m_PlayersSpawning; + private PhotonPlayerRig m_LocalPlayer; + private FusionAppSettings m_PhotonAppSettings; + private int sequenceNumber = 0; + public event Action Disconnected; - PhotonPlayerRig m_LocalPlayer; + public ConnectionUserInfo UserInfo { get; set; } + public ConnectionState State { get; private set; } + public string LastError { get; private set; } public PhotonManager(MultiplayerManager manager) { m_Manager = manager; m_PlayersSpawning = new List(); + + Init(); + + m_PhotonAppSettings = new FusionAppSettings + { + AppIdFusion = App.Config.PhotonFusionSecrets.ClientId, + FixedRegion = "", + }; } - public async Task Connect() + public async Task Init() { - if(m_Runner != null) + try { - GameObject.Destroy(m_Runner); + State = ConnectionState.INITIALIZING; + var runnerGO = new GameObject("Photon Network Components"); + m_Runner = runnerGO.AddComponent(); + m_Runner.gameObject.AddComponent(); + m_Runner.ProvideInput = true; + m_Runner.AddCallbacks(this); + + Log.LogLevel = Fusion.LogType.Error; + + } + catch (Exception ex) + { + State = ConnectionState.ERROR; + LastError = $"[PhotonManager] Failed to Initialize lobby: {ex.Message}"; + ControllerConsoleScript.m_Instance.AddNewLine(LastError); + return false; } - var runnerGO = new GameObject("Photon Network Components"); + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonManager] Runner Initialized"); + State = ConnectionState.INITIALIZED; + return true; + } - m_Runner = runnerGO.AddComponent(); - m_Runner.ProvideInput = true; - m_Runner.AddCallbacks(this); + public void Update() + { + var copy = m_PlayersSpawning.ToList(); + foreach (var player in copy) + { + var newPlayer = m_Runner.GetPlayerObject(player); + if (newPlayer != null) + { + m_Manager.remotePlayerJoined?.Invoke(player.RawEncoded, newPlayer.GetComponent()); + m_PlayersSpawning.Remove(player); + } + } + } + + #region IConnectionHandler Methods + + public async Task Connect() + { + State = ConnectionState.CONNECTING; + + await Task.Yield(); + + var result = await m_Runner.JoinSessionLobby(SessionLobby.Shared, customAppSettings: m_PhotonAppSettings); - var appSettings = new AppSettings + if (result.Ok) { - AppIdFusion = App.Config.PhotonFusionSecrets.ClientId, - // Need this set for some reason - FixedRegion = "", - }; + State = ConnectionState.IN_LOBBY; + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonManager] Connected to lobby"); + } + else + { + State = ConnectionState.ERROR; + LastError = $"[PhotonManager] Failed to join lobby: {result.ErrorMessage}"; + ControllerConsoleScript.m_Instance.AddNewLine(LastError); + } + + return result.Ok; + } + + public async Task JoinRoom(RoomCreateData roomCreateData) + { + + if (m_Runner == null) Init(); + + State = ConnectionState.JOINING_ROOM; + + var sceneRef = SceneRef.FromIndex(SceneManager.GetActiveScene().buildIndex); + + var sceneInfo = new NetworkSceneInfo(); + sceneInfo.AddSceneRef(sceneRef, LoadSceneMode.Single); var args = new StartGameArgs() { GameMode = GameMode.Shared, - SessionName = "OpenBrushMultiplayerTest", - CustomPhotonAppSettings = appSettings, - SceneManager = m_Runner.gameObject.AddComponent(), - Scene = UnityEngine.SceneManagement.SceneManager.GetActiveScene().buildIndex, + SessionName = roomCreateData.roomName, + CustomPhotonAppSettings = m_PhotonAppSettings, + PlayerCount = roomCreateData.maxPlayers != 0 ? roomCreateData.maxPlayers : null, + SceneManager = m_Runner.gameObject.GetComponent(), + Scene = sceneInfo, // Pass the configured NetworkSceneInfo }; var result = await m_Runner.StartGame(args); + //m_Runner.ReliableDataSendRate = 60; + //m_Runner.Config.Network.ReliableDataTransferModes = NetworkConfiguration.ReliableDataTransfers.ClientToClientWithServerProxy; + + if (result.Ok) + { + // Verify if the room is actually full + int currentPlayerCount = m_Runner.SessionInfo.PlayerCount; + int? maxPlayerCount = m_Runner.SessionInfo.MaxPlayers; + maxPlayerCount = maxPlayerCount == null ? int.MaxValue : maxPlayerCount; + + if (currentPlayerCount >= maxPlayerCount) + { + State = ConnectionState.ERROR; + LastError = "[PhotonManager] Room is full."; + ControllerConsoleScript.m_Instance.AddNewLine(LastError); + Disconnect(); + return false; + } + + State = ConnectionState.IN_ROOM; + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonManager] Joined Room"); + UserInfo = new ConnectionUserInfo { + Nickname = UserInfo.Nickname, + UserId = m_Runner.UserId, + Role = UserInfo.Role, + }; + } + else + { + State = ConnectionState.ERROR; + LastError = $"[PhotonManager] Failed to join Room: {result.ErrorMessage}"; + ControllerConsoleScript.m_Instance.AddNewLine(LastError); + } return result.Ok; - + } - public bool IsConnected() + public async Task Disconnect() { - if(m_Runner == null) + State = ConnectionState.DISCONNECTING; + + if (m_Runner != null) { - return false; + + if (m_LocalPlayer != null) + { + m_Runner.Despawn(m_LocalPlayer.Object); + m_LocalPlayer = null; + } + m_PlayersSpawning.Clear(); + + await m_Runner.Shutdown(forceShutdownProcedure: false); + GameObject.Destroy(m_Runner.gameObject); + + if (m_Runner.IsShutdown) + { + State = ConnectionState.DISCONNECTED; + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonManager] Disconnected successfully"); + UserInfo = new ConnectionUserInfo + { + Nickname = UserInfo.Nickname, + UserId = m_Runner.UserId, + Role = UserInfo.Role, + }; + } + else + { + State = ConnectionState.ERROR; + LastError = $"[PhotonManager] Failed to disconnect"; + ControllerConsoleScript.m_Instance.AddNewLine(LastError); + } + + return m_Runner.IsShutdown; } - return m_Runner.IsRunning; + return true; } - public async Task Disconnect(bool force) + public async Task LeaveRoom(bool force) { - if(m_Runner != null) + + if (m_Runner != null) { - await m_Runner.Shutdown(forceShutdownProcedure: force); - return m_Runner.IsShutdown; + bool success = await Disconnect(); + if (!success) return false; + success = await Connect(); + if (!success) return false; + return true; } - return true; + return false; + } - public void Update() + #endregion + + #region IDataConnectionHandler Methods + + public int GetPlayerCount() { - var copy = m_PlayersSpawning.ToList(); - foreach (var player in copy) + if (m_Runner != null) { - var newPlayer = m_Runner.GetPlayerObject(player); - if (newPlayer != null) - { - m_Manager.remotePlayerJoined?.Invoke(newPlayer.GetComponent()); - m_PlayersSpawning.Remove(player); - } + return m_Runner.SessionInfo.PlayerCount; } + return 0; + } + + public int GetNetworkedTimestampMilliseconds() + { + int tickRate = m_Runner.TickRate; // Access TickRate from Config directly + int networkTimeMilliseconds = (int)((m_Runner.Tick * 1000) / (double)tickRate); // Use m_Runner.Tick directly + return networkTimeMilliseconds; + } + + public bool GetPlayerRoomOwnershipStatus(int playerId) + { + var remotePlayer = m_PlayersSpawning + .Select(playerRef => m_Runner.GetPlayerObject(playerRef)?.GetComponent()) + .FirstOrDefault(playerRig => playerRig != null && playerRig.PlayerId == playerId); + + if (remotePlayer != null && remotePlayer.Object != null && remotePlayer.Object.IsValid) + return remotePlayer.IsRoomOwner; + else return false; } -#region IConnectionHandler Methods public async Task PerformCommand(BaseCommand command) { await Task.Yield(); - return ProcessCommand(command);; + return ProcessCommand(command); + } + + public async Task SendCommandToPlayer(BaseCommand command, int playerId) + { + await Task.Yield(); + PlayerRef playerRef = PlayerRef.FromEncoded(playerId); + return ProcessCommand(command, playerRef); + } + + public async Task CheckCommandReception(BaseCommand command, int playerId) + { + PlayerRef targetPlayer = PlayerRef.FromEncoded(playerId); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.RPC_CheckCommand(m_Runner, command.Guid, m_Runner.LocalPlayer, targetPlayer); }); + return await PhotonRPC.WaitForAcknowledgment(command.Guid); + } + + public async Task CheckStrokeReception(Stroke stroke, int playerId) + { + PlayerRef targetPlayer = PlayerRef.FromEncoded(playerId); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.RPC_CheckStroke(m_Runner, stroke.m_Guid, m_Runner.LocalPlayer, targetPlayer); }); + return await PhotonRPC.WaitForAcknowledgment(stroke.m_Guid); } public async Task UndoCommand(BaseCommand command) { - PhotonRPC.RPC_Undo(m_Runner, command.GetType().ToString()); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.RPC_Undo(m_Runner, command.GetType().ToString()); }); await Task.Yield(); return true; } public async Task RedoCommand(BaseCommand command) { - PhotonRPC.RPC_Redo(m_Runner, command.GetType().ToString()); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.RPC_Redo(m_Runner, command.GetType().ToString());}); await Task.Yield(); return true; } public async Task RpcSyncToSharedAnchor(string uuid) { - PhotonRPC.RPC_SyncToSharedAnchor(m_Runner, uuid); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.RPC_SyncToSharedAnchor(m_Runner, uuid); }); + await Task.Yield(); + return true; + } + + public async Task RpcStartSyncHistory(int id) + { + PlayerRef playerRef = PlayerRef.FromEncoded(id); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.RPC_StartHistorySync(m_Runner, playerRef); }); + await Task.Yield(); + return true; + } + + public async Task RpcHistorySyncComplete(int id) + { + PlayerRef playerRef = PlayerRef.FromEncoded(id); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.RPC_HistorySyncCompleted(m_Runner, playerRef);}); + await Task.Yield(); + return true; + } + + public async Task RpcSyncHistoryPercentage(int id, int exp, int snt) + { + PlayerRef playerRef = PlayerRef.FromEncoded(id); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.RPC_HistoryPercentageUpdate(m_Runner, playerRef, exp, snt);}); await Task.Yield(); return true; } -#endregion -#region Command Methods - private bool ProcessCommand(BaseCommand command) + public void SendLargeDataToPlayer(int playerId, byte[] largeData) + { + sequenceNumber++; + PlayerRef playerRef = PlayerRef.FromEncoded(playerId); + int dataHash = largeData.GetHashCode(); + var key = ReliableKey.FromInts(playerId, sequenceNumber, dataHash, 0); + m_Runner.SendReliableDataToPlayer(playerRef, key, largeData); + } + + #endregion + + #region Command Methods + private bool ProcessCommand(BaseCommand command, PlayerRef playerRef = default) { bool success = true; - switch(command) + + switch (command) { case BrushStrokeCommand: - success = CommandBrushStroke(command as BrushStrokeCommand); + success &= CommandBrushStroke(command as BrushStrokeCommand, playerRef); break; case DeleteStrokeCommand: - success = CommandDeleteStroke(command as DeleteStrokeCommand); + success &= CommandDeleteStroke(command as DeleteStrokeCommand, playerRef); + break; + case SwitchEnvironmentCommand: + success &= CommandSwitchEnvironment(command as SwitchEnvironmentCommand, playerRef); break; case BaseCommand: - success = CommandBase(command); + success &= CommandBase(command); break; default: - // Don't know how to process this command success = false; break; } - if(command.ChildrenCount > 0) + if (command.ChildrenCount > 0) { - foreach(var child in command.Children) + foreach (var child in command.Children) { + if (child.ParentGuid == Guid.Empty) + { + child.SetParent(command); + } success &= ProcessCommand(child); } } @@ -171,110 +401,193 @@ private bool ProcessCommand(BaseCommand command) return success; } - private bool CommandBrushStroke(BrushStrokeCommand command) + private bool CommandBrushStroke(BrushStrokeCommand command, PlayerRef playerRef = default) { var stroke = command.m_Stroke; + int maxPointsPerChunk = NetworkingConstants.MaxControlPointsPerChunk; - if (stroke.m_ControlPoints.Length > 128) - { - // Split and Send - int numSplits = stroke.m_ControlPoints.Length / 128; + int totalPoints = stroke.m_ControlPoints.Length; - var firstStroke = new Stroke(stroke) - { - m_ControlPoints = stroke.m_ControlPoints.Take(128).ToArray(), - m_ControlPointsToDrop = stroke.m_ControlPointsToDrop.Take(128).ToArray() - }; + // Calculate how many chunks in total we need, including the initial one. + int numberOfChunks = (int)Math.Ceiling((double)totalPoints / maxPointsPerChunk); - var netStroke = new NetworkedStroke().Init(firstStroke); + // If we can fit everything in a single message: + if (numberOfChunks == 1) + { + // Send it all at once as a full stroke + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.Send_BrushStrokeFull( m_Runner,new NetworkedStroke().Init(stroke),command.Guid, (int)command.NetworkTimestamp, command.ParentGuid, command.ChildrenCount ); }); + return true; + } - var strokeGuid = Guid.NewGuid(); + // More than one chunk: break it down. - // First Stroke - PhotonRPC.RPC_BrushStrokeBegin(m_Runner, strokeGuid, netStroke, stroke.m_ControlPoints.Length); + // Prepare the first chunk + int firstChunkSize = Math.Min(maxPointsPerChunk, totalPoints); + var firstStroke = new Stroke(stroke) + { + m_ControlPoints = stroke.m_ControlPoints.Take(firstChunkSize).ToArray(), + m_ControlPointsToDrop = stroke.m_ControlPointsToDrop.Take(firstChunkSize).ToArray() + }; - // Middle - for (int rounds = 1; rounds < numSplits + 1; ++rounds) - { - var controlPoints = stroke.m_ControlPoints.Skip(rounds*128).Take(128).ToArray(); - var dropPoints = stroke.m_ControlPointsToDrop.Skip(rounds*128).Take(128).ToArray(); + var netStroke = new NetworkedStroke().Init(firstStroke); + var strokeGuid = Guid.NewGuid(); - var netControlPoints = new NetworkedControlPoint[controlPoints.Length]; + // Send the initial Begin call + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.Send_BrushStrokeBegin( m_Runner, strokeGuid, netStroke, totalPoints);}); - for (int point = 0; point < controlPoints.Length; ++ point) - { - netControlPoints[point] = new NetworkedControlPoint().Init(controlPoints[point]); - } + // Send the middle "Continue" chunks (if any) + for (int chunkIndex = 1; chunkIndex < numberOfChunks; chunkIndex++) + { + int offset = chunkIndex * maxPointsPerChunk; + int chunkSize = Math.Min(maxPointsPerChunk, totalPoints - offset); + + // Extract this chunk of control points and drop flags + var controlPoints = stroke.m_ControlPoints.Skip(offset).Take(chunkSize).ToArray(); + var dropPoints = stroke.m_ControlPointsToDrop.Skip(offset).Take(chunkSize).ToArray(); - PhotonRPC.RPC_BrushStrokeContinue(m_Runner, strokeGuid, rounds * 128, netControlPoints, dropPoints); + // Convert to NetworkedControlPoint + var netControlPoints = new NetworkedControlPoint[chunkSize]; + for (int i = 0; i < chunkSize; ++i) + { + netControlPoints[i] = new NetworkedControlPoint().Init(controlPoints[i]); } - // End - PhotonRPC.RPC_BrushStrokeComplete(m_Runner, strokeGuid, command.Guid, command.ParentGuid, command.ChildrenCount); - } - else - { - // Can send in one. - PhotonRPC.RPC_BrushStrokeFull(m_Runner, new NetworkedStroke().Init(command.m_Stroke), command.Guid, command.ParentGuid, command.ChildrenCount); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.Send_BrushStrokeContinue(m_Runner,strokeGuid, offset,netControlPoints,dropPoints);}); } + + // After all chunks have been sent, send the Complete call + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.Send_BrushStrokeComplete( m_Runner,strokeGuid, command.Guid, (int)command.NetworkTimestamp, command.ParentGuid, command.ChildrenCount ); }); + return true; } + private bool CommandBase(BaseCommand command) { - PhotonRPC.RPC_BaseCommand(m_Runner, command.Guid, command.ParentGuid, command.ChildrenCount); + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.Send_BaseCommand(m_Runner, command.Guid, command.ParentGuid, command.ChildrenCount); }); + return true; + } + + private bool CommandDeleteStroke(DeleteStrokeCommand command, PlayerRef playerRef = default) + { + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.Send_DeleteStroke(m_Runner, command.m_TargetStroke.m_Seed, command.Guid, (int)command.NetworkTimestamp, command.ParentGuid, command.ChildrenCount, playerRef); }); return true; } - private bool CommandDeleteStroke(DeleteStrokeCommand command) + private bool CommandSwitchEnvironment(SwitchEnvironmentCommand command, PlayerRef playerRef = default) { - PhotonRPC.RPC_DeleteStroke(m_Runner, command.m_TargetStroke.m_Seed, command.Guid, command.ParentGuid, command.ChildrenCount); + Guid environmentGuid = command.m_NextEnvironment.m_Guid; + PhotonRPCBatcher.EnqueueRPC(() => + { PhotonRPC.Send_SwitchEnvironment(m_Runner, environmentGuid, command.Guid, (int)command.NetworkTimestamp, command.ParentGuid, command.ChildrenCount, playerRef); }); return true; } -#endregion + #endregion + + #region Photon Callbacks -#region Photon Callbacks public void OnConnectedToServer(NetworkRunner runner) { - var rpc = m_Runner.gameObject.AddComponent(); - m_Runner.AddSimulationBehaviour(rpc); + var rpc = runner.gameObject.AddComponent(); } public void OnPlayerJoined(NetworkRunner runner, PlayerRef player) { - if(player == m_Runner.LocalPlayer) + + try { - var playerPrefab = Resources.Load("Multiplayer/Photon/PhotonPlayerRig") as GameObject; - var playerObj = m_Runner.Spawn(playerPrefab, inputAuthority: m_Runner.LocalPlayer); - m_LocalPlayer = playerObj.GetComponent(); - m_Runner.SetPlayerObject(m_Runner.LocalPlayer, playerObj); - - m_Manager.localPlayerJoined?.Invoke(m_LocalPlayer); + if (player == m_Runner.LocalPlayer) + { + var playerPrefab = Resources.Load("Multiplayer/Photon/PhotonPlayerRig") as GameObject; + var playerObj = m_Runner.Spawn(playerPrefab, inputAuthority: m_Runner.LocalPlayer); + m_LocalPlayer = playerObj.GetComponent(); + m_Runner.SetPlayerObject(m_Runner.LocalPlayer, playerObj); + m_Manager.localPlayerJoined?.Invoke(player.RawEncoded, m_LocalPlayer); + } + else + { + m_PlayersSpawning.Add(player); + } } - else + catch (Exception ex) + { + Debug.LogError($"Exception in OnPlayerJoined: {ex.Message}"); + } + } + + public void OnPlayerLeft(NetworkRunner runner, PlayerRef player) + { + m_Manager.playerLeft?.Invoke(player.RawEncoded); + } + + public void OnSessionListUpdated(NetworkRunner runner, List sessionList) + { + var roomData = new List(); + foreach (var session in sessionList) + { + RoomData data = new RoomData() + { + roomName = session.Name, + @private = session.IsOpen, + numPlayers = session.PlayerCount, + maxPlayers = session.MaxPlayers + }; + + roomData.Add(data); + } + + m_Manager.roomDataRefreshed?.Invoke(roomData); + } + + public void OnReliableDataReceived(NetworkRunner runner, PlayerRef player, ReliableKey key, ArraySegment data) + { + //Debug.Log("Server received complete reliable data"); + + byte[] receivedData = data.Array; + if (receivedData == null || receivedData.Length == 0) { - m_PlayersSpawning.Add(player); + Debug.LogWarning("Received data is null or empty."); + return; } + + MultiplayerSceneSync.m_Instance.onLargeDataReceived?.Invoke(receivedData); + } + + public void OnReliableDataProgress(NetworkRunner runner, PlayerRef player, ReliableKey key, float progress) + { + + //Debug.Log("Server received Partial reliable data"); } -#endregion -#region Unused Photon Callbacks - public void OnPlayerLeft(NetworkRunner runner, PlayerRef player) { } - public void OnShutdown(NetworkRunner runner, ShutdownReason shutdownReason) { } + #endregion + + #region Unused Photon Callbacks + public void OnShutdown(NetworkRunner runner, ShutdownReason shutdownReason) + { + Disconnected?.Invoke(); + } public void OnDisconnectedFromServer(NetworkRunner runner) { } public void OnConnectFailed(NetworkRunner runner, NetAddress remoteAddress, NetConnectFailedReason reason) { } public void OnInput(NetworkRunner runner, NetworkInput input) { } public void OnInputMissing(NetworkRunner runner, PlayerRef player, NetworkInput input) { } public void OnConnectRequest(NetworkRunner runner, NetworkRunnerCallbackArgs.ConnectRequest request, byte[] token) { } public void OnUserSimulationMessage(NetworkRunner runner, SimulationMessagePtr message) { } - public void OnSessionListUpdated(NetworkRunner runner, List sessionList) { } public void OnCustomAuthenticationResponse(NetworkRunner runner, Dictionary data) { } public void OnHostMigration(NetworkRunner runner, HostMigrationToken hostMigrationToken) { } public void OnReliableDataReceived(NetworkRunner runner, PlayerRef player, ArraySegment data) { } public void OnSceneLoadDone(NetworkRunner runner) { } public void OnSceneLoadStart(NetworkRunner runner) { } -#endregion + public void OnObjectExitAOI(NetworkRunner runner, NetworkObject obj, PlayerRef player) { } + public void OnObjectEnterAOI(NetworkRunner runner, NetworkObject obj, PlayerRef player) { } + public void OnDisconnectedFromServer(NetworkRunner runner, NetDisconnectReason reason) { } + + #endregion } } diff --git a/Assets/Scripts/Multiplayer/Photon/PhotonPlayerRig.cs b/Assets/Scripts/Multiplayer/Photon/PhotonPlayerRig.cs index 40a9e81912..6e6f167d89 100644 --- a/Assets/Scripts/Multiplayer/Photon/PhotonPlayerRig.cs +++ b/Assets/Scripts/Multiplayer/Photon/PhotonPlayerRig.cs @@ -17,6 +17,9 @@ using UnityEngine; using Fusion; using TiltBrush; +using System; +using System.Collections; +using TMPro; namespace OpenBrush.Multiplayer { @@ -33,33 +36,108 @@ public class PhotonPlayerRig : NetworkBehaviour, ITransientData [Networked] private float brushSize { get; set; } [Networked] private NetworkString<_64> brushGuid { get; set; } [Networked] public ulong oculusPlayerId { get; set; } + [Networked] public bool IsRoomOwner { get; set; } + [Networked] public float SceneScale { get; set; } + [Networked] public bool isReceivingVoiceTransmission { get; set; } + [Networked] public string Nickname { get; set; } PointerScript transientPointer; // The offset transforms. [SerializeField] private Transform headTransform; + [SerializeField] private Transform rightHandTransform; + [SerializeField] private Transform leftHandTransform; + // The 3D model of the headset + [SerializeField] private Renderer HMDMeshRenderer; + // The Nickname of the player + [SerializeField] private TextMeshPro NicknameText; + private PlayerRigData transmitData; + private Color originalColor; + private Coroutine fadeCoroutine; + + private bool m_IsSpawned = false; + public bool IsSpawned => m_IsSpawned; + + public int m_PlayerId; + + public int PlayerId + { + get { return m_PlayerId; } + set { m_PlayerId = value; } + } + + public GameObject m_LeftControllerModel; + public GameObject m_RightControllerModel; public void TransmitData(PlayerRigData data) { transmitData = data; oculusPlayerId = data.ExtraData.OculusPlayerId; - brushColor = data.BrushData.Color; brushSize = data.BrushData.Size; brushGuid = data.BrushData.Guid; + IsRoomOwner = data.IsRoomOwner; + SceneScale = data.SceneScale; + isReceivingVoiceTransmission = data.isReceivingVoiceTransmission; + Nickname = data.Nickname; } - public PlayerRigData RecieveData() + private void Awake() { - var data = new PlayerRigData + if (HMDMeshRenderer != null && HMDMeshRenderer.material.HasProperty("_EmissionColor")) + { + originalColor = HMDMeshRenderer.material.GetColor("_EmissionColor"); + } + } + + public PlayerRigData ReceiveData() + { + if (!m_IsSpawned) return default; + + var data = new PlayerRigData(); + + if (m_PlayerHead?.transform != null) + { + data.HeadPosition = m_PlayerHead.transform.position; + data.HeadRotation = m_PlayerHead.transform.rotation; + } + + if (m_Tool?.transform != null) + { + data.ToolPosition = m_Tool.transform.position; + data.ToolRotation = m_Tool.transform.rotation; + } + + if (m_Left?.transform != null) + { + data.LeftHandPosition = m_Left.transform.position; + data.LeftHandRotation = m_Left.transform.rotation; + } + + if (m_Right?.transform != null) + { + data.RightHandPosition = m_Right.transform.position; + data.RightHandRotation = m_Right.transform.rotation; + } + + try { - HeadPosition = m_PlayerHead.InterpolationTarget.position, - HeadRotation = m_PlayerHead.InterpolationTarget.rotation, - ExtraData = new ExtraData + data.IsRoomOwner = this.IsRoomOwner; + data.ExtraData = new ExtraData { OculusPlayerId = this.oculusPlayerId }; + data.SceneScale = this.SceneScale; + data.isReceivingVoiceTransmission = this.isReceivingVoiceTransmission; + if (!string.IsNullOrEmpty(this.Nickname)) { - OculusPlayerId = this.oculusPlayerId + data.Nickname = this.Nickname; + NicknameText.text = this.Nickname; } - }; + + } + catch (InvalidOperationException ex) + { + return default; + } + return data; } @@ -69,25 +147,40 @@ public override void Spawned() brushGuid = BrushCatalog.m_Instance.DefaultBrush.m_Guid.ToString(); - if(!Object.HasStateAuthority) + if (!Object.HasStateAuthority) { transientPointer = PointerManager.m_Instance.CreateRemotePointer(); transientPointer.SetBrush(BrushCatalog.m_Instance.DefaultBrush); transientPointer.SetColor(App.BrushColor.CurrentColor); } + else + { + NicknameText.text = ""; + NicknameText.gameObject.SetActive(false); + } + + UpdateControllerVisibility(); + + m_IsSpawned = true; } public override void FixedUpdateNetwork() { base.FixedUpdateNetwork(); - if(Object.HasStateAuthority) + if (Object.HasStateAuthority) { m_PlayerHead.transform.position = transmitData.HeadPosition; m_PlayerHead.transform.rotation = transmitData.HeadRotation; m_Tool.transform.position = transmitData.ToolPosition; m_Tool.transform.rotation = transmitData.ToolRotation; + + m_Left.transform.position = transmitData.LeftHandPosition; + m_Left.transform.rotation = transmitData.LeftHandRotation; + + m_Right.transform.position = transmitData.RightHandPosition; + m_Right.transform.rotation = transmitData.RightHandRotation; } } @@ -97,26 +190,141 @@ public override void Render() if (Object.HasStateAuthority) { + var remoteTR = TrTransform.TR( + m_PlayerHead.transform.position, + m_PlayerHead.transform.rotation + ); + App.Scene.AsScene[headTransform] = remoteTR; } - + else { - var toolTR = TrTransform.TR(m_Tool.InterpolationTarget.position, m_Tool.InterpolationTarget.rotation); + // Remote pointer + var toolTR = TrTransform.TR( + m_Tool.transform.position, + m_Tool.transform.rotation + ); App.Scene.AsScene[transientPointer.transform] = toolTR; transientPointer.SetColor(brushColor); - if(brushGuid.ToString() != string.Empty) + if (brushGuid.ToString() != string.Empty) { transientPointer.SetBrush(BrushCatalog.m_Instance.GetBrush(new System.Guid(brushGuid.ToString()))); } transientPointer.BrushSize01 = brushSize; + + // Calculate the scale based on the scene scale + float clampedSceneScale = Mathf.Clamp(SceneScale, 0.1f, 9.8f); + float Scale = 1 / clampedSceneScale; + + // Remote head + var remoteTR = TrTransform.TRS( + m_PlayerHead.transform.position, + m_PlayerHead.transform.rotation, + Scale + ); + App.Scene.AsScene[headTransform] = remoteTR; + + // Remote left hand + var remoteLeftTR = TrTransform.TRS( + m_Left.transform.position, + m_Left.transform.rotation, + Scale + ); + App.Scene.AsScene[leftHandTransform] = remoteLeftTR; + + // Remote right hand + var remoteRightTR = TrTransform.TRS( + m_Right.transform.position, + m_Right.transform.rotation, + Scale + ); + App.Scene.AsScene[rightHandTransform] = remoteRightTR; + + //HMD color + if (isReceivingVoiceTransmission) FadeHMDMeshColor(Color.red); + else FadeHMDMeshColor(originalColor); + } + } + + public void UpdateControllerVisibility() + { + if (Object.HasStateAuthority) + { + m_LeftControllerModel.SetActive(false); + m_RightControllerModel.SetActive(false); + } + else + { + m_LeftControllerModel.SetActive(true); + m_RightControllerModel.SetActive(true); + } + } + + void OnDestroy() + { + if (transientPointer != null) + { + PointerManager.m_Instance.RemoveRemotePointer(transientPointer); + transientPointer = null; + } + + m_PlayerHead = null; + m_Tool = null; + m_Left = null; + m_Right = null; + + m_IsSpawned = false; + } + + public void UpdateColor(Color color) + { + + if (HMDMeshRenderer != null && HMDMeshRenderer.material.HasProperty("_EmissionColor")) + { + HMDMeshRenderer.material.SetColor("_EmissionColor", color); + } + + if (NicknameText != null) + { + NicknameText.outlineColor = color; } - var remoteTR = TrTransform.TR(m_PlayerHead.InterpolationTarget.position, m_PlayerHead.InterpolationTarget.rotation); - App.Scene.AsScene[headTransform] = remoteTR; + } + + public void FadeHMDMeshColor(Color targetColor) + { + if (fadeCoroutine != null) + { + StopCoroutine(fadeCoroutine); + } + fadeCoroutine = StartCoroutine(FadeColorRoutine(targetColor)); + } + + private IEnumerator FadeColorRoutine(Color targetColor) + { + + if (HMDMeshRenderer == null || + !HMDMeshRenderer.material.HasProperty("_EmissionColor") || + NicknameText == null) yield break; + + Color startColor = HMDMeshRenderer.material.GetColor("_EmissionColor"); + float elapsedTime = 0f; + + while (elapsedTime < 0.2f) + { + elapsedTime += Time.deltaTime; + float t = Mathf.Clamp01(elapsedTime / 0.2f); + Color currentColor = Color.Lerp(startColor, targetColor, t); + UpdateColor(currentColor); + yield return null; + } + + HMDMeshRenderer.material.SetColor("_EmissionColor", targetColor); } } + } #endif // FUSION_WEAVER diff --git a/Assets/Scripts/Multiplayer/Photon/PhotonRPC.cs b/Assets/Scripts/Multiplayer/Photon/PhotonRPC.cs index 8125812a57..5f0ef51085 100644 --- a/Assets/Scripts/Multiplayer/Photon/PhotonRPC.cs +++ b/Assets/Scripts/Multiplayer/Photon/PhotonRPC.cs @@ -13,7 +13,7 @@ // limitations under the License. -#if FUSION_WEAVER +#if MP_PHOTON using System; using System.Linq; @@ -21,6 +21,8 @@ using UnityEngine; using Fusion; using TiltBrush; +using static TiltBrush.SketchControlsScript; +using System.Threading.Tasks; namespace OpenBrush.Multiplayer { @@ -28,11 +30,13 @@ public class PhotonRPC : SimulationBehaviour { private static Dictionary m_inProgressStrokes; private static List m_pendingCommands; + private static Dictionary> m_acknowledgments; public void Awake() { m_inProgressStrokes = new(); m_pendingCommands = new(); + m_acknowledgments = new(); } public void Update() @@ -41,7 +45,7 @@ public void Update() } private bool CheckifChildStillPending(PendingCommand pending) - { + { if (pending.TotalExpectedChildren == pending.Command.ChildrenCount) { bool moreChildrenToAssign = false; @@ -100,19 +104,20 @@ private void TryProcessCommands() } // All children present, begin execution - + m_pendingCommands.RemoveAt(0); InvokePreCommands(command); - - SketchMemoryScript.m_Instance.PerformAndRecordCommand(command.Command, invoke: false); + //SketchMemoryScript.m_Instance.PerformAndRecordCommand(command.Command, invoke: false); + SketchMemoryScript.m_Instance.PerformAndRecordNetworkCommand(command.Command); TryProcessCommands(); } private static void AddPendingCommand(Action preAction, Guid commandGuid, Guid parentGuid, BaseCommand command, int childCount) { + PendingCommand pendingCommand = new PendingCommand(commandGuid, command, preAction, childCount); if (!parentGuid.Equals(default)) @@ -124,6 +129,28 @@ private static void AddPendingCommand(Action preAction, Guid commandGuid, Guid p m_pendingCommands.Add(pendingCommand); } + private static bool CheckifCommandGuidIsInStack(Guid commandGuid) + { + + if (SketchMemoryScript.m_Instance.IsCommandInStack(commandGuid)) + { + //Debug.Log($"Command with Guid {commandGuid} already in stack."); + return true; + } + return false; + } + + private static bool CheckifStrokeGuidIsInMemory(Guid strokeGuid) + { + + if (SketchMemoryScript.m_Instance.IsStrokeInMemory(strokeGuid)) + { + //Debug.Log($"Stroke with Guid {strokeGuid} already in memory."); + return true; + } + return false; + } + private static BaseCommand FindParentCommand(Guid parentGuid) { PendingCommand pendingParent = m_pendingCommands.FirstOrDefault(x => x.Guid == parentGuid); @@ -135,8 +162,144 @@ private static BaseCommand FindParentCommand(Guid parentGuid) return null; } - public static void CreateBrushStroke(Stroke stroke, Guid commandGuid, Guid parentGuid = default, int childCount = 0) + public static void Send_BaseCommand(NetworkRunner runner, Guid commandGuid, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) + { + if (targetPlayer == default) + { + RPC_BaseCommand(runner, commandGuid, parentGuid, childCount); + } + else + { + RPC_BaseCommand(runner, commandGuid, parentGuid, childCount, targetPlayer); + } + } + + private static void BaseCommand(Guid commandGuid, Guid parentGuid = default, int childCount = 0) + { + if (CheckifCommandGuidIsInStack(commandGuid)) return; + + Debug.Log($"Base command child count: {childCount}"); + var parentCommand = FindParentCommand(parentGuid); + var command = new BaseCommand(parent: parentCommand); + + AddPendingCommand(() => { }, commandGuid, parentGuid, command, childCount); + } + + public static void Send_BrushStrokeFull(NetworkRunner runner, NetworkedStroke strokeData, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) + { + if (targetPlayer == default) + { + RPC_BrushStrokeFull(runner, strokeData, commandGuid, timestamp, parentGuid, childCount); + } + else + { + RPC_BrushStrokeFull(runner, strokeData, commandGuid, timestamp, parentGuid, childCount, targetPlayer); + } + } + + private static void BrushStrokeFull(NetworkedStroke strokeData, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0) + { + + if (CheckifCommandGuidIsInStack(commandGuid)) return; + + var decode = NetworkedStroke.ToStroke(strokeData); + + CreateBrushStroke(decode, commandGuid, timestamp, parentGuid, childCount); + } + + public static void Send_BrushStrokeBegin(NetworkRunner runner, Guid id, NetworkedStroke strokeData, int finalLength, [RpcTarget] PlayerRef targetPlayer = default) + { + if (targetPlayer == default) + { + RPC_BrushStrokeBegin(runner, id, strokeData, finalLength); + } + else + { + RPC_BrushStrokeBegin(runner, id, strokeData, finalLength, targetPlayer); + } + } + + private static void BrushStrokeBegin(Guid id, NetworkedStroke strokeData, int finalLength) + { + var decode = NetworkedStroke.ToStroke(strokeData); + + decode.m_Type = Stroke.Type.NotCreated; + decode.m_IntendedCanvas = App.Scene.MainCanvas; + + Array.Resize(ref decode.m_ControlPoints, finalLength); + Array.Resize(ref decode.m_ControlPointsToDrop, finalLength); + + if (m_inProgressStrokes.ContainsKey(id)) + { + Debug.LogError("Shouldn't be here!"); + return; + } + + m_inProgressStrokes[id] = decode; + } + + public static void Send_BrushStrokeContinue(NetworkRunner runner, Guid id, int offset, NetworkedControlPoint[] controlPoints, bool[] dropPoints, [RpcTarget] PlayerRef targetPlayer = default) + { + if (targetPlayer == default) + { + RPC_BrushStrokeContinue(runner, id, offset, controlPoints, dropPoints); + } + else + { + RPC_BrushStrokeContinue(runner, id, offset, controlPoints, dropPoints, targetPlayer); + } + } + + private static void BrushStrokeContinue(Guid id, int offset, NetworkedControlPoint[] controlPoints, bool[] dropPoints) { + if (!m_inProgressStrokes.ContainsKey(id)) + { + Debug.LogError("shouldn't be here!"); + return; + } + + var stroke = m_inProgressStrokes[id]; + + for (int i = 0; i < controlPoints.Length; ++i) + { + stroke.m_ControlPoints[offset + i] = NetworkedControlPoint.ToControlPoint(controlPoints[i]); + stroke.m_ControlPointsToDrop[offset + i] = dropPoints[i]; + } + } + + public static void Send_BrushStrokeComplete(NetworkRunner runner, Guid id, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) + { + if (targetPlayer == default) + { + RPC_BrushStrokeComplete(runner, id, commandGuid, timestamp, parentGuid, childCount); + } + else + { + RPC_BrushStrokeComplete(runner, id, commandGuid, timestamp, parentGuid, childCount, targetPlayer); + } + } + + private static void BrushStrokeComplete(Guid id, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0) + { + + if (CheckifCommandGuidIsInStack(commandGuid)) return; + + if (!m_inProgressStrokes.ContainsKey(id)) + { + Debug.LogError("shouldn't be here!"); + return; + } + + var stroke = m_inProgressStrokes[id]; + + CreateBrushStroke(stroke, commandGuid, timestamp, parentGuid, childCount); + + m_inProgressStrokes.Remove(id); + } + + private static void CreateBrushStroke(Stroke stroke, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0) + { + Action preAction = () => { stroke.m_Type = Stroke.Type.NotCreated; @@ -147,12 +310,99 @@ public static void CreateBrushStroke(Stroke stroke, Guid commandGuid, Guid paren var parentCommand = FindParentCommand(parentGuid); - var command = new BrushStrokeCommand(stroke, parent: parentCommand); + var command = new BrushStrokeCommand(stroke, commandGuid, timestamp, parent: parentCommand); AddPendingCommand(preAction, commandGuid, parentGuid, command, childCount); } -#region RPCS + public static void Send_DeleteStroke(NetworkRunner runner, int seed, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) + { + if (targetPlayer == default) + { + RPC_DeleteStroke(runner, seed, commandGuid, timestamp, parentGuid, childCount); + } + else + { + RPC_DeleteStroke(runner, seed, commandGuid, timestamp, parentGuid, childCount, targetPlayer); + } + } + + private static void DeleteStroke(int seed, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0) + { + if (CheckifCommandGuidIsInStack(commandGuid)) return; + + // TODO : implment GUID for strokesdata. + // The range of int is large (-2,147,483,648 to 2,147,483,647), but collisions are still possible. + var foundStroke = SketchMemoryScript.m_Instance.GetMemoryList.Where(x => x.m_Seed == seed).First(); + + if (foundStroke != null) + { + var parentCommand = FindParentCommand(parentGuid); + var command = new DeleteStrokeCommand(foundStroke, commandGuid, timestamp, parent: parentCommand); + + AddPendingCommand(() => { }, commandGuid, parentGuid, command, childCount); + } + else + { + Debug.LogError($"couldn't find stroke with seed: {seed}"); + } + } + + public static void Send_SwitchEnvironment(NetworkRunner runner, Guid environmentGuid, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) + { + + if (targetPlayer == default) + { + RPC_SwitchEnvironment(runner, environmentGuid, commandGuid, timestamp, parentGuid, childCount); + } + else + { + RPC_SwitchEnvironment(runner, environmentGuid, commandGuid, timestamp, parentGuid, childCount, targetPlayer); + } + } + + private static void SwitchEnvironment(Guid environmentGuid, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0) + { + if (CheckifCommandGuidIsInStack(commandGuid)) return; + + TiltBrush.Environment environment = EnvironmentCatalog.m_Instance.GetEnvironment(environmentGuid); + + if (environment != null) + { + + var parentCommand = FindParentCommand(parentGuid); + var command = new SwitchEnvironmentCommand(environment, commandGuid, timestamp, parent: parentCommand); + + AddPendingCommand(() => { }, commandGuid, parentGuid, command, childCount); + } + else + { + Debug.LogError($"Environment with Guid {environmentGuid} not found."); + } + } + + public static async Task WaitForAcknowledgment(Guid commandGuid, int timeoutMilliseconds = 1000) + { + var tcs = new TaskCompletionSource(); + m_acknowledgments[commandGuid] = tcs; + + var timeoutTask = Task.Delay(timeoutMilliseconds); + var acknowledgmentTask = tcs.Task; + var completedTask = await Task.WhenAny(acknowledgmentTask, timeoutTask); + + if (completedTask == acknowledgmentTask) + { + m_acknowledgments.Remove(commandGuid); + return await acknowledgmentTask; + } + else + { + m_acknowledgments.Remove(commandGuid); + return false; + } + } + + #region RPCS [Rpc(InvokeLocal = false)] public static void RPC_SyncToSharedAnchor(NetworkRunner runner, string uuid) { @@ -165,6 +415,7 @@ public static void RPC_SyncToSharedAnchor(NetworkRunner runner, string uuid) public static void RPC_PerformCommand(NetworkRunner runner, string commandName, string guid, string[] data) { Debug.Log($"Command recieved: {commandName}"); + if (commandName.Equals("TiltBrush.BrushStrokeCommand")) { var asString = string.Join(string.Empty, data); @@ -173,7 +424,7 @@ public static void RPC_PerformCommand(NetworkRunner runner, string commandName, // Temp decode.m_BrushGuid = new System.Guid(guid); - + // Can we set up these more sensibly? decode.m_Type = Stroke.Type.NotCreated; decode.m_IntendedCanvas = App.Scene.MainCanvas; @@ -205,95 +456,134 @@ public static void RPC_Redo(NetworkRunner runner, string commandName) } [Rpc(InvokeLocal = false)] - public static void RPC_BaseCommand(NetworkRunner runner, Guid commandGuid, Guid parentGuid = default, int childCount = 0) + private static void RPC_BaseCommand(NetworkRunner runner, Guid commandGuid, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) { - Debug.Log($"Base command child count: {childCount}"); - var parentCommand = FindParentCommand(parentGuid); - var command = new BaseCommand(parent: parentCommand); + BaseCommand(commandGuid, parentGuid, childCount); + } - AddPendingCommand(() => {}, commandGuid, parentGuid, command, childCount); + [Rpc(InvokeLocal = false)] + private static void RPC_BaseCommand(NetworkRunner runner, Guid commandGuid, Guid parentGuid = default, int childCount = 0) + { + BaseCommand(commandGuid, parentGuid, childCount); } [Rpc(InvokeLocal = false)] - public static void RPC_BrushStrokeFull(NetworkRunner runner, NetworkedStroke strokeData, Guid commandGuid, Guid parentGuid = default, int childCount = 0) + private static void RPC_BrushStrokeFull(NetworkRunner runner, NetworkedStroke strokeData, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) { - var decode = NetworkedStroke.ToStroke(strokeData); + BrushStrokeFull(strokeData, commandGuid, timestamp, parentGuid, childCount); + } - CreateBrushStroke(decode, commandGuid, parentGuid, childCount); + [Rpc(InvokeLocal = false)] + private static void RPC_BrushStrokeFull(NetworkRunner runner, NetworkedStroke strokeData, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0) + { + BrushStrokeFull(strokeData, commandGuid, timestamp, parentGuid, childCount); } [Rpc(InvokeLocal = false)] - public static void RPC_BrushStrokeBegin(NetworkRunner runner, Guid id, NetworkedStroke strokeData, int finalLength) + private static void RPC_BrushStrokeBegin(NetworkRunner runner, Guid id, NetworkedStroke strokeData, int finalLength, [RpcTarget] PlayerRef targetPlayer = default) { - var decode = NetworkedStroke.ToStroke(strokeData); + BrushStrokeBegin(id, strokeData, finalLength); + } - decode.m_Type = Stroke.Type.NotCreated; - decode.m_IntendedCanvas = App.Scene.MainCanvas; - - Array.Resize(ref decode.m_ControlPoints, finalLength); - Array.Resize(ref decode.m_ControlPointsToDrop, finalLength); + [Rpc(InvokeLocal = false)] + private static void RPC_BrushStrokeBegin(NetworkRunner runner, Guid id, NetworkedStroke strokeData, int finalLength) + { + BrushStrokeBegin(id, strokeData, finalLength); + } - if(m_inProgressStrokes.ContainsKey(id)) - { - Debug.LogError("Shouldn't be here!"); - return; - } + [Rpc(InvokeLocal = false)] + private static void RPC_BrushStrokeContinue(NetworkRunner runner, Guid id, int offset, NetworkedControlPoint[] controlPoints, bool[] dropPoints, [RpcTarget] PlayerRef targetPlayer = default) + { + BrushStrokeContinue(id, offset, controlPoints, dropPoints); + } - m_inProgressStrokes[id] = decode; + [Rpc(InvokeLocal = false)] + private static void RPC_BrushStrokeContinue(NetworkRunner runner, Guid id, int offset, NetworkedControlPoint[] controlPoints, bool[] dropPoints) + { + BrushStrokeContinue(id, offset, controlPoints, dropPoints); } - + [Rpc(InvokeLocal = false)] - public static void RPC_BrushStrokeContinue(NetworkRunner runner, Guid id, int offset, NetworkedControlPoint[] controlPoints, bool[] dropPoints) + private static void RPC_BrushStrokeComplete(NetworkRunner runner, Guid id, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) { - if(!m_inProgressStrokes.ContainsKey(id)) - { - Debug.LogError("shouldn't be here!"); - return; - } + BrushStrokeComplete(id, commandGuid, timestamp, parentGuid, childCount); + } - var stroke = m_inProgressStrokes[id]; - - for(int i = 0; i < controlPoints.Length; ++i) - { - stroke.m_ControlPoints[offset + i] = NetworkedControlPoint.ToControlPoint(controlPoints[i]); - stroke.m_ControlPointsToDrop[offset + i] = dropPoints[i]; - } + [Rpc(InvokeLocal = false)] + private static void RPC_BrushStrokeComplete(NetworkRunner runner, Guid id, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0) + { + BrushStrokeComplete(id, commandGuid, timestamp, parentGuid, childCount); } [Rpc(InvokeLocal = false)] - public static void RPC_BrushStrokeComplete(NetworkRunner runner, Guid id, Guid commandGuid, Guid parentGuid = default, int childCount = 0) + private static void RPC_DeleteStroke(NetworkRunner runner, int seed, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) { - if(!m_inProgressStrokes.ContainsKey(id)) - { - Debug.LogError("shouldn't be here!"); - return; - } + DeleteStroke(seed, commandGuid, timestamp, parentGuid, childCount); + } - var stroke = m_inProgressStrokes[id]; + [Rpc(InvokeLocal = false)] + private static void RPC_DeleteStroke(NetworkRunner runner, int seed, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0) + { + DeleteStroke(seed, commandGuid, timestamp, parentGuid, childCount); + } - CreateBrushStroke(stroke, commandGuid, parentGuid, childCount); + [Rpc(InvokeLocal = false)] + private static void RPC_SwitchEnvironment(NetworkRunner runner, Guid environmentGuid, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0, [RpcTarget] PlayerRef targetPlayer = default) + { + SwitchEnvironment(environmentGuid, commandGuid, timestamp, parentGuid, childCount); + } - m_inProgressStrokes.Remove(id); + [Rpc(InvokeLocal = false)] + private static void RPC_SwitchEnvironment(NetworkRunner runner, Guid environmentGuid, Guid commandGuid, int timestamp, Guid parentGuid = default, int childCount = 0) + { + SwitchEnvironment(environmentGuid, commandGuid, timestamp, parentGuid, childCount); } [Rpc(InvokeLocal = false)] - public static void RPC_DeleteStroke(NetworkRunner runner, int seed, Guid commandGuid, Guid parentGuid = default, int childCount = 0) + public static void RPC_StartHistorySync(NetworkRunner runner, [RpcTarget] PlayerRef targetPlayer) { - var foundStroke = SketchMemoryScript.m_Instance.GetMemoryList.Where(x => x.m_Seed == seed).First(); + m_Instance.IssueGlobalCommand(GlobalCommands.DisplaySynchInfo); + } - if (foundStroke != null) - { - var parentCommand = FindParentCommand(parentGuid); - var command = new DeleteStrokeCommand(foundStroke, parent: parentCommand); + [Rpc(InvokeLocal = false)] + public static void RPC_HistoryPercentageUpdate(NetworkRunner runner, [RpcTarget] PlayerRef targetPlayer, int expected, int sent) + { + MultiplayerSceneSync.m_Instance.numberOfCommandsExpected = expected; + MultiplayerSceneSync.m_Instance.numberOfCommandsSent = sent; + m_Instance.IssueGlobalCommand(GlobalCommands.SynchInfoPercentageUpdate); + } - AddPendingCommand(() => {}, commandGuid, parentGuid, command, childCount); - } - else + [Rpc(InvokeLocal = false)] + public static void RPC_HistorySyncCompleted(NetworkRunner runner, [RpcTarget] PlayerRef targetPlayer) + { + m_Instance.IssueGlobalCommand(GlobalCommands.HideSynchInfo); + } + + [Rpc(InvokeLocal = false)] + public static void RPC_CheckCommand(NetworkRunner runner, Guid commandGuid, PlayerRef initiatorPlayer, [RpcTarget] PlayerRef targetPlayer) + { + bool isCommandInStack = CheckifCommandGuidIsInStack(commandGuid); + RPC_Confirm(runner, commandGuid, isCommandInStack, initiatorPlayer); + } + + [Rpc(InvokeLocal = false)] + public static void RPC_CheckStroke(NetworkRunner runner, Guid strokeGuid, PlayerRef initiatorPlayer, [RpcTarget] PlayerRef targetPlayer) + { + bool isCommandInStack = CheckifStrokeGuidIsInMemory(strokeGuid); + RPC_Confirm(runner, strokeGuid, isCommandInStack, initiatorPlayer); + } + + [Rpc(InvokeLocal = false)] + public static void RPC_Confirm(NetworkRunner runner, Guid commandGuid, bool isCommandInStack, [RpcTarget] PlayerRef targetPlayer) + { + if (m_acknowledgments.TryGetValue(commandGuid, out var tcs)) { - Debug.LogError($"couldn't find stroke with seed: {seed}"); + tcs.SetResult(isCommandInStack); + m_acknowledgments.Remove(commandGuid); } } -#endregion + + #endregion } } diff --git a/Assets/Scripts/Multiplayer/Photon/PhotonRPCBatcher.cs b/Assets/Scripts/Multiplayer/Photon/PhotonRPCBatcher.cs new file mode 100644 index 0000000000..94bf17856f --- /dev/null +++ b/Assets/Scripts/Multiplayer/Photon/PhotonRPCBatcher.cs @@ -0,0 +1,73 @@ +// Copyright 2023 The Open Brush Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if MP_PHOTON + +using System; +using System.Collections.Concurrent; +using System.Threading; +using System.Threading.Tasks; + + +// A static class for batching Photon RPC calls using async/await. +public static class PhotonRPCBatcher +{ + + private static int delayBetweenBatchesMs = 100; + private static ConcurrentQueue rpcQueue = new ConcurrentQueue(); + private static CancellationTokenSource cts = new CancellationTokenSource(); + private static bool isRunning = false; + + // Enqueues an RPC action to be sent. + public static void EnqueueRPC(Action rpcAction) + { + rpcQueue.Enqueue(rpcAction); + + // If not running yet, start the processing loop + if (!isRunning) + { + isRunning = true; + StartProcessingLoop(); + } + } + + // Starts the asynchronous loop that processes the RPC queue. + private static async void StartProcessingLoop() + { + + while (!cts.Token.IsCancellationRequested) + { + if (rpcQueue.TryDequeue(out Action rpcAction)) rpcAction?.Invoke(); + else + { + isRunning = false; + break; + } + + await Task.Delay(delayBetweenBatchesMs, cts.Token); + } + + isRunning = false; + } + + + // Stops the processing loop (if needed). + public static void Stop() + { + cts.Cancel(); + cts = new CancellationTokenSource(); + } + +} +#endif \ No newline at end of file diff --git a/Assets/Scripts/Multiplayer/Photon/PhotonRPCBatcher.cs.meta b/Assets/Scripts/Multiplayer/Photon/PhotonRPCBatcher.cs.meta new file mode 100644 index 0000000000..35ee62003e --- /dev/null +++ b/Assets/Scripts/Multiplayer/Photon/PhotonRPCBatcher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bb1026450b30eca47a4c16779d4aeda7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Multiplayer/Photon/PhotonStructs.cs b/Assets/Scripts/Multiplayer/Photon/PhotonStructs.cs index 10d6787740..ba5ca4c6b9 100644 --- a/Assets/Scripts/Multiplayer/Photon/PhotonStructs.cs +++ b/Assets/Scripts/Multiplayer/Photon/PhotonStructs.cs @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#if FUSION_WEAVER +#if MP_PHOTON using System; using UnityEngine; @@ -40,7 +40,7 @@ public PendingCommand(Guid guid, BaseCommand command, Action action, int count) ChildCommands = new List(); } } - + public struct NetworkCommandData : INetworkStruct { public Guid CommandGuid; @@ -93,7 +93,7 @@ internal static PointerManager.ControlPoint ToControlPoint(NetworkedControlPoint [System.Serializable] public struct NetworkedStroke : INetworkStruct { - public const int k_MaxCapacity = 128; + public const int k_MaxCapacity = NetworkingConstants.MaxControlPointsPerChunk; public Stroke.Type m_Type; [Networked][Capacity(k_MaxCapacity)] public NetworkArray m_ControlPointsToDrop => default; public Color m_Color; @@ -152,13 +152,13 @@ public NetworkedStroke Init(Stroke data) m_ControlPointsCapacity = data.m_ControlPoints.Length; - for(int i = 0; i < data.m_ControlPoints.Length; i++) + for (int i = 0; i < data.m_ControlPoints.Length; i++) { var point = new NetworkedControlPoint().Init(data.m_ControlPoints[i]); m_ControlPoints.Set(i, point); } - for(int i = 0; i < data.m_ControlPointsToDrop.Length; i++) + for (int i = 0; i < data.m_ControlPointsToDrop.Length; i++) { m_ControlPointsToDrop.Set(i, data.m_ControlPointsToDrop[i]); } diff --git a/Assets/Scripts/Multiplayer/Photon/PhotonVoiceManager.cs b/Assets/Scripts/Multiplayer/Photon/PhotonVoiceManager.cs new file mode 100644 index 0000000000..d6d4df3827 --- /dev/null +++ b/Assets/Scripts/Multiplayer/Photon/PhotonVoiceManager.cs @@ -0,0 +1,344 @@ +// Copyright 2023 The Open Brush Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if MP_PHOTON + +using OpenBrush.Multiplayer; +using Photon.Pun; +using Photon.Realtime; +using Photon.Voice.Unity; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using TiltBrush; +using UnityEngine; + +public class PhotonVoiceManager : IVoiceConnectionHandler, IConnectionCallbacks, IMatchmakingCallbacks +{ + public ConnectionUserInfo UserInfo { get; set; } + public ConnectionState State { get; private set; } + public string LastError { get; private set; } + public bool isTransmitting { get; private set; } + + private VoiceConnection m_VoiceConnection; + private MultiplayerManager m_Manager; + private AppSettings m_PhotonVoiceAppSettings; + private Recorder m_Recorder; + private bool ConnectedToMaster = false; + private bool wasTransmitting = false; + + + + public PhotonVoiceManager(MultiplayerManager manager) + { + m_Manager = manager; + Init(); + isTransmitting = false; + } + + public async Task Init() + { + + try + { + State = ConnectionState.INITIALIZING; + m_VoiceConnection = GameObject.FindFirstObjectByType(); + if (m_VoiceConnection == null) throw new Exception("[PhotonVoiceManager] VoiceConnection component not found in scene"); + PhotonNetwork.LogLevel = PunLogLevel.ErrorsOnly; + m_VoiceConnection.VoiceLogger.LogLevel = Photon.Voice.LogLevel.Error; + + m_VoiceConnection.Settings = new AppSettings + { + AppIdVoice = App.Config.PhotonVoiceSecrets.ClientId, + FixedRegion = "", + }; + + m_VoiceConnection.Client.AddCallbackTarget(this); + + } + catch (Exception ex) + { + State = ConnectionState.ERROR; + LastError = $"[PhotonVoiceManager] Failed to Initialize lobby: {ex.Message}"; + ControllerConsoleScript.m_Instance.AddNewLine(LastError); + return false; + } + + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonVoiceManager] Succesfully initialized"); + State = ConnectionState.INITIALIZED; + return true; + + } + + public async Task Connect() + { + State = ConnectionState.CONNECTING; + + m_VoiceConnection.Client.UserId = m_Manager.UserInfo.UserId; + + if (!m_VoiceConnection.Client.IsConnected) + { + //ControllerConsoleScript.m_Instance.AddNewLine("[PhotonVoiceManager] Attempting to connect Voice Server..."); + m_VoiceConnection.ConnectUsingSettings(); + while (!ConnectedToMaster) + { + //ControllerConsoleScript.m_Instance.AddNewLine("Waiting for Voice Connection to establish..."); + await Task.Delay(100); + } + } + + if (ConnectedToMaster) + { + State = ConnectionState.IN_LOBBY; + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonVoiceManager] Connection successfully established."); + } + else + { + State = ConnectionState.ERROR; + LastError = $"[PhotonVoiceManager] Failed to connect."; + ControllerConsoleScript.m_Instance.AddNewLine(LastError); + } + + return ConnectedToMaster; + } + + public async Task JoinRoom(RoomCreateData RoomData) + { + State = ConnectionState.JOINING_ROOM; + + if (!m_VoiceConnection.Client.IsConnected) + { + bool connected = await Connect(); + if (!connected) + { + return false; + } + } + + var RoomParameters = new EnterRoomParams { RoomName = RoomData.roomName }; + bool roomJoined = m_VoiceConnection.Client.OpJoinOrCreateRoom(RoomParameters); + + if (roomJoined) + { + State = ConnectionState.IN_ROOM; + ControllerConsoleScript.m_Instance.AddNewLine($"[PhotonVoiceManager] Successfully joined room"); + } + else + { + State = ConnectionState.ERROR; + LastError = $"[PhotonVoiceManager] Failed to join or create room"; + ControllerConsoleScript.m_Instance.AddNewLine(LastError); + } + + return roomJoined; + } + + public async Task LeaveRoom(bool force) + { + State = ConnectionState.DISCONNECTING; + + if (!m_VoiceConnection.Client.InRoom) return false; + + bool leftRoom = m_VoiceConnection.Client.OpLeaveRoom(false); + + if (!leftRoom) + { + //ControllerConsoleScript.m_Instance.AddNewLine("[PhotonVoiceManager] Failed to initiate leaving the room."); + return false; + } + + //ControllerConsoleScript.m_Instance.AddNewLine("Initiated leaving the room..."); + + while (m_VoiceConnection.ClientState != ClientState.ConnectedToMasterServer) + { + await Task.Delay(100); + } + + if (m_VoiceConnection.ClientState == ClientState.ConnectedToMasterServer) + { + State = ConnectionState.DISCONNECTED; + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonVoiceManager] Successfully left the room."); + return true; + } + else + { + State = ConnectionState.ERROR; + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonVoiceManager] Failed to leave the room."); + return false; + } + } + + public async Task Disconnect() + { + + State = ConnectionState.DISCONNECTING; + + if (!m_VoiceConnection.Client.IsConnected) + { + //ControllerConsoleScript.m_Instance.AddNewLine("[PhotonVoiceManager] Voice Server is already disconnected."); + return true; + } + + m_VoiceConnection.Client.Disconnect(); + + while (m_VoiceConnection.ClientState != ClientState.Disconnected) + { + await Task.Delay(100); + //ControllerConsoleScript.m_Instance.AddNewLine("Disconnecting."); + } + + if (m_VoiceConnection.ClientState == ClientState.Disconnected) + { + State = ConnectionState.DISCONNECTED; + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonVoiceManager] Successfully disconnected from Server."); + return true; + } + else + { + State = ConnectionState.ERROR; + ControllerConsoleScript.m_Instance.AddNewLine("[PhotonVoiceManager] Failed to disconnect from Server."); + return false; + } + } + + public bool StartSpeaking() + { + m_Recorder = m_VoiceConnection.PrimaryRecorder; + if (m_Recorder == null) + { + ControllerConsoleScript.m_Instance.AddNewLine("Recorder not found! Ensure it's attached to a GameObject."); + return false; + } + + // m_Recorder.DebugEchoMode = true; + m_Recorder.TransmitEnabled = true; + return true; + } + + public bool StopSpeaking() + { + if (m_Recorder != null) + { + m_Recorder.TransmitEnabled = false; + return true; + } + return false; + } + + public void Update() + { + UpdateSpeechDetection(); + } + + private void UpdateSpeechDetection() + { + if (m_Recorder == null) + { + return; + } + + isTransmitting = m_Recorder.IsCurrentlyTransmitting; + + if (isTransmitting && !wasTransmitting) + {; + Debug.Log("[PhotonVoiceManager] Speech started."); + } + else if (!isTransmitting && wasTransmitting) + { + Debug.Log("[PhotonVoiceManager] Speech stopped."); + } + + wasTransmitting = isTransmitting; + } + + + #region MatchmakingCallbacks + + public void OnCreatedRoom() + { + + } + + public void OnCreateRoomFailed(short returnCode, string message) + { + Debug.LogErrorFormat("OnCreateRoomFailed errorCode={0} errorMessage={1}", returnCode, message); + } + + public void OnFriendListUpdate(List friendList) + { + + } + + public void OnJoinedRoom() + { + } + + public void OnJoinRandomFailed(short returnCode, string message) + { + Debug.LogErrorFormat("OnJoinRandomFailed errorCode={0} errorMessage={1}", returnCode, message); + } + + public void OnJoinRoomFailed(short returnCode, string message) + { + Debug.LogErrorFormat("OnJoinRoomFailed errorCode={1} errorMessage={2}", returnCode, message); + } + + public void OnLeftRoom() + { + + } + + #endregion + + #region ConnectionCallbacks + + public void OnConnected() + { + + } + + public void OnConnectedToMaster() + { + ConnectedToMaster = true; + } + + public void OnDisconnected(DisconnectCause cause) + { + if (cause == DisconnectCause.None || cause == DisconnectCause.DisconnectByClientLogic || cause == DisconnectCause.ApplicationQuit) + { + return; + } + Debug.LogErrorFormat("OnDisconnected cause={0}", cause); + } + + public void OnRegionListReceived(RegionHandler regionHandler) + { + + } + + public void OnCustomAuthenticationResponse(Dictionary data) + { + + } + + public void OnCustomAuthenticationFailed(string debugMessage) + { + + } + + + #endregion + +} +#endif \ No newline at end of file diff --git a/Assets/Scripts/Multiplayer/Photon/PhotonVoiceManager.cs.meta b/Assets/Scripts/Multiplayer/Photon/PhotonVoiceManager.cs.meta new file mode 100644 index 0000000000..c5d392c1bf --- /dev/null +++ b/Assets/Scripts/Multiplayer/Photon/PhotonVoiceManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a6f5caeaa755bc948b340e09bc685673 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/PointerManager.cs b/Assets/Scripts/PointerManager.cs index 0a706691a0..c7cafd1efc 100644 --- a/Assets/Scripts/PointerManager.cs +++ b/Assets/Scripts/PointerManager.cs @@ -398,6 +398,12 @@ public PointerScript CreateRemotePointer() return script; } + public void RemoveRemotePointer(PointerScript pointer) + { + m_RemoteUserPointers.Remove(pointer); + Destroy(pointer.gameObject); + } + /// The brush size, using "normalized" values in the range [0,1]. /// Guaranteed to be in [0,1]. public float GetPointerBrushSize01(InputManager.ControllerName controller) @@ -1538,6 +1544,7 @@ void FinalizeLine(bool isContinue = false, bool discard = false) } else { + SketchMemoryScript.StrokeFlags flags = SketchMemoryScript.StrokeFlags.None; if (groupStart == null) { @@ -1551,7 +1558,10 @@ void FinalizeLine(bool isContinue = false, bool discard = false) // Verify IsGroupContinue invariant Debug.Assert(pointer.TimestampMs == groupStartTime); } - pointer.DetachLine(bDiscardLine, null, flags); + + // Set isFinalStroke to true only for the last pointer to ensure command chain invokes once all strokes are chained + bool isFinalStroke = (i == m_NumActivePointers - 1); + pointer.DetachLine(bDiscardLine, null, flags, isFinalStroke); } } } diff --git a/Assets/Scripts/PointerScript.cs b/Assets/Scripts/PointerScript.cs index a2d0a713df..ac9c22f53d 100644 --- a/Assets/Scripts/PointerScript.cs +++ b/Assets/Scripts/PointerScript.cs @@ -933,7 +933,8 @@ public void RecreateLineFromMemory(Stroke stroke) public void DetachLine( bool bDiscard, Stroke rMemoryObjectForPlayback, - SketchMemoryScript.StrokeFlags strokeFlags = SketchMemoryScript.StrokeFlags.None) + SketchMemoryScript.StrokeFlags strokeFlags = SketchMemoryScript.StrokeFlags.None, + bool isFinalStroke = false) { if (rMemoryObjectForPlayback != null) @@ -1001,7 +1002,11 @@ public void DetachLine( m_CurrentBrushSize, m_CurrentLine.StrokeScale, m_ControlPoints, strokeFlags, - WidgetManager.m_Instance.ActiveStencil, m_LineLength_CS, m_CurrentLine.RandomSeed); + WidgetManager.m_Instance.ActiveStencil, + m_LineLength_CS, + m_CurrentLine.RandomSeed, + isFinalStroke + ); } else { diff --git a/Assets/Scripts/Rendering/IconTextureAtlas.cs b/Assets/Scripts/Rendering/IconTextureAtlas.cs index f0fb2db86b..01520f088f 100644 --- a/Assets/Scripts/Rendering/IconTextureAtlas.cs +++ b/Assets/Scripts/Rendering/IconTextureAtlas.cs @@ -56,7 +56,7 @@ public Material GetAppropriateMaterial(bool activated, bool focus) void AtlasIconTextures() { // Load the appropriate catalog from Resources. - string catalogPath = App.Config.GetIsExperimental() ? m_ExperimentalCatalogPath : m_CatalogPath; + string catalogPath = m_ExperimentalCatalogPath; m_Catalog = Resources.Load(catalogPath); Debug.Assert(m_Catalog != null); diff --git a/Assets/Scripts/Save/SaveLoadScript.cs b/Assets/Scripts/Save/SaveLoadScript.cs index 3b4525b418..9b490d66d5 100644 --- a/Assets/Scripts/Save/SaveLoadScript.cs +++ b/Assets/Scripts/Save/SaveLoadScript.cs @@ -1021,6 +1021,71 @@ public SketchSnapshot CreateSnapshotWithIcons(out IEnumerator corouti m_CaptureGifSaveIcon ? m_SaveGifRenderTextures : null)); return snapshot; } + + public IEnumerator GetLastAutosaveBytes(Action onComplete) + { + + while (m_AutosaveCoroutine != null) yield return null; + + // Retrieve the autosaved file + string autosaveFile = MostRecentAutosaveFile(); + if (!string.IsNullOrEmpty(autosaveFile) && File.Exists(autosaveFile)) + { + try + { + byte[] fileBytes = File.ReadAllBytes(autosaveFile); + Debug.Log($"Autosave complete. Loaded {fileBytes.Length} bytes from {autosaveFile}"); + onComplete?.Invoke(fileBytes); + } + catch (IOException ex) + { + Debug.LogError($"Failed to read autosave file: {ex.Message}"); + onComplete?.Invoke(null); + } + } + else + { + Debug.LogWarning("Autosave file not found or doesn't exist."); + onComplete?.Invoke(null); + } + } + + public void LoadFromBytes(byte[] data) + { + if (data == null || data.Length == 0) + { + Debug.LogError("LoadFromBytes: Data is null or empty."); + return; + } + + try + { + // Write the byte array to a temporary file + string tempFilePath = Path.Combine(Application.temporaryCachePath, "temp_autosave.tilt"); + File.WriteAllBytes(tempFilePath, data); + + // Load the temporary file into the scene + var fileInfo = new DiskSceneFileInfo(tempFilePath); + if (Load(fileInfo)) + { + Debug.Log("LoadFromBytes: Scene successfully loaded from bytes."); + } + else + { + Debug.LogError("LoadFromBytes: Failed to load scene."); + } + + // Clean up the temporary file + if (File.Exists(tempFilePath)) + { + File.Delete(tempFilePath); + } + } + catch (Exception ex) + { + Debug.LogError($"LoadFromBytes: Error while loading scene from bytes. Exception: {ex.Message}"); + } + } } } // namespace TiltBrush diff --git a/Assets/Scripts/Save/SketchSnapshot.cs b/Assets/Scripts/Save/SketchSnapshot.cs index 3ac268354e..af4e44e35c 100644 --- a/Assets/Scripts/Save/SketchSnapshot.cs +++ b/Assets/Scripts/Save/SketchSnapshot.cs @@ -19,6 +19,8 @@ using System.Text; using UnityEngine; using Newtonsoft.Json; +using ICSharpCode.SharpZipLib.Zip; +using static TiltBrush.SketchWriter; namespace TiltBrush { @@ -211,6 +213,53 @@ static Guid GetForcePrecededBy(Guid original) return brush.m_Guid; } + public string WriteSnapshotToStream(Stream outputStream) + { + try + { + using (var zip = new ZipOutputStream(outputStream)) + { + zip.SetLevel(9); // Set compression level + + // Write metadata + zip.PutNextEntry(new ZipEntry(TiltFile.FN_METADATA)); + using (var writer = new StreamWriter(zip, Encoding.UTF8, 1024, true)) + { + m_JsonSerializer.Serialize(writer, m_Metadata); + } + zip.CloseEntry(); + + // Prepare the necessary data for WriteMemory + List strokes = new List(SketchMemoryScript.m_Instance.GetMemoryList); + IList strokeCopies = EnumerateAdjustedSnapshots(strokes).ToList(); + GroupIdMapping groupIdMapping = new GroupIdMapping(); + List brushList; + + // Write sketch data + zip.PutNextEntry(new ZipEntry(TiltFile.FN_SKETCH)); + WriteMemory(zip, strokeCopies, groupIdMapping, out brushList); + zip.CloseEntry(); + + // Write thumbnail if available + if (Thumbnail != null) + { + zip.PutNextEntry(new ZipEntry(TiltFile.FN_THUMBNAIL)); + zip.Write(Thumbnail, 0, Thumbnail.Length); + zip.CloseEntry(); + } + + // Add other necessary files as needed + } + + return null; // No error + } + catch (Exception ex) + { + return ex.Message; + } + } + + /// Returns null on successful completion. If IO or UnauthorizedAccess exceptions are thrown, /// returns their messages. Should not normally raise exceptions. public string WriteSnapshotToFile(string path) diff --git a/Assets/Scripts/Save/SketchWriter.cs b/Assets/Scripts/Save/SketchWriter.cs index 15fd9b30ba..adf23a4690 100644 --- a/Assets/Scripts/Save/SketchWriter.cs +++ b/Assets/Scripts/Save/SketchWriter.cs @@ -278,6 +278,91 @@ public static void WriteMemory(Stream stream, IList s } } + + /// Serializes brush GUIDs directly instead of maintaining an internal mapping or list. + public static void WriteMemory(Stream stream, IList strokeCopies, + GroupIdMapping groupIdMapping) + { + bool allowFastPath = BitConverter.IsLittleEndian; + var writer = new TiltBrush.SketchBinaryWriter(stream); + + writer.UInt32(SKETCH_SENTINEL); + writer.Int32(SKETCH_VERSION); + writer.Int32(0); // reserved for header: must be 0 + // Bump SKETCH_VERSION to >= 6 and remove this comment if non-zero data is written here + writer.UInt32(0); // additional data size + + // strokes + writer.Int32(strokeCopies.Count); + foreach (AdjustedMemoryBrushStroke copy in strokeCopies) + { + var stroke = copy.strokeData; + Guid brushGuid = stroke.m_BrushGuid; + + writer.Guid(brushGuid); + writer.Color(stroke.m_Color); + writer.Float(stroke.m_BrushSize); + + // Determine the stroke extension mask + StrokeExtension strokeExtensionMask = StrokeExtension.Flags | StrokeExtension.Seed; + if (stroke.m_BrushScale != 1) { strokeExtensionMask |= StrokeExtension.Scale; } + if (stroke.m_Group != SketchGroupTag.None) { strokeExtensionMask |= StrokeExtension.Group; } + strokeExtensionMask |= StrokeExtension.Layer; + + writer.UInt32((uint)strokeExtensionMask); + uint controlPointExtensionMask = + (uint)(ControlPointExtension.Pressure | ControlPointExtension.Timestamp); + writer.UInt32(controlPointExtensionMask); + + // Stroke extension fields, in order of appearance in the mask + writer.UInt32((uint)copy.adjustedStrokeFlags); + if ((uint)(strokeExtensionMask & StrokeExtension.Scale) != 0) + { + writer.Float(stroke.m_BrushScale); + } + if ((uint)(strokeExtensionMask & StrokeExtension.Group) != 0) + { + writer.UInt32(groupIdMapping.GetId(stroke.m_Group)); + } + if ((uint)(strokeExtensionMask & StrokeExtension.Seed) != 0) + { + writer.Int32(stroke.m_Seed); + } + if ((uint)(strokeExtensionMask & StrokeExtension.Layer) != 0) + { + writer.UInt32(copy.layerIndex); + } + + // Control points + writer.Int32(stroke.m_ControlPoints.Length); + if (allowFastPath && controlPointExtensionMask == ControlPoint.EXTENSIONS) + { + // Fast path: write ControlPoint[] (semi-)directly into the file + unsafe + { + int size = sizeof(ControlPoint) * stroke.m_ControlPoints.Length; + fixed (ControlPoint* aPoints = stroke.m_ControlPoints) + { + writer.Write((IntPtr)aPoints, size); + } + } + } + else + { + for (int j = 0; j < stroke.m_ControlPoints.Length; ++j) + { + var rControlPoint = stroke.m_ControlPoints[j]; + writer.Vec3(rControlPoint.m_Pos); + writer.Quaternion(rControlPoint.m_Orient); + // Control point extension fields, in order of appearance in the mask + writer.Float(rControlPoint.m_Pressure); + writer.UInt32(rControlPoint.m_TimestampMs); + } + } + } + } + + /// Leaves stream in indeterminate state; caller should Close() upon return. public static bool ReadMemory(Stream stream, Guid[] brushList, bool bAdditive, out bool isLegacy, out Dictionary oldGroupToNewGroup) { @@ -522,5 +607,170 @@ public static List GetStrokes( return result; } + + // Parses a binary stream into List of MemoryBrushStroke the binary need strokes with encoded guids + public static List GetStrokes( + Stream stream, bool allowFastPath, bool squashLayers = false) + { + var reader = new SketchBinaryReader(stream); + + uint sentinel = reader.UInt32(); + if (sentinel != SKETCH_SENTINEL) + { + Debug.LogFormat("Invalid .tilt: bad sentinel"); + return null; + } + + int version = reader.Int32(); + if (version < REQUIRED_SKETCH_VERSION_MIN || + version > REQUIRED_SKETCH_VERSION_MAX) + { + Debug.LogFormat("Invalid .tilt: unsupported version {0}", version); + return null; + } + + reader.Int32(); // reserved for header: must be 0 + uint moreHeader = reader.UInt32(); // additional data size + if (!reader.Skip(moreHeader)) { return null; } + + // strokes + int iNumMemories = reader.Int32(); + var result = new List(); + for (int i = 0; i < iNumMemories; ++i) + { + var stroke = new Stroke(); + + // Read the brush GUID directly from the stream + stroke.m_BrushGuid = reader.ReadGuid(); + stroke.m_Color = reader.Color(); + stroke.m_BrushSize = reader.Float(); + stroke.m_BrushScale = 1f; + stroke.m_Seed = 0; + + uint strokeExtensionMask = reader.UInt32(); + uint controlPointExtensionMask = reader.UInt32(); + + if ((strokeExtensionMask & (int)StrokeExtension.Seed) == 0) + { + // Backfill for old files saved without seeds. + // This is arbitrary but should be determinstic. + unchecked + { + int seed = i; + seed = (seed * 397) ^ stroke.m_BrushGuid.GetHashCode(); + seed = (seed * 397) ^ stroke.m_Color.GetHashCode(); + seed = (seed * 397) ^ stroke.m_BrushSize.GetHashCode(); + stroke.m_Seed = seed; + } + } + + // Process stroke extension fields... + for (var fields = strokeExtensionMask; fields != 0; fields &= (fields - 1)) + { + uint bit = (fields & ~(fields - 1)); + switch ((StrokeExtension)bit) + { + case StrokeExtension.None: + Debug.Assert(false); + break; + case StrokeExtension.Flags: + stroke.m_Flags = (StrokeFlags)reader.UInt32(); + break; + case StrokeExtension.Scale: + stroke.m_BrushScale = reader.Float(); + break; + case StrokeExtension.Group: + { + UInt32 groupId = reader.UInt32(); + stroke.Group = App.GroupManager.GetGroupFromId(groupId); + break; + } + case StrokeExtension.Layer: + UInt32 layerIndex = reader.UInt32(); + if (squashLayers) + { + layerIndex = 0; + } + var canvas = App.Scene.GetOrCreateLayer((int)layerIndex); + stroke.m_IntendedCanvas = canvas; + break; + case StrokeExtension.Seed: + stroke.m_Seed = reader.Int32(); + break; + default: + { + // Skip unknown extension. + if ((bit & (uint)StrokeExtension.MaskSingleWord) != 0) + { + reader.UInt32(); + } + else + { + uint size = reader.UInt32(); + if (!reader.Skip(size)) { return null; } + } + break; + } + } + } + + // Process control points... + int nControlPoints = reader.Int32(); + stroke.m_ControlPoints = new PointerManager.ControlPoint[nControlPoints]; + stroke.m_ControlPointsToDrop = new bool[nControlPoints]; + + if (allowFastPath && controlPointExtensionMask == PointerManager.ControlPoint.EXTENSIONS) + { + unsafe + { + int size = sizeof(PointerManager.ControlPoint) * stroke.m_ControlPoints.Length; + fixed (PointerManager.ControlPoint* aPoints = stroke.m_ControlPoints) + { + if (!reader.ReadInto((IntPtr)aPoints, size)) + { + return null; + } + } + } + } + else + { + for (int j = 0; j < nControlPoints; ++j) + { + PointerManager.ControlPoint rControlPoint; + + rControlPoint.m_Pos = reader.Vec3(); + rControlPoint.m_Orient = reader.Quaternion(); + + rControlPoint.m_Pressure = 1.0f; + rControlPoint.m_TimestampMs = 0; + + for (var fields = controlPointExtensionMask; fields != 0; fields &= (fields - 1)) + { + switch ((ControlPointExtension)(fields & ~(fields - 1))) + { + case ControlPointExtension.None: + Debug.Assert(false); + break; + case ControlPointExtension.Pressure: + rControlPoint.m_Pressure = reader.Float(); + break; + case ControlPointExtension.Timestamp: + rControlPoint.m_TimestampMs = reader.UInt32(); + break; + default: + reader.Int32(); + break; + } + } + stroke.m_ControlPoints[j] = rControlPoint; + } + } + + result.Add(stroke); + } + return result; + } + } -} // namespace TiltBrush +}// namespace TiltBrush \ No newline at end of file diff --git a/Assets/Scripts/SecretsConfig.cs b/Assets/Scripts/SecretsConfig.cs index 6b494ceabf..b29f36ca78 100644 --- a/Assets/Scripts/SecretsConfig.cs +++ b/Assets/Scripts/SecretsConfig.cs @@ -27,6 +27,7 @@ public enum Service OculusMobile = 3, Pimax = 4, PhotonFusion = 5, + PhotonVoice = 6, } [Serializable] diff --git a/Assets/Scripts/Sharing/DriveAccess.cs b/Assets/Scripts/Sharing/DriveAccess.cs index cdad73556a..798fddfe75 100644 --- a/Assets/Scripts/Sharing/DriveAccess.cs +++ b/Assets/Scripts/Sharing/DriveAccess.cs @@ -120,7 +120,15 @@ private static string GetDeviceId() Debug.LogError("Host id not implemented for iOS"); return "iOS-unknown"; default: - return GetPcId(); + try + { + return GetPcId(); + } + catch (Exception e) + { + // We suspect wmic.xe can cause an exception on some systems, so we catch it here. + return "PC-unknown"; + } } } diff --git a/Assets/Scripts/SketchBinaryReader.cs b/Assets/Scripts/SketchBinaryReader.cs index 2ca35cbf1e..ac76cd9dcd 100644 --- a/Assets/Scripts/SketchBinaryReader.cs +++ b/Assets/Scripts/SketchBinaryReader.cs @@ -100,6 +100,13 @@ public Quaternion Quaternion() return new Quaternion(Float(), Float(), Float(), Float()); } + + public Guid ReadGuid() + { + int bytesRead = m_stream.Read(m_buf16, 0, 16); + return new Guid(m_buf16); + } + private void LazyCreateBigBuffer() { if (m_bufBig == null) diff --git a/Assets/Scripts/SketchBinaryWriter.cs b/Assets/Scripts/SketchBinaryWriter.cs index 4c86ef31db..eb527093b7 100644 --- a/Assets/Scripts/SketchBinaryWriter.cs +++ b/Assets/Scripts/SketchBinaryWriter.cs @@ -53,6 +53,12 @@ public void Dispose() BaseStream = null; } + public void Guid(Guid guid) + { + byte[] guidBytes = guid.ToByteArray(); + m_stream.Write(guidBytes, 0, guidBytes.Length); + } + public void Color(Color color) { Float(color.r); diff --git a/Assets/Scripts/SketchControlsScript.cs b/Assets/Scripts/SketchControlsScript.cs index 4577277bec..cfdab9e636 100644 --- a/Assets/Scripts/SketchControlsScript.cs +++ b/Assets/Scripts/SketchControlsScript.cs @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +using OpenBrush.Multiplayer; using System; using System.Collections; using System.Collections.Generic; @@ -143,9 +144,21 @@ public enum GlobalCommands SignOutConfirm, ReadOnlyNotice, ShowContribution, + WhatIsNew, // Open Brush Reserved Enums 1000-1999 LanguagePopup = 1000, + MultiplayerTogglePanel = 1001, + MultiplayerPanelOptions = 1002, // iParam1: Popup options + MultiplayerJoinRoom = 1004, + EditMultiplayerRoomName = 1005, + MultiplayerLeaveRoom = 1006, + MultiplayerConnect = 1007, + MultiplayerDisconnect = 1008, + EditMultiplayerNickName = 1009, + DisplaySynchInfo = 1010, + SynchInfoPercentageUpdate = 1011, + HideSynchInfo = 1012, RenameSketch = 5200, OpenLayerOptionsPopup = 5201, @@ -1274,8 +1287,7 @@ void UpdateBaseInput() && !InputManager.m_Instance.GetCommand(InputManager.SketchCommands.Activate) && m_GrabBrush.grabbingWorld == false && m_CurrentGazeObject == -1 // free up swipe for use by gaze object - && (m_ControlsType != ControlsType.SixDofControllers || InputManager.Brush.IsTrackedObjectValid) - // TODO:Mikesky - very hacky + && (m_ControlsType != ControlsType.SixDofControllers || InputManager.Brush.IsTrackedObjectValid) // TODO:Mikesky - very hacky && SketchSurfacePanel.m_Instance.ActiveTool.m_Type != BaseTool.ToolType.MultiCamTool; if (m_EatToolScaleInput) @@ -1491,9 +1503,7 @@ void UpdateStandardInput() if (!m_PanelManager.AdvancedModeActive() && InputManager.m_Instance.GetCommandDown(InputManager.SketchCommands.ToggleDefaultTool) && !m_SketchSurfacePanel.IsDefaultToolEnabled() && - m_SketchSurfacePanel.ActiveTool.AllowDefaultToolToggle() && - // don't allow tool to change while pointing at panel because there is no visual indication - m_CurrentGazeObject == -1) + m_SketchSurfacePanel.ActiveTool.AllowDefaultToolToggle() && m_CurrentGazeObject == -1)// don't allow tool to change while pointing at panel because there is no visual indication { m_SketchSurfacePanel.EnableDefaultTool(); AudioManager.m_Instance.PlayPinCushionSound(true); @@ -1604,7 +1614,8 @@ bool CanUndo() m_PanelManager.GazePanelsAreVisible() && !m_GrabWand.grabbingWorld && !InputManager.m_Instance.GetCommand(InputManager.SketchCommands.Activate) && - !SelectionManager.m_Instance.IsAnimatingTossFromGrabbingGroup; + !SelectionManager.m_Instance.IsAnimatingTossFromGrabbingGroup && + !(MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM); } bool CanRedo() @@ -1614,7 +1625,8 @@ bool CanRedo() m_PanelManager.GazePanelsAreVisible() && !m_GrabBrush.grabbingWorld && !InputManager.m_Instance.GetCommand(InputManager.SketchCommands.Activate) && - !SelectionManager.m_Instance.IsAnimatingTossFromGrabbingGroup; + !SelectionManager.m_Instance.IsAnimatingTossFromGrabbingGroup && + !(MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM); } bool ShouldRepeatUndo() @@ -4507,6 +4519,20 @@ public void IssueGlobalCommand(GlobalCommands rEnum, int iParam1 = -1, DismissPopupOnCurrentGazeObject(false); break; } + case GlobalCommands.EditMultiplayerRoomName: + { + var panel = (MultiplayerPanel)m_PanelManager.GetActivePanelByType(BasePanel.PanelType.Multiplayer); + panel.RoomName = KeyboardPopUpWindow.m_LastInput; + DismissPopupOnCurrentGazeObject(false); + break; + } + case GlobalCommands.EditMultiplayerNickName: + { + var panel = (MultiplayerPanel)m_PanelManager.GetActivePanelByType(BasePanel.PanelType.Multiplayer); + panel.NickName = KeyboardPopUpWindow.m_LastInput; + DismissPopupOnCurrentGazeObject(false); + break; + } case GlobalCommands.ShowWindowGUI: break; case GlobalCommands.Disco: @@ -4830,8 +4856,28 @@ public void IssueGlobalCommand(GlobalCommands rEnum, int iParam1 = -1, case GlobalCommands.OpenExampleScriptsList: OpenURLAndInformUser($"http://localhost:{App.HttpServer.HttpPort}/examplescripts"); break; + case GlobalCommands.MultiplayerTogglePanel: + m_PanelManager.ToggleMultiplayerPanels(); + PointerManager.m_Instance.EatLineEnabledInput(); + SketchSurfacePanel.m_Instance.EatToolsInput(); + break; + case GlobalCommands.DisplaySynchInfo: + MultiplayerSceneSync.m_Instance.StartSynchInfo(); + break; + case GlobalCommands.SynchInfoPercentageUpdate: + MultiplayerSceneSync.m_Instance.SynchInfoPercentageUpdate(); + break; + case GlobalCommands.HideSynchInfo: + MultiplayerSceneSync.m_Instance.HideSynchInfo(); + break; case GlobalCommands.RepaintOptions: break; // Intentionally blank. case GlobalCommands.Null: break; // Intentionally blank. + case GlobalCommands.MultiplayerPanelOptions: break; // Intentionally blank. + case GlobalCommands.MultiplayerJoinRoom: break; // Intentionally blank. + case GlobalCommands.MultiplayerLeaveRoom: break; // Intentionally blank. + case GlobalCommands.MultiplayerConnect: break; // Intentionally blank. + case GlobalCommands.MultiplayerDisconnect: break; // Intentionally blank. + case GlobalCommands.WhatIsNew: break;// Intentionally blank. default: Debug.LogError($"Unrecognized command {rEnum}"); break; @@ -4971,8 +5017,10 @@ public bool IsCommandAvailable(GlobalCommands rEnum, int iParam = -1) // TODO: hide gallery view / publish if there are no saved sketches switch (rEnum) { - case GlobalCommands.Undo: return SketchMemoryScript.m_Instance.CanUndo(); - case GlobalCommands.Redo: return SketchMemoryScript.m_Instance.CanRedo(); + case GlobalCommands.Undo: + return SketchMemoryScript.m_Instance.CanUndo() && !(MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM); + case GlobalCommands.Redo: + return SketchMemoryScript.m_Instance.CanRedo() && !(MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM); case GlobalCommands.Save: bool canSave = SaveLoadScript.m_Instance.SceneFile.Valid && @@ -5010,7 +5058,7 @@ public bool IsCommandAvailable(GlobalCommands rEnum, int iParam = -1) (VrAssetService.m_Instance.UploadProgress <= 0.0f) && IsCommandAvailable(GlobalCommands.UploadToGenericCloud); case GlobalCommands.NewSketch: - return SketchHasChanges(); + return SketchHasChanges() && !(MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM); case GlobalCommands.Credits: case GlobalCommands.AshleysSketch: return !SketchHasChanges() && !SketchMemoryScript.m_Instance.IsMemoryDirty(); @@ -5042,7 +5090,25 @@ public bool IsCommandAvailable(GlobalCommands rEnum, int iParam = -1) return m_WidgetManager.AnyActivePathHasAKnot(); case GlobalCommands.GoogleDriveSync: return App.GoogleIdentity.LoggedIn; - case GlobalCommands.RecordCameraPath: return m_WidgetManager.CameraPathsVisible; + case GlobalCommands.RecordCameraPath: + return m_WidgetManager.CameraPathsVisible; + case GlobalCommands.AdvancedPanelsToggle: + return !(MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM); + case GlobalCommands.MultiplayerConnect: + return MultiplayerManager.m_Instance.IsConnectable(); + case GlobalCommands.MultiplayerDisconnect: + return MultiplayerManager.m_Instance.IsDisconnectable(); + case GlobalCommands.MultiplayerJoinRoom: + return !PanelManager.m_Instance.AdvancedModeActive() && MultiplayerManager.m_Instance.CanJoinRoom() && !SceneSettings.m_Instance.GetDesiredPreset().isPassthrough; + case GlobalCommands.MultiplayerLeaveRoom: + return MultiplayerManager.m_Instance.CanLeaveRoom(); + case GlobalCommands.Sketchbook: + case GlobalCommands.SketchbookMenu: + case GlobalCommands.EditMultiplayerNickName: + case GlobalCommands.EditMultiplayerRoomName: + return !(MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM); + case GlobalCommands.WhatIsNew: + return false; } return true; } diff --git a/Assets/Scripts/SketchMemoryScript.cs b/Assets/Scripts/SketchMemoryScript.cs index 8239780bbe..7b7420ec5e 100644 --- a/Assets/Scripts/SketchMemoryScript.cs +++ b/Assets/Scripts/SketchMemoryScript.cs @@ -16,6 +16,9 @@ using System; using System.Collections.Generic; using System.Linq; +using TiltBrush; +using System.Collections; +using System.Threading.Tasks; namespace TiltBrush { @@ -36,6 +39,7 @@ public class SketchMemoryScript : MonoBehaviour public static SketchMemoryScript m_Instance; public event Action OperationStackChanged; + public event Action NetworkOperationStackChanged; public Action CommandPerformed; public Action CommandUndo; public Action CommandRedo; @@ -80,6 +84,8 @@ public static void SetFlag(ref SketchMemoryScript.StrokeFlags flags, private Stack m_OperationStack; // stack of undone operations available for redo private Stack m_RedoStack; + // stack of network sketch operations + private Stack m_NetworkStack = new Stack(); // Memory list by timestamp of initial control point. The nodes of this list are // embedded in MemoryObject. Notable properties: @@ -191,6 +197,18 @@ public LinkedList GetMemoryList get { return m_MemoryList; } } + public IEnumerable GetAllOperations() + { + var allCommands = m_OperationStack.Concat(m_NetworkStack); + + return allCommands.OrderBy(command => command.NetworkTimestamp); + } + + public void AddCommandToNetworkStack(BaseCommand command) + { + m_NetworkStack.Push(command); + } + public Stroke GetStrokeAtIndex(int index) { return m_Instance.m_MemoryList.ElementAt(index); @@ -282,6 +300,7 @@ public bool IsMemoryDirty() return false; } + public bool CanUndo() { return m_OperationStack.Count > 0; } public bool CanRedo() { return m_RedoStack.Count > 0; } @@ -406,6 +425,17 @@ public void PerformAndRecordCommand(BaseCommand command, bool discardIfNotMerged } } + /// Executes and records a network-synchronized command. + /// Note: This method does not include merge logic or parent-child relationship checks, + /// as these are already handled by the PhotonRPC system. + public void PerformAndRecordNetworkCommand(BaseCommand command, bool discard = false) + { + BaseCommand delta = command; + delta.Redo(); + if (!discard) m_NetworkStack.Push(command); + NetworkOperationStackChanged?.Invoke(); + } + // TODO: deprecate in favor of PerformAndRecordCommand // Used by BrushStrokeCommand and ModifyLightCommmand while in Disco mode public void RecordCommand(BaseCommand command) @@ -510,7 +540,8 @@ public void MemorizeBatchedBrushStroke( BatchSubset subset, Color rColor, Guid brushGuid, float fBrushSize, float brushScale, List rControlPoints, StrokeFlags strokeFlags, - StencilWidget stencil, float lineLength, int seed) + StencilWidget stencil, float lineLength, int seed, + bool isFinalStroke) { // NOTE: PointerScript calls ClearRedo() in batch case @@ -527,8 +558,10 @@ public void MemorizeBatchedBrushStroke( rNewStroke.m_Seed = seed; subset.m_Stroke = rNewStroke; - SketchMemoryScript.m_Instance.RecordCommand( - new BrushStrokeCommand(rNewStroke, stencil, lineLength)); + SketchMemoryScript.m_Instance.PerformAndRecordCommand( + new BrushStrokeCommand(rNewStroke, stencil, lineLength), + invoke: isFinalStroke + ); if (m_SanityCheckStrokes) { @@ -775,6 +808,16 @@ public void ClearRedo() m_RedoStack.Clear(); } + public void ClearNetworkStack() + { + foreach (var command in m_NetworkStack) + { + command.Dispose(); + } + m_NetworkStack.Clear(); + NetworkOperationStackChanged?.Invoke(); + } + public void ClearMemory() { if (m_ScenePlayback != null) @@ -798,6 +841,8 @@ public void ClearMemory() } m_OperationStack.Clear(); OperationStackChanged?.Invoke(); + m_NetworkStack.Clear(); + NetworkOperationStackChanged?.Invoke(); m_LastOperationStackCount = 0; m_MemoryList.Clear(); App.GroupManager.ResetGroups(); @@ -949,6 +994,14 @@ public static int AllStrokesCount() return m_Instance.m_MemoryList.Count(); } + public List GetStrokesWithoutCommand() + { + return m_MemoryList + .Where(stroke => stroke.Command == null) + .OrderBy(s => s.HeadTimestampMs) + .ToList(); + } + public static void InitUndoObject(BaseBrushScript rBrushScript) { rBrushScript.CloneAsUndoObject(); @@ -1371,5 +1424,48 @@ public static List GetStrokesBetween(int start, int end) return result; } + + public bool IsStrokeInMemory(Guid strokeGuid) + { + return m_MemoryList.Any(stroke => stroke.m_Guid == strokeGuid); + } + + public bool IsCommandInStack(Guid commandGuid) + { + return IsCommandInOperationStack(commandGuid) || + IsCommandInRedoStack(commandGuid) || + IsCommandInNetworkStack(commandGuid); + } + + public bool IsCommandInOperationStack(Guid commandGuid) + { + return m_OperationStack.Any(command => command.Guid == commandGuid); + } + + public bool IsCommandInRedoStack(Guid commandGuid) + { + return m_RedoStack.Any(command => command.Guid == commandGuid); + } + + public bool IsCommandInNetworkStack(Guid commandGuid) + { + return m_NetworkStack.Any(command => command.Guid == commandGuid); + } + + public void SetTimeOffsetToAllStacks(int m_NetworkOffsetTimestamp) + { + SetTimeOffset(m_RedoStack, m_NetworkOffsetTimestamp); + SetTimeOffset(m_OperationStack, m_NetworkOffsetTimestamp); + SetTimeOffset(m_NetworkStack, m_NetworkOffsetTimestamp); + } + + public void SetTimeOffset(Stack stack, int m_NetworkOffsetTimestamp) + { + foreach (BaseCommand c in stack) + { + if (c.NetworkTimestamp == null) + c.NetworkTimestamp = c.Timestamp - m_NetworkOffsetTimestamp; + } + } } } // namespace TiltBrush diff --git a/Assets/Scripts/Stroke.cs b/Assets/Scripts/Stroke.cs index 209e5c1886..0ced2ffa0e 100644 --- a/Assets/Scripts/Stroke.cs +++ b/Assets/Scripts/Stroke.cs @@ -163,6 +163,7 @@ public Stroke() { m_NodeByTime = new LinkedListNode(this); m_PlaybackNode = new LinkedListNode(this); + m_Guid = Guid.NewGuid(); } /// Clones the passed stroke into a new NotCreated stroke. @@ -185,6 +186,9 @@ public Stroke(Stroke existing) : base(existing) // And we can't use field initializers for the linked list creation. m_NodeByTime = new LinkedListNode(this); m_PlaybackNode = new LinkedListNode(this); + + if (existing.m_Guid != null) + m_Guid = Guid.NewGuid(); } /// Makes a copy of stroke, if one has not already been made. diff --git a/Assets/Scripts/StrokeData.cs b/Assets/Scripts/StrokeData.cs index 26ec4f41a3..896d15fdf0 100644 --- a/Assets/Scripts/StrokeData.cs +++ b/Assets/Scripts/StrokeData.cs @@ -34,6 +34,23 @@ public class StrokeData // Not currently serialized. public int m_Seed; public SketchGroupTag m_Group = SketchGroupTag.None; + public Guid m_Guid; + + // Reference the BrushStrokeCommand that created this stroke with a WeakReference. + // This allows the garbage collector to collect the BrushStrokeCommand if it's no + // longer in use elsewhere. + [NonSerialized] private WeakReference m_Command; + public BrushStrokeCommand Command + { + get + { + if (m_Command != null && m_Command.TryGetTarget(out var command)) + return command; + return null; + } + set { m_Command = new WeakReference(value); } + } + /// This creates a copy of the given stroke. public StrokeData(StrokeData existing = null) diff --git a/Assets/Scripts/UserConfig.cs b/Assets/Scripts/UserConfig.cs index 313c82fdc6..1a811652b8 100644 --- a/Assets/Scripts/UserConfig.cs +++ b/Assets/Scripts/UserConfig.cs @@ -232,14 +232,7 @@ public string[] IncludeTags { if (m_IncludeTags == null) { - if (App.Config.GetIsExperimental()) - { - m_IncludeTags = new[] { "default", "experimental" }; - } - else - { - m_IncludeTags = new[] { "default" }; - } + m_IncludeTags = new[] { "default", "experimental" }; } return m_IncludeTags; } @@ -550,37 +543,34 @@ public Dictionary BrushReplacementMap get { Dictionary results = new Dictionary(); - if (Config.IsExperimental) + if (string.IsNullOrEmpty(BrushReplacements)) { - if (string.IsNullOrEmpty(BrushReplacements)) - { - return results; - } - var replacements = BrushReplacements.Split(','); - foreach (string replacement in replacements) + return results; + } + var replacements = BrushReplacements.Split(','); + foreach (string replacement in replacements) + { + string[] pair = replacement.Split('='); + if (pair.Length == 2) { - string[] pair = replacement.Split('='); - if (pair.Length == 2) + if (pair[0] == "*") { - if (pair[0] == "*") - { - Guid guid = new Guid(pair[1]); - foreach (var brush in App.Instance.m_Manifest.Brushes) - { - results.Add(brush.m_Guid, guid); - } - } - else + Guid guid = new Guid(pair[1]); + foreach (var brush in App.Instance.ManifestFull.Brushes) { - results.Add(new Guid(pair[0]), new Guid(pair[1])); + results.Add(brush.m_Guid, guid); } } else { - OutputWindowScript.Error("BrushReplacement should be of the form:\n" + - "brushguidA=brushguidB,brushguidC=brushguidD"); + results.Add(new Guid(pair[0]), new Guid(pair[1])); } } + else + { + OutputWindowScript.Error("BrushReplacement should be of the form:\n" + + "brushguidA=brushguidB,brushguidC=brushguidD"); + } } return results; } diff --git a/Assets/Settings/Localization/Strings/Strings Shared Data.asset b/Assets/Settings/Localization/Strings/Strings Shared Data.asset index 4aaa38e1db..5bc5787fd3 100644 --- a/Assets/Settings/Localization/Strings/Strings Shared Data.asset +++ b/Assets/Settings/Localization/Strings/Strings Shared Data.asset @@ -52,7 +52,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 5064506084139008 - m_Key: ADMIN_PANEL_SAVE_SKETCH_BUTTON_DESCRIPTION + m_Key: ADMIN_PANEL_WHAT_S_NEW m_Metadata: m_Items: [] - m_Id: 5065176065482752 @@ -1452,7 +1452,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 76121021711179776 - m_Key: POPUP_GDRIVE_BETATAG + m_Key: LABEL_BETATAG m_Metadata: m_Items: [] - m_Id: 76121263181455360 @@ -3299,6 +3299,18 @@ MonoBehaviour: m_Key: POPUP_UPLOAD_COMPLETE_MOBILE_DESCRIPTION m_Metadata: m_Items: [] + - m_Id: 156198200358006784 + m_Key: MULTIPLAYER_PANEL_ALERT_PASSTHROUGH_ACTIVE + m_Metadata: + m_Items: [] + - m_Id: 157582826200739840 + m_Key: MULTIPLAYER_PANEL_CLOSE_BUTTON_DESCRIPTION + m_Metadata: + m_Items: [] + - m_Id: 176097607781543936 + m_Key: LABEL_ALPHATAG + m_Metadata: + m_Items: [] - m_Id: 217069105871577088 m_Key: VIEW_MODE_TEXT m_Metadata: @@ -3331,6 +3343,102 @@ MonoBehaviour: m_Key: BRUSH_SETTINGS_TRAY_BRUSH_SIZE m_Metadata: m_Items: [] + - m_Id: 294636550056648704 + m_Key: MP_CONNECT + m_Metadata: + m_Items: [] + - m_Id: 294636769901092864 + m_Key: MP_JOIN_ROOM + m_Metadata: + m_Items: [] + - m_Id: 294636908816441344 + m_Key: MP_LEAVE_ROOM + m_Metadata: + m_Items: [] + - m_Id: 294637000357126144 + m_Key: MP_DISCONNECT + m_Metadata: + m_Items: [] + - m_Id: 294637073212186624 + m_Key: MP_EDIT_ROOM_NAME + m_Metadata: + m_Items: [] + - m_Id: 294637384320491520 + m_Key: MP_EDIT_NICK_NAME + m_Metadata: + m_Items: [] + - m_Id: 307216698459103232 + m_Key: erase text + m_Metadata: + m_Items: [] + - m_Id: 310819533771841536 + m_Key: New Entry + m_Metadata: + m_Items: [] + - m_Id: 312729904472465408 + m_Key: New Entry 1 + m_Metadata: + m_Items: [] + - m_Id: 312730512516521984 + m_Key: ADMIN_PANEL_SAVE_SKETCH_BUTTON_DESCRIPTION + m_Metadata: + m_Items: [] + - m_Id: 312781662766833664 + m_Key: MULTIPLAYER_STATUS + m_Metadata: + m_Items: [] + - m_Id: 312783011751469056 + m_Key: MULTIPLAYER__PANEL_STATE + m_Metadata: + m_Items: [] + - m_Id: 312783116814589952 + m_Key: MULTIPLAYER_PANEL_ROOM_NAME + m_Metadata: + m_Items: [] + - m_Id: 312783250461892608 + m_Key: MULTIPLAYER_PANEL_NICKNAME + m_Metadata: + m_Items: [] + - m_Id: 312783415369342976 + m_Key: New Entry 2 + m_Metadata: + m_Items: [] + - m_Id: 312962917202468864 + m_Key: MULTIPLAYER_PANEL_ROOM_OWNER + m_Metadata: + m_Items: [] + - m_Id: 312963339069759488 + m_Key: MULTIPLAYER_PANEL_ROOM_OWNE + m_Metadata: + m_Items: [] + - m_Id: 312963447907753984 + m_Key: MULTIPLAYER_PANEL_NOT_ROOM_OWNER + m_Metadata: + m_Items: [] + - m_Id: 312967307862810624 + m_Key: MULTIPLAYER_PANEL_ALERT_BEGINNER_MODE + m_Metadata: + m_Items: [] + - m_Id: 312967595889860608 + m_Key: New Entry 3 + m_Metadata: + m_Items: [] + - m_Id: 312967604588847104 + m_Key: MULTIPLAYER_PANEL_ALERT_ROOM_EXIST + m_Metadata: + m_Items: [] + - m_Id: 313081115495178240 + m_Key: MULTIPLAYER_PANEL_ALERT_PASSTHROUGH_EXIST + m_Metadata: + m_Items: [] + - m_Id: 313111533204348928 + m_Key: ADMIN_PANEL_MULTIPLAYER_BUTTON_DESCRIPTION + m_Metadata: + m_Items: [] + - m_Id: 313111642914758656 + m_Key: ADMIN_PANEL_MULTIPLAYER_DESCRIPTION + m_Metadata: + m_Items: [] m_Metadata: m_Items: [] m_KeyGenerator: diff --git a/Assets/Settings/Localization/Strings/Strings_de.asset b/Assets/Settings/Localization/Strings/Strings_de.asset index e0259b2546..acda5ad1d3 100644 --- a/Assets/Settings/Localization/Strings/Strings_de.asset +++ b/Assets/Settings/Localization/Strings/Strings_de.asset @@ -201,7 +201,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 5064506084139008 - m_Localized: Skizze speichern + m_Localized: Was gibt's Neues m_Metadata: m_Items: [] - m_Id: 5065040224559104 @@ -3576,6 +3576,68 @@ MonoBehaviour: m_Localized: Mehr Informationen zur Verwendung von Open Brush ohne VR m_Metadata: m_Items: [] + - m_Id: 294636769901092864 + m_Localized: Raum beitreten + m_Metadata: + m_Items: [] + - m_Id: 294636908816441344 + m_Localized: Raum verlassen + m_Metadata: + m_Items: [] + - m_Id: 294637073212186624 + m_Localized: Raumnamen bearbeiten + m_Metadata: + m_Items: [] + - m_Id: 294637384320491520 + m_Localized: Spitznamen bearbeiten + m_Metadata: + m_Items: [] + - m_Id: 307216698459103232 + m_Localized: "Text l\xF6schen" + m_Metadata: + m_Items: [] + - m_Id: 312730512516521984 + m_Localized: Skizze speichern + m_Metadata: + m_Items: [] + - m_Id: 312783011751469056 + m_Localized: 'Status: ' + m_Metadata: + m_Items: [] + - m_Id: 312783116814589952 + m_Localized: 'Raumname: ' + m_Metadata: + m_Items: [] + - m_Id: 312783250461892608 + m_Localized: 'Spitzname: ' + m_Metadata: + m_Items: [] + - m_Id: 312963339069759488 + m_Localized: Sie sind der Raumbesitzer + m_Metadata: + m_Items: [] + - m_Id: 312963447907753984 + m_Localized: Sie sind nicht der Raumbesitzer + m_Metadata: + m_Items: [] + - m_Id: 312967307862810624 + m_Localized: "Wechseln Sie in den Anf\xE4nger-Modus, um Multiplayer zu verwenden" + m_Metadata: + m_Items: [] + - m_Id: 312967604588847104 + m_Localized: Der Raum existiert bereits. Sie werden einer bestehenden Sitzung + beitreten. + m_Metadata: + m_Items: [] + - m_Id: 156198200358006784 + m_Localized: Schalten Sie den Passthrough-Modus aus, um den Mehrspielermodus + zu nutzen. + m_Metadata: + m_Items: [] + - m_Id: 313111533204348928 + m_Localized: "Mehrspieler-Men\xFC" + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/Assets/Settings/Localization/Strings/Strings_en.asset b/Assets/Settings/Localization/Strings/Strings_en.asset index 0c50b585da..ffe9a7d28e 100644 --- a/Assets/Settings/Localization/Strings/Strings_en.asset +++ b/Assets/Settings/Localization/Strings/Strings_en.asset @@ -201,7 +201,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 5064506084139008 - m_Localized: Save Sketch + m_Localized: What's New m_Metadata: m_Items: [] - m_Id: 5065040224559104 @@ -3081,7 +3081,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 89093153698373632 - m_Localized: (Restart required) + m_Localized: Less compatibility when exported. See our docs. m_Metadata: m_Items: [] - m_Id: 89093320602312704 @@ -3512,6 +3512,18 @@ MonoBehaviour: m_Localized: Pick a Subfolder m_Metadata: m_Items: [] + - m_Id: 157582826200739840 + m_Localized: Close + m_Metadata: + m_Items: [] + - m_Id: 176097607781543936 + m_Localized: ALPHA + m_Metadata: + m_Items: [] + - m_Id: 156198200358006784 + m_Localized: Switch off passthrough environment mode to use Multiplayer + m_Metadata: + m_Items: [] - m_Id: 238556149774557184 m_Localized: Image too large to load m_Metadata: @@ -3528,6 +3540,74 @@ MonoBehaviour: m_Localized: Brush Size m_Metadata: m_Items: [] + - m_Id: 294636550056648704 + m_Localized: Connect + m_Metadata: + m_Items: [] + - m_Id: 294636769901092864 + m_Localized: Join Room + m_Metadata: + m_Items: [] + - m_Id: 294636908816441344 + m_Localized: Leave Room + m_Metadata: + m_Items: [] + - m_Id: 294637000357126144 + m_Localized: Disconnect + m_Metadata: + m_Items: [] + - m_Id: 294637073212186624 + m_Localized: Edit Room Name + m_Metadata: + m_Items: [] + - m_Id: 294637384320491520 + m_Localized: Edit Nickname + m_Metadata: + m_Items: [] + - m_Id: 307216698459103232 + m_Localized: Erase text + m_Metadata: + m_Items: [] + - m_Id: 312730512516521984 + m_Localized: Save Sketch + m_Metadata: + m_Items: [] + - m_Id: 312781662766833664 + m_Localized: 'Status:' + m_Metadata: + m_Items: [] + - m_Id: 312783011751469056 + m_Localized: 'Status: ' + m_Metadata: + m_Items: [] + - m_Id: 312963339069759488 + m_Localized: You are the Room Owner + m_Metadata: + m_Items: [] + - m_Id: 312963447907753984 + m_Localized: You are not the Room Owner + m_Metadata: + m_Items: [] + - m_Id: 312783116814589952 + m_Localized: 'RoomName: ' + m_Metadata: + m_Items: [] + - m_Id: 312783250461892608 + m_Localized: 'Nickname:' + m_Metadata: + m_Items: [] + - m_Id: 312967307862810624 + m_Localized: Switch to beginner mode use Multiplayer + m_Metadata: + m_Items: [] + - m_Id: 312967604588847104 + m_Localized: Room already exists. You will be joining an existing session. + m_Metadata: + m_Items: [] + - m_Id: 313111533204348928 + m_Localized: 'Multiplayer Menu ' + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/Assets/Settings/Localization/Strings/Strings_es.asset b/Assets/Settings/Localization/Strings/Strings_es.asset index 0aa94db064..6af4360f3d 100644 --- a/Assets/Settings/Localization/Strings/Strings_es.asset +++ b/Assets/Settings/Localization/Strings/Strings_es.asset @@ -201,7 +201,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 5064506084139008 - m_Localized: Guardar dibujo + m_Localized: "Qu\xE9 hay de nuevo" m_Metadata: m_Items: [] - m_Id: 5065040224559104 @@ -3548,6 +3548,66 @@ MonoBehaviour: m_Localized: "M\xE1s informaci\xF3n sobre c\xF3mo usar Open Brush sin VR" m_Metadata: m_Items: [] + - m_Id: 294636769901092864 + m_Localized: Unirse a la Sala + m_Metadata: + m_Items: [] + - m_Id: 294636908816441344 + m_Localized: Salir de la Sala + m_Metadata: + m_Items: [] + - m_Id: 294637073212186624 + m_Localized: Editar Nombre de la Sala + m_Metadata: + m_Items: [] + - m_Id: 294637384320491520 + m_Localized: Editar Apodo + m_Metadata: + m_Items: [] + - m_Id: 307216698459103232 + m_Localized: Borrar texto + m_Metadata: + m_Items: [] + - m_Id: 312730512516521984 + m_Localized: Qu\xE9 hay de nuevo + m_Metadata: + m_Items: [] + - m_Id: 312783011751469056 + m_Localized: 'Estado: ' + m_Metadata: + m_Items: [] + - m_Id: 312783116814589952 + m_Localized: 'Nombre de la sala: ' + m_Metadata: + m_Items: [] + - m_Id: 312783250461892608 + m_Localized: 'Apodo: ' + m_Metadata: + m_Items: [] + - m_Id: 312963339069759488 + m_Localized: Eres el propietario de la sala + m_Metadata: + m_Items: [] + - m_Id: 312963447907753984 + m_Localized: No eres el propietario de la sala + m_Metadata: + m_Items: [] + - m_Id: 312967307862810624 + m_Localized: Cambia al modo principiante para usar el multijugador + m_Metadata: + m_Items: [] + - m_Id: 312967604588847104 + m_Localized: "La sala ya existe. Te unir\xE1s a una sesi\xF3n existente." + m_Metadata: + m_Items: [] + - m_Id: 156198200358006784 + m_Localized: Desactiva el modo de entorno de passthrough para usar el multijugador. + m_Metadata: + m_Items: [] + - m_Id: 313111533204348928 + m_Localized: "Men\xFA Multijugador" + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/Assets/Settings/Localization/Strings/Strings_fr.asset b/Assets/Settings/Localization/Strings/Strings_fr.asset index c0c7d234f0..528dd733e2 100644 --- a/Assets/Settings/Localization/Strings/Strings_fr.asset +++ b/Assets/Settings/Localization/Strings/Strings_fr.asset @@ -199,7 +199,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 5064506084139008 - m_Localized: Enregistrer le croquis + m_Localized: Quoi de neuf m_Metadata: m_Items: [] - m_Id: 5065040224559104 @@ -3517,6 +3517,67 @@ MonoBehaviour: m_Localized: Plus d'informations sur l'utilisation d'Open Brush sans VR m_Metadata: m_Items: [] + - m_Id: 294636769901092864 + m_Localized: Rejoindre la Salle + m_Metadata: + m_Items: [] + - m_Id: 294636908816441344 + m_Localized: Quitter la Salle + m_Metadata: + m_Items: [] + - m_Id: 294637073212186624 + m_Localized: Modifier le Nom de la Salle + m_Metadata: + m_Items: [] + - m_Id: 294637384320491520 + m_Localized: Modifier le Pseudo + m_Metadata: + m_Items: [] + - m_Id: 307216698459103232 + m_Localized: Effacer le texte + m_Metadata: + m_Items: [] + - m_Id: 312730512516521984 + m_Localized: Quoi de neuf + m_Metadata: + m_Items: [] + - m_Id: 312783011751469056 + m_Localized: 'Statut: ' + m_Metadata: + m_Items: [] + - m_Id: 312783116814589952 + m_Localized: "Nom de la salle\_: " + m_Metadata: + m_Items: [] + - m_Id: 312783250461892608 + m_Localized: "Surnom\_: " + m_Metadata: + m_Items: [] + - m_Id: 312963339069759488 + m_Localized: "Vous \xEAtes le propri\xE9taire de la salle" + m_Metadata: + m_Items: [] + - m_Id: 312963447907753984 + m_Localized: "Vous n'\xEAtes pas le propri\xE9taire de la salle" + m_Metadata: + m_Items: [] + - m_Id: 312967307862810624 + m_Localized: "Passez en mode d\xE9butant pour utiliser le multijoueur" + m_Metadata: + m_Items: [] + - m_Id: 312967604588847104 + m_Localized: "La salle existe d\xE9j\xE0. Vous allez rejoindre une session existante." + m_Metadata: + m_Items: [] + - m_Id: 156198200358006784 + m_Localized: "D\xE9sactivez le mode environnement de transparence pour utiliser + le multijoueur." + m_Metadata: + m_Items: [] + - m_Id: 313111533204348928 + m_Localized: Menu Multijoueur + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/Assets/Settings/Localization/Strings/Strings_ja.asset b/Assets/Settings/Localization/Strings/Strings_ja.asset index 4175e9eeb7..4379c4df58 100644 --- a/Assets/Settings/Localization/Strings/Strings_ja.asset +++ b/Assets/Settings/Localization/Strings/Strings_ja.asset @@ -200,7 +200,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 5064506084139008 - m_Localized: "\u30B9\u30B1\u30C3\u30C1\u3092\u4FDD\u5B58" + m_Localized: "\u65B0\u7740\u60C5\u5831" m_Metadata: m_Items: [] - m_Id: 5065040224559104 @@ -3470,6 +3470,66 @@ MonoBehaviour: m_Localized: "VR\u306A\u3057\u3067Open Brush\u3092\u4F7F\u7528\u3059\u308B\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306E\u8A73\u7D30" m_Metadata: m_Items: [] + - m_Id: 294636769901092864 + m_Localized: "\u90E8\u5C4B\u306B\u53C2\u52A0" + m_Metadata: + m_Items: [] + - m_Id: 294636908816441344 + m_Localized: "\u90E8\u5C4B\u3092\u9000\u51FA" + m_Metadata: + m_Items: [] + - m_Id: 294637073212186624 + m_Localized: "\u90E8\u5C4B\u306E\u540D\u524D\u3092\u7DE8\u96C6" + m_Metadata: + m_Items: [] + - m_Id: 294637384320491520 + m_Localized: "\u30CB\u30C3\u30AF\u30CD\u30FC\u30E0\u3092\u7DE8\u96C6" + m_Metadata: + m_Items: [] + - m_Id: 307216698459103232 + m_Localized: "\u30C6\u30AD\u30B9\u30C8\u3092\u6D88\u53BB" + m_Metadata: + m_Items: [] + - m_Id: 312730512516521984 + m_Localized: "\u65B0\u7740\u60C5\u5831" + m_Metadata: + m_Items: [] + - m_Id: 312783011751469056 + m_Localized: "\u30B9\u30C6\u30FC\u30BF\u30B9\uFF1A" + m_Metadata: + m_Items: [] + - m_Id: 312783116814589952 + m_Localized: "\u30EB\u30FC\u30E0\u540D\uFF1A" + m_Metadata: + m_Items: [] + - m_Id: 312783250461892608 + m_Localized: " \u30CB\u30C3\u30AF\u30CD\u30FC\u30E0\uFF1A" + m_Metadata: + m_Items: [] + - m_Id: 312963339069759488 + m_Localized: "\u3042\u306A\u305F\u306F\u30EB\u30FC\u30E0\u306E\u6240\u6709\u8005\u3067\u3059" + m_Metadata: + m_Items: [] + - m_Id: 312963447907753984 + m_Localized: "\u3042\u306A\u305F\u306F\u30EB\u30FC\u30E0\u306E\u6240\u6709\u8005\u3067\u306F\u3042\u308A\u307E\u305B\u3093" + m_Metadata: + m_Items: [] + - m_Id: 312967307862810624 + m_Localized: "\u30DE\u30EB\u30C1\u30D7\u30EC\u30A4\u30E4\u30FC\u3092\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001\u30D3\u30AE\u30CA\u30FC\u30E2\u30FC\u30C9\u306B\u5207\u308A\u66FF\u3048\u3066\u304F\u3060\u3055\u3044" + m_Metadata: + m_Items: [] + - m_Id: 312967604588847104 + m_Localized: "\u30EB\u30FC\u30E0\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u65E2\u5B58\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306B\u53C2\u52A0\u3057\u307E\u3059\u3002" + m_Metadata: + m_Items: [] + - m_Id: 156198200358006784 + m_Localized: "\u30DE\u30EB\u30C1\u30D7\u30EC\u30A4\u30E4\u30FC\u3092\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001\u900F\u904E\u74B0\u5883\u30E2\u30FC\u30C9\u3092\u30AA\u30D5\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002" + m_Metadata: + m_Items: [] + - m_Id: 313111533204348928 + m_Localized: "\u30DE\u30EB\u30C1\u30D7\u30EC\u30A4\u30E4\u30FC\u30E1\u30CB\u30E5\u30FC" + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/Assets/Settings/Localization/Strings/Strings_ko.asset b/Assets/Settings/Localization/Strings/Strings_ko.asset index 1fdf5c1bfe..47251b9d18 100644 --- a/Assets/Settings/Localization/Strings/Strings_ko.asset +++ b/Assets/Settings/Localization/Strings/Strings_ko.asset @@ -197,7 +197,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 5064506084139008 - m_Localized: "\uC2A4\uCF00\uCE58 \uC800\uC7A5" + m_Localized: "\uC0C8\uB85C\uC6B4 \uC18C\uC2DD" m_Metadata: m_Items: [] - m_Id: 5065040224559104 @@ -3536,6 +3536,69 @@ MonoBehaviour: \uC815\uBCF4" m_Metadata: m_Items: [] + - m_Id: 294636769901092864 + m_Localized: "\uBC29 \uCC38\uC5EC" + m_Metadata: + m_Items: [] + - m_Id: 294636908816441344 + m_Localized: "\uBC29 \uB098\uAC00\uAE30" + m_Metadata: + m_Items: [] + - m_Id: 294637073212186624 + m_Localized: "\uBC29 \uC774\uB984 \uD3B8\uC9D1" + m_Metadata: + m_Items: [] + - m_Id: 294637384320491520 + m_Localized: "\uB2C9\uB124\uC784 \uD3B8\uC9D1" + m_Metadata: + m_Items: [] + - m_Id: 307216698459103232 + m_Localized: "\uD14D\uC2A4\uD2B8 \uC9C0\uC6B0\uAE30" + m_Metadata: + m_Items: [] + - m_Id: 312730512516521984 + m_Localized: "\uC0C8\uB85C\uC6B4 \uC18C\uC2DD" + m_Metadata: + m_Items: [] + - m_Id: 312783011751469056 + m_Localized: "\uC0C1\uD0DC: " + m_Metadata: + m_Items: [] + - m_Id: 312783116814589952 + m_Localized: "\uBC29 \uC774\uB984: " + m_Metadata: + m_Items: [] + - m_Id: 312783250461892608 + m_Localized: "\uB2C9\uB124\uC784: " + m_Metadata: + m_Items: [] + - m_Id: 312963339069759488 + m_Localized: "\uB2F9\uC2E0\uC740 \uBC29\uC758 \uC18C\uC720\uC790\uC785\uB2C8\uB2E4" + m_Metadata: + m_Items: [] + - m_Id: 312963447907753984 + m_Localized: "\uB2F9\uC2E0\uC740 \uBC29\uC758 \uC18C\uC720\uC790\uAC00 \uC544\uB2D9\uB2C8\uB2E4" + m_Metadata: + m_Items: [] + - m_Id: 312967307862810624 + m_Localized: "\uBA40\uD2F0\uD50C\uB808\uC774\uC5B4\uB97C \uC0AC\uC6A9\uD558\uB824\uBA74 + \uCD08\uBCF4\uC790 \uBAA8\uB4DC\uB85C \uC804\uD658\uD558\uC138\uC694" + m_Metadata: + m_Items: [] + - m_Id: 312967604588847104 + m_Localized: "\uBC29\uC774 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4. \uAE30\uC874 + \uC138\uC158\uC5D0 \uCC38\uC5EC\uD569\uB2C8\uB2E4." + m_Metadata: + m_Items: [] + - m_Id: 156198200358006784 + m_Localized: "\uBA40\uD2F0\uD50C\uB808\uC774\uC5B4\uB97C \uC0AC\uC6A9\uD558\uB824\uBA74 + \uD328\uC2A4\uC2A4\uB8E8 \uD658\uACBD \uBAA8\uB4DC\uB97C \uB044\uC138\uC694." + m_Metadata: + m_Items: [] + - m_Id: 313111533204348928 + m_Localized: "\uBA40\uD2F0\uD50C\uB808\uC774 \uBA54\uB274" + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/Assets/Settings/Localization/Strings/Strings_zh.asset b/Assets/Settings/Localization/Strings/Strings_zh.asset index 801374490a..578696a8c6 100644 --- a/Assets/Settings/Localization/Strings/Strings_zh.asset +++ b/Assets/Settings/Localization/Strings/Strings_zh.asset @@ -195,7 +195,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 5064506084139008 - m_Localized: "\u4FDD\u5B58\u8349\u56FE" + m_Localized: "\u6709\u4EC0\u4E48\u65B0\u5185\u5BB9" m_Metadata: m_Items: [] - m_Id: 5065040224559104 @@ -3466,6 +3466,66 @@ MonoBehaviour: m_Localized: "\u5173\u4E8E\u4E0D\u4F7F\u7528 VR \u4F7F\u7528 Open Brush \u7684\u66F4\u591A\u4FE1\u606F" m_Metadata: m_Items: [] + - m_Id: 294636769901092864 + m_Localized: "\u52A0\u5165\u623F\u95F4" + m_Metadata: + m_Items: [] + - m_Id: 294636908816441344 + m_Localized: "\u79BB\u5F00\u623F\u95F4" + m_Metadata: + m_Items: [] + - m_Id: 294637073212186624 + m_Localized: "\u7F16\u8F91\u623F\u95F4\u540D\u79F0" + m_Metadata: + m_Items: [] + - m_Id: 294637384320491520 + m_Localized: "\u7F16\u8F91\u6635\u79F0" + m_Metadata: + m_Items: [] + - m_Id: 307216698459103232 + m_Localized: "\u6E05\u9664\u6587\u672C" + m_Metadata: + m_Items: [] + - m_Id: 312730512516521984 + m_Localized: "\u6709\u4EC0\u4E48\u65B0\u5185\u5BB9" + m_Metadata: + m_Items: [] + - m_Id: 312783011751469056 + m_Localized: " \u72B6\u6001\uFF1A" + m_Metadata: + m_Items: [] + - m_Id: 312783116814589952 + m_Localized: "\u623F\u95F4\u540D\u79F0\uFF1A" + m_Metadata: + m_Items: [] + - m_Id: 312783250461892608 + m_Localized: "\u6635\u79F0\uFF1A" + m_Metadata: + m_Items: [] + - m_Id: 312963339069759488 + m_Localized: "\u60A8\u662F\u623F\u95F4\u6240\u6709\u8005" + m_Metadata: + m_Items: [] + - m_Id: 312963447907753984 + m_Localized: "\u60A8\u4E0D\u662F\u623F\u95F4\u6240\u6709\u8005" + m_Metadata: + m_Items: [] + - m_Id: 312967307862810624 + m_Localized: "\u5207\u6362\u5230\u521D\u5B66\u8005\u6A21\u5F0F\u4EE5\u4F7F\u7528\u591A\u4EBA\u6E38\u620F" + m_Metadata: + m_Items: [] + - m_Id: 312967604588847104 + m_Localized: "\u623F\u95F4\u5DF2\u5B58\u5728\u3002\u60A8\u5C06\u52A0\u5165\u4E00\u4E2A\u73B0\u6709\u7684\u4F1A\u8BDD\u3002" + m_Metadata: + m_Items: [] + - m_Id: 156198200358006784 + m_Localized: "\u5173\u95ED\u900F\u89C6\u73AF\u5883\u6A21\u5F0F\u4EE5\u4F7F\u7528\u591A\u4EBA\u6E38\u620F\u3002" + m_Metadata: + m_Items: [] + - m_Id: 313111533204348928 + m_Localized: "\u591A\u4EBA\u83DC\u5355" + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/README.md b/README.md index 2979a01eab..cfabe33896 100644 --- a/README.md +++ b/README.md @@ -230,6 +230,18 @@ Follow these steps to build your app for Oculus Quest: `../Builds/OculusMobile_Release_OpenBrush/`. 1. Run `adb install com.Icosa.OpenBrush.apk`. +### Enabling Multiplayer Photon Fusion and Photon Voice + +1. Download and install both [Photon Fusion 2.0.3 SDK](https://doc.photonengine.com/fusion/current/getting-started/sdk-download) and [Photon Voice 2](https://assetstore.unity.com/packages/tools/audio/photon-voice-2-130518?srsltid=AfmBOoqJifR_h-nIp73IL5F83GSvOmk3WqKytS1YsxrEUuZqVfAv5kQ9) +1. Alternatively Download [Photon Fusion 2.0.3 SDK + Photon Voice 2] (https://github.com/icosa-mirror/photon-fusion/releases/tag/Fusion_v2_Voice_2) copy it's content to the Assets Folder. +1. Restart Unity to trigger the creation of the Photon Fusion and Photon Voice specific defines. +1. In the **Standalone** and **Android** tabs of the Player settings, go to **Other Settings** > **Scripting Define Symbols**. +1. Click the + button to create a new entry. +1. Add `MP_PHOTON` and press **Apply**. +1. Follow the steps to [create your secrets file](#-Generating-Secrets-file). + Add 2 new items to the **Secrets** field. Both `Photon Fusion` and `Photon Voice` should have their own entries. +1. Put the app IDs in the `Client ID` field for each. + ### Publishing to Oculus stores Note: _Tilt Brush_ is a Google trademark. If you intend to publish a cloned