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