diff --git a/README.md b/README.md
index 9b6b645f..ecd394c7 100644
--- a/README.md
+++ b/README.md
@@ -31,6 +31,7 @@ Check our [contribution guidelines](CONTRIBUTING.md) for information on how to c
|**[Photon Realtime](/Transports/com.community.netcode.transport.photon-realtime)**| Desktop, Mobile, WebGL\** | :heavy_check_mark: | :heavy_check_mark: | |
|**[Facepunch](/Transports/com.community.netcode.transport.facepunch)**| Steam | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|**[Multipeer Connectivity](/Transports/com.community.netcode.transport.multipeer-connectivity)**| iOS | :heavy_check_mark: | :heavy_check_mark: | |
+|**[Pico](/Transports/com.community.netcode.transport.pico)**| PICO ||| :heavy_check_mark: |
\* Needs manual binary compilation.
\** Other platforms such as console platforms are also supported but require communication with Exit Games.
diff --git a/Transports/com.community.netcode.transport.pico/CHANGELOG.md b/Transports/com.community.netcode.transport.pico/CHANGELOG.md
new file mode 100644
index 00000000..bb1fed11
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Changelog
+All notable changes to this package will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
+
+## 0.0.1
+First version of the \ transport as a Unity package.
\ No newline at end of file
diff --git a/Transports/com.community.netcode.transport.pico/CHANGELOG.md.meta b/Transports/com.community.netcode.transport.pico/CHANGELOG.md.meta
new file mode 100644
index 00000000..fd70f03b
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/CHANGELOG.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 425e6e13b3ac94548b5f04c1c4158d3e
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/LICENSE.md b/Transports/com.community.netcode.transport.pico/LICENSE.md
new file mode 100644
index 00000000..ea4b0085
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/LICENSE.md
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) 2021 Unity Technologies
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/Transports/com.community.netcode.transport.pico/LICENSE.md.meta b/Transports/com.community.netcode.transport.pico/LICENSE.md.meta
new file mode 100644
index 00000000..dd8bf437
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/LICENSE.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b53ebb1dba8e44f4d994b4e054b03d10
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/README.md b/Transports/com.community.netcode.transport.pico/README.md
new file mode 100644
index 00000000..1cf52ca6
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/README.md
@@ -0,0 +1,202 @@
+# PicoTransport
+## 1. Overview
+The PicoTransport module implements the INetworkTransport interface for Netcode, facilitating the integration between Netcode and PICO room services.
+By utilizing PicoTransport, developers can leverage Netcode and PICO room services to develop multiplayer PICO applications. The overall structure is illustrated below:
+
+
+## 2. Preparation
+### 2.1. PICO VR Environment Setup
+- Follow the["Quick Start"](https://developer-global.pico-interactive.com/document/unity/) section in the PICO official documentation to set up the basic PICO VR environment and create a new VR project.
+
+>PICO relies on some preview packages, such as 'XR Interaction Toolkit'. Please enable the preview package option to install these packages as shown in the following image:
+>
+>To work around the bug in the PICO Unity Integration SDK v2.x.x that causes the failure to retrieve PICO user information when running in the Unity Editor, you can temporarily comment out the call to CLIB.ppf_User_GetPresenceIsJoinable in the User.cs script located in PICO.Platform/Platform/Scripts/Models at line 85. This will bypass the bug and allow you to proceed with the examples.
+
+
+### 2.2. PICO Multiplayer Service Activation
+- Apply for a developer account on the [PICO platform](https://developer-global.pico-interactive.com/) and create an app.
+- After creating the app, activate the PICO matchmaking(room) services for this app:
+
+- Create a PICO matchmaking pool as needed in the 'Matchmaking Service' section.
+>To run the included examples, **it is essential to create a matchmaking pool named 'test_pool_basic_2' and set the options 'Managed Rooms' and 'Allow Matching Into the Same Room' as shown in the image below**:
+>
+
+### 2.3. Unity Project Configuration
+Configure the 'PICO Platform' and 'PC Debug' settings:
+
+- Disable the 'UserEntitlementCheck' option in the platform SDK settings ('PXR_SDK' > 'Platform Settings'):
+
+- Set the Access Token in the 'PC Debug' settings ('PXR_SDK' > 'PC Debug Settings')::
+
+Retrieve the Access Token from the [PICO Developer Dashboard](https://developer-global.pico-interactive.com/):
+
+- After making the configuration changes, close and reopen the Unity Editor (required for PICO PC Debug)
+
+## 3. Quick Start
+### 3.1 Example Features
+The 'SimpleMode' example is derived from the netcode goldenpath and is designed to synchronize capsule representations of different clients on PICO devices. This example utilizes the PICO Platform services and PicoTransport. Specifically, the participating clients join the same PICO named room and use the PICO Platform's message sending and receiving API to achieve Netcode communication.
+
+### 3.2 Import PicoTransport and Example Project
+Download the PicoTransport package and save it locally. Then, in the Unity Editor, go to the menu 'Windows' > 'Package Manager'.
+In the Package Manager window, click on '+' > 'Add package from disk'.
+
+Select the PicoTransport directory that was downloaded, and choose the package.json file to import PicoTransport. After importing PicoTransport, proceed to import the Samples into the project as well.
+
+
+### 3.3 Run the SimpleMode Example
+#### 3.3.1. Run in the Editor
+- Open the 'SimpleMode' scene:
+
+- Make sure the necessary configurations are set in the Unity Editor:
+
+- Click the 'Play' button to run the scene and add the current scene to the build scenes when prompted
+
+- Click the 'StartRoom' button (or the 'StartHost' button in the NetworkManager component) to spawn a red capsule in the scene. This indicates that the Netcode host is running successfully. Click the 'Move' button to randomly move the capsule representing the host:
+
+To test the interaction between two Netcode clients, let's proceed with the following steps to build an instance for running on a PICO device.
+
+#### 3.3.2. Build and Run on a PICO Device
+- In the Unity Editor, go to the menu and select 'File' > 'Build Settings...'. In the build settings window, remove the basic XR scene added during the preparation step and check only the 'SampleMode' scene:
+
+- Switch the platform to Android (ensure that the platform settings match the instructions in the [Quick Start](https://developer-global.pico-interactive.com/document/unity/) section of the official PICO documentation).
+In the Android tab, click on 'Switch Platform' to switch to the Android platform. If the location indicated by the red box shows 'Build', it means the current platform is already set to Android and there is no need to switch.
+
+- Connect your PICO device and select it in the 'Run Device' dropdown menu. Click on 'Build And Run'. When prompted to specify the output directory for the generated APK, create a new 'output' folder to store it.
+
+
+#### 3.3.3. Unity Editor and PICO Device Debugging
+After the 'Build And Run' process is complete, you can start debugging between the PICO device and the Unity Editor.
+Put on the PICO device and click the 'Join Room' button. The PICO device will join the room created by the Editor (the room name in the example is 'abc'). Two red capsules will appear in the room, one representing the host in the Editor and the other representing the client on the PICO device. Click the 'Move' button in the Editor or on the PICO device to see the capsule positions synchronized between the Editor and the PICO device:
+
+>If there is an initialization failure on the device with a message stating "Signature Mismatch," you can upload the APK package to the PICO developer platform to sync the signature information.
+>Note: When the PICO device screen is off, the Netcode logic also stops. Therefore, if the PICO device acts as the host of the room ('Start Room'), make sure the PICO app is awake when the client moves. This way, the host remains active and can handle the Netcode synchronization messages sent by the client.
+
+### 3.4 Other Examples
+#### 3.4.1 MatchmakingRoom
+The 'MatchmakingRoom' example differs from the 'SimpleMode' example in the following ways:
+- In the 'SimpleMode' scene, there is no matchmaking process. The clients join the same PICO named room by using a pre-agreed room name. In the 'Matchmaking' scene, the clients gather together through PICO's matchmaking service and then join the same PICO matchmaking room.
+- Since the 'SimpleMode' scene does not require a matchmaking process, PicoTransport operates in "Simple Mode" where it encapsulates the process of creating and joining rooms internally. Developers do not need to worry about the specific calls to PICO.CoreService/PICO.GameService, but only need to configure the agreed room name.
+On the other hand, in the 'MatchmakingRoom' scene, developers explicitly call PICO's Platform service APIs for matchmaking and joining the room. In the 'Matchmaking' scene, PicoTransport works in "External Room" mode because it needs to interact with the PICO room managed by the developer. For a more detailed comparison between the "Simple" and "External Room" modes, refer to the [Working Modes](#41-working-modes) section in the PicoTransport documentation.
+##### Running the MatchmakingRoom Example
+ - Build this scene to your PICO device, selecting only the 'MatchmakingRoom' scene during the build process:
+
+ - Run it in the Unity Editor, click the 'InitPicoSDK' button, and it will initialize PICO internally and join the 'test_pool_basic_2' matchmaking pool configured in section [2.2](#22-pico-multiplayer-service-activation). After successfully joining the matchmaking pool, the UI will display the UID and wait for other clients to join:
+
+ - On the PICO device, click the 'InitPicoSDK' button to join the matchmaking pool. Since the matchmaking conditions are met, the PICO matchmaking service will match the client in the Editor with the client in the PICO device and create a matchmaking room for them to join. At this point, the UI will display the 'JoinRoom' button:
+
+ - Click the 'JoinRoom' button in both the Editor and on the PICO device to join the PICO matchmaking room. Once in the room, the position synchronization by NetCode will start, as shown in the following image. Click the 'Submit position' button to move the capsule and synchronize the positions between the two clients:
+
+>Note:
+>1. PICO's matchmaking rooms have a time limit. If both sides don't click 'JoinRoom' to join the room, the room will be destroyed on the PICO server after 10 seconds. After that, any attempt to join the room will fail, and you will be returned to the initial interface.
+>2. When a Netcode client joins, it needs to handshake with the host before starting the normal synchronization communication process. Therefore, if the client clicks 'JoinRoom' before the host joins the room, the client will be stuck in the room interface. The reason is that the host has not joined the room yet and cannot handle the messages sent by the client. Only when the host also clicks 'JoinRoom', the handshake between the two Netcode clients can be completed, and the red capsules representing both sides will be created, starting the normal communication and synchronization process.
+
+#### 3.4.2 Multiplayer
+The 'Multiplayer' example is similar to the 'MatchmakingRoom' example. In the 'Multiplayer' scene, PicoTransport also works in "External Room" mode and uses PICO's matchmaking service to gather together. Compared to 'MatchmakingRoom', 'Multiplayer' synchronizes more information, such as player actions, making it a more realistic example.
+##### Running the Multiplayer Example
+- Build this scene to your PICO device and run it, **making sure to add the 'Init', 'Start', and 'Fight' scenes in order (indices 0/1/2)**:
+
+- Run it in the Unity Editor and click the 'Start' button to start the matchmaking process:
+
+After successfully joining the matchmaking, it will display 'InMatching...' to indicate that it is waiting for other players to join:
+
+- On the PICO device, click the 'Start' button to join the matchmaking. Since the matchmaking conditions are met, the PICO matchmaking service will match the client in the Editor with the client in the PICO device and create a matchmaking room. Once both clients enter this matchmaking room, the position synchronization for NetCode will start. Move to the green area on the right to exit the current scene:
+
+
+### 3.5 Behavior in Special Scenarios
+Two factors can affect the behavior in weak network conditions: 1. The host/server-centric topology of NetCode; 2. How PICO rooms handle player disconnections.
+#### 3.5.1 NetCode Factors:
+- NetCode relies on the host (owner of the PICO room) as the logical control center. The logic can only proceed when there is a host in the room. If a client joins the room before the host is ready, the client will be stuck waiting for the host.
+- When the host leaves, the entire game session ends, and the client will also exit the game session.
+#### 3.5.2 PICO Room Factors:
+- When a client actively leaves a PICO room, the server immediately removes the player from the room (other players in the scene will see them leaving).
+- If a client stops sending heartbeats for more than 10 seconds (which can happen in poor network conditions), the server will remove the player from the PICO room.
+- If a PICO room is empty (no players) for more than 10 seconds, the room will be deleted, and any join requests to that room will fail.
+#### 3.5.3 Behavior in Examples:
+- After a successful match, if a client joins the room before the host, the client will not see any capsules in the scene because the handshake between the client and the host cannot be completed. Once the host joins, the handshake will be completed, and the capsules representing both sides will appear in the scene. If the host does not join within 10 seconds, the client will exit due to a handshake timeout.
+- If a client leaves the room but the host is still in the room, the client can rejoin the same room.
+- If the host leaves the room, the client will detect the host's departure and voluntarily exit the room.
+- If the host leaves the room, within 10 seconds the PICO server still keeps the room, and the host can rejoin the room.
+- If the room is empty for more than 10 seconds, the server will close the room. Any join requests from the host or clients will fail, and they will return to the initial interface.
+- In case of a network disconnection:
+ - If the connection is restored within 10 seconds, the logic will continue normally.
+ - If a client fails to reconnect within 10 seconds or keeps failing to reconnect:
+ - The timed-out client will return to the initial interface.
+ - The other clients still in the room will see the disconnected client leaving the scene if they were the host, or they will exit themselves if the disconnected client was the host.
+
+## 4. PicoTransport Usage Instructions
+### 4.1 Working Modes
+The application logic can be divided into two parts: the logic outside the room (including entering the room) and the logic inside the room.
+The logic outside the room does not involve NetCode. The purpose of this part of the logic is to gather players together and join them in the same PICO room so that they can exchange messages.
+The logic after entering the room, which is related to synchronization, needs to be supported by NetCode. In the room, PicoTransport acts as the communication layer for NetCode, responsible for supporting low-level message communication.
+PicoTransport has two working modes, 'SimpleMode' and 'ExternalRoom' mode, which are related to these two parts of the logic:
+- In 'SimpleMode', there is no logic outside the room. The developer only needs to set a common room name, and PicoTransport will handle the rest internally, including gathering suitable players together and joining them into the same PICO named room. In this mode, the PICO room is transparent to the developer.
+- In 'ExternalRoom' mode, the developer needs to handle the logic outside the room. This mode provides more flexibility, allowing the developer to control how players gather together, such as using friend invitations or matchmaking services, etc. However, the cost of this flexibility is more development work. The developer needs to handle the matching and joining process themselves and explicitly manage the room and handle message events inside the room. For PicoTransport, it is important that the developer forward messages and events between NetCode and the external room, as described in [Driving Transport in External Room Mode](#43-driving-picotransport-in-externalroom-mode).
+
+### 4.2 Using PicoTransport
+
+##### 4.2.1 Import and Use PicoTransport
+- Download the package to your local machine.
+- In the Unity Editor, go to 'Windows' > 'Package Manager'. In the Package Manager window, click on '+' > 'Add package from disk'.
+
+ Select the PicoTransport directory you just downloaded and choose the package.json file to import PicoTransport.
+- After importing PicoTransport, import the samples as needed.
+
+- Set the 'Network Transport' of the NetworkManager to PicoTransport.
+
+
+##### 4.2.2 Configuring the PicoTransport Component
+- Simple Mode
+ In 'Simple' mode, developers only need to configure the PicoTransport component and do not need to write additional code to access the PICO platform services. The configuration options are as follows:
+ [simplemode-config](doc-images/simplemode-config.png)
+
+| Configuration Option | Value | Description |
+|---------|-----------|-----|
+| WorkMode | Simple | Select the Simple mode.|
+| RoomName | Room Name | Choose a room name that is appropriate for your business and notify all players in a suitable way. Internally, this configuration specifies the name of the named PICO room. |
+| Password | Room Password | The password for the named PICO room. If not set, the room will have no password.|
+
+- External Room Mode
+ In 'ExternalRoom' mode, developers need to write code to call the various PICO platform services to join the PICO room, as well as receive and handle messages and events from the PICO room to drive the operation of PicoTransport. See [Driving Transport in External Room Mode](#43-driving-picotransport-in-externalroom-mode) for more details.
+
+
+| Configuration Option | Value | Description |
+|---------|-----------|-----|
+| WorkMode | External Room | Select the ExternalRoom mode.|
+
+### 4.3 Driving PicoTransport in ExternalRoom Mode
+ In contrast to 'SimpleMode', in 'ExternalRoom' mode, developers use the functionalities provided by the PICO SDK to create and manage PICO rooms. This process needs to be completed before calling Netcode's StartHost/StartClient.
+ After joining the PICO room, the client calls StartHost or StartClient to start Netcode. Developers need to do two things in their code:
+ - Forward the received room events and messages to PicoTransport.
+>Events: player enter and leave PICO room events, as well as the room player list.
+>Messages: Netcode messages from players in the same room.
+ - When PicoTransport needs to send messages, call the PICO room service API to send the message to the specified target player.
+
+To accomplish these two tasks, PicoTransport provides an adapter class called ExternalRoomTransportDriver. The main interfaces of this class are as follows:
+
+| Interface/Event | Purpose | When to Call |
+|---------|-----------|-----|
+| Init | Initialize PicoTransport | After finding suitable players and successfully joining the same room.
For example, in the OnComplete callback of PICO SDK's RoomService.Join2. |
+| HandleRoomInfoUpdate | Notify PicoTransport of the changes in the PICO room | When the room information changes, such as when someone enters the room.
For example, in the callback set by RoomService.SetUpdateNotificationCallback.|
+| Update | Drive the process periodically | Called every frame.
This function call HandleMsgFromRoom to receive messages from the PICO room and pass them to PicoTransport. |
+| OnDriverEvent | Event notification |Possible events include: Error, Shutdown, BeforeReenter/AfterReenter.
BeforeReenter/AfterReenter are called before and after the previous host leaves and the client restarts Netcode. |
+
+>The logic outside the room is a prerequisite for the operation of the 'ExternalRoom' mode, but this logic is not included in PicoTransport.
+>In the PicoTransport example, a helper class called 'Netcode.Transports.Pico.ExternalModeSDKUser' is used.
+>This class encapsulates the initialization of the PICO platform SDK, token retrieval, PICO User retrieval, PICO Game service initialization, PICO matchmaking, entering the room, and other related APIs. It also registers callbacks to handle messages and events from the PICO services.
+>Developers can use ExternalModeSDKUser to call PICO services to complete the process of joining a room. They can also modify this class as needed to use other PICO platform service functionalities such as destination/RTC, etc.
+
+>Main interfaces of ExternalModeSDKUser::
+>| Interface Name | Purpose |
+>|---------|-----------|
+>| StartPicoGame | Initialize the PICO platform, retrieve the access token, retrieve the logged-in user, and call game initialize. |
+>| StartMatchmaking/StartJoinRoom/StartLeaveRoom | Join matchmaking, join room, leave room. |
+>| StartNetcode/StopNetcode | Start Netcode. This function internally calls StartHost/StartClient of Netcode based on whether it is the PICO room host or not. |
+>| OnStatusChange | Callback when the status changes, such as platform initialization completed, successful matchmaking, etc. |
+
+### 4.4 Notes and Recommendations:
+- If the host leaves the PICO room, the current Netcode session of all clients should end. However, in PICO, clients other than the original host remain in the PICO room without exiting. At this point, developers have two options:
+ - Make these clients also exit the PICO room, ending the entire game.
+ - Let the new PICO room owner start StartHost, and other members in the room restart StartClient. This way, Netcode can be started again and the original game can continue. To do this, developers need to handle the host leaving event appropriately and save and restore the game state. PicoTransport provides some support for this by calling StartHost/StartClient again depending on whether it is the new PICO room owner or not. Please refer to the 'Multiplayer' code for more details.
+- PicoTransport internally handles the sending and receiving of messages within the PICO room. The business logic should not use the message sending and receiving functions of the PICO SDK's NetworkService.
+- To work around the bug in the PICO Unity Integration SDK v2.x.x that causes the failure to retrieve PICO user information when running in the Unity Editor, you can temporarily comment out the call to CLIB.ppf_User_GetPresenceIsJoinable in the User.cs script located in PICO.Platform/Platform/Scripts/Models at line 85. This will bypass the bug and allow you to proceed with the examples.
+
diff --git a/Transports/com.community.netcode.transport.pico/README.md.meta b/Transports/com.community.netcode.transport.pico/README.md.meta
new file mode 100644
index 00000000..284f0c66
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/README.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4ff9e8d69659330418658ec9b32d22fc
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/README.zh-CN.md b/Transports/com.community.netcode.transport.pico/README.zh-CN.md
new file mode 100644
index 00000000..e6129023
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/README.zh-CN.md
@@ -0,0 +1,206 @@
+# PicoTransport说明
+## 1. 概要介绍
+PICO transport实现Netcode的INetworkTransport接口,完成Netcode和PICO房间服务的对接。
+通过PICO transport,开发者可以使用Netcode+PICO房间服务开发多人联网的PICO应用, 整体结构如下:
+
+
+## 2. 准备工作
+### 2.1. PICO VR基本环境
+- 跟随PICO官方文档中的["快速开始"](https://developer-cn.pico-interactive.com/document/unity)一节, 完成基本的PICO VR环境设置,并新建一个VR项目
+
+>PICO依赖一些preview的package, 比如‘XR Interaction Toolkit’:,请打开preview package开关以安装这些package,如下图所示:
+>
+>在PICO Unity Integration SDK v2.x.x中有一个bug,该bug会导致在Unity Editor中运行时取PICO user信息失败。为了运行后续的例子,请临时注释掉对CLIB.ppf_User_GetPresenceIsJoinable的调用(PICO.Platform/Platform/Scripts/Models/User.cs:85),以绕过此bug:
+
+
+### 2.2. PICO多人联网服务开通
+- 在[PICO平台](https://developer-cn.pico-interactive.com/)上申请开发者帐号,创建app
+- 创建app后,开通此app的PICO匹配和房间服务:
+
+- 在'匹配服务'中按需新建PICO匹配池
+>为了运行附带的例子,**请务必创建一个名字为test_pool_basic_2的匹配池, 并设置‘管理房间'以及'允许多次匹配到此房间'选项**,如下图所示:
+>
+
+### 2.3. Unity工程中的配置
+- 配置PICO sdk以及PC Debug:
+
+- 在平台sdk设置('PXR_SDK' > 'Platform Settings')中取消选项'UserEntitlementCheck':
+
+- PC Debug设置Access Token('PXR_SDK'>'PC Debug Settings'):
+
+Access Token请从[PICO开发者平台](https://developer-cn.pico-interactive.com/)查询获取:
+
+- 完成配置修改后,关闭并重新打开Unity Editor(PC Debug需要)
+
+## 3. 快速开始
+### 3.1 例子功能
+SimpleMode例子修改自netcode goldenpath,功能是在PICO设备上同步代表不同客户端的胶囊体。该例子内部使用了PICO Platform服务和PicoTransport,具体而言: 参与方clients加入同一个PICO命名房间,而后使用PICO Platform的消息收发接口实现Netcode通信。
+
+### 3.2 导入PICO transport和例子工程
+下载Packageg保存至本地, 然后在Unity Editor中,从菜单栏选择'Windows' > 'Package Manager'
+在 Package Manager 窗口中,点击 '+' > 'Add package from disk'
+
+选择刚刚下载的PicoTransport目录,选中package.json导入PicoTransport。导入PicoTransport后,继续将Samples也导入工程。
+
+
+### 3.3 运行SimpleMode例子
+#### 3.3.1. 在Editor中运行
+- 至下图路径打开'SimpleMode'场景:
+
+- 在Unity Editor中确认相关配置如下:
+
+- 点击Play按钮运行场景,按提示将当前场景加入build scenes。
+
+- 点击'StartRoom'按钮(或者NetworkManager组件中的StartHost按钮),场景中出现一个红色胶囊,此时Netcode host已正常运行, 点击Move会随机移动代表host的胶囊:
+
+为了测试双人netcode交互,让我们再编译一个实例到PICO设备上,请按以下步骤继续操作。
+
+
+#### 3.3.2. 编译到PICO设备运行
+- Unity Editor菜单栏中选择'File' > 'Build Settings ...',在build setting界面中,将之前准备工作中加入的基本XR场景移除,只勾选添加SampleMode场景:
+
+- 将平台切换至android(确保相关平台配置与[2.1](#21-pico-vr基本环境)节中的官方'快速开始'一节相符)。
+在Android页签中,点击'Switch Platform'切换至安卓平台,如果红框所示位置为'Build',则当前已是Android平台,无需切换。
+
+- 连接PICO设备,在'Run Device'中选择自己的PICO设备,点击'Build And Run'。提示生成apk存放路径时,新建一个output目录存放。
+
+
+#### 3.3.3. Unity Editor与PICO设备联调
+'Build And Run'结束后,可以开始PICO设备与Editor的联调。
+戴上PICO设备,点击'Join Room'按钮,此时PICO设备端会加入Editor建立的房间(例子中的房间名为'abc'),
+房间中出现两个红色胶囊,一个为editor中的host,一个为PICO设备中的client。在Editor或PICO中点击'Move'按钮,可以看到胶囊位置在Editor和PICO设备间同步变化:
+
+>如果设备上初始化失败,提示“签名不一致”可以将 apk 包上传到开发者平台同步签名信息
+>注意: PICO设备熄屏时netcode逻辑也停止,所以如果是PICO设备作为host开启的房间('Start Room'),则client移动时要保证PICO上的app亮屏,这样,host处于运行状态,才能处理client发来的netcode同步消息
+
+### 3.4 其它例子
+#### 3.4.1 MatchmakingRoom
+MatchmakingRoom例子与SimpleMode例子的区别在于:
+- SimpleMode场景中没有匹配步骤,相关clients通过事先约定的房间名字,加入同一个PICO命名房间。而在Matchmaking场景中,clients是通过PICO的匹配服务聚集到一起,然后加入同一个PICO匹配房间。
+- 由于SimpleMode场景无需匹配过程,所以该场景中PicoTransport工作于'Simple Mode'模式,'Simple Mode'模式下PicoTransport内部封装了创建和进入房间的过程,开发者无需关心PICO.CoreService/PICO.GameService的具体调用,只配置约定的房间名字即可。
+ 反之,在MatchmakingRoom场景中,开发者显式地调用PICO的Platform服务API进行匹配和进房间操作。在Matchmaking场景中,由于PicoTransport需要和开发者管理的PICO房间交互,所以该场景下的PicoTransport工作于'External Room'模式。‘Simple'和'External Room'两种模式的更详细区别参见[4.使用说明](#4-picotransport使用说明)一节。
+##### 运行MatchmakingRoom例子
+ - 编译该场景至PICO设备上,build时仅勾选‘MatchmakingRoom'场景:
+
+ - Editor中运行,点击'InitPicoSDK'按钮,此时内部会进行PICO的初始化,并将自身加入[2.2节](#22-pico多人联网服务开通)中配置的'test_pool_basic_2'匹配池。加入匹配池成功后,界面提示自身uid,并等待其它client加入匹配:
+
+ - 在PICO设备中,点击'InitPicoSDK'按钮,加入到匹配池中去。由于匹配条件满足,PICO匹配服务会将editor与PICO设备中的两个client匹配到一起,并创建匹配房间等待这两个client加入。此时界面显示'JoinRoom'按钮:
+
+ - 在Editor和PICO中分别点击JoinRoom加入PICO匹配房间。加入房间后会开始NetCode的位置同步,如下图所示。点击'Submit position'移动代表自身的胶囊,并在两个client间进行位置同步
+
+>注意:
+>1. PICO的匹配房间有保留时间限制,如果迟迟不点'JoinRoom'加入房间,则10秒后该房间会在PICO服务器侧销毁,此后再试图加入房间会失败,并回到初始界面。
+>2. Netcode的client加入时,需要与host握手,只有握手完成才能开始正常的同步通信过程。所以如果在host加入房间之前,client一侧先点了'JoinRoom',则client会卡在房间内界面。其原因是, host还未加入房间,不能处理client发过来的消息, 只有等host也'JoinRoom'后,双方的netcode握手才能完成,代表双方的红色胶囊才会生成出来,并开始正常的通信同步。
+
+#### 3.4.2 Multiplayer
+multiplayer例子与MatchmakingRoom类似,场景中PicoTransport也工作于'ExternalRoom'模式,并使用PICO的匹配服务聚集到一起。相比MatchmakingRoom,Multiplayer同步了更多的信息,比如玩家的动作,所以是一个更为实际些的例子。
+##### 运行Multiplayer例子
+- 编译该场景至PICO设备上并运行,**注意依次添加‘Init', 'Start'和'Fight'场景(序号0/1/2)**:
+
+- Editor中运行,点击'Start'按钮,开始加入匹配:
+
+加入匹配成功后,提示'InMatching...',表示正在等待其它玩家参与匹配:
+
+- PICO设备中点击'Start'按钮以加入匹配
+此时,由于匹配条件满足,PICO匹配服务将editor与PICO中的两个client匹配到一起,创建匹配房间。双方client进入此匹配房间后,开始Netcode的移动同步。移动到右侧绿色区域可以离开当前场景:
+
+
+### 3.5 特殊情况下的例子表现
+有两方面因素会影响弱网情况下的表现: 1.Netcode以host/server为中心的拓扑结构; 2.PICO房间对玩家离开的处理;
+#### 3.5.1 Netcode因素:
+- netcode以host(PICO房间的owner)作为逻辑控制中心点,必须有host在房间内,逻辑才能正常进行。所以如果client先加入房间,而另一侧host还未准备好的话,则client会卡住并等待host
+- netcode中host离开时,整个游戏session结束,此时client也将退出游戏session
+#### 3.5.2 PICO房间因素:
+- client主动退出PICO房间,服务器立刻将玩家从PICO房间中删去(场景中的其它人会看到其离开)
+- client停止心跳超过10秒(网络状况不佳时可能发生此情况),服务器会将玩家从PICO房间中删去
+- PICO房间内空置(没有人)超过10秒, 此房间会删去,加入此房间的请求会失败
+#### 3.5.3 这两方面因素影响下的例子场景表现:
+- 匹配成功后,host尚未加入的情况下,client先'join room',与host的netcode握手不能完成,场景中不会显示任何胶囊体。此后,在host也加入后,netcode的握手会完成,代表双方的胶囊体会出现在场景中。超过10秒host仍未进入,则10秒后client会因为握手超时退出
+- client离开房间但host还在房间中,client可以重新join回到该房间
+- host离开房间, client发现host离开后自己也主动退出
+- host离开房间,10秒内PICO服务器的房间仍存在,host可以重新加入房间
+- 房间空置超过10秒,服务器会关闭此房间,此时host/client的join room请求都会失败,回到初始界面
+- 网络断开时:
+ - 10秒内重连上,逻辑继续正常进行;
+ - client超过10秒重连上或者一直重连不上
+ - 超时的client自身:回到初始界面
+ - 另一侧网络正常的client端:如果对端为host,则自身退出; 如果对端为client,则会看到对方从场景中离开
+
+## 4. PicoTransport使用说明
+### 4.1 工作模式
+应用逻辑可分成两部分: 房间外逻辑(包括进房间)和房间内逻辑。
+房间外逻辑不涉及Netcode,这一部分逻辑的目的是将玩家聚集到一起并加入同一PICO房间,这样相关玩家之间才能够进行消息的收发。
+与Netcode有关的是进入房间以后的同步逻辑,这一部分逻辑需要由Netcode来支持。在房间内逻辑阶段中,PicoTransport作为Netcode的通信层,负责支持Netcode的底层消息通信。
+与这两部分逻辑相关,PicoTransport有两种工作模式: 'SimpleMode'和'ExternalRoom'模式:
+- 在'Simple'模式下,没有房间外逻辑。开发者只负责设定好一个共同的房间名字,其它逻辑都由PicoTransport在内部完成,包括: 将合适的玩家聚集到一起,将他们加入同一PICO命名房间等。在这一模式下,PICO房间对开发者透明。
+- 在'ExternalRoom'模式下,开发者需要负责房间外逻辑。该模式提供了更多的自由度,开发者可以控制玩家如何聚集到一起,比如使用好友邀请,或者使用匹配服务等等。但自由度的代价是开发工作量,开发者需要自行完成匹配和加入房间的过程,并且显式地管理房间和处理房间内的消息事件。对于PicoTransport,重要的是,开发者需要在Netcode与外部房间之间进行消息和事件的转发,具体见[4.3节](#43-externalroom模式下驱动picotransport工作)。
+
+### 4.2 使用PicoTransport
+
+##### 4.2.1 导入并使用PicoTransport
+- 下载Packageg至本地
+- 在Unity Editor中,从菜单选择'Windows' > 'Package Manager'
+ 在Package Manager窗口中,点击'+' > 'Add package from disk'
+
+ 选择刚刚下载的PicoTransport目录,选中package.json导入PicoTransport
+- 导入PicoTransport后,按需导入Samples
+
+- 将NetworkManager的transport设为PicoTransport
+
+
+##### 4.2.2 配置PicoTransport组件
+- Simple模式
+ 'Simple'模式中,开发者只需要配置PicoTransport组件,不需要额外写代码访问PICO platform服务。配置项如下:
+
+
+| 配置项 | 配置值 | 说明 |
+|---------|-----------|-----|
+| WorkMode | Simple | 选择Simple模式|
+| RoomName | 房间名 | 由业务选择并以合适的方式通知给所有玩家,在内部,该配置指明named PICO room的名字 |
+| Password | 房间口令 | named PICO room的口令,如果不设置,则房间无口令|
+
+- ExternalRoom模式
+ 'ExternalRoom'模式中,开发者需要编写代码自行调用PICO平台各项服务以加入PICO房间,同时接收处理PICO房间的消息和事件,驱动PicoTransport运行,具体见[4.3节](#43-externalroom模式下驱动picotransport工作)。
+
+
+| 配置项 | 配置值 | 说明 |
+|---------|-----------|-----|
+| WorkMode | External Room | 选择'ExternalRoom'模式|
+
+### 4.3 ExternalRoom模式下驱动PicoTransport工作
+ 与'SimpleMode'不同,在'ExternalRoom'模式时,开发者自行使用PICO SDK提供的功能创建PICO房间并管理,该过程需要在调用Netcode StartHost/StartClient之前完成。
+ 加入PICO房间之后,client调用StartHost或者StartClient启动Netcode。Netcode运行过程中,开发者需要在代码中完成两件事:
+ - 将收到的房间变化信息和消息转给PicoTransport
+>事件包括: 玩家进入和离开PICO房间事件,以及房间玩家列表
+>消息包括: 来自同房间玩家的Netcode消息
+ - 在PicoTransport需要发送消息时,调用PICO房间服务接口把消息发给指定目标玩家
+
+为了完成这两件事,PicoTransport提供了适配类ExternalRoomTransportDriver, 该类的主要接口如下:
+
+| 接口/事件 | 作用 | 调用时机 |
+|---------|-----------|-----|
+| Init | 初始化PicoTransport | 找到合适的其它玩家,并一起成功加入同一房间之后
例如在PICO SDK RoomService.Join2的OnComplete中 |
+| HandleRoomInfoUpdate | 将PICO房间的信息变化通知给PicoTransport | 房间信息变化时,例如人员进入房间
例如在RoomService.SetUpdateNotificationCallback所设置的回调中调用 |
+| Update | 定时驱动 | 每帧反复调用
该函数内部调用HandleMsgFromRoom以接收PICO房间发来的消息并传给PicoTransport |
+| OnDriverEvent | 事件通知 |可能事件包括: Error、Shutdown、BeforeReenter/AfterReenter
其中BeforeReenter/AfterReenter在之前的host离开,client重新start netcode之前和之后被调用 |
+
+>房间外逻辑是‘ExternalRoom'模式工作的前提,但这部分逻辑不包含在PicoTransport中。
+>在PicoTransport例子中,使用了一个辅助类'Netcode.Transports.Pico.ExternalModeSDKUser'。
+>该类封装PICO platform SDK初始化,token获取,PICO User获取,PICO Game服务初始化,PICO匹配和进房间等等相关接口,同时注册了回调以处理来自PICO服务的消息与事件。
+>开发者可以使用ExternalModeSDKUser来调用PICO服务以完成进房间流程,也可以按需修改此类,以使用其它PICO平台服务功能,比如destnation/RTC等等。
+
+>ExternalModeSDKUser的主要接口:
+>| 接口名 | 作用 |
+>|---------|-----------|
+>| StartPicoGame | 初始化PICO platform, 取access token, 取logged in user, 调用game initialize |
+>| StartMatchmaking/StartJoinRoom/StartLeaveRoom | 加入匹配、加入房间、离开房间 |
+>| StartNetcode/StopNetcode | 开始Netcode,该函数内部会根据自身是否为PICO房主,分别调用Netcode的StartHost/StartClient |
+>| OnStatusChange | 状态发生变化时的回调,例如平台初始化完成,加入匹配成功等 |
+
+### 4.4 说明与建议:
+- 如果host离开了PICO房间,则所有client的当前Netcode session都应结束。不过,在PICO中,原host之外的clients仍然在PICO房间内而没有退出。此时,开发者有两个选择:
+ - 让这些clients也退出PICO房间,结束整个游戏;
+ - 由新的PICO房间房主重新StartHost,其它在房间中的普通成员则重新StartClient,通过这种方式再次开始Netcode,并继续原来的游戏。为此,开发者需要适当处理host离开事件,并保存和恢复游戏状态。PicoTransport对此作了一定支持,即在原host离开时,根据自身是否为新的PICO房主,分别重新调用StartHost/StartClient。具体请参考Multiplayer代码。
+- PicoTransport内部接管了PICO房间内的消息收发,业务不要再使用PICO SDK NetworkService中的收发消息函数。
+- 在PICO Unity Integration SDK v2.x.x中有一个bug,该bug会导致在Unity Editor中运行时取PICO user信息失败。为了运行后续的例子,请临时注释掉对CLIB.ppf_User_GetPresenceIsJoinable的调用(PICO.Platform/Platform/Scripts/Models/User.cs:85),以绕过此bug:
+
diff --git a/Transports/com.community.netcode.transport.pico/README.zh-CN.md.meta b/Transports/com.community.netcode.transport.pico/README.zh-CN.md.meta
new file mode 100644
index 00000000..d9517920
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/README.zh-CN.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 72f09057882d30f45b3a6e83b39d843b
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime.meta b/Transports/com.community.netcode.transport.pico/Runtime.meta
new file mode 100644
index 00000000..6230babb
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cdab29e83ab424d4b90ade30aab97a2c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/Editor.meta b/Transports/com.community.netcode.transport.pico/Runtime/Editor.meta
new file mode 100644
index 00000000..56ecf71a
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1edc42a9c923a9f43a6020d529163ed6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/Editor/PicoTransportEditor.cs b/Transports/com.community.netcode.transport.pico/Runtime/Editor/PicoTransportEditor.cs
new file mode 100644
index 00000000..7c313423
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/Editor/PicoTransportEditor.cs
@@ -0,0 +1,50 @@
+#if UNITY_EDITOR
+using UnityEditor;
+using Netcode.Transports.Pico;
+
+namespace Netcode.Transport.Pico
+{
+ [CustomEditor(typeof(PicoTransport))]
+ [CanEditMultipleObjects]
+ public class PicoTransportEditor : Editor
+ {
+ SerializedProperty _workMode;
+ SerializedProperty _independentInfo;
+ SerializedProperty _transportLogLevel;
+ void OnEnable()
+ {
+ _workMode = serializedObject.FindProperty("WorkMode");
+ _independentInfo = serializedObject.FindProperty("SimpleModeInfo");
+ _transportLogLevel = serializedObject.FindProperty("TransportLogLevel");
+ }
+
+ public override void OnInspectorGUI()
+ {
+ serializedObject.Update();
+ EditorGUILayout.PropertyField(_workMode);
+ EditorGUILayout.PropertyField(_transportLogLevel);
+ PicoTransport.SetLogLevel((PicoTransport.LogLevel)_transportLogLevel.enumValueIndex);
+ PicoTransport.EWorkMode tmpWorkMode = (PicoTransport.EWorkMode)_workMode.enumValueIndex;
+ switch (tmpWorkMode)
+ {
+ case PicoTransport.EWorkMode.ExternalRoom:
+ {
+ EditorGUILayout.LabelField("ExternalRoom Mode");
+ }
+ break;
+ case PicoTransport.EWorkMode.Simple:
+ {
+ EditorGUILayout.LabelField("Simple Mode");
+ EditorGUILayout.PropertyField(_independentInfo, true);
+ }
+ break;
+ default:
+ EditorGUILayout.LabelField("invalid work mode");
+ return;
+ }
+ serializedObject.ApplyModifiedProperties();
+ } //OnInspectorGUI()
+
+ }
+}
+#endif
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/Editor/PicoTransportEditor.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/Editor/PicoTransportEditor.cs.meta
new file mode 100644
index 00000000..8216fa20
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/Editor/PicoTransportEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f7f6bdd51660bea43a1d10617407ef05
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode.meta b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode.meta
new file mode 100644
index 00000000..e7ecc17b
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7080a94ee9e2ace458921722dc5dd872
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.Handler.cs b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.Handler.cs
new file mode 100644
index 00000000..a70a1c40
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.Handler.cs
@@ -0,0 +1,323 @@
+using UnityEngine;
+
+using Pico.Platform.Models;
+using Pico.Platform;
+using System;
+using static Netcode.Transports.Pico.PicoTransport;
+
+namespace Netcode.Transports.Pico
+{
+ public partial class ExternalModeSDKUser
+ {
+ bool _isLastSessionMsg = true;
+ long _restartTimeoutTick = 0;
+
+ private void Update()
+ {
+ if (EGameState.InRoom == _curGameState.CurState)
+ {
+ if (_transportDriver != null)
+ {
+ _transportDriver.Update();
+ }
+ }
+ if (_restartTimeoutTick > 0)
+ {
+ long curTick = DateTime.Now.Ticks;
+ if (curTick > _restartTimeoutTick)
+ {
+ _restartTimeoutTick = 0;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "_restartTimeoutTick met, stop PicoSDKUser");
+ StopNetcode("restart timeout");
+ }
+ }
+ }
+
+ private void RegisterNotificationCallbacks()
+ {
+ NetworkService.SetNotification_Game_ConnectionEventCallback(GameConnectionEventCallback);
+ NetworkService.SetNotification_Game_Request_FailedCallback(RequestFailedCallback);
+ NetworkService.SetNotification_Game_StateResetCallback(GameStateResetCallback);
+
+ MatchmakingService.SetMatchFoundNotificationCallback(MatchmakingMatchFoundCallback);
+ MatchmakingService.SetCancel2NotificationCallback(MatchmakingCancel2NotificationCallback);
+
+ RoomService.SetLeaveNotificationCallback(RoomLeaveNotificationCallback);
+ RoomService.SetJoin2NotificationCallback(RoomJoin2NotificationCallback);
+ RoomService.SetKickUserNotificationCallback(RoomKickUserNotificationCallback);
+ RoomService.SetUpdateOwnerNotificationCallback(RoomUpdateOwnerNotificationCallback);
+ RoomService.SetUpdateNotificationCallback(RoomUpdateCallback);
+ }
+
+ bool IsOldSessionCallback(string callbackDesc)
+ {
+ if (_isLastSessionMsg)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"ignore old session callback({callbackDesc})");
+ }
+ return _isLastSessionMsg;
+ }
+
+ private void MatchmakingMatchFoundCallback(Message message)
+ {
+ if (IsOldSessionCallback("matchmaking_found"))
+ {
+ return;
+ }
+ CommonProcess("ProcessMatchmakingMatchFound", message, () =>
+ {
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"in ProcessMatchmakingMatchFound, roomInfo: {GameUtils.GetRoomLogData(room)}");
+ _curGameState.RoomID = room.RoomId;
+ if (_curGameState.RoomID == 0)
+ {
+ CallOnStatusChange(EGameState.NotInited, "matchmaking failed");
+ return;
+ }
+ _curGameState.RoomData = room;
+ CallOnStatusChange(EGameState.MatchFound, "matchmaking succeed");
+ });
+
+ }
+
+ private void RoomUpdateCallback(Message message)
+ {
+ if (IsOldSessionCallback("room_update"))
+ {
+ return;
+ }
+ CommonProcess("ProcessRoomUpdate", message, () =>
+ {
+ var room = message.Data;
+ _curGameState.RoomData = room;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"!!!!!!, got room update notification: {GameUtils.GetRoomLogData(room)}");
+ if (_transportDriver != null)
+ {
+ _transportDriver.DriverRoomInfoUpdate(TransportPicoRoomInfo.GetPicoRoomInfo(room));
+ }
+ });
+ }
+
+ private void ProcessRoomJoin2(Message message)
+ {
+ CommonProcess("ProcessRoomJoin2", message, () =>
+ {
+ if (message.IsError)
+ {
+ var err = message.Error;
+ PicoTransportLog(LogLevel.Error, $"Join room error {err.Message} code={err.Code}");
+ CallOnStatusChange(EGameState.NotInited, "Join room failed");
+ return;
+ }
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"in ProcessRoomJoin2, roomData: {GameUtils.GetRoomLogData(room)}");
+ OnRoomJoined(room);
+ });
+ }
+
+ private void ProcessRoomLeave(Message message)
+ {
+ CommonProcess("ProcessRoomLeave", message, () =>
+ {
+ if (message.IsError)
+ {
+ var err = message.Error;
+ PicoTransportLog(LogLevel.Error, $"Leave room error {err.Message} code={err.Code}");
+ CallOnStatusChange(EGameState.NotInited, "Leave room failed");
+ return;
+ }
+ var room = message.Data;
+ PicoTransportLog(LogLevel.Info, $"in ProcessRoomLeave, roomLeave: {GameUtils.GetRoomLogData(room)}");
+
+ OnRoomLeft(room);
+ });
+ return;
+ }
+
+ private void HandleDriverEvent(ExternalRoomTransportDriver.ETransportDriverEvent type, int errorCode, string errorInfo)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"HandleDriverEvent, event {type}");
+ switch (type)
+ {
+ case ExternalRoomTransportDriver.ETransportDriverEvent.BeforeReenter:
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"transport driver event [before reenter...]");
+ return;
+ case ExternalRoomTransportDriver.ETransportDriverEvent.AfterReenter:
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"transport driver event [... after reenter]");
+ return;
+ case ExternalRoomTransportDriver.ETransportDriverEvent.Stopped:
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"transport driver stopped: ({errorCode}, {errorInfo}), stop transport driver now");
+ break;
+ default:
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"error: ({errorCode}, {errorInfo}), stop transport driver now");
+ break;
+ }
+ if (_transportDriver != null)
+ {
+ _transportDriver.OnDriverEvent -= HandleDriverEvent;
+ _transportDriver.OnClientEvent -= HandleClientEvent;
+ _transportDriver = null;
+ }
+ CallOnStatusChange(EGameState.NotInited, "pico transport shutdown, return to state NotInited");
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"driver uninited, return to start scene ...");
+ }
+
+ private void HandleClientEvent(Unity.Netcode.NetworkEvent type, ulong clientID)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"!!!, event from transport driver: (event:{type}, clientID:{clientID})");
+ if (type == Unity.Netcode.NetworkEvent.Connect)
+ {
+ if (Unity.Netcode.NetworkManager.Singleton.IsServer && (ServerCreatePlayerPrefabPath.Length > 0))
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"!!!, spawn player, clientID:{clientID})");
+ UnityEngine.Object prefab = Resources.Load(ServerCreatePlayerPrefabPath);
+ GameObject go = (GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity);
+ go.GetComponent().SpawnWithOwnership(clientID, true);
+ }
+ } else
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"!!!, TODO: dicsonnect event from transport driver: (event:{type}, clientID:{clientID})");
+ }
+ }
+
+ private void OnRoomJoined(Room room)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"room {room.RoomId} join succeed ...");
+ _curGameState.RoomID = room.RoomId;
+ _curGameState.RoomData = room;
+ CallOnStatusChange(EGameState.InRoom, "in room now");
+ }
+
+ private void OnRoomLeft(Room room)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"room {room.RoomId} leave succeed, leave fighting scene ...");
+ if (_curGameState.RoomID != room.RoomId)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"room {room.RoomId} leave succeed, but current is not in this room now, skip this request");
+ return;
+ }
+
+ _curGameState.LastRoomID = _curGameState.RoomID;
+ _curGameState.RoomID = 0;
+ _curGameState.RoomData = null;
+ CallOnStatusChange(EGameState.RoomLeft, "room left");
+ }
+
+ private void RoomKickUserNotificationCallback(Message message)
+ {
+ if (IsOldSessionCallback("kick_user_notify"))
+ {
+ return;
+ }
+ CommonProcess("OnRoomKickUserNotification", message, () =>
+ {
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, GameUtils.GetRoomLogData(room));
+ });
+ }
+
+ private void RoomUpdateOwnerNotificationCallback(Message message)
+ {
+ if (IsOldSessionCallback("update_owner_notify"))
+ {
+ return;
+ }
+ CommonProcess("OnRoomUpdateOwnerNotification", message, () =>
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "OnRoomUpdateOwnerNotification");
+ });
+ }
+
+ private void MatchmakingCancel2NotificationCallback(Message message)
+ {
+ if (IsOldSessionCallback("match_cancel"))
+ {
+ return;
+ }
+ CommonProcess("OnMatchmakingCancel2Notification", message, () =>
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "OnMatchmakingCancel2Notification");
+ });
+ }
+ private void RoomLeaveNotificationCallback(Message message)
+ {
+ if (IsOldSessionCallback("leave_notify"))
+ {
+ return;
+ }
+ CommonProcess("OnRoomLeaveNotification", message, () =>
+ {
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "room leave notification:"+GameUtils.GetRoomLogData(room));
+ OnRoomLeft(room);
+ });
+ }
+ private void RoomJoin2NotificationCallback(Message message)
+ {
+ if (IsOldSessionCallback("join2_notify"))
+ {
+ return;
+ }
+ CommonProcess("OnRoomJoin2Notification", message, () =>
+ {
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "room join2 response:"+GameUtils.GetRoomLogData(room));
+ });
+ }
+
+ private void CommonProcess(string funName, Message message, Action action)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"message.Type: {message.Type}");
+ if (!message.IsError)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"{funName} no error");
+ }
+ else
+ {
+ var error = message.Error;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"{funName} error: {error.Message}");
+ }
+ action();
+ }
+
+ private void ProcessMatchmakingEnqueue(Message message)
+ {
+ CommonProcess("ProcessMatchmakingEnqueue", message, () =>
+ {
+ if (message.IsError)
+ {
+ EGameState newState = _curGameState.CurState >= EGameState.Inited ? EGameState.Inited : EGameState.NotInited;
+ CallOnStatusChange(newState, "matchmaking enqueue failed");
+ return;
+ }
+ var result = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, GameUtils.GetMatchmakingEnqueueResultLogData(result));
+ CallOnStatusChange(EGameState.InMatching, "got matchmaking response\nwaiting other player ...");
+ });
+ }
+
+ private void ProcessCreatePrivate(Message message)
+ {
+ CommonProcess("ProcessCreatePrivate", message, () =>
+ {
+ if (message.IsError)
+ {
+ EGameState newState = _curGameState.CurState >= EGameState.Inited ? EGameState.Inited : EGameState.NotInited;
+ CallOnStatusChange(newState, "create private room failed");
+ return;
+ }
+ _curGameState.RoomData = message.Data;
+ _curGameState.RoomID = _curGameState.RoomData.RoomId;
+ if (_curGameState.RoomID == 0)
+ {
+ PicoTransportLog(LogLevel.Error, "unexpected RoomID 0");
+ CallOnStatusChange(EGameState.NotInited, "unexpected RoomID 0");
+ return;
+ }
+ PicoTransportLog(LogLevel.Info, "got create private response:" + GameUtils.GetRoomLogData(_curGameState.RoomData));
+ CallOnStatusChange(EGameState.InRoom, "got create private response");
+ });
+ }
+
+ }
+}
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.Handler.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.Handler.cs.meta
new file mode 100644
index 00000000..246935cc
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.Handler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 68c40eee9f7788e429c52a70abcf5fbc
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.cs b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.cs
new file mode 100644
index 00000000..b0e24c21
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.cs
@@ -0,0 +1,435 @@
+using System;
+using System.Collections;
+using Pico.Platform.Models;
+using Pico.Platform;
+using UnityEngine;
+
+namespace Netcode.Transports.Pico
+{
+ [RequireComponent(typeof(PicoTransport))]
+ public partial class ExternalModeSDKUser : MonoBehaviour
+ {
+ public string ServerCreatePlayerPrefabPath;
+
+ public enum EGameState
+ {
+ NotInited,
+ InIniting,
+ UserGot,
+ InGameIniting,
+ Inited,
+ InMatching,
+ MatchFound,
+ RoomLeaving,
+ RoomLeft,
+ RoomJoining,
+ InRoom,
+ }
+ private struct CurGameState
+ {
+ public EGameState CurState;
+ public ulong LastRoomID;
+ public ulong RoomID;
+ public User UserInfo;
+ public Room RoomData;
+ }
+
+ public class DevInitInfo
+ {
+ public string host;
+ public ushort port;
+ public string fakeAccessToken;
+ public string selfOpenID;
+ public string app_id;
+ public int region_id;
+ public bool via_proxy;
+ }
+
+ //params: oldState, curState, statusDesc, selfOpenID, roomDesc
+ public event Action OnStatusChange;
+
+ private CurGameState _curGameState;
+ private ExternalRoomTransportDriver _transportDriver;
+ private bool _autoRestartNetcodeOnHostLeave;
+ private bool _autoMatchmaking = true;
+ private string _matchPoolName = "test_pool_basic_2";
+
+ // Start is called before the first frame update
+ private void Start()
+ {
+ _curGameState.CurState = EGameState.NotInited;
+ _curGameState.RoomID = 0;
+ RegisterNotificationCallbacks();
+ }
+
+ private void OnDestroy()
+ {
+ StopNetcode("SimpleSDKUser destroyed");
+ }
+
+ public void SetAutoMatchmakingAfterInit(bool autoMatchmaking, string poolName = "")
+ {
+ _autoMatchmaking = autoMatchmaking;
+ _matchPoolName = poolName.Length > 0 ? poolName : _matchPoolName;
+ }
+
+ public void StartPicoGame(TextAsset mock_config = null)
+ {
+ if (_curGameState.CurState < EGameState.Inited)
+ {
+ CallOnStatusChange(EGameState.InIniting, "pico SDK init started ...");
+ StartCoroutine(InitPicoPlatformAndGame(mock_config));
+ }
+ else
+ {
+ CallOnStatusChange(_curGameState.CurState, "StartPicoGame in Inited State, skip request");
+ if (_autoMatchmaking)
+ {
+ //already Inited, start Matchmaking immediately
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"auto start matchmaking in StartPicoGame ...");
+ StartMatchmaking();
+ }
+ }
+ }
+
+ private void EndPicoGame(string reason)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"StopPicoGame, reason: {reason} ...");
+ CoreService.GameUninitialize();
+ _curGameState.LastRoomID = 0;
+ CallOnStatusChange(EGameState.NotInited, reason);
+ }
+
+
+ public void StartNetcode()
+ {
+ if (null == _transportDriver)
+ {
+ _transportDriver = new ExternalRoomTransportDriver();
+ _transportDriver.OnClientEvent += HandleClientEvent;
+ _transportDriver.OnDriverEvent += HandleDriverEvent;
+ }
+ string selfOpenID = _curGameState.UserInfo.ID;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"StartPicoSDKUser, selfOpenID is {selfOpenID}");
+ _restartTimeoutTick = 0;
+ bool result = _transportDriver.Init( _autoRestartNetcodeOnHostLeave, GetComponent(), selfOpenID, _curGameState.RoomData);
+ if (!result)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Warn, "init pico driver failed");
+ }
+ }
+
+ public void StopNetcode(string desc)
+ {
+ if (null == _transportDriver)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"StopPicoSDKUser, transport driver is nil, skip driver uninit, this stop reason({desc})");
+ }
+ else
+ {
+ _transportDriver.Uninit($"stop pico sdk user(reason:{desc})");
+ _transportDriver = null;
+ }
+ EndPicoGame($"stop pico sdk user(reason:{desc}");
+ }
+
+ public void StartMatchmaking()
+ {
+ CallOnStatusChange(EGameState.InMatching, "start matchmaking ...");
+ MatchmakingService.Enqueue2(_matchPoolName, null).OnComplete(ProcessMatchmakingEnqueue);
+ }
+
+ public void StartCreatePrivateRoom(bool everyone)
+ {
+ CallOnStatusChange(EGameState.InMatching, "start create private ...");
+ RoomJoinPolicy joinPolicy = RoomJoinPolicy.None;
+ if (everyone)
+ {
+ joinPolicy = RoomJoinPolicy.Everyone;
+ }
+ RoomOptions roomOption = new RoomOptions();
+ RoomService.CreateAndJoinPrivate2(joinPolicy, 2, roomOption).OnComplete(ProcessCreatePrivate);
+ }
+
+ public void StartJoinRoomByRoomID(ulong roomID)
+ {
+ _curGameState.RoomID = roomID;
+ StartJoinRoom();
+ return;
+ }
+
+ public void StartJoinNamedRoom(string roomName, string password)
+ {
+ if (_curGameState.CurState < EGameState.Inited)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"StartJoinRoom, but game state {_curGameState.CurState} is invalid");
+ return;
+ }
+ CallOnStatusChange(EGameState.RoomJoining, $"request to join named room {roomName} ...");
+ var roomOptions = GameUtils.GetRoomOptions(_curGameState.RoomID.ToString(), null, null, null, null, null);
+ roomOptions.SetRoomName(roomName);
+ if (password.Length > 0)
+ {
+ roomOptions.SetPassword(password);
+ }
+ RoomService.JoinOrCreateNamedRoom(RoomJoinPolicy.Everyone, true, 2, roomOptions).OnComplete(ProcessRoomJoin2);
+ }
+
+ public void StartJoinRoom()
+ {
+ if (_curGameState.RoomID == 0)
+ {
+ if (_curGameState.LastRoomID != 0)
+ {
+ _curGameState.RoomID = _curGameState.LastRoomID;
+ _curGameState.LastRoomID = 0;
+ }
+
+ if (_curGameState.RoomID == 0)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "no valid room to join");
+ return;
+ }
+ }
+ if (_curGameState.CurState < EGameState.Inited)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"StartJoinRoom, but game state {_curGameState.CurState} is invalid");
+ return;
+ }
+ CallOnStatusChange(EGameState.RoomJoining, $"request to join room {_curGameState.RoomID} ...");
+ var roomOptions = GameUtils.GetRoomOptions(_curGameState.RoomID.ToString(), null, null, null, null, null);
+ RoomService.Join2(_curGameState.RoomID, roomOptions).OnComplete(ProcessRoomJoin2);
+ }
+
+ public void StartLeaveRoom()
+ {
+ if (_curGameState.RoomID == 0)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "no valid room to leave");
+ return;
+ }
+ if (_curGameState.CurState < EGameState.RoomJoining)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "not InRoom, skip this request");
+ return;
+ }
+ CallOnStatusChange(EGameState.RoomLeaving, $"request to Leaving room {_curGameState.RoomID} ...");
+ RoomService.Leave(_curGameState.RoomID).OnComplete(ProcessRoomLeave);
+ }
+
+ public ulong GetRoomID()
+ {
+ if (_curGameState.CurState != EGameState.InRoom)
+ {
+ return 0;
+ }
+ return _curGameState.RoomID;
+ }
+
+ private void OnGameInitialize(Message msg)
+ {
+ if (msg == null)
+ {
+ EndPicoGame($"OnGameInitialize Failed: message is null");
+ return;
+ }
+
+ if (msg.IsError)
+ {
+ EndPicoGame($"GameInitialize Failed: {msg.Error.Code}, {msg.Error.Message}");
+ }
+ else
+ {
+ if (msg.Data == GameInitializeResult.Success)
+ {
+ CallOnStatusChange(EGameState.Inited, "game init succeed");
+ if (_autoMatchmaking)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"auto start matchmaking in OnGameInitialize ...");
+ StartMatchmaking();
+ }
+ }
+ else
+ {
+ EndPicoGame($"GameInitialize: failed({msg.Data}) please re-initialize");
+ }
+ }
+ }
+
+ public void SetAutoRestartFlag()
+ {
+ _autoRestartNetcodeOnHostLeave = true;
+ }
+
+
+ private void CallOnStatusChange(EGameState curState, string statusDesc)
+ {
+ var lastState = _curGameState.CurState;
+ _curGameState.CurState = curState;
+ if (_curGameState.CurState == EGameState.NotInited)
+ {
+ if (_curGameState.LastRoomID != 0)
+ {
+ _curGameState.CurState = EGameState.MatchFound;
+ }
+ }
+
+ string matchedInfo = "";
+ if (curState == EGameState.MatchFound)
+ {
+ matchedInfo = GameUtils.GetRoomLogData(_curGameState.RoomData);
+ }
+ OnStatusChange?.Invoke(lastState, _curGameState.CurState, statusDesc, _curGameState.UserInfo?.ID, matchedInfo);
+ }
+
+ private IEnumerator InitPicoPlatformAndGame(TextAsset mock_config)
+ {
+ _isLastSessionMsg = true;
+ yield return null;
+ if (!CoreService.Initialized)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"InitPicoPlatformAndGame start coreservice init ...");
+ try
+ {
+ CoreService.Initialize(null);
+ }
+ catch (Exception e)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"exception init pico Core {e}");
+ }
+ if (!CoreService.Initialized)
+ {
+ CallOnStatusChange(EGameState.NotInited, "pico SDK init failed ...");
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "pico initialize failed");
+ yield break;
+ }
+ }
+ CallOnStatusChange(_curGameState.CurState, "CoreService get access token started ...");
+ UserService.GetAccessToken().OnComplete(delegate (Message message)
+ {
+ CallOnStatusChange(_curGameState.CurState, "get access token finished");
+ if (message.IsError)
+ {
+ var err = message.Error;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"Got access token error {err.Message} code={err.Code}");
+ CallOnStatusChange(EGameState.NotInited, "CoreService get access token failed");
+ return;
+ }
+ CallOnStatusChange(_curGameState.CurState, "get access token succeed");
+ string accessToken = message.Data;
+ UserService.GetLoggedInUser().OnComplete(delegate (Message userInfo)
+ {
+ if (userInfo.IsError)
+ {
+ var err = userInfo.Error;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"GetLoggedInUser error {err.Message} code={err.Code}");
+ CallOnStatusChange(EGameState.NotInited, "UserService.GetLoggedInUser failed");
+ return;
+ }
+
+ if (userInfo.Data == null)
+ {
+ CallOnStatusChange(EGameState.NotInited, "UserService.GetLoggedInUser userInfo.Data is nil");
+ return;
+ }
+ _curGameState.UserInfo = userInfo.Data;
+ if (userInfo.Data.ID == "unknow_openid")
+ {
+ CallOnStatusChange(EGameState.NotInited, "UserService.GetLoggedInUser invalid openid in User.Data");
+ return;
+ }
+ CallOnStatusChange(EGameState.UserGot, "GetLoggedInUser complete, player openID");
+
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"got accessToken {accessToken}, GameInitialize begin");
+ CallOnStatusChange(EGameState.InGameIniting, "Start game initialization, player openID: userInfo.Data.ID");
+ CoreService.GameUninitialize();
+ Task request;
+ _isLastSessionMsg = false;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"[PPF_GAME_Unity] init with accessToken:{accessToken}, self ID: {userInfo.Data.ID}");
+ request = CoreService.GameInitialize(accessToken);
+
+ CallOnStatusChange(_curGameState.CurState, "game init started, requestID:" + request.TaskId);
+ if (request.TaskId != 0)
+ {
+ request.OnComplete(OnGameInitialize);
+ }
+ else
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"Core.GameInitialize requestID is 0! Repeated initialization or network error");
+ CallOnStatusChange(EGameState.NotInited, "game init start failed!");
+ }
+ });
+ });
+ }
+
+ private void GameConnectionEventCallback(Message msg)
+ {
+ if (IsOldSessionCallback("connect_event"))
+ {
+ return;
+ }
+ var state = msg.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"SimplePicoSDKUser, OnGameConnectionEvent: {state}");
+ if (state == GameConnectionEvent.Connected)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "GameConnection: success");
+ }
+ else if (state == GameConnectionEvent.Closed)
+ {
+ StopNetcode("GameConnection: failed Please re-initialize");
+ }
+ else if (state == GameConnectionEvent.GameLogicError)
+ {
+ StopNetcode("GameConnection: failed After successful reconnection, the logic state is found to be wrong, please re-initialize");
+ }
+ else if (state == GameConnectionEvent.Lost)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"######, connect lost, wait reconnecting");
+ if (0 == _restartTimeoutTick)
+ {
+ /*
+ A single tick represents one hundred nanoseconds or one ten-millionth of a second. There are 10,000 ticks in a millisecond (see TicksPerMillisecond) and 10 million ticks in a second.
+ */
+ _restartTimeoutTick = DateTime.Now.Ticks + 10 * 1000 * 10000;
+ }
+ }
+ else if (state == GameConnectionEvent.Resumed)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"######, connect resumed");
+ _restartTimeoutTick = 0;
+ }
+ else if (state == GameConnectionEvent.KickedByRelogin)
+ {
+ StopNetcode("GameConnection: login in other device, try reinitialize later");
+ }
+ else if (state == GameConnectionEvent.KickedByGameServer)
+ {
+ StopNetcode("GameConnection: be kicked by server, try reinitialize later");
+ }
+ else
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "GameConnection: unknown error");
+ }
+ }
+
+ private void RequestFailedCallback(Message msg)
+ {
+ if (IsOldSessionCallback("request_failed"))
+ {
+ return;
+ }
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"OnRequestFailed: {msg.Data}");
+ }
+
+ private void GameStateResetCallback(Message msg)
+ {
+ if (IsOldSessionCallback("game_state_reset"))
+ {
+ return;
+ }
+ StopNetcode("local game state disaccord with that of the server, please re-initialize");
+ }
+ }
+
+}
+
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.cs.meta
new file mode 100644
index 00000000..95736e4d
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalModeSDKUser.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b7130cb81802d6e45835a346f31e2600
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.RoomProvider.cs b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.RoomProvider.cs
new file mode 100644
index 00000000..fb126cae
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.RoomProvider.cs
@@ -0,0 +1,84 @@
+using System;
+using static Netcode.Transports.Pico.PicoTransport;
+
+namespace Netcode.Transports.Pico
+{
+ public partial class ExternalRoomTransportDriver : IRoomProvider
+ {
+ private TransportRoomStatus _status = new TransportRoomStatus();
+
+ private bool InitRoomProvider(TransportPicoRoomInfo picoRoomWrapper)
+ {
+ _status.PicoRoomWrapper = picoRoomWrapper;
+ _status.ParseUIDInfo();
+ return true;
+ }
+
+ public bool IsSelfOwner()
+ {
+ return _status.SelfUID == _status.TransportRoomInfoOfUIDs.OwnerUID;
+ }
+
+ public bool IsInRoom()
+ {
+ return (0 != _status.SelfUID) && (0 != _status.TransportRoomInfoOfUIDs.RoomID);
+ }
+
+ public ulong GetSelfLoggedInUID()
+ {
+ return _status.SelfUID;
+ }
+
+ private TransportRoomInfo GetTransportPicoRoomInfo()
+ {
+ return _status.TransportRoomInfoOfUIDs;
+ }
+
+ private void HandleMsgFromRoom(string senderOpenID, byte[] msg)
+ {
+ ulong senderUID;
+ if (!_status.OpenID2UIDs.TryGetValue(senderOpenID, out senderUID))
+ {
+ PicoTransportLog(LogLevel.Error, $"got msg from developer with unkown sender {senderOpenID}");
+ return;
+ }
+ var payload = new ArraySegment(msg, 0, msg.Length);
+ _picoTransport.OnPkgRecved(senderUID, payload);
+ }
+
+ public bool RoomKickUserByID(ulong roomID, ulong clientID)
+ {
+ string clientOpenID;
+ if (!_status.UID2OpenIDs.TryGetValue(clientID, out clientOpenID))
+ {
+ PicoTransportLog(LogLevel.Error, $"RoomKickUserByID, {clientID} is not in this room");
+ return false;
+ }
+ _status.PicoRoomWrapper.KickUser(roomID, clientOpenID);
+ return true;
+ }
+
+ public bool RoomLeave(ulong roomID)
+ {
+ if (roomID != _status.TransportRoomInfoOfUIDs.RoomID)
+ {
+ PicoTransportLog(LogLevel.Error, $"RoomLeave, current is not in room {roomID}, skip this leave request");
+ return false;
+ }
+ _status.PicoRoomWrapper.LeaveRoom(roomID);
+ return true;
+ }
+
+ public bool SendPacket2UID(ulong clientID, byte[] dataArray)
+ {
+ string tgtOpenID;
+ if (!_status.UID2OpenIDs.TryGetValue(clientID, out tgtOpenID))
+ {
+ PicoTransportLog(LogLevel.Error, $"SendPacket2UID, target({clientID}) is not in room, skip this send packet request");
+ return false;
+ }
+ _status.PicoRoomWrapper.SendMsgToUID(tgtOpenID, dataArray);
+ return true;
+ }
+ } //PicoMatchRoomProvider
+}
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.RoomProvider.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.RoomProvider.cs.meta
new file mode 100644
index 00000000..725e4007
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.RoomProvider.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9d393d69946584449a247826d006b614
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.cs b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.cs
new file mode 100644
index 00000000..fd60a78f
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.cs
@@ -0,0 +1,282 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using Unity.Netcode;
+using PicoPlatform = Pico.Platform;
+
+namespace Netcode.Transports.Pico
+{
+ public partial class ExternalRoomTransportDriver
+ {
+ public enum ETransportDriverEvent
+ {
+ Error,
+ Stopped,
+ BeforeReenter,
+ AfterReenter,
+ }
+ public event Action OnClientEvent;
+ public event Action OnDriverEvent;
+
+ private string _selfOpenID;
+ private bool _inited;
+ private TransportPicoRoomInfo _picoRoomWrapper;
+ private PicoTransport _picoTransport;
+ private Dictionary _networkid2OpenID;
+ private bool _restartFlag;
+
+ public bool Init(bool autoRestartNetcode, PicoTransport picoTransport, string selfOpenID, PicoPlatform.Models.Room roomInfo)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"Init transport driver with autoRestartNetcode({autoRestartNetcode}), selfOpenID({selfOpenID}), roomID({roomInfo.RoomId})");
+ _selfOpenID = selfOpenID;
+ _picoTransport = picoTransport;
+ _restartFlag = false;
+ if (autoRestartNetcode)
+ {
+ _picoTransport.AllowHostMigrateOnHostLeave();
+ }
+ _networkid2OpenID = new Dictionary();
+ if (roomInfo.OwnerOptional == null)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "owner is not in room now, postpone transport init ...");
+ _inited = false;
+ return true;
+ }
+ return InnerStart(selfOpenID, TransportPicoRoomInfo.GetPicoRoomInfo(roomInfo));
+ }
+
+ public void Uninit(string reason)
+ {
+ if (!_inited)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"pico transport driver has already stopped, skip(reason: {reason})");
+ return;
+ }
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"Uninit transport driver now(reason: {reason}) ...");
+ _inited = false;
+ _picoTransport.StopPicoTransport();
+ if (!_picoTransport.IsHostMigrate())
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "Uninit transport driver reset _picoTransport");
+ _selfOpenID = null;
+ _picoTransport = null;
+ if (NetworkManager.Singleton)
+ {
+ NetworkManager.Singleton.OnClientConnectedCallback -= OnClientConnectedCallback;
+ NetworkManager.Singleton.OnClientDisconnectCallback -= OnClientDisconnectedCallback;
+ }
+ }
+ }
+
+ private void HandleRoomEvent(TransportPicoRoomInfo.ERoomEvent roomEvent, string eventDesc, PicoRoomInfo roomInfo)
+ {
+ switch (roomEvent)
+ {
+ case TransportPicoRoomInfo.ERoomEvent.OwnerLeaveRoom:
+ case TransportPicoRoomInfo.ERoomEvent.SelfLeaveRoom:
+ case TransportPicoRoomInfo.ERoomEvent.UpdateRoomInfo:
+ DriverRoomInfoUpdate(roomInfo);
+ break;
+ }
+
+
+ return;
+ }
+
+ private bool InnerStart(string selfOpenID, PicoRoomInfo roomInfo)
+ {
+ NetworkManager.Singleton.OnClientConnectedCallback -= OnClientConnectedCallback;
+ NetworkManager.Singleton.OnClientDisconnectCallback -= OnClientDisconnectedCallback;
+ NetworkManager.Singleton.OnClientConnectedCallback += OnClientConnectedCallback;
+ NetworkManager.Singleton.OnClientDisconnectCallback += OnClientDisconnectedCallback;
+ _picoRoomWrapper = new TransportPicoRoomInfo();
+ _picoRoomWrapper.InitWithPicoRoomInfo(selfOpenID, roomInfo);
+ _picoRoomWrapper.OnRoomEvent += HandleRoomEvent;
+ _picoTransport.OnPicoTransportEvent -= HandlePicoTransportEvent;
+ _picoTransport.OnPicoTransportEvent += HandlePicoTransportEvent;
+
+ _networkid2OpenID = new Dictionary();
+ if (!InitRoomProvider(_picoRoomWrapper))
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "init picoProvider failed");
+ return false;
+ }
+ bool isServer = IsSelfOwner();
+ _picoTransport.SetRoomProvider(this, GetSelfLoggedInUID(), GetTransportPicoRoomInfo());
+ {
+ NetworkManager.Singleton.NetworkConfig.ConnectionApproval = true;
+ if (isServer)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"!!! call Netcode's StartHost, selfOpenID {_selfOpenID}");
+ NetworkManager.Singleton.ConnectionApprovalCallback = ConnectionApprovalCallback;
+ NetworkManager.Singleton.StartHost();
+ }
+ else
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"!!! call Netcode's StartClient, selfOpenID {_selfOpenID}");
+ NetworkManager.Singleton.NetworkConfig.ConnectionData = System.Text.Encoding.ASCII.GetBytes(_selfOpenID);
+ NetworkManager.Singleton.StartClient();
+ }
+ };
+ _inited = true;
+ return true;
+ }
+
+ public string GetOpenIDOfNetworkID(ulong networkID)
+ {
+ string openID = "";
+ bool got = false;
+ if (NetworkManager.Singleton.IsServer)
+ {
+ got = _networkid2OpenID.TryGetValue(networkID, out openID);
+ }
+ return got ? openID : "only valid in server";
+ }
+
+ public void DriverRoomInfoUpdate(PicoRoomInfo roomInfo)
+ {
+ if (roomInfo.RoomID == 0)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "OnRoomInfoUpdate, room_id is 0(leave room notification)");
+ Uninit("room left");
+ return;
+ }
+ if (!_inited)
+ {
+ if (roomInfo.OwnerOpenID.Length<=0)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "owner is not in room now, postpone (again) transport init ...");
+ return;
+ }
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "owner entered room now, issue transport init ...");
+ InnerStart(_selfOpenID, roomInfo);
+ return;
+ }
+ _picoRoomWrapper.PicoRoomInfo = roomInfo;
+ _status.PicoRoomWrapper.PicoRoomInfo = roomInfo;
+ _status.ParseUIDInfo();
+ _picoTransport.OnRoomInfoUpdate(GetTransportPicoRoomInfo());
+ }
+
+ private void HandleMsgFromRoom(PicoPlatform.Models.Packet pkgFromRoom)
+ {
+ byte[] message = new byte[pkgFromRoom.Size];
+ ulong pkgSize = pkgFromRoom.GetBytes(message);
+ if (pkgSize <= 0)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"OnMsgFromRoom, error pkgSize: {pkgSize}");
+ OnDriverEvent?.Invoke(ETransportDriverEvent.Error, -1, "error pkg size from room");
+ return;
+ }
+ HandleMsgFromRoom(pkgFromRoom.SenderId, message);
+ }
+
+ private void OnClientConnectedCallback(ulong clientID)
+ {
+ string openID;
+ if (NetworkManager.Singleton.IsServer)
+ {
+ bool gotOpenID = _networkid2OpenID.TryGetValue(clientID, out openID);
+ if (!gotOpenID)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Warn, $"OnClientConnectedCallback, unknown client, its netcode ID {clientID}");
+ } else
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"OnClientConnectedCallback, clientID {clientID}, clientOpenID {openID}");
+ }
+ }
+ OnClientEvent?.Invoke(NetworkEvent.Connect, clientID);
+ }
+
+ private void OnClientDisconnectedCallback(ulong clientID)
+ {
+ string openID;
+ if (NetworkManager.Singleton.IsServer)
+ {
+ bool gotOpenID = _networkid2OpenID.TryGetValue(clientID, out openID);
+ if (!gotOpenID)
+ {
+ //will get here only if the pico room player who has not finished the approval procedure leaves now.
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Warn, $"OnClientDisconnectedCallback, unknown client, its netcode ID {clientID}");
+ } else
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"OnClientDisconnectedCallback, clientID {clientID}, clientOpenID {openID}");
+ }
+ }
+ OnClientEvent?.Invoke(NetworkEvent.Disconnect, clientID);
+ }
+
+ public void Update()
+ {
+ CheckRestartNetcode();
+ RecvRoomPackage();
+ }
+
+ private bool CheckRestartNetcode()
+ {
+ if (!_restartFlag)
+ {
+ return false;
+ }
+ _restartFlag = false;
+ if (_picoTransport == null || !(_picoTransport.IsHostMigrate()))
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"CheckRestartNetcode, _picoTransport:{_picoTransport}, isHostMigrated:{_picoTransport && _picoTransport.IsHostMigrate()}");
+ return false;
+ }
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"CheckRestartNetcode, got restart flag, reinit picoTransport ...");
+ OnDriverEvent?.Invoke(ETransportDriverEvent.BeforeReenter, 0, "");
+ InnerStart(_picoRoomWrapper.SelfOpenID, _picoRoomWrapper.PicoRoomInfo);
+ OnDriverEvent?.Invoke(ETransportDriverEvent.AfterReenter, 0, "");
+ return true;
+ }
+
+ private void RecvRoomPackage()
+ {
+ // read packet
+ var packet = PicoPlatform.NetworkService.ReadPacket();
+ while (packet != null)
+ {
+ HandleMsgFromRoom(packet);
+ packet.Dispose();
+ packet = PicoPlatform.NetworkService.ReadPacket();
+ }
+ }
+
+ private void ConnectionApprovalCallback(NetworkManager.ConnectionApprovalRequest request, NetworkManager.ConnectionApprovalResponse response)
+ {
+ var playerOpenID = System.Text.Encoding.ASCII.GetString(request.Payload);
+ if (NetworkManager.ServerClientId == request.ClientNetworkId)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"!!!, ClientID(host) {request.ClientNetworkId} pre approval, use m_selfOpenID {_selfOpenID}!");
+ playerOpenID = _selfOpenID;
+ }
+ _networkid2OpenID.Add(request.ClientNetworkId, playerOpenID);
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"!!!, ClientID {request.ClientNetworkId} start approval, It's openID {playerOpenID}!");
+ response.Approved = true;
+ response.CreatePlayerObject = NetworkManager.Singleton.NetworkConfig.PlayerPrefab != null;
+ }
+
+ private void HandlePicoTransportEvent(PicoTransport.ETransportEvent transportState)
+ {
+ switch (transportState)
+ {
+ case PicoTransport.ETransportEvent.Stopped:
+ {
+ if (_picoTransport != null && _picoTransport.IsHostMigrate())
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Warn, $"transport will be restart, skip Stop event notification");
+ _restartFlag = true;
+ return;
+ }
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"driver go event: pico transport shutdown");
+ OnDriverEvent?.Invoke(ETransportDriverEvent.Stopped, 0, "transport stopped");
+ }
+ break;
+ default:
+ break;
+ }
+ return;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.cs.meta
new file mode 100644
index 00000000..7a3fd190
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/ExternalMode/ExternalRoomTransportDriver.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0cfcf32f3ec02d646855e66640a05a4b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/GameUtils.meta b/Transports/com.community.netcode.transport.pico/Runtime/GameUtils.meta
new file mode 100644
index 00000000..b032235d
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/GameUtils.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6c510ef6f0aeb1942a2b18b468f7828e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/GameUtils/GameUtils.cs b/Transports/com.community.netcode.transport.pico/Runtime/GameUtils/GameUtils.cs
new file mode 100644
index 00000000..9f2d63c3
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/GameUtils/GameUtils.cs
@@ -0,0 +1,162 @@
+using System;
+using UnityEngine;
+
+using Pico.Platform;
+using Pico.Platform.Models;
+using static Netcode.Transports.Pico.PicoTransport;
+
+namespace Netcode.Transports.Pico
+{
+ public class GameUtils : MonoBehaviour
+ {
+ public static bool IsInt(string strNumber)
+ {
+ try
+ {
+ var result = Convert.ToInt32(strNumber);
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public static bool IsDouble(string strNumber)
+ {
+ try
+ {
+ var result = Convert.ToDouble(strNumber);
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public static string GetUserLogData(User obj)
+ {
+ string log =
+ $" DisplayName: {obj.DisplayName}, ID: {obj.ID}, Gender: {obj.Gender} \n " +
+ $" ImageURL: {obj.ImageUrl} \n" +
+ $" InviteToken: {obj.InviteToken}, PresenceStatus: {obj.PresenceStatus}";
+ return log;
+ }
+
+ public static string GetUserListLogData(UserList obj)
+ {
+ string log = $" Count: {obj.Count}\n";
+ var list = obj.GetEnumerator();
+ while (list.MoveNext())
+ {
+ var item = list.Current;
+ log += $" {GetUserLogData(item)}\n";
+ }
+
+ return log;
+ }
+
+ public static string GetRoomLogData(Room room)
+ {
+ string ownerOpenID = "invalid";
+ if (room.OwnerOptional != null)
+ {
+ ownerOpenID = room.OwnerOptional.ID;
+ }
+ string str = $"RoomID: {room.RoomId}, Type: {room.RoomType}, Owner: {ownerOpenID}\n";
+ str += $" PicoRoom Description: {room.Description}\n";
+ str += $" IsMembershipLocked: {room.IsMembershipLocked}, JoinPolicy: {room.RoomJoinPolicy}, " +
+ $"Joinability: {room.RoomJoinability}, MaxUsers: {room.MaxUsers}\n";
+ if (room.UsersOptional == null)
+ {
+ str += " UserList is invalid\n";
+ }
+ else
+ {
+ str += $" Users:\n {GetUserListLogData(room.UsersOptional)}\n";
+ }
+ return str;
+ }
+
+ public static string GetMatchmakingAdminSnapshotCandidateLogData(MatchmakingAdminSnapshotCandidate obj)
+ {
+ return $"MatchmakingAdminSnapshotCandidate[\nCanMatch: {obj.CanMatch}, MyTotalScore: {obj.MyTotalScore}, TheirCurrentThreshold: {obj.TheirCurrentThreshold}\n]MatchmakingAdminSnapshotCandidate";
+ }
+
+ public static string GetMatchmakingAdminSnapshotCandidateListLogData(MatchmakingAdminSnapshotCandidateList obj)
+ {
+ string log = $"MatchmakingAdminSnapshotCandidateList[\nCount: {obj.Count}";
+ var list = obj.GetEnumerator();
+ while (list.MoveNext())
+ {
+ var item = list.Current;
+ log += $"{GetMatchmakingAdminSnapshotCandidateLogData(item)}\n";
+ }
+
+ return log + "]MatchmakingAdminSnapshotCandidateList";
+ }
+
+ public static string GetMatchmakingAdminSnapshotLogData(MatchmakingAdminSnapshot obj)
+ {
+ return $"MatchmakingAdminSnapshot[\nCandidates: {GetMatchmakingAdminSnapshotCandidateListLogData(obj.CandidateList)}\nMyCurrentThreshold: {obj.MyCurrentThreshold}\n]MatchmakingAdminSnapshot";
+ }
+
+ public static string GetMatchmakingEnqueueResultLogData(MatchmakingEnqueueResult obj)
+ {
+ string log = "MatchmakingEnqueueResult[\n";
+ if (obj.AdminSnapshotOptional == null)
+ {
+ log += "AdminSnapshotOptional: null\n";
+ }
+ else
+ {
+ log += $"AdminSnapshotOptional: {GetMatchmakingAdminSnapshotLogData(obj.AdminSnapshotOptional)}\n";
+ }
+
+ log += $"AverageWait: {obj.AverageWait}, MatchesInLastHourCount: {obj.MatchesInLastHourCount}, MaxExpectedWait: {obj.MaxExpectedWait}, " +
+ $"Pool: {obj.Pool}, RecentMatchPercentage: {obj.RecentMatchPercentage}";
+ return log + "\n]MatchmakingEnqueueResult";
+ }
+
+ public static RoomOptions GetRoomOptions(string roomID, string maxUserResults, string turnOffUpdates, string dataKeys, string dataValuses, string excludeRecentlyMet)
+ {
+ RoomOptions options = new RoomOptions();
+ if (!string.IsNullOrEmpty(roomID))
+ {
+ options.SetRoomId(Convert.ToUInt64(roomID));
+ }
+ if (!string.IsNullOrEmpty(maxUserResults))
+ {
+ options.SetMaxUserResults(Convert.ToUInt32(maxUserResults));
+ }
+ if (!string.IsNullOrEmpty(turnOffUpdates))
+ {
+ options.SetTurnOffUpdates(Convert.ToBoolean(turnOffUpdates));
+ }
+ if (!string.IsNullOrEmpty(turnOffUpdates))
+ {
+ options.SetExcludeRecentlyMet(Convert.ToBoolean(excludeRecentlyMet));
+ }
+ if (!string.IsNullOrEmpty(dataKeys) && !string.IsNullOrEmpty(dataValuses))
+ {
+ string[] keys = dataKeys.Split(';');
+ string[] values = dataValuses.Split(';');
+ if (keys.Length != values.Length)
+ {
+ PicoTransportLog(LogLevel.Warn, "dataKeys.Length != dataValuses.Length");
+ }
+ else
+ {
+ for (int i = 0; i < keys.Length; i++)
+ {
+ options.SetDataStore(keys[i], values[i]);
+ }
+ }
+ }
+
+ return options;
+ }
+ }
+}
+
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/GameUtils/GameUtils.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/GameUtils/GameUtils.cs.meta
new file mode 100644
index 00000000..9b3204aa
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/GameUtils/GameUtils.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2c1f1cb7007851a479b6f40f40f2b619
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/IRoomProvider.cs b/Transports/com.community.netcode.transport.pico/Runtime/IRoomProvider.cs
new file mode 100644
index 00000000..891bf2e3
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/IRoomProvider.cs
@@ -0,0 +1,202 @@
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using UnityEngine;
+using PicoPlatform = Pico.Platform;
+
+namespace Netcode.Transports.Pico
+{
+ public class PicoRoomInfo
+ {
+ public ulong RoomID;
+ public string OwnerOpenID;
+ public readonly HashSet CurRoomOpenIDs = new HashSet();
+ }
+
+ public class TransportRoomInfo
+ {
+ public ulong RoomID;
+ public ulong OwnerUID;
+ public HashSet RoomUIDs = new HashSet();
+ }
+
+ public class TransportPicoRoomInfo
+ {
+ public enum ERoomEvent
+ {
+ TransportShutdown = 1,
+ OwnerLeaveRoom = 2,
+ SelfLeaveRoom = 3,
+ UpdateRoomInfo = 4
+ }
+ public string SelfOpenID;
+ public PicoRoomInfo PicoRoomInfo;
+ public event Action OnRoomEvent;
+
+ public void InitWithPicoRoomInfo(string selfOpenID, PicoRoomInfo roomInfo)
+ {
+ SelfOpenID = selfOpenID;
+ PicoRoomInfo = roomInfo;
+ }
+
+ public int SendMsgToUID(string tgtOpenID, byte[] message)
+ {
+ PicoPlatform.NetworkService.SendPacket(tgtOpenID, message, true);
+ return 0;
+ }
+
+ public int KickUser(ulong roomID, string userOpenId)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Warn, $"PicoKickUser, roomID: {roomID}, userOpenId:{userOpenId}");
+ PicoPlatform.RoomService.KickUser(roomID, userOpenId, -1).OnComplete(HandleKickPlayerResponse);
+ return 0;
+ }
+
+ public int LeaveRoom(ulong roomID)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"PicoLeaveRoom, roomID: {roomID}");
+ PicoPlatform.RoomService.Leave(roomID).OnComplete(HandleLeaveRoomResponse);
+ return 0;
+ }
+
+ void CommonProcess(string funName, PicoPlatform.Message message, Action action)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"message.Type: {message.Type}");
+ if (!message.IsError)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"{funName} no error");
+ action();
+ }
+ else
+ {
+ var error = message.Error;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"{funName} error: {error.Message}");
+ }
+ }
+
+ void HandleLeaveRoomResponse(PicoPlatform.Message message)
+ {
+ CommonProcess("HandleLeaveRoom", message, () =>
+ {
+ var result = message.Data;
+ RoomInfoUpdate(result);
+ });
+ }
+
+ void HandleKickPlayerResponse(PicoPlatform.Message message)
+ {
+ CommonProcess("HandleKickPlayerResponse", message, () =>
+ {
+ var result = message.Data;
+ RoomInfoUpdate(result);
+ });
+ }
+
+ static public PicoRoomInfo GetPicoRoomInfo(PicoPlatform.Models.Room room)
+ {
+ PicoRoomInfo roomInfo = new PicoRoomInfo();
+ roomInfo.RoomID = room.RoomId;
+ if (room.OwnerOptional != null)
+ {
+ roomInfo.OwnerOpenID = room.OwnerOptional.ID;
+ }
+ else
+ {
+ roomInfo.OwnerOpenID = "";
+ }
+ if (room.UsersOptional != null)
+ {
+ foreach (PicoPlatform.Models.User user in room.UsersOptional)
+ {
+ roomInfo.CurRoomOpenIDs.Add(user.ID);
+ }
+ }
+ else
+ {
+ roomInfo.CurRoomOpenIDs.Clear();
+ }
+ return roomInfo;
+ }
+
+ private void RoomInfoUpdate(PicoPlatform.Models.Room roomInfo)
+ {
+ if (roomInfo.RoomId == 0)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "RoomInfoUpdate, room_id is 0(leave room notification)");
+ OnRoomEvent?.Invoke(ERoomEvent.SelfLeaveRoom, "room info update with room_id == 0", null);
+ return;
+ }
+ PicoRoomInfo = GetPicoRoomInfo(roomInfo);
+ OnRoomEvent?.Invoke(ERoomEvent.UpdateRoomInfo, "room info update", PicoRoomInfo);
+ }
+ }
+
+ public class TransportRoomStatus
+ {
+ public ulong SelfUID;
+ public TransportPicoRoomInfo PicoRoomWrapper = null;
+ public TransportRoomInfo TransportRoomInfoOfUIDs = new TransportRoomInfo();
+ public Dictionary OpenID2UIDs = new Dictionary();
+ public Dictionary UID2OpenIDs = new Dictionary();
+
+ public void SetRoomInfo(string selfOpenID, PicoRoomInfo roomInfo)
+ {
+ if (null == PicoRoomWrapper)
+ {
+ PicoRoomWrapper = new TransportPicoRoomInfo();
+ PicoRoomWrapper.InitWithPicoRoomInfo(selfOpenID, roomInfo);
+ }
+ PicoRoomWrapper.PicoRoomInfo = roomInfo;
+ ParseUIDInfo();
+ }
+
+ public void ParseUIDInfo()
+ {
+ if (null == PicoRoomWrapper || null == PicoRoomWrapper.PicoRoomInfo || PicoRoomWrapper.PicoRoomInfo.OwnerOpenID.Length<=0)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "null roomInfo, maybe leave room, clear TransportRoomInfoOfUIDs");
+ TransportRoomInfoOfUIDs.RoomID = 0;
+ TransportRoomInfoOfUIDs.OwnerUID = 0;
+ TransportRoomInfoOfUIDs.RoomUIDs.Clear();
+ return;
+ }
+ TransportRoomInfoOfUIDs.RoomID = PicoRoomWrapper.PicoRoomInfo.RoomID;
+ SelfUID = (ulong)(PicoRoomWrapper.SelfOpenID.GetHashCode());
+ TransportRoomInfoOfUIDs.OwnerUID = (ulong)(PicoRoomWrapper.PicoRoomInfo.OwnerOpenID.GetHashCode());
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"ParseUIDInfo: roomID {TransportRoomInfoOfUIDs.RoomID}, ownerUID {TransportRoomInfoOfUIDs.OwnerUID}, selfUID {SelfUID} from selfOpenID {PicoRoomWrapper.SelfOpenID}");
+
+ TransportRoomInfoOfUIDs.RoomUIDs.Clear();
+ OpenID2UIDs.Clear();
+ UID2OpenIDs.Clear();
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"roomID {TransportRoomInfoOfUIDs.RoomID}, mapping ...");
+ foreach (string playerName in PicoRoomWrapper.PicoRoomInfo.CurRoomOpenIDs)
+ {
+ ulong hashCode = (ulong)playerName.GetHashCode();
+ TransportRoomInfoOfUIDs.RoomUIDs.Add(hashCode);
+ OpenID2UIDs.Add(playerName, hashCode);
+ UID2OpenIDs.Add(hashCode, playerName);
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"uid({hashCode})<->openID({playerName})");
+ }
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "... uid openid mapping");
+ }
+ } //TransportRoomStatus
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ public delegate void DebugDelegate(int level, IntPtr strPtr);
+
+ public interface IRoomEventHandler
+ {
+ void OnRoomInfoUpdate(TransportRoomInfo transportRoomInfo);
+ void OnPkgRecved(ulong senderUID, ArraySegment pkg);
+ }
+
+ public interface IRoomProvider
+ {
+ bool IsSelfOwner();
+ ulong GetSelfLoggedInUID();
+ bool RoomKickUserByID(ulong roomID, ulong clientId);
+ bool RoomLeave(ulong roomID);
+ bool SendPacket2UID(ulong clientId, byte[] dataArray);
+ }
+
+}
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/IRoomProvider.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/IRoomProvider.cs.meta
new file mode 100644
index 00000000..ede39850
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/IRoomProvider.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8db332a15b1e54b4fada123a9e153c1e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.MsgHandler.cs b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.MsgHandler.cs
new file mode 100644
index 00000000..c95b2b5a
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.MsgHandler.cs
@@ -0,0 +1,195 @@
+using System;
+using Unity.Netcode;
+using UnityEngine;
+using System.Collections.Generic;
+
+namespace Netcode.Transports.Pico
+{
+ public partial class PicoTransport
+ {
+ private void InvokePicoTransportEvent(NetworkEvent networkEvent, ulong userId = 0, ArraySegment payload = default)
+ {
+ if (networkEvent != NetworkEvent.Data)
+ {
+ PicoTransportLog(LogLevel.Info, $"InvokePicoTransportEvent, networkEvent:{networkEvent}, userId:{userId}");
+ }
+ else
+ {
+ //PicoTransportLog(LogLevel.Info, $"network payload recved: from userId({userId}), size({payload.Count})");
+ }
+ switch (networkEvent)
+ {
+ case NetworkEvent.Nothing:
+ // do nothing
+ break;
+ case NetworkEvent.Disconnect:
+ // need no extra handling now
+ goto default;
+ default:
+ InvokeOnTransportEvent(networkEvent, userId, payload, Time.realtimeSinceStartup);
+ break;
+ }
+ }
+
+ private void TryIssueTransoprtEvent(NetworkEvent networkEvent, ulong uid)
+ {
+ bool isSelf = uid == _serviceInfo.SelfUID;
+ bool isServerEvent = uid == _transportRoomInfo.OwnerUID || (uid == 0);
+ if (_isSelfServer)
+ {
+ if (!isSelf)
+ {
+ PicoTransportLog(LogLevel.Info, $"(server) send others player event '{networkEvent}' to netcode, uid in event:{uid}, ownerUID:{_transportRoomInfo.OwnerUID}");
+ InvokePicoTransportEvent(networkEvent, uid);
+ }
+ }
+ else
+ {
+ if (isSelf)
+ {
+ PicoTransportLog(LogLevel.Warn, $"(client) send self event '{networkEvent}' to netcode, uid in event:{uid}, ownerUID:{_transportRoomInfo.OwnerUID}");
+ InvokePicoTransportEvent(networkEvent, uid);
+ }
+ else if (isServerEvent)
+ {
+ PicoTransportLog(LogLevel.Info, $"(client) send server's event '{networkEvent}' to netcode, uid in event:{uid}, ownerUID:{_transportRoomInfo.OwnerUID}");
+ InvokePicoTransportEvent(networkEvent, uid);
+ }
+ }
+ }
+
+ private bool CheckNetcodeStartStopEvent(ulong curOwnerID, HashSet newestRoomUIDs)
+ {
+ if (_transportState != ETransportEvent.Started)
+ {
+ //wait StartClient/StartHost to be called
+ return false;
+ }
+ EPicoServiceState notied_state = _serviceInfo.NotifiedState;
+ EPicoServiceState cur_state = _serviceInfo.CurState;
+ if (notied_state == cur_state)
+ {
+ return false;
+
+ }
+ PicoTransportLog(LogLevel.Info, $"notied_state {notied_state} disaccord with cur_state {cur_state}");
+ if (cur_state == EPicoServiceState.InRoom)
+ {
+ //in room, and haven't notified netcode yet.
+ PicoTransportLog(LogLevel.Info, $"self new enter room, self uid:{_serviceInfo.SelfUID}, serverUID:{_transportRoomInfo.OwnerUID}");
+ if (!_isSelfServer)
+ {
+ //non-server, notify(server online)
+ PicoTransportLog(LogLevel.Info, $"(clietn) self is client: try notify server connect event, self uid:{_serviceInfo.SelfUID}, serverUID:{_transportRoomInfo.OwnerUID}");
+ TryIssueTransoprtEvent(NetworkEvent.Connect, _transportRoomInfo.OwnerUID);
+ }
+ else
+ {
+ //server, notify(other clients online)
+ foreach (ulong uid in newestRoomUIDs)
+ {
+ PicoTransportLog(LogLevel.Info, $"(server) self is server: try notify client connect event, client uid:{uid}, serverUID:{_transportRoomInfo.OwnerUID}");
+ if (uid != _serviceInfo.SelfUID)
+ {
+ TryIssueTransoprtEvent(NetworkEvent.Connect, uid);
+ }
+ }
+ }
+ }
+ else
+ {
+ //not in room now
+ if (notied_state == EPicoServiceState.InRoom)
+ {
+ PicoTransportLog(LogLevel.Info, $"self disconnect, self uid:{_serviceInfo.SelfUID}, serverUID:{_transportRoomInfo.OwnerUID}");
+ TryIssueTransoprtEvent(NetworkEvent.Disconnect, _transportRoomInfo.OwnerUID);
+ }
+ }
+ _serviceInfo.NotifiedState = cur_state;
+ _serviceInfo.CurOwnerID = curOwnerID;
+ _serviceInfo.CurRoomUIDs = new HashSet(newestRoomUIDs);
+ return true;
+ }
+
+ public void OnSelfLeaveRoom(ulong userUID, ulong roomID)
+ {
+ if ((_transportRoomInfo == null) || (roomID != _transportRoomInfo.RoomID))
+ {
+ PicoTransportLog(LogLevel.Info, $"room leave response, not in this room({roomID}) now, skip this response");
+ return;
+ }
+ if (userUID == _serviceInfo.SelfUID)
+ {
+ CurrentState = EPicoServiceState.Stopped;
+ TryIssueTransoprtEvent(NetworkEvent.Disconnect, _serviceInfo.SelfUID);
+ StopPicoTransport();
+ }
+ }
+
+ public void OnRoomInfoUpdate(TransportRoomInfo transportRoomInfo)
+ {
+ PicoTransportLog(LogLevel.Info, $"OnRoomInfoUpdate 1, got roomInfo, player num: {transportRoomInfo.RoomUIDs.Count}");
+ if (null == transportRoomInfo)
+ {
+ PicoTransportLog(LogLevel.Error, "OnRoomInfoUpdate, roomInfo is null");
+ return;
+ }
+ if (transportRoomInfo.RoomID != _transportRoomInfo.RoomID)
+ {
+ PicoTransportLog(LogLevel.Error, $"got non-current room info, in roomID:{transportRoomInfo.RoomID} vs current roomID: {_transportRoomInfo.RoomID}");
+ return;
+ }
+
+ if (CheckNetcodeStartStopEvent(transportRoomInfo.OwnerUID, transportRoomInfo.RoomUIDs))
+ {
+ return;
+ }
+ HashSet newRoomUIDs = transportRoomInfo.RoomUIDs;
+ HashSet oldRoomUIDs = _serviceInfo.CurRoomUIDs;
+ ulong oldOwnerUID = _serviceInfo.CurOwnerID;
+ _serviceInfo.CurOwnerID = transportRoomInfo.OwnerUID;
+ if ((oldOwnerUID != _serviceInfo.CurOwnerID) && (oldOwnerUID != 0))
+ {
+ PicoTransportLog(LogLevel.Error, $"111, owner changed from {oldOwnerUID} to: {_serviceInfo.CurOwnerID}");
+ if (NetworkManager.Singleton != null)
+ {
+ //is migrate condition: 1) has new room owner; 2). self is not old room owner; 3). self is still in room;
+ _serviceInfo.IsHostMigrate = _serviceInfo.AllowHostMigrate && (transportRoomInfo.OwnerUID != 0) && (_serviceInfo.SelfUID != oldOwnerUID) && (newRoomUIDs.Contains(_serviceInfo.SelfUID));
+ PicoTransportLog(LogLevel.Error, $"owner changed, stop transport now!, IsHostMigrate {_serviceInfo.IsHostMigrate}, selfUID {_serviceInfo.SelfUID}, oldOwnerUID {oldOwnerUID}");
+ StopPicoTransport();
+ return;
+ }
+ }
+ if (_transportState == ETransportEvent.Started)
+ {
+ //find out those left && new entered
+ foreach (ulong olduid in oldRoomUIDs)
+ {
+ PicoTransportLog(LogLevel.Info, "check event of olduid:{olduid}");
+ if (!newRoomUIDs.Contains(olduid))
+ {
+ //left player
+ PicoTransportLog(LogLevel.Info, $"try notify client disconnect event, uid in event:{olduid}, ownerUID:{_transportRoomInfo.OwnerUID}");
+ TryIssueTransoprtEvent(NetworkEvent.Disconnect, olduid);
+ }
+ }
+ foreach (ulong newuid in newRoomUIDs)
+ {
+ PicoTransportLog(LogLevel.Info, $"check event of newuid:{newuid}");
+ if (!oldRoomUIDs.Contains(newuid))
+ {
+ //new entered player
+ PicoTransportLog(LogLevel.Info, $"try notify client connect event, uid in event:{newuid}, ownerUID:{_transportRoomInfo.OwnerUID}");
+ TryIssueTransoprtEvent(NetworkEvent.Connect, newuid);
+ }
+ }
+ }
+ _serviceInfo.CurRoomUIDs = new HashSet(newRoomUIDs);
+ }
+
+ public void OnPkgRecved(ulong senderUID, ArraySegment pkg)
+ {
+ InvokePicoTransportEvent(NetworkEvent.Data, senderUID, pkg);
+ }
+ } //PicoTransport
+}//Transport.Pico
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.MsgHandler.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.MsgHandler.cs.meta
new file mode 100644
index 00000000..dd23ed8a
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.MsgHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4f11deccb7cb7b54994b485829fa463f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.UnityLog.cs b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.UnityLog.cs
new file mode 100644
index 00000000..870b7a9d
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.UnityLog.cs
@@ -0,0 +1,73 @@
+using System;
+using System.Runtime.InteropServices;
+using UnityEngine;
+
+namespace Netcode.Transports.Pico
+{
+ public partial class PicoTransport
+ {
+ public LogLevel TransportLogLevel;
+ static private LogLevel _logLevel;
+
+ public enum LogLevel
+ {
+ Debug = 0,
+ Info,
+ Warn,
+ Error,
+ Fatal
+ };
+
+ public static void SetLogLevel(LogLevel logLevel)
+ {
+ _logLevel = logLevel;
+ }
+
+ public static void PicoTransportLog(LogLevel level, object logCont)
+ {
+ if (level < _logLevel)
+ {
+ return;
+ }
+ switch (level)
+ {
+ case LogLevel.Debug:
+ LogInfo(logCont);
+ break;
+ case LogLevel.Info:
+ LogInfo(logCont);
+ break;
+ case LogLevel.Warn:
+ LogWarning(logCont);
+ break;
+ case LogLevel.Error:
+ LogError(logCont);
+ break;
+ case LogLevel.Fatal:
+ LogError(logCont);
+ break;
+ default:
+ break;
+ }
+ return;
+ }
+
+ private static void LogInfo(object logCont)
+ {
+ var curtime = DateTime.Now.ToString("hh.mm.ss.ffffff");
+ Debug.Log($"[{curtime}]PicoLibLog: {logCont}");
+ }
+
+ private static void LogWarning(object logCont)
+ {
+ var curtime = DateTime.Now.ToString("hh.mm.ss.ffffff");
+ Debug.LogWarning($"[{curtime}]PicoLibLog: {logCont}");
+ }
+
+ private static void LogError(object logCont)
+ {
+ var curtime = DateTime.Now.ToString("hh.mm.ss.ffffff");
+ Debug.LogError($"[{curtime}]PicoLibLog: {logCont}");
+ }
+ }
+}
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.UnityLog.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.UnityLog.cs.meta
new file mode 100644
index 00000000..f7dd01f0
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.UnityLog.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a5069b11d63cf3a4c91215ade15b004c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.cs b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.cs
new file mode 100644
index 00000000..c295e660
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.cs
@@ -0,0 +1,366 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Unity.Netcode;
+using UnityEngine;
+
+namespace Netcode.Transports.Pico
+{
+ [RequireComponent(typeof(NetworkManager))]
+ public partial class PicoTransport : NetworkTransport, IRoomEventHandler
+ {
+ public enum EWorkMode
+ {
+ Simple = 0,
+ ExternalRoom = 1
+ }
+
+ public enum ETransportEvent
+ {
+ Stopped = 0,
+ Started
+ }
+
+ public enum EPicoServiceState
+ {
+ Stopped = 0,
+ InRoom,
+ RoomLeaving,
+ }
+
+ public EWorkMode WorkMode;
+ private IRoomProvider _matchRoomProvider;
+ public event Action OnPicoTransportEvent;
+
+ class PicoServiceInfo
+ {
+ public bool CancelFlag;
+ public bool AllowHostMigrate = false;
+ public bool IsHostMigrate;
+ public ulong SelfUID;
+ public ulong CurOwnerID;
+ public EPicoServiceState CurState = EPicoServiceState.Stopped;
+ public EPicoServiceState NotifiedState = EPicoServiceState.Stopped;
+ public HashSet CurRoomUIDs = new HashSet();
+ public void ResetServiceInfo()
+ {
+ CancelFlag = false;
+ CurOwnerID = 0;
+ SelfUID = 0;
+ CurState = EPicoServiceState.Stopped;
+ NotifiedState = EPicoServiceState.Stopped;
+ CurRoomUIDs.Clear();
+ }
+ }
+
+ private bool _netcodeStarted = false;
+ private TransportRoomInfo _transportRoomInfo = null;
+ private bool _isSelfServer = false;
+ private readonly PicoServiceInfo _serviceInfo = new PicoServiceInfo();
+ private ETransportEvent _transportState = ETransportEvent.Stopped;
+
+ //used in stop procedure
+ bool _roomLeftOnce = false;
+ bool _stopTransportOnce = false;
+ bool _afterShutdownOnce = false;
+
+ private EPicoServiceState CurrentState
+ {
+ get => _serviceInfo.CurState;
+ set => _serviceInfo.CurState = value;
+ }
+
+ void OnDestroy()
+ {
+ StopPicoTransport();
+ }
+
+ public bool IsHostMigrate()
+ {
+ return _serviceInfo.IsHostMigrate;
+ }
+
+ public void AllowHostMigrateOnHostLeave()
+ {
+ _serviceInfo.AllowHostMigrate = true;
+ }
+
+ public bool SetRoomProvider(IRoomProvider matchRoomProvider, ulong selfUID, TransportRoomInfo transportRoomInfo)
+ {
+ if (CurrentState != EPicoServiceState.Stopped)
+ {
+ PicoTransportLog(LogLevel.Error, $"duplicate SetRoomProvider, CurrentState: {CurrentState}");
+ return false;
+ }
+ PicoTransportLog(LogLevel.Info, $"-------------------------------------------->");
+ PicoTransportLog(LogLevel.Info, $"SetRoomProvider be called, CurrentState: {CurrentState}, isSelfOwner: {matchRoomProvider.IsSelfOwner()}");
+ if (CurrentState != EPicoServiceState.Stopped && (!_serviceInfo.IsHostMigrate))
+ {
+ PicoTransportLog(LogLevel.Error, $"duplicated pico service init, CurrentState: {CurrentState}");
+ return false;
+ }
+ _serviceInfo.IsHostMigrate = false;
+ _serviceInfo.CancelFlag = false;
+ if (matchRoomProvider != null)
+ {
+ _matchRoomProvider = matchRoomProvider;
+ }
+ if (null == matchRoomProvider)
+ {
+ PicoTransportLog(LogLevel.Error, "invalid matchroomProvider or invalid _initCallback");
+ return false;
+ }
+ _serviceInfo.SelfUID = selfUID;
+ _transportRoomInfo = transportRoomInfo;
+ if (_netcodeStarted)
+ {
+ AfterNetcodeStarted();
+ }
+ return true;
+ }
+
+ private void AfterNetcodeStarted()
+ {
+ CurrentState = EPicoServiceState.InRoom;
+ PicoTransportLog(LogLevel.Info, $"transport started, room {_transportRoomInfo.RoomID}");
+ OnRoomInfoUpdate(_transportRoomInfo);
+ }
+
+ private void AfterShutdown()
+ {
+ if (!_netcodeStarted)
+ {
+ PicoTransportLog(LogLevel.Info, "!_netcodeStarted, ignore AfterShutdown");
+ return;
+ }
+ if (!_serviceInfo.IsHostMigrate && _transportRoomInfo != null && 0 != _transportRoomInfo.RoomID && CurrentState == EPicoServiceState.InRoom)
+ {
+ PicoTransportLog(LogLevel.Info, $"AfterShutdown, issue self leave room {_transportRoomInfo.RoomID}, selfUID:{_serviceInfo.SelfUID}, ownerUID{_transportRoomInfo.OwnerUID}");
+ CurrentState = EPicoServiceState.RoomLeaving;
+ _matchRoomProvider.RoomLeave(_transportRoomInfo.RoomID);
+ }
+ if (_afterShutdownOnce)
+ {
+ return;
+ }
+ _afterShutdownOnce = true;
+ PicoTransportLog(LogLevel.Info, "+AfterShutdown be called");
+ _netcodeStarted = false;
+ _joinRoomWaitGameInit = false;
+ _transportRoomInfo = null;
+ _isSelfServer = false;
+ _transportState = ETransportEvent.Stopped;
+ CurrentState = EPicoServiceState.Stopped;
+ OnPicoTransportEvent?.Invoke(_transportState);
+ _serviceInfo.ResetServiceInfo();
+ _matchRoomProvider = null;
+ }
+
+ public void StopPicoTransport()
+ {
+ if (_stopTransportOnce)
+ {
+ return;
+ }
+ _stopTransportOnce = true;
+ if (!NetworkManager.Singleton)
+ {
+ PicoTransportLog(LogLevel.Info, $"StopPicoTransport be called, ignore netcode shutdown, CurrentState {CurrentState}");
+ AfterShutdown();
+ return;
+ }
+ PicoTransportLog(LogLevel.Info, $"StopPicoTransport be called, CurrentState {CurrentState}");
+ ShutdownNetcode();
+ }
+
+ void Update()
+ {
+ if (CurrentState == EPicoServiceState.Stopped)
+ {
+ return;
+ }
+ CheckNetcodeStartStopEvent(_serviceInfo.CurOwnerID, _serviceInfo.CurRoomUIDs);
+ if (WorkMode == EWorkMode.Simple)
+ {
+ UpdateIndependent();
+ }
+ }
+
+ public override NetworkEvent PollEvent(out ulong clientId, out ArraySegment payload, out float receiveTime)
+ {
+ clientId = 0;
+ receiveTime = Time.realtimeSinceStartup;
+ payload = default;
+ return NetworkEvent.Nothing;
+ }
+
+ public override bool StartClient()
+ {
+ if (_netcodeStarted)
+ {
+ PicoTransportLog(LogLevel.Error, "duplicated netcode start, in StartClient");
+ return false;
+ }
+ PicoTransportLog(LogLevel.Info, "---> StartClient");
+ _netcodeStarted = true;
+ if (WorkMode == EWorkMode.ExternalRoom)
+ {
+ if (_serviceInfo.SelfUID == _transportRoomInfo.OwnerUID)
+ {
+ PicoTransportLog(LogLevel.Error, "self is room owner, but StartClient be called");
+ return false;
+ }
+ }
+ _transportState = ETransportEvent.Started;
+ OnPicoTransportEvent?.Invoke(_transportState);
+ _isSelfServer = false;
+ if (CurrentState == EPicoServiceState.Stopped)
+ {
+ if (WorkMode == EWorkMode.Simple)
+ {
+ InitIndependent();
+ } else
+ {
+ AfterNetcodeStarted();
+ }
+ return true;
+ }
+ return true;
+ }
+
+ public override bool StartServer()
+ {
+ if (_netcodeStarted)
+ {
+ PicoTransportLog(LogLevel.Error, "duplicated netcode start, in StartServer");
+ return false;
+ }
+ PicoTransportLog(LogLevel.Info, $"---> StartServer: current state({CurrentState})");
+ _netcodeStarted = true;
+ if (WorkMode == EWorkMode.ExternalRoom)
+ {
+ if (_serviceInfo.SelfUID != _transportRoomInfo.OwnerUID)
+ {
+ PicoTransportLog(LogLevel.Error, $"self is not room owner, but StartServer be called, self {_serviceInfo.SelfUID} vs owner {_transportRoomInfo.OwnerUID}");
+ return false;
+ }
+ }
+ _transportState = ETransportEvent.Started;
+ OnPicoTransportEvent?.Invoke(_transportState);
+ _isSelfServer = true;
+ if (CurrentState == EPicoServiceState.Stopped)
+ {
+ if (WorkMode == EWorkMode.Simple)
+ {
+ InitIndependent();
+ }
+ else
+ {
+ AfterNetcodeStarted();
+ }
+ return true;
+ }
+ return true;
+ }
+
+ public override void DisconnectRemoteClient(ulong clientID)
+ {
+ if (!_isSelfServer)
+ {
+ PicoTransportLog(LogLevel.Error, "DisconnectRemoteClient, self is not server, skip this request");
+ return;
+ }
+ if (_serviceInfo.AllowHostMigrate)
+ {
+ PicoTransportLog(LogLevel.Warn, "DisconnectRemoteClient, AllowHostMigrate, skip disconnect remote remoteUID:{clientID}");
+ return;
+ }
+ PicoTransportLog(LogLevel.Info, "DisconnectRemoteClient, selfUID:{_serviceInfo.SelfUID}, ownerUID{_serviceInfo.OwnerUID}, remoteUID:{clientID}");
+ if (CurrentState != EPicoServiceState.InRoom)
+ {
+ PicoTransportLog(LogLevel.Warn, $"DisconnectRemoteClient, CurrentState {CurrentState} not in game now, skip this request");
+ return;
+ }
+ if (!_serviceInfo.CurRoomUIDs.Contains(clientID))
+ {
+ PicoTransportLog(LogLevel.Error, $"DisconnectRemoteClient, targetId({clientID}) is not in game now, skip this request");
+ return;
+ }
+ _ = _matchRoomProvider.RoomKickUserByID(_transportRoomInfo.RoomID, clientID);
+ }
+
+ public override void DisconnectLocalClient()
+ {
+ PicoTransportLog(LogLevel.Info, $"DisconnectLocalClient, selfUID:{_serviceInfo.SelfUID}, ownerUID{_serviceInfo.CurOwnerID}");
+ if (CurrentState != EPicoServiceState.InRoom)
+ {
+ PicoTransportLog(LogLevel.Info, $"DisconnectLocalClient, curState({CurrentState}), not in game now, skip this request");
+ return;
+ }
+ if (!_serviceInfo.IsHostMigrate)
+ {
+ if ((_transportRoomInfo!=null) && (_transportRoomInfo.RoomID != 0))
+ {
+ CurrentState = EPicoServiceState.RoomLeaving;
+ PicoTransportLog(LogLevel.Info, "DisconnectLocalClient, issue self leave room, selfUID:{_serviceInfo.SelfUID}, ownerUID{_serviceInfo.OwnerUID}");
+ if (!_matchRoomProvider.RoomLeave(_transportRoomInfo.RoomID))
+ {
+ PicoTransportLog(LogLevel.Info, "DisconnectLocalClient, issue self leave room failed, selfUID:{_serviceInfo.SelfUID}, ownerUID{_serviceInfo.OwnerUID}");
+ }
+ }
+ }
+ }
+
+ public override ulong GetCurrentRtt(ulong clientId)
+ {
+ return 0;
+ }
+
+ public override void Send(ulong clientId, ArraySegment data, NetworkDelivery delivery)
+ {
+ //PicoTransportLog(LogLevel.Debug, $"send be called, tgt clientId {clientId}, send size {data.Count}");
+ byte[] dataArray = data.ToArray();
+ if (clientId == ServerClientId)
+ {
+ clientId = _transportRoomInfo.OwnerUID;
+ }
+ _ = _matchRoomProvider.SendPacket2UID(clientId, dataArray);
+ }
+
+ public override ulong ServerClientId
+ {
+ get { return 0; }
+ }
+
+ // be called by NetworkManager
+ public override void Shutdown()
+ {
+ PicoTransportLog(LogLevel.Info, "NetworkManager callback(Shutdown), selfId:{_serviceInfo.SelfUID}, curState: {CurrentState}");
+ _serviceInfo.CancelFlag = true;
+ if (CurrentState < EPicoServiceState.InRoom)
+ {
+ PicoTransportLog(LogLevel.Info, "Shutdown, selfId:{_serviceInfo.SelfUID}, curState: {CurrentState}, call UninitPicoService");
+ AfterShutdown();
+ return;
+ }
+ DisconnectLocalClient();
+ AfterShutdown();
+ }
+
+ public override void Initialize(NetworkManager networkManager = null)
+ {
+ _roomLeftOnce = false;
+ _stopTransportOnce = false;
+ _afterShutdownOnce = false;
+
+ _netcodeStarted = false;
+ _joinRoomWaitGameInit = false;
+ PicoTransportLog(LogLevel.Info, $"pico transport initialize be called, current LocalClientID {NetworkManager.Singleton.LocalClientId}");
+ if (WorkMode == EWorkMode.Simple)
+ {
+ PrepareIndependent();
+ }
+ }
+
+ } //PicoTransport
+}
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.cs.meta
new file mode 100644
index 00000000..37706f2c
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/PicoTransport.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: efe5516b9c6135142a7e63556db66891
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode.meta b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode.meta
new file mode 100644
index 00000000..2eb591f6
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 707f8292dec52d34994be8eb28569408
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.Handler.cs b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.Handler.cs
new file mode 100644
index 00000000..5e1a51a1
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.Handler.cs
@@ -0,0 +1,234 @@
+using UnityEngine;
+
+using Pico.Platform.Models;
+using Pico.Platform;
+using System;
+using static Netcode.Transports.Pico.PicoTransport;
+
+using PicoPlatform = Pico.Platform;
+
+namespace Netcode.Transports.Pico
+{
+ public partial class InnerPicoSDKUser
+ {
+ bool _isLastSessionMsg = true; //useful in editor
+ private void RegisterNotificationCallbacks()
+ {
+ NetworkService.SetNotification_Game_ConnectionEventCallback(GameConnectionEventCallback);
+ NetworkService.SetNotification_Game_Request_FailedCallback(RequestFailedCallback);
+ NetworkService.SetNotification_Game_StateResetCallback(GameStateResetCallback);
+
+ RoomService.SetLeaveNotificationCallback(RoomLeaveNotificationCallback);
+ RoomService.SetJoin2NotificationCallback(RoomJoin2NotificationCallback);
+ RoomService.SetKickUserNotificationCallback(RoomKickUserNotificationCallback);
+ RoomService.SetUpdateOwnerNotificationCallback(RoomUpdateOwnerNotificationCallback);
+ RoomService.SetUpdateNotificationCallback(RoomUpdateCallback);
+ }
+
+ private void GameConnectionEventCallback(PicoPlatform.Message msg)
+ {
+ if (IsOldSessionCallback("connect_event"))
+ {
+ return;
+ }
+ var state = msg.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"OnGameConnectionEvent: {state}");
+ if (state == PicoPlatform.GameConnectionEvent.Connected)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "GameConnection: success");
+ }
+ else if (state == PicoPlatform.GameConnectionEvent.Closed)
+ {
+ StopPicoGame("GameConnection: failed Please re-initialize");
+ }
+ else if (state == PicoPlatform.GameConnectionEvent.GameLogicError)
+ {
+ StopPicoGame("GameConnection: failed After successful reconnection, the logic state is found to be wrong, please re-initialize��");
+ }
+ else if (state == PicoPlatform.GameConnectionEvent.Lost)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "######, GameConnection: Reconnecting, waiting ...");
+ if (0 == _restartTimeoutTick)
+ {
+ /*
+ A single tick represents one hundred nanoseconds or one ten-millionth of a second. There are 10,000 ticks in a millisecond (see TicksPerMillisecond) and 10 million ticks in a second.
+ */
+ _restartTimeoutTick = DateTime.Now.Ticks + 10 * 1000 * 10000;
+ }
+ }
+ else if (state == PicoPlatform.GameConnectionEvent.Resumed)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "######, GameConnection: successfully reconnected");
+ _restartTimeoutTick = 0;
+ }
+ else if (state == PicoPlatform.GameConnectionEvent.KickedByRelogin)
+ {
+ StopPicoGame("GameConnection: login in other device, try reinitialize later");
+ }
+ else if (state == PicoPlatform.GameConnectionEvent.KickedByGameServer)
+ {
+ StopPicoGame("GameConnection: be kicked by server, try reinitialize later");
+ }
+ else
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "GameConnection: unknown error");
+ }
+ }
+
+ private void RequestFailedCallback(PicoPlatform.Message msg)
+ {
+ if (IsOldSessionCallback("request_failed"))
+ {
+ return;
+ }
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"OnRequestFailed: {msg.Data}");
+ }
+
+ private void GameStateResetCallback(PicoPlatform.Message msg)
+ {
+ if (IsOldSessionCallback("game_state_reset"))
+ {
+ return;
+ }
+ StopPicoGame("game state disaccord with that of the server, need re-initialization");
+ }
+
+ bool IsOldSessionCallback(string callbackDesc)
+ {
+ if (_isLastSessionMsg)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"ignore old session callback({callbackDesc})");
+ }
+ return _isLastSessionMsg;
+ }
+
+ private void RoomUpdateCallback(Message message)
+ {
+ if (IsOldSessionCallback("room_update"))
+ {
+ return;
+ }
+ CommonProcess("ProcessRoomUpdate", message, () =>
+ {
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"!!!!!!, selfOpenID:{GetSelfOpenID()}, room update: {GameUtils.GetRoomLogData(room)}");
+ _room_status.SetRoomInfo(GetSelfOpenID(), TransportPicoRoomInfo.GetPicoRoomInfo(room));
+ OnPicoSdkNotify?.Invoke(ESDKUserEvent.RoomInfoUpdate, _curGameState.CurState, _curGameState.CurState, "room info updated");
+ });
+ }
+
+ private void ProcessRoomJoin2(Message message)
+ {
+ CommonProcess("ProcessRoomJoin2", message, () =>
+ {
+ if (message.IsError)
+ {
+ var err = message.Error;
+ PicoTransportLog(LogLevel.Error, $"Join room error {err.Message} code={err.Code}");
+ CallOnStatusChange(EGameState.NotInited, "Join room failed");
+ return;
+ }
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"room {room.RoomId} join succeed: {GameUtils.GetRoomLogData(room)}");
+ _room_status.SetRoomInfo(GetSelfOpenID(), TransportPicoRoomInfo.GetPicoRoomInfo(room));
+ CallOnStatusChange(EGameState.InRoom, "in room now");
+ });
+ }
+
+ private void ProcessRoomLeave(Message message)
+ {
+ CommonProcess("ProcessRoomLeave", message, () =>
+ {
+ if (message.IsError)
+ {
+ var err = message.Error;
+ PicoTransportLog(LogLevel.Error, $"Leave room error {err.Message} code={err.Code}");
+ _room_status.SetRoomInfo(GetSelfOpenID(), null);
+ CallOnStatusChange(EGameState.Inited, "Leave room failed");
+ return;
+ }
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"in ProcessRoomLeave, roomLeave: {GameUtils.GetRoomLogData(room)}");
+ _room_status.SetRoomInfo(GetSelfOpenID(), TransportPicoRoomInfo.GetPicoRoomInfo(room));
+ OnRoomLeft(room);
+ });
+ return;
+ }
+
+ private void OnRoomLeft(Room room)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"room {room.RoomId} leave succeed ...");
+ if (GetRoomID() != room.RoomId)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"room {room.RoomId} leave succeed, but current is not in this room now, skip this request");
+ return;
+ }
+
+ CallOnStatusChange(EGameState.Inited, "room left, return to 'inited'");
+ _room_status.SetRoomInfo(GetSelfOpenID(), null);
+ }
+
+ private void RoomKickUserNotificationCallback(Message message)
+ {
+ if (IsOldSessionCallback("kick_user_notify"))
+ {
+ return;
+ }
+ CommonProcess("OnRoomKickUserNotification", message, () =>
+ {
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, GameUtils.GetRoomLogData(room));
+ });
+ }
+
+ private void RoomUpdateOwnerNotificationCallback(Message message)
+ {
+ if (IsOldSessionCallback("update_owner_notify"))
+ {
+ return;
+ }
+ CommonProcess("OnRoomUpdateOwnerNotification", message, () =>
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, "OnRoomUpdateOwnerNotification");
+ });
+ }
+
+ private void RoomLeaveNotificationCallback(Message message)
+ {
+ if (IsOldSessionCallback("room_leave_notify"))
+ {
+ return;
+ }
+ CommonProcess("OnRoomLeaveNotification", message, () =>
+ {
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, GameUtils.GetRoomLogData(room));
+ OnRoomLeft(room);
+ });
+ }
+
+ private void RoomJoin2NotificationCallback(Message message)
+ {
+ if (IsOldSessionCallback("join2_notify"))
+ {
+ return;
+ }
+ CommonProcess("OnRoomJoin2Notification", message, () =>
+ {
+ var room = message.Data;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, GameUtils.GetRoomLogData(room));
+ });
+ }
+
+ private void CommonProcess(string funName, Message message, Action action)
+ {
+ string errmsg = "";
+ if (message.IsError)
+ {
+ errmsg = message.Error.Message;
+ }
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"server msg({message.Type}:{funName}), err:{errmsg}");
+ action();
+ }
+ }
+}
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.Handler.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.Handler.cs.meta
new file mode 100644
index 00000000..4e26b179
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.Handler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1e1c475700a069c49a4adb71ab912fec
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.RoomProvider.cs b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.RoomProvider.cs
new file mode 100644
index 00000000..bd17ea64
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.RoomProvider.cs
@@ -0,0 +1,45 @@
+using System;
+using UnityEngine;
+using static Netcode.Transports.Pico.PicoTransport;
+using PicoPlatform = Pico.Platform;
+
+namespace Netcode.Transports.Pico
+{
+ public partial class InnerPicoSDKUser : IRoomProvider
+ {
+ private TransportRoomStatus _room_status = new TransportRoomStatus();
+
+ public bool IsSelfOwner()
+ {
+ return _room_status.SelfUID == _room_status.TransportRoomInfoOfUIDs.OwnerUID;
+ }
+
+ public ulong GetSelfLoggedInUID()
+ {
+ return _room_status.SelfUID;
+ }
+
+ public bool RoomKickUserByID(ulong roomID, ulong clientId)
+ {
+ return false;
+ }
+
+ public bool RoomLeave(ulong roomID)
+ {
+ _room_status.PicoRoomWrapper.LeaveRoom(roomID);
+ return true;
+ }
+
+ public bool SendPacket2UID(ulong clientID, byte[] dataArray)
+ {
+ string tgtOpenID;
+ if (!_room_status.UID2OpenIDs.TryGetValue(clientID, out tgtOpenID))
+ {
+ PicoTransportLog(LogLevel.Error, $"SendPacket2UID, target({clientID}) is not in room, skip this send packet request");
+ return false;
+ }
+ _room_status.PicoRoomWrapper.SendMsgToUID(tgtOpenID, dataArray);
+ return false;
+ }
+ }
+}
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.RoomProvider.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.RoomProvider.cs.meta
new file mode 100644
index 00000000..fdc681f9
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.RoomProvider.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a7b7aa53a0c7e3b41954036a3fd31086
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.cs b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.cs
new file mode 100644
index 00000000..e9b13937
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.cs
@@ -0,0 +1,361 @@
+using System;
+using System.Collections;
+using UnityEngine;
+using static Netcode.Transports.Pico.PicoTransport;
+using PicoPlatform = Pico.Platform;
+
+namespace Netcode.Transports.Pico
+{
+ [RequireComponent(typeof(PicoTransport))]
+ public partial class InnerPicoSDKUser : MonoBehaviour
+ {
+ public enum ESDKUserEvent
+ {
+ StateChange = 1,
+ RoomInfoUpdate = 2,
+ Error = 3,
+ }
+
+ public enum EGameState
+ {
+ NotInited,
+ InIniting,
+ UserGot,
+ InGameIniting,
+ Inited,
+ Shutdowned,
+ RoomJoining,
+ InRoom,
+ RoomLeaving,
+ }
+ private struct CurGameState
+ {
+ public EGameState CurState;
+ public ulong LastRoomID;
+ public PicoPlatform.Models.User UserInfo;
+ }
+
+ public class DevInitInfo
+ {
+ public string host;
+ public ushort port;
+ public string app_id;
+ public int region_id;
+ public bool via_proxy;
+ public string fakeToken;
+ public string openidOfFakeToken;
+ }
+
+ //params: event, oldState, curState, eventDesc
+ public event Action OnPicoSdkNotify;
+ //params: senderUID, message
+ public event Action> OnPicoRoomMessage;
+
+ private CurGameState _curGameState;
+ private long _restartTimeoutTick = 0;
+
+ // Start is called before the first frame update
+ private void Start()
+ {
+ RegisterNotificationCallbacks();
+ }
+
+ private void OnEnable()
+ {
+ _curGameState.CurState = EGameState.NotInited;
+ _curGameState.LastRoomID = 0;
+ _curGameState.UserInfo = null;
+ }
+
+ private void OnDestroy()
+ {
+ StopPicoGame("InnerSDKUser destroyed");
+ }
+
+ private void Update()
+ {
+ if (_curGameState.CurState == EGameState.InRoom)
+ {
+ RecvRoomPackage();
+ }
+ if (_restartTimeoutTick > 0)
+ {
+ long curTick = DateTime.Now.Ticks;
+ if (curTick > _restartTimeoutTick)
+ {
+ _restartTimeoutTick = 0;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "_restartTimeoutTick met, stop PicoSDKUser");
+ StopPicoGame("restart timeout");
+ }
+ }
+ }
+
+ public void HandlePicoTransportEvent(PicoTransport.ETransportEvent transportState)
+ {
+ switch (transportState)
+ {
+ case PicoTransport.ETransportEvent.Stopped:
+ {
+ if (_curGameState.CurState >= EGameState.Inited)
+ {
+ CallOnStatusChange(EGameState.NotInited, "transport stopped, return to state 'inited'");
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ return;
+ }
+
+ private void RecvRoomPackage()
+ {
+ if (_curGameState.CurState == EGameState.InRoom)
+ {
+ // read packet
+ var packet = PicoPlatform.NetworkService.ReadPacket();
+ while (packet != null)
+ {
+ HandleMsgFromRoom(packet);
+ packet.Dispose();
+ packet = PicoPlatform.NetworkService.ReadPacket();
+ }
+ }
+ }
+
+ private void HandleMsgFromRoom(PicoPlatform.Models.Packet pkgFromRoom)
+ {
+ ulong senderUID;
+ if (!_room_status.OpenID2UIDs.TryGetValue(pkgFromRoom.SenderId, out senderUID))
+ {
+ PicoTransportLog(LogLevel.Error, $"got msg from developer with unkown sender open_id: {pkgFromRoom.SenderId}, uid: {senderUID}");
+ return;
+ }
+ byte[] message = new byte[pkgFromRoom.Size];
+ ulong pkgSize = pkgFromRoom.GetBytes(message);
+ if (pkgSize <= 0)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"HandleMsgFromRoom, error pkgSize: {pkgSize}");
+ OnPicoSdkNotify?.Invoke(ESDKUserEvent.Error, _curGameState.CurState, _curGameState.CurState, "error on recved msg");
+ return;
+ }
+ var payload = new ArraySegment(message, 0, (int)pkgSize);
+ OnPicoRoomMessage?.Invoke(senderUID, payload);
+ }
+
+ public string GetSelfOpenID()
+ {
+ if (null == _curGameState.UserInfo)
+ {
+ return "not inited user";
+ }
+ return _curGameState.UserInfo.ID;
+ }
+
+ public TransportRoomInfo GetTransportRoomInfo()
+ {
+ if (0 == GetRoomID())
+ {
+ return null;
+ }
+ return _room_status.TransportRoomInfoOfUIDs;
+ }
+
+ private void CallOnStatusChange(EGameState curState, string statusDesc)
+ {
+ PicoTransportLog(LogLevel.Info, $"{_curGameState.CurState} > {curState}, {statusDesc}");
+ var lastState = _curGameState.CurState;
+ _curGameState.CurState = curState;
+ if (curState == EGameState.InRoom)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"new enter room, save room_id to LastRoomID ({GetRoomID()})");
+ _curGameState.LastRoomID = GetRoomID();
+ }
+ OnPicoSdkNotify?.Invoke(ESDKUserEvent.StateChange, lastState, curState, statusDesc);
+ }
+
+ private IEnumerator InitPicoPlatformAndGame(TextAsset mock_config)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"InitPicoPlatformAndGame be called");
+ _isLastSessionMsg = true;
+ _restartTimeoutTick = 0;
+ yield return null;
+ if (_curGameState.CurState >= EGameState.Inited)
+ {
+ _isLastSessionMsg = false;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Warn, $"already inited, Change to GameState.Inited directly");
+ CallOnStatusChange(EGameState.Inited, "game has already inited");
+ yield break;
+ }
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"InitPicoPlatformAndGame start coreservice init ...");
+ try
+ {
+ PicoPlatform.CoreService.Initialize(null);
+ }
+ catch (Exception e)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"exception init pico Core {e}");
+ }
+ if (!PicoPlatform.CoreService.Initialized)
+ {
+ CallOnStatusChange(EGameState.NotInited, "pico SDK init failed ...");
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "pico initialize failed");
+ yield break;
+ }
+ CallOnStatusChange(_curGameState.CurState, "CoreService get access token started ...");
+ PicoPlatform.UserService.GetAccessToken().OnComplete(delegate (PicoPlatform.Message message)
+ {
+ if (message.IsError)
+ {
+ var err = message.Error;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"Got access token error {err.Message} code={err.Code}");
+ CallOnStatusChange(EGameState.NotInited, "CoreService get access token failed");
+
+ return;
+ }
+ string accessToken = message.Data;
+ CallOnStatusChange(_curGameState.CurState, $"get access token succeed: {accessToken}");
+ PicoPlatform.UserService.GetLoggedInUser().OnComplete(delegate (PicoPlatform.Message userInfo)
+ {
+ if (userInfo.IsError)
+ {
+ var err = userInfo.Error;
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, $"GetLoggedInUser error {err.Message} code={err.Code}");
+ CallOnStatusChange(EGameState.NotInited, "UserService.GetLoggedInUser failed");
+ return;
+ }
+
+ if (userInfo.Data == null)
+ {
+ CallOnStatusChange(EGameState.NotInited, "UserService.GetLoggedInUser userInfo.Data is nil");
+ return;
+ }
+ _curGameState.UserInfo = userInfo.Data;
+ if (userInfo.Data.ID == "unknow_openid")
+ {
+ CallOnStatusChange(EGameState.NotInited, "UserService.GetLoggedInUser invalid openid in User.Data");
+ return;
+ }
+ CallOnStatusChange(EGameState.UserGot, $"GetLoggedInUser complete, player openID: {userInfo.Data.ID}");
+
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"got accessToken {accessToken}, GameInitialize begin");
+ PicoPlatform.CoreService.GameUninitialize();
+ PicoPlatform.Task request;
+ CallOnStatusChange(EGameState.InGameIniting, "Start game initialization, player openID");
+ _isLastSessionMsg = false;
+ request = PicoPlatform.CoreService.GameInitialize(accessToken);
+ CallOnStatusChange(_curGameState.CurState, "game init started, requestID:" + request.TaskId);
+ if (request.TaskId != 0)
+ {
+ request.OnComplete(OnGameInitialize);
+ }
+ else
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"Core.GameInitialize requestID is 0! Repeated initialization or network error");
+ CallOnStatusChange(EGameState.NotInited, "game init start failed!");
+ }
+ });
+ });
+ }
+
+ public void StartPicoGame(TextAsset mock_config = null)
+ {
+ if (_curGameState.CurState < EGameState.Inited)
+ {
+ CallOnStatusChange(EGameState.InIniting, "StartPicoGame, pico SDK init start ...");
+ StartCoroutine(InitPicoPlatformAndGame(mock_config));
+ } else if (_curGameState.CurState == EGameState.Inited)
+ {
+ CallOnStatusChange(EGameState.InIniting, "StartPicoGame, already inited, sim InInit > Inited procedure, switch to InIniting ...");
+ CallOnStatusChange(EGameState.Inited, "StartPicoGame, already inited, sim InInit > Inited, switch to Inited ...");
+ }
+ else
+ {
+ CallOnStatusChange(_curGameState.CurState, "StartPicoGame in Inited State, skip request");
+ }
+ }
+
+ public void StartJoinNamedRoom(string roomName, string password, bool createIfNotExist)
+ {
+ CallOnStatusChange(EGameState.RoomJoining, $"request to join named room {roomName} ...");
+ var roomOptions = GameUtils.GetRoomOptions(GetRoomID().ToString(), null, null, null, null, null);
+ roomOptions.SetRoomName(roomName);
+ if (password.Length > 0)
+ {
+ roomOptions.SetPassword(password);
+ }
+ PicoPlatform.RoomService.JoinOrCreateNamedRoom(PicoPlatform.RoomJoinPolicy.Everyone, createIfNotExist, 2, roomOptions).OnComplete(ProcessRoomJoin2);
+ }
+
+ public void StartLeaveRoom()
+ {
+ if (GetRoomID() == 0)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "no valid room to leave");
+ return;
+ }
+ if (_curGameState.CurState < EGameState.RoomJoining)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Error, "not InRoom, skip this request");
+ return;
+ }
+ ulong room_id = GetRoomID();
+ CallOnStatusChange(EGameState.RoomLeaving, $"request to Leaving room {GetRoomID()} ...");
+ PicoPlatform.RoomService.Leave(room_id).OnComplete(ProcessRoomLeave);
+ }
+
+ public ulong GetRoomID()
+ {
+ if (_curGameState.CurState != EGameState.InRoom && _curGameState.CurState != EGameState.RoomLeaving)
+ {
+ //PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Warn, $"GetRoomID, current not in room, CurState {_curGameState.CurState}");
+ return 0;
+ }
+ return _room_status.PicoRoomWrapper.PicoRoomInfo.RoomID;
+ }
+
+ public ulong GetPreviousRoomID()
+ {
+ return _curGameState.LastRoomID;
+ }
+
+ private void StopPicoGame(string errormsg)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, $"StopPicoGame, reason: {errormsg} ...");
+ PicoPlatform.CoreService.GameUninitialize();
+ if (_curGameState.CurState >= EGameState.Inited)
+ {
+ CallOnStatusChange(EGameState.NotInited, errormsg);//game module has been inited
+ } else
+ {
+ CallOnStatusChange(EGameState.NotInited, errormsg);//game module has not been inited
+ }
+ }
+
+ private void OnGameInitialize(PicoPlatform.Message msg)
+ {
+ if (msg == null)
+ {
+ StopPicoGame("OnGameInitialize: fail, message is null");
+ return;
+ }
+
+ if (msg.IsError)
+ {
+ StopPicoGame($"GameInitialize Failed: {msg.Error.Code}, {msg.Error.Message}");
+ }
+ else
+ {
+ bool is_suc = msg.Data == PicoPlatform.GameInitializeResult.Success;
+ if (is_suc)
+ {
+ CallOnStatusChange(EGameState.Inited, "game init succeed");
+ } else
+ {
+ StopPicoGame($"GameInitialize: failed please re-initialize, info: {(PicoPlatform.GameInitializeResult)msg.Data}");
+ }
+ }
+ }
+ } // public partial class InnerPicoSDKUser
+} // namespace Netcode.Transports.Pico
+
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.cs.meta
new file mode 100644
index 00000000..ae409441
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/InnerPicoSDKUser.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e9ff02dbf8de5394bac9bf21800a96d9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/PicoTransport.Independent.cs b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/PicoTransport.Independent.cs
new file mode 100644
index 00000000..11091ba6
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/PicoTransport.Independent.cs
@@ -0,0 +1,203 @@
+using System;
+using Unity.Netcode;
+using UnityEngine;
+
+namespace Netcode.Transports.Pico
+{
+ public partial class PicoTransport
+ {
+ private InnerPicoSDKUser.EGameState _currentGameState = InnerPicoSDKUser.EGameState.NotInited;
+
+ [Serializable]
+ public class SimpleModeConfig
+ {
+ public string roomName;
+ public string password;
+ }
+
+ public SimpleModeConfig SimpleModeInfo;
+ InnerPicoSDKUser _picoSDKUser = null;
+ bool _joinRoomWaitGameInit = false;
+
+ void PrepareIndependent()
+ {
+ TextAsset mockConfig = null;
+#if UNITY_EDITOR
+ if ((Application.platform == RuntimePlatform.WindowsPlayer || Application.platform == RuntimePlatform.WindowsEditor))
+ {
+ // Automatically start server if this is the original editor
+ mockConfig = Resources.Load("PicoSdkPCConfig");
+ }
+#endif
+ _roomLeftOnce = false;
+ _picoSDKUser = FindObjectOfType();
+ if (_picoSDKUser == null)
+ {
+ _picoSDKUser = this.gameObject.AddComponent();
+ }
+ this.OnPicoTransportEvent -= _picoSDKUser.HandlePicoTransportEvent;
+ this.OnPicoTransportEvent += _picoSDKUser.HandlePicoTransportEvent;
+ _picoSDKUser.OnPicoSdkNotify -= HandlePicoNotify;
+ _picoSDKUser.OnPicoRoomMessage -= OnPkgRecved;
+ _picoSDKUser.OnPicoSdkNotify += HandlePicoNotify;
+ _picoSDKUser.OnPicoRoomMessage += OnPkgRecved;
+ PicoTransport.PicoTransportLog(LogLevel.Info, "PrepareIndependent, StartPicoGame ...");
+ _picoSDKUser.StartPicoGame(mockConfig);
+ }
+
+ void AfterGameInited()
+ {
+ if (_joinRoomWaitGameInit)
+ {
+ JoinNamedRoom();
+ }
+ }
+
+ void ShutdownNetcode()
+ {
+ if (NetworkManager.Singleton)
+ {
+ PicoTransportLog(LogLevel.Info, $"<--------------------------------------------");
+ NetworkManager.Singleton.Shutdown();
+ } else
+ {
+ AfterShutdown();
+ }
+ }
+
+ void AfterRoomJoined()
+ {
+ if (NetworkManager.Singleton.IsServer)
+ {
+ //ΪĿǰûеcreate named roomӿڣStartHostʱҪǷΪǣֹͣnetcode
+ if (_picoSDKUser.GetSelfLoggedInUID() != _picoSDKUser.GetTransportRoomInfo().OwnerUID)
+ {
+ PicoTransportLog(LogLevel.Error, "AfterRoomJoined, room already exist, StartHost failed");
+ StopPicoTransport();
+ return;
+ }
+ }
+ SetRoomProvider(_picoSDKUser, _picoSDKUser.GetSelfLoggedInUID(), _picoSDKUser.GetTransportRoomInfo());
+ }
+
+ void AfterRoomLeft()
+ {
+ if (_roomLeftOnce)
+ {
+ return;
+ }
+ _roomLeftOnce = true;
+ PicoTransport.PicoTransportLog(LogLevel.Info, $"AfterRoomLeft: current state {_currentGameState}, previousRoomID {_picoSDKUser.GetPreviousRoomID()}");
+ StopPicoTransport();
+ }
+
+ void AfterNotInited()
+ {
+ //if (_currentGameState > InnerPicoSDKUser.GameState.Inited)
+ {
+ if (0 != _picoSDKUser.GetPreviousRoomID())
+ {
+ PicoTransport.PicoTransportLog(LogLevel.Info, $"AfterNotInited: call OnPlayerLeaveRoom {_picoSDKUser.GetPreviousRoomID()}");
+ OnSelfLeaveRoom(_picoSDKUser.GetSelfLoggedInUID(), _picoSDKUser.GetPreviousRoomID());
+ return;
+ }
+ AfterRoomLeft();
+ }
+ }
+
+ void JoinNamedRoom()
+ {
+ if (NetworkManager.Singleton.IsServer || NetworkManager.Singleton.IsHost)
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, ">>>NetworkManager self is server, create and join");
+ _picoSDKUser.StartJoinNamedRoom(SimpleModeInfo.roomName, SimpleModeInfo.password, true);
+ } else
+ {
+ PicoTransport.PicoTransportLog(PicoTransport.LogLevel.Info, ">>>NetworkManager self is client, join");
+ _picoSDKUser.StartJoinNamedRoom(SimpleModeInfo.roomName, SimpleModeInfo.password, false);
+ }
+ }
+
+ void InitIndependent()
+ {
+ _joinRoomWaitGameInit = true;
+ switch (_currentGameState)
+ {
+ case InnerPicoSDKUser.EGameState.Inited:
+ PicoTransport.PicoTransportLog(LogLevel.Warn, $"InitIndependent, already in GameState.Inited, start join named room ...");
+ AfterGameInited();
+ break;
+ default:
+ return;
+ }
+ return;
+ }
+
+ void UpdateIndependent()
+ {
+ return;
+ }
+
+ void HandleRoomEvent(TransportPicoRoomInfo.ERoomEvent roomEvent, string eventDesc, TransportRoomInfo roomInfo)
+ {
+ switch (roomEvent)
+ {
+ case TransportPicoRoomInfo.ERoomEvent.OwnerLeaveRoom:
+ case TransportPicoRoomInfo.ERoomEvent.SelfLeaveRoom:
+ case TransportPicoRoomInfo.ERoomEvent.UpdateRoomInfo:
+ {
+ if ( (null == roomInfo) || (0 == roomInfo.RoomID) || (roomInfo.OwnerUID == 0))
+ {
+ AfterRoomLeft();
+ } else
+ {
+ OnRoomInfoUpdate(roomInfo);
+ }
+ }
+ break;
+ }
+ return;
+ }
+
+ void HandlePicoNotify(InnerPicoSDKUser.ESDKUserEvent inEvent, InnerPicoSDKUser.EGameState oldState, InnerPicoSDKUser.EGameState curState, string eventDesc)
+ {
+ _currentGameState = curState;
+
+ if (inEvent == InnerPicoSDKUser.ESDKUserEvent.RoomInfoUpdate)
+ {
+ HandleRoomEvent(TransportPicoRoomInfo.ERoomEvent.UpdateRoomInfo, "room update from server", _picoSDKUser.GetTransportRoomInfo());
+ return;
+ }
+
+ if (curState == oldState)
+ {
+ return;
+ }
+ switch (_currentGameState)
+ {
+ case InnerPicoSDKUser.EGameState.Inited:
+ if (oldState < InnerPicoSDKUser.EGameState.Inited)
+ {
+ AfterGameInited();
+ }
+ else
+ {
+ if (NetworkManager.Singleton != null)
+ {
+ PicoTransport.PicoTransportLog(LogLevel.Info, $"HandlePicoNotify: return to GameState.Inited: NetworkManager is running, stopped it now");
+ StopPicoTransport();
+ }
+ }
+ break;
+ case InnerPicoSDKUser.EGameState.InRoom:
+ PicoTransport.PicoTransportLog(LogLevel.Info, $"HandlePicoNotify of GameState.InRoom, room join succeed: {eventDesc}");
+ AfterRoomJoined();
+ break;
+ case InnerPicoSDKUser.EGameState.NotInited:
+ PicoTransport.PicoTransportLog(LogLevel.Info, $"HandlePicoNotify of pico game service init failed: {eventDesc}");
+ ShutdownNetcode();
+ break;
+ }
+ } // void OnStatusChange
+ } // public partial class PicoTransport
+}
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/PicoTransport.Independent.cs.meta b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/PicoTransport.Independent.cs.meta
new file mode 100644
index 00000000..c9f24a1e
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/SimpleMode/PicoTransport.Independent.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6c0c6f4279b8eb94e8805cdd19af42d2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/com.community.netcode.transport.pico.asmdef b/Transports/com.community.netcode.transport.pico/Runtime/com.community.netcode.transport.pico.asmdef
new file mode 100644
index 00000000..a36f813f
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/com.community.netcode.transport.pico.asmdef
@@ -0,0 +1,17 @@
+{
+ "name": "Pico Transport for NGO",
+ "rootNamespace": "Netcode.Transport.Pico",
+ "references": [
+ "Unity.Netcode.Runtime",
+ "PICO.Platform"
+ ],
+ "includePlatforms": [],
+ "excludePlatforms": [],
+ "allowUnsafeCode": true,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Transports/com.community.netcode.transport.pico/Runtime/com.community.netcode.transport.pico.asmdef.meta b/Transports/com.community.netcode.transport.pico/Runtime/com.community.netcode.transport.pico.asmdef.meta
new file mode 100644
index 00000000..ee91c873
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Runtime/com.community.netcode.transport.pico.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 087590f7c49bd5d408d9cd546871a24b
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path.meta
new file mode 100644
index 00000000..896df5ba
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4ebfdd9c93ac19842b47464b460da7d7
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats.meta
new file mode 100644
index 00000000..9b606718
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5e88d0906208c1148a77241b365e377f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Plane.mat b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Plane.mat
new file mode 100644
index 00000000..7d63e18c
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Plane.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Plane
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 0.04555538, g: 0.1792453, b: 0.04509314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Plane.mat.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Plane.mat.meta
new file mode 100644
index 00000000..f11f5755
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Plane.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9e846946727b5da4c888ba9c998f1e08
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Player.mat b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Player.mat
new file mode 100644
index 00000000..d9ad358e
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Player.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Player
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 0.5188679, g: 0.055132225, b: 0, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Player.mat.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Player.mat.meta
new file mode 100644
index 00000000..ec613c68
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Mats/Player.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 857f7a18abfed9f4aae31d857883e50e
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Prefabs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Prefabs.meta
new file mode 100644
index 00000000..c1f9a45c
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Prefabs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e93becbb3ace83f488bb65dbb3095261
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Prefabs/NetPlayer.prefab b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Prefabs/NetPlayer.prefab
new file mode 100644
index 00000000..f0bed3b1
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Prefabs/NetPlayer.prefab
@@ -0,0 +1,130 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6535690648612318365
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6535690648612318361}
+ - component: {fileID: 6535690648612318360}
+ - component: {fileID: 6535690648612318367}
+ - component: {fileID: 6535690648612318366}
+ - component: {fileID: -5748451135290254554}
+ - component: {fileID: 7044176870179564551}
+ m_Layer: 0
+ m_Name: NetPlayer
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6535690648612318361
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6535690648612318365}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: 10}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &6535690648612318360
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6535690648612318365}
+ m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &6535690648612318367
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6535690648612318365}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ 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: 857f7a18abfed9f4aae31d857883e50e, 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!136 &6535690648612318366
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6535690648612318365}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ m_Radius: 0.5
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &-5748451135290254554
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6535690648612318365}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ GlobalObjectIdHash: 951099334
+ AlwaysReplicateAsRoot: 0
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+--- !u!114 &7044176870179564551
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6535690648612318365}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5e53162aef0a49e468280a1374f10ed4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Position:
+ m_InternalValue: {x: 0, y: 0, z: 0}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Prefabs/NetPlayer.prefab.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Prefabs/NetPlayer.prefab.meta
new file mode 100644
index 00000000..d3551ca3
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Prefabs/NetPlayer.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: adfb2094fd67e2244bce895fca8eb3b8
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources.meta
new file mode 100644
index 00000000..e68f6dca
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5bf6395485f479c4eadcf7bcdb8c8a02
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_PlatformSetting.asset b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_PlatformSetting.asset
new file mode 100644
index 00000000..f88553c7
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_PlatformSetting.asset
@@ -0,0 +1,19 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 508edb944d24e574595a91425051a8e4, type: 3}
+ m_Name: PXR_PlatformSetting
+ m_EditorClassIdentifier:
+ entitlementCheckSimulation: 1
+ startTimeEntitlementCheck: 1
+ appID: 2e25700f8446fb0baa8279fa1a78d757
+ deviceSN:
+ - PA7H10MGF9180717W
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_PlatformSetting.asset.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_PlatformSetting.asset.meta
new file mode 100644
index 00000000..3b74b2f9
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_PlatformSetting.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0197bfd1c9f89fd45ac65983d383cbf2
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_ProjectSetting.asset b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_ProjectSetting.asset
new file mode 100644
index 00000000..08799f53
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_ProjectSetting.asset
@@ -0,0 +1,16 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 261e5777ad4ae374eb318821653de6aa, type: 3}
+ m_Name: PXR_ProjectSetting
+ m_EditorClassIdentifier:
+ useContentProtect: 0
+ handTracking: 0
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_ProjectSetting.asset.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_ProjectSetting.asset.meta
new file mode 100644
index 00000000..0eec3dd5
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_ProjectSetting.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 94b63eb6b5fa28846926bbe8d456990b
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_SDKSettingAsset.asset b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_SDKSettingAsset.asset
new file mode 100644
index 00000000..3dd88736
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_SDKSettingAsset.asset
@@ -0,0 +1,17 @@
+%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: 1
+ m_Script: {fileID: 11500000, guid: 8e08befb1867d8945b4f1ddac43e65c5, type: 3}
+ m_Name: PXR_SDKSettingAsset
+ m_EditorClassIdentifier:
+ ignoreSDKSetting: 1
+ doNotShowBuildWarning: 0
+ appIDChecked: 1
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_SDKSettingAsset.asset.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_SDKSettingAsset.asset.meta
new file mode 100644
index 00000000..70efcb87
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Resources/PXR_SDKSettingAsset.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2628f847fe3d62d4aa4a199f0f2bb7ee
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes.meta
new file mode 100644
index 00000000..79bde688
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2e27aec584fcf0f43941aba5ba559481
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/MatchmakingRoom.unity b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/MatchmakingRoom.unity
new file mode 100644
index 00000000..2805ff35
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/MatchmakingRoom.unity
@@ -0,0 +1,3635 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 705507994}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 2
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &6472493
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6472497}
+ - component: {fileID: 6472496}
+ - component: {fileID: 6472495}
+ - component: {fileID: 6472494}
+ m_Layer: 0
+ m_Name: PicoJoinButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!114 &6472494
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6472493}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.122641504, g: 0.10355108, b: 0.10355108, a: 0.78039217}
+ m_HighlightedColor: {r: 0.016896129, g: 0.09433961, b: 0.0093449615, a: 0.9019608}
+ m_PressedColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 1}
+ m_SelectedColor: {r: 0.019607844, g: 0.09803922, b: 0.011764706, a: 1}
+ m_DisabledColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 6472495}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!114 &6472495
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6472493}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &6472496
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6472493}
+ m_CullTransparentMesh: 1
+--- !u!224 &6472497
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6472493}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 5.484828, y: 5.484828, z: 5.484828}
+ m_Children:
+ - {fileID: 783447567}
+ m_Father: {fileID: 1670590169}
+ m_RootOrder: 3
+ 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: 1.0969657, y: 50.77387}
+ m_SizeDelta: {x: 30.6691, y: 8.2239}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &44604146
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 44604147}
+ - component: {fileID: 44604149}
+ - component: {fileID: 44604148}
+ m_Layer: 0
+ m_Name: Text (TMP)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &44604147
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 44604146}
+ 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: 311694909}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &44604148
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 44604146}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 'InitPicoSDK
+
+'
+ 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: 3.6
+ m_fontSizeBase: 3.6
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &44604149
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 44604146}
+ m_CullTransparentMesh: 1
+--- !u!1 &49557027
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 49557029}
+ - component: {fileID: 49557028}
+ m_Layer: 0
+ m_Name: XR Interaction Manager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &49557028
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 49557027}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_StartingHoverFilters: []
+ m_StartingSelectFilters: []
+--- !u!4 &49557029
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 49557027}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 86.65201, y: -79.478424, z: -131.49371}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 740800145}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &189646931
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 189646932}
+ m_Layer: 0
+ m_Name: Camera Offset
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &189646932
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 189646931}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.1176, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 898451400}
+ - {fileID: 957514849}
+ - {fileID: 1112846887}
+ m_Father: {fileID: 1633817999}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &311694905
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 311694909}
+ - component: {fileID: 311694908}
+ - component: {fileID: 311694907}
+ - component: {fileID: 311694906}
+ m_Layer: 0
+ m_Name: PicoInitButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &311694906
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 311694905}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.122641504, g: 0.10355108, b: 0.10355108, a: 0.78039217}
+ m_HighlightedColor: {r: 0.016896129, g: 0.09433961, b: 0.0093449615, a: 0.9019608}
+ m_PressedColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 1}
+ m_SelectedColor: {r: 0.019607844, g: 0.09803922, b: 0.011764706, a: 1}
+ m_DisabledColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 311694907}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!114 &311694907
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 311694905}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &311694908
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 311694905}
+ m_CullTransparentMesh: 1
+--- !u!224 &311694909
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 311694905}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 5.484828, y: 5.484828, z: 5.484828}
+ m_Children:
+ - {fileID: 44604147}
+ m_Father: {fileID: 1670590169}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 1.0969657, y: 50.77387}
+ m_SizeDelta: {x: 30.6691, y: 8.2239}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &423086411
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 423086412}
+ - component: {fileID: 423086413}
+ m_Layer: 0
+ m_Name: InRoomPanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &423086412
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 423086411}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 174.9, y: 97, z: 0}
+ m_LocalScale: {x: 5.484828, y: 5.484828, z: 5.484828}
+ m_Children:
+ - {fileID: 1917349330}
+ - {fileID: 714524895}
+ - {fileID: 2080256313}
+ m_Father: {fileID: 1670590169}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &423086413
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 423086411}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8c2d4f6573dd3c940b2ead76f81c14cf, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ MoveButton: {fileID: 1917349331}
+ LeaveButton: {fileID: 2080256316}
+ ButtonText: {fileID: 2020266520}
+ StatusText: {fileID: 714524893}
+--- !u!1 &510937893
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 510937894}
+ - component: {fileID: 510937896}
+ - component: {fileID: 510937895}
+ m_Layer: 5
+ m_Name: PicoStatus
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &510937894
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 510937893}
+ 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: 1670590169}
+ 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: 147}
+ m_SizeDelta: {x: 200, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &510937895
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 510937893}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294901758
+ m_fontColor: {r: 0.99532855, g: 1, b: 0.995283, 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: 16
+ m_fontSizeBase: 16
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &510937896
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 510937893}
+ m_CullTransparentMesh: 1
+--- !u!1 &547427229
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 547427233}
+ - component: {fileID: 547427232}
+ - component: {fileID: 547427231}
+ - component: {fileID: 547427230}
+ m_Layer: 0
+ m_Name: Plane
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!64 &547427230
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 547427229}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &547427231
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 547427229}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ 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: 9e846946727b5da4c888ba9c998f1e08, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &547427232
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 547427229}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &547427233
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 547427229}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 10, y: 1, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &705507993
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 705507995}
+ - component: {fileID: 705507994}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &705507994
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 705507993}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 1
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &705507995
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 705507993}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &714524892
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 714524895}
+ - component: {fileID: 714524894}
+ - component: {fileID: 714524893}
+ m_Layer: 5
+ m_Name: InRoomInfo
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &714524893
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 714524892}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: InRoomInfo
+ 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: 4294901758
+ m_fontColor: {r: 0.99532855, g: 1, b: 0.995283, 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: 16
+ m_fontSizeBase: 16
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &714524894
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 714524892}
+ m_CullTransparentMesh: 1
+--- !u!224 &714524895
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 714524892}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.18232113, y: 0.18232113, z: 0.18232113}
+ m_Children: []
+ m_Father: {fileID: 423086412}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 2.187851}
+ m_SizeDelta: {x: 200, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &740800144
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 740800145}
+ m_Layer: 0
+ m_Name: XR
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &740800145
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 740800144}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -86.65201, y: 79.478424, z: 131.49371}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 49557029}
+ - {fileID: 1633817999}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &783447566
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 783447567}
+ - component: {fileID: 783447569}
+ - component: {fileID: 783447568}
+ m_Layer: 0
+ m_Name: Text (TMP)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &783447567
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 783447566}
+ 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: 6472497}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &783447568
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 783447566}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 'JoinRoom
+
+'
+ 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: 4278190114
+ 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: 3.6
+ m_fontSizeBase: 3.6
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &783447569
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 783447566}
+ m_CullTransparentMesh: 1
+--- !u!1 &858958269
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 858958272}
+ - component: {fileID: 858958271}
+ - component: {fileID: 858958273}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &858958271
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 858958269}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!4 &858958272
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 858958269}
+ 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: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &858958273
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 858958269}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ClickSpeed: 0.3
+ m_MoveDeadzone: 0.6
+ m_RepeatDelay: 0.5
+ m_RepeatRate: 0.1
+ m_TrackedDeviceDragThresholdMultiplier: 1.4
+ m_ActiveInputMode: 1
+ m_MaxTrackedDeviceRaycastDistance: 1000
+ m_EnableXRInput: 1
+ m_EnableMouseInput: 1
+ m_EnableTouchInput: 1
+ m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_EnableBuiltinActionsAsFallback: 1
+ m_EnableGamepadInput: 1
+ m_EnableJoystickInput: 1
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+--- !u!1 &898451399
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 898451400}
+ - component: {fileID: 898451403}
+ - component: {fileID: 898451402}
+ - component: {fileID: 898451401}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &898451400
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 898451399}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -10}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 189646932}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &898451401
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 898451399}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_TrackingType: 0
+ m_UpdateType: 0
+ m_PositionInput:
+ m_UseReference: 0
+ m_Action:
+ m_Name: Position
+ m_Type: 0
+ m_ExpectedControlType: Vector3
+ m_Id: bb3cbc07-84fa-4e0b-bf2c-384e1f810bbc
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings:
+ - m_Name:
+ m_Id: 9ec00e42-9900-44b6-b573-12ceb31b4bdd
+ m_Path: /centerEyePosition
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Position
+ m_Flags: 0
+ - m_Name:
+ m_Id: 0ca9ab31-df56-4019-9ea6-08d69cbb1d46
+ m_Path: /devicePosition
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Position
+ m_Flags: 0
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_RotationInput:
+ m_UseReference: 0
+ m_Action:
+ m_Name: Rotation
+ m_Type: 0
+ m_ExpectedControlType: Quaternion
+ m_Id: 35477100-6ee3-4d6b-962a-1e5f73c7659a
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings:
+ - m_Name:
+ m_Id: a906f4f2-78e7-41b4-b859-68644e929ef3
+ m_Path: /centerEyeRotation
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Rotation
+ m_Flags: 0
+ - m_Name:
+ m_Id: 5f1b7763-61bc-49b8-9ecc-9d904451eed6
+ m_Path: /deviceRotation
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Rotation
+ m_Flags: 0
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_PositionAction:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_RotationAction:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_HasMigratedActions: 1
+--- !u!81 &898451402
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 898451399}
+ m_Enabled: 1
+--- !u!20 &898451403
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 898451399}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.05273228, g: 0.087256715, b: 0.14150941, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.01
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 33
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!1 &957514848
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 957514849}
+ - component: {fileID: 957514853}
+ - component: {fileID: 957514852}
+ - component: {fileID: 957514851}
+ - component: {fileID: 957514850}
+ m_Layer: 0
+ m_Name: LeftHand Controller
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &957514849
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ 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: 189646932}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &957514850
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_LineWidth: 0.02
+ m_OverrideInteractorLineLength: 0
+ m_LineLength: 10
+ m_WidthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_ValidColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_InvalidColorGradient:
+ serializedVersion: 2
+ key0: {r: 0.11718281, g: 0.17947538, b: 0.745283, a: 1}
+ key1: {r: 1, g: 0, b: 0, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_BlockedColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_TreatSelectionAsValidState: 0
+ m_SmoothMovement: 0
+ m_FollowTightness: 10
+ m_SnapThresholdDistance: 10
+ m_Reticle: {fileID: 0}
+ m_BlockedReticle: {fileID: 0}
+ m_StopLineAtFirstRaycastHit: 0
+ m_StopLineAtSelection: 0
+--- !u!120 &957514851
+LineRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 0
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10306, 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: 5
+ m_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: 1}
+ m_Parameters:
+ serializedVersion: 3
+ widthMultiplier: 0.02
+ widthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ colorGradient:
+ serializedVersion: 2
+ key0: {r: 0, g: 0, b: 1, a: 1}
+ key1: {r: 0, g: 0, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ numCornerVertices: 4
+ numCapVertices: 4
+ alignment: 0
+ textureMode: 0
+ shadowBias: 0.5
+ generateLightingData: 0
+ m_UseWorldSpace: 1
+ m_Loop: 0
+--- !u!114 &957514852
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_InteractionManager: {fileID: 49557028}
+ m_InteractionLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_InteractionLayers:
+ m_Bits: 4294967295
+ m_AttachTransform: {fileID: 0}
+ m_KeepSelectedTargetValid: 1
+ m_StartingSelectedInteractable: {fileID: 0}
+ m_StartingTargetFilter: {fileID: 0}
+ m_HoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_HoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_StartingHoverFilters: []
+ m_StartingSelectFilters: []
+ m_OnHoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnHoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectActionTrigger: 0
+ m_HideControllerOnSelect: 0
+ m_AllowHoveredActivate: 0
+ m_TargetPriorityMode: 0
+ m_PlayAudioClipOnSelectEntered: 0
+ m_AudioClipForOnSelectEntered: {fileID: 0}
+ m_PlayAudioClipOnSelectExited: 0
+ m_AudioClipForOnSelectExited: {fileID: 0}
+ m_PlayAudioClipOnSelectCanceled: 0
+ m_AudioClipForOnSelectCanceled: {fileID: 0}
+ m_PlayAudioClipOnHoverEntered: 0
+ m_AudioClipForOnHoverEntered: {fileID: 0}
+ m_PlayAudioClipOnHoverExited: 0
+ m_AudioClipForOnHoverExited: {fileID: 0}
+ m_PlayAudioClipOnHoverCanceled: 0
+ m_AudioClipForOnHoverCanceled: {fileID: 0}
+ m_AllowHoverAudioWhileSelecting: 1
+ m_PlayHapticsOnSelectEntered: 0
+ m_HapticSelectEnterIntensity: 0
+ m_HapticSelectEnterDuration: 0
+ m_PlayHapticsOnSelectExited: 0
+ m_HapticSelectExitIntensity: 0
+ m_HapticSelectExitDuration: 0
+ m_PlayHapticsOnSelectCanceled: 0
+ m_HapticSelectCancelIntensity: 0
+ m_HapticSelectCancelDuration: 0
+ m_PlayHapticsOnHoverEntered: 0
+ m_HapticHoverEnterIntensity: 0
+ m_HapticHoverEnterDuration: 0
+ m_PlayHapticsOnHoverExited: 0
+ m_HapticHoverExitIntensity: 0
+ m_HapticHoverExitDuration: 0
+ m_PlayHapticsOnHoverCanceled: 0
+ m_HapticHoverCancelIntensity: 0
+ m_HapticHoverCancelDuration: 0
+ m_AllowHoverHapticsWhileSelecting: 1
+ m_LineType: 0
+ m_BlendVisualLinePoints: 1
+ m_MaxRaycastDistance: 36
+ m_RayOriginTransform: {fileID: 0}
+ m_ReferenceFrame: {fileID: 0}
+ m_Velocity: 16
+ m_Acceleration: 9.8
+ m_AdditionalGroundHeight: 0.1
+ m_AdditionalFlightTime: 0.5
+ m_EndPointDistance: 30
+ m_EndPointHeight: -10
+ m_ControlPointDistance: 10
+ m_ControlPointHeight: 5
+ m_SampleFrequency: 20
+ m_HitDetectionType: 0
+ m_SphereCastRadius: 0.1
+ m_RaycastMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RaycastTriggerInteraction: 1
+ m_HitClosestOnly: 0
+ m_HoverToSelect: 0
+ m_HoverTimeToSelect: 0.5
+ m_EnableUIInteraction: 1
+ m_AllowAnchorControl: 1
+ m_UseForceGrab: 1
+ m_RotateSpeed: 180
+ m_TranslateSpeed: 1
+ m_AnchorRotateReferenceFrame: {fileID: 0}
+ m_AnchorRotationMode: 0
+--- !u!114 &957514853
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UpdateTrackingType: 0
+ m_EnableInputTracking: 1
+ m_EnableInputActions: 1
+ m_ModelPrefab: {fileID: 2673240740586844490, guid: d792b21ba2f3e6e4ba026384d6d6536f, type: 3}
+ m_ModelParent: {fileID: 0}
+ m_Model: {fileID: 0}
+ m_AnimateModel: 0
+ m_ModelSelectTransition:
+ m_ModelDeSelectTransition:
+ m_PositionAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Position
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 26d2aaa4-6518-4d33-8fae-419043a723d4
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -2024308242397127297, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotationAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotation
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: d7a15530-737b-416a-9d5d-a8b51ba6c682
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_TrackingStateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Tracking State
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: e12d3305-8866-42f0-a9b8-2cd7f4310c31
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 05483079-4b7c-4369-9176-fb8514428e98
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -6131295136447488360, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 8e42f062-fb45-44df-9825-35e1dfc18834
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 38e5c09b-96d2-40e4-ae8e-3bfb9eb16727
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -5982496924579745919, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: ff2b1032-d7ae-4e1a-8e8a-a5556d5f8db5
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 347fe4ac-83bc-44f7-a0d2-2793a5775161
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 8b29ebc3-3830-4622-8c66-56f3a9b98d73
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 71106601250685021, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_HapticDeviceAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Haptic Device
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 35cfed17-bcaf-4ff9-9fe0-fa1727b7619b
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 4fcd4b62-1769-4cc4-aaee-aea2fc40d24f
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_DirectionalAnchorRotationAction:
+ m_UseReference: 0
+ m_Action:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_TranslateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Translate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 7bfe4461-8d15-4a61-9fa6-28ce950c9996
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ButtonPressPoint: 0.5
+--- !u!1 &1045233174
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1045233176}
+ - component: {fileID: 1045233178}
+ - component: {fileID: 1045233177}
+ - component: {fileID: 1045233175}
+ m_Layer: 0
+ m_Name: GameLogic
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1045233175
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045233174}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7130cb81802d6e45835a346f31e2600, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ PlayerPrefabPath:
+--- !u!4 &1045233176
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045233174}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -86.65201, y: 79.478424, z: 131.49371}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1045233177
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045233174}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: efe5516b9c6135142a7e63556db66891, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ TransportLogLevel: 0
+ WorkMode: 1
+ SimpleModeInfo:
+ roomName:
+ password:
+--- !u!114 &1045233178
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045233174}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 593a2fe42fa9d37498c96f9a383b6521, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ RunInBackground: 1
+ LogLevel: 1
+ NetworkConfig:
+ ProtocolVersion: 0
+ NetworkTransport: {fileID: 1045233177}
+ PlayerPrefab: {fileID: 6535690648612318365, guid: adfb2094fd67e2244bce895fca8eb3b8, type: 3}
+ NetworkPrefabs: []
+ TickRate: 30
+ ClientConnectionBufferTimeout: 10
+ ConnectionApproval: 0
+ ConnectionData:
+ EnableTimeResync: 0
+ TimeResyncInterval: 30
+ EnsureNetworkVariableLengthSafety: 0
+ EnableSceneManagement: 1
+ ForceSamePrefabs: 1
+ RecycleNetworkIds: 1
+ NetworkIdRecycleDelay: 120
+ RpcHashSize: 0
+ LoadSceneTimeOut: 120
+ SpawnTimeout: 1
+ EnableNetworkLogs: 1
+--- !u!1 &1112846886
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1112846887}
+ - component: {fileID: 1112846891}
+ - component: {fileID: 1112846890}
+ - component: {fileID: 1112846889}
+ - component: {fileID: 1112846888}
+ m_Layer: 0
+ m_Name: RightHand Controller
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1112846887
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ 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: 189646932}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1112846888
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_LineWidth: 0.02
+ m_OverrideInteractorLineLength: 0
+ m_LineLength: 10
+ m_WidthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_ValidColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_InvalidColorGradient:
+ serializedVersion: 2
+ key0: {r: 0.09801824, g: 0.27126268, b: 0.5566038, a: 1}
+ key1: {r: 1, g: 0, b: 0, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_BlockedColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_TreatSelectionAsValidState: 0
+ m_SmoothMovement: 0
+ m_FollowTightness: 10
+ m_SnapThresholdDistance: 10
+ m_Reticle: {fileID: 0}
+ m_BlockedReticle: {fileID: 0}
+ m_StopLineAtFirstRaycastHit: 0
+ m_StopLineAtSelection: 0
+--- !u!120 &1112846889
+LineRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 0
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10306, 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: 5
+ m_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: 1}
+ m_Parameters:
+ serializedVersion: 3
+ widthMultiplier: 0.02
+ widthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ colorGradient:
+ serializedVersion: 2
+ key0: {r: 0, g: 0, b: 1, a: 1}
+ key1: {r: 0, g: 0, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ numCornerVertices: 4
+ numCapVertices: 4
+ alignment: 0
+ textureMode: 0
+ shadowBias: 0.5
+ generateLightingData: 0
+ m_UseWorldSpace: 1
+ m_Loop: 0
+--- !u!114 &1112846890
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_InteractionManager: {fileID: 49557028}
+ m_InteractionLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_InteractionLayers:
+ m_Bits: 4294967295
+ m_AttachTransform: {fileID: 0}
+ m_KeepSelectedTargetValid: 1
+ m_StartingSelectedInteractable: {fileID: 0}
+ m_StartingTargetFilter: {fileID: 0}
+ m_HoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_HoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_StartingHoverFilters: []
+ m_StartingSelectFilters: []
+ m_OnHoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnHoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectActionTrigger: 0
+ m_HideControllerOnSelect: 0
+ m_AllowHoveredActivate: 0
+ m_TargetPriorityMode: 0
+ m_PlayAudioClipOnSelectEntered: 0
+ m_AudioClipForOnSelectEntered: {fileID: 0}
+ m_PlayAudioClipOnSelectExited: 0
+ m_AudioClipForOnSelectExited: {fileID: 0}
+ m_PlayAudioClipOnSelectCanceled: 0
+ m_AudioClipForOnSelectCanceled: {fileID: 0}
+ m_PlayAudioClipOnHoverEntered: 0
+ m_AudioClipForOnHoverEntered: {fileID: 0}
+ m_PlayAudioClipOnHoverExited: 0
+ m_AudioClipForOnHoverExited: {fileID: 0}
+ m_PlayAudioClipOnHoverCanceled: 0
+ m_AudioClipForOnHoverCanceled: {fileID: 0}
+ m_AllowHoverAudioWhileSelecting: 1
+ m_PlayHapticsOnSelectEntered: 0
+ m_HapticSelectEnterIntensity: 0
+ m_HapticSelectEnterDuration: 0
+ m_PlayHapticsOnSelectExited: 0
+ m_HapticSelectExitIntensity: 0
+ m_HapticSelectExitDuration: 0
+ m_PlayHapticsOnSelectCanceled: 0
+ m_HapticSelectCancelIntensity: 0
+ m_HapticSelectCancelDuration: 0
+ m_PlayHapticsOnHoverEntered: 0
+ m_HapticHoverEnterIntensity: 0
+ m_HapticHoverEnterDuration: 0
+ m_PlayHapticsOnHoverExited: 0
+ m_HapticHoverExitIntensity: 0
+ m_HapticHoverExitDuration: 0
+ m_PlayHapticsOnHoverCanceled: 0
+ m_HapticHoverCancelIntensity: 0
+ m_HapticHoverCancelDuration: 0
+ m_AllowHoverHapticsWhileSelecting: 1
+ m_LineType: 0
+ m_BlendVisualLinePoints: 1
+ m_MaxRaycastDistance: 36
+ m_RayOriginTransform: {fileID: 0}
+ m_ReferenceFrame: {fileID: 0}
+ m_Velocity: 16
+ m_Acceleration: 9.8
+ m_AdditionalGroundHeight: 0.1
+ m_AdditionalFlightTime: 0.5
+ m_EndPointDistance: 30
+ m_EndPointHeight: -10
+ m_ControlPointDistance: 10
+ m_ControlPointHeight: 5
+ m_SampleFrequency: 20
+ m_HitDetectionType: 0
+ m_SphereCastRadius: 0.1
+ m_RaycastMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RaycastTriggerInteraction: 1
+ m_HitClosestOnly: 0
+ m_HoverToSelect: 0
+ m_HoverTimeToSelect: 0.5
+ m_EnableUIInteraction: 1
+ m_AllowAnchorControl: 1
+ m_UseForceGrab: 1
+ m_RotateSpeed: 180
+ m_TranslateSpeed: 1
+ m_AnchorRotateReferenceFrame: {fileID: 0}
+ m_AnchorRotationMode: 0
+--- !u!114 &1112846891
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UpdateTrackingType: 0
+ m_EnableInputTracking: 1
+ m_EnableInputActions: 1
+ m_ModelPrefab: {fileID: 2281696399307846454, guid: 94f7925a0585b274fbc5fe6b8f9b1f4e, type: 3}
+ m_ModelParent: {fileID: 0}
+ m_Model: {fileID: 0}
+ m_AnimateModel: 0
+ m_ModelSelectTransition:
+ m_ModelDeSelectTransition:
+ m_PositionAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Position
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 93ead265-4bff-4199-8ddf-33c028dcfee9
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -3326005586356538449, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotationAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotation
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: cd9a8368-32d3-4e58-86a0-6fe78d199369
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_TrackingStateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Tracking State
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 7964ebc4-45e1-4431-a17a-7f2206e38661
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 3207346a-8b2f-4b24-b45a-90ea1cdef7fb
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 187161793506945269, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: dcf177a1-4c6d-42a7-b095-5f68848dadf1
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: ed3be3cd-637e-48d6-ae4b-dd97305eaa40
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 83097790271614945, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: af4d694a-0159-4acb-bf36-7b78c35a10d5
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 55ce5c5d-aad8-4ebf-9f21-899ff595a062
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: cdab09f7-ec37-4eee-b72c-06339cc37c8b
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -5908353012961274365, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_HapticDeviceAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Haptic Device
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 60f81e0e-3fab-4e26-90b6-a5ab762e2bb1
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -8222252007134549311, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: aca8fec0-a925-428d-a6b7-25cfbd478258
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_DirectionalAnchorRotationAction:
+ m_UseReference: 0
+ m_Action:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_TranslateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Translate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 161874b5-2545-4bb2-bea4-eeddeb4fabf6
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ButtonPressPoint: 0.5
+--- !u!1 &1592755175
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1592755176}
+ - component: {fileID: 1592755178}
+ - component: {fileID: 1592755177}
+ m_Layer: 5
+ m_Name: UserInfo
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1592755176
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1592755175}
+ 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: 1670590169}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 107}
+ m_SizeDelta: {x: 200, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1592755177
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1592755175}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: UserInfo
+ 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: 4294901758
+ m_fontColor: {r: 0.99532855, g: 1, b: 0.995283, 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: 16
+ m_fontSizeBase: 16
+ 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: 1
+ 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: -22.220963, y: 0, z: -26.2611, w: 0}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &1592755178
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1592755175}
+ m_CullTransparentMesh: 1
+--- !u!1 &1633817997
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1633817999}
+ - component: {fileID: 1633817998}
+ - component: {fileID: 1633818000}
+ - component: {fileID: 1633818001}
+ m_Layer: 0
+ m_Name: XR Origin
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1633817998
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1633817997}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e0cb9aa70a22847b5925ee5f067c10a9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Camera: {fileID: 898451403}
+ m_OriginBaseGameObject: {fileID: 1633817997}
+ m_CameraFloorOffsetObject: {fileID: 189646931}
+ m_RequestedTrackingOriginMode: 0
+ m_CameraYOffset: 1.1176
+--- !u!4 &1633817999
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1633817997}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 86.65201, y: -77.7, z: -136.3}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 189646932}
+ m_Father: {fileID: 740800145}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1633818000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1633817997}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 017c5e3933235514c9520e1dace2a4b2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ActionAssets:
+ - {fileID: -944628639613478452, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+--- !u!114 &1633818001
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1633817997}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fd9f82377aeb9704193bd866d119aaa5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ showFps: 0
+ useDefaultFps: 1
+ customFps: 0
+ screenFade: 0
+ eyeTracking: 0
+ trackingMode: 0
+ faceTracking: 0
+ lipsyncTracking: 0
+ foveationLevel: -1
+ openMRC: 0
+ foregroundLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ backLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ backCameraObj: {fileID: 0}
+ foregroundCameraObj: {fileID: 0}
+ mrcRenderTexture: {fileID: 0}
+ foregroundMrcRenderTexture: {fileID: 0}
+ appCheckResult: 100
+ useRecommendedAntiAliasingLevel: 1
+--- !u!1 &1670590165
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1670590169}
+ - component: {fileID: 1670590168}
+ - component: {fileID: 1670590167}
+ - component: {fileID: 1670590166}
+ - component: {fileID: 1670590170}
+ - component: {fileID: 1670590171}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1670590166
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &1670590167
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 36
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!223 &1670590168
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 1
+ m_Camera: {fileID: 898451403}
+ m_PlaneDistance: 30
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &1670590169
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0, y: 0, z: 0}
+ m_Children:
+ - {fileID: 510937894}
+ - {fileID: 1592755176}
+ - {fileID: 311694909}
+ - {fileID: 6472497}
+ - {fileID: 423086412}
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
+--- !u!114 &1670590170
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 0
+ m_CheckFor2DOcclusion: 0
+ m_CheckFor3DOcclusion: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RaycastTriggerInteraction: 1
+--- !u!114 &1670590171
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2329b7346f9f6b7408b0b2ed7d48f8fd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ InitPicoSDKBtn: {fileID: 311694906}
+ JoinBtn: {fileID: 6472494}
+ CurStatus: {fileID: 510937895}
+ SelfOpenID: {fileID: 1592755177}
+ InRoomPanel: {fileID: 423086413}
+--- !u!1 &1708814644
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1708814645}
+ - component: {fileID: 1708814647}
+ - component: {fileID: 1708814646}
+ m_Layer: 0
+ m_Name: Text (TMP)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1708814645
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708814644}
+ 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: 2080256313}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1708814646
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708814644}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 'LeaveRoom
+
+'
+ 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: 4278190114
+ 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: 3.6
+ m_fontSizeBase: 3.6
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &1708814647
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708814644}
+ m_CullTransparentMesh: 1
+--- !u!1 &1917349329
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1917349330}
+ - component: {fileID: 1917349333}
+ - component: {fileID: 1917349332}
+ - component: {fileID: 1917349331}
+ m_Layer: 0
+ m_Name: MoveButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1917349330
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1917349329}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 2020266519}
+ m_Father: {fileID: 423086412}
+ 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.2, y: -8.428}
+ m_SizeDelta: {x: 30.6691, y: 8.2239}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1917349331
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1917349329}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.122641504, g: 0.10355108, b: 0.10355108, a: 0.78039217}
+ m_HighlightedColor: {r: 0.016896129, g: 0.09433961, b: 0.0093449615, a: 0.9019608}
+ m_PressedColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 1}
+ m_SelectedColor: {r: 0.019607844, g: 0.09803922, b: 0.011764706, a: 1}
+ m_DisabledColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1917349332}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!114 &1917349332
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1917349329}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1917349333
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1917349329}
+ m_CullTransparentMesh: 1
+--- !u!1 &2020266518
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2020266519}
+ - component: {fileID: 2020266521}
+ - component: {fileID: 2020266520}
+ m_Layer: 0
+ m_Name: Text (TMP)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2020266519
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2020266518}
+ 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: 1917349330}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2020266520
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2020266518}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 'Move
+
+'
+ 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: 4278190114
+ 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: 3.6
+ m_fontSizeBase: 3.6
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &2020266521
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2020266518}
+ m_CullTransparentMesh: 1
+--- !u!1 &2080256312
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2080256313}
+ - component: {fileID: 2080256315}
+ - component: {fileID: 2080256314}
+ - component: {fileID: 2080256316}
+ m_Layer: 0
+ m_Name: LeaveButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2080256313
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2080256312}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1708814645}
+ m_Father: {fileID: 423086412}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -31.8, y: -8.428}
+ m_SizeDelta: {x: 30.6691, y: 8.2239}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2080256314
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2080256312}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &2080256315
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2080256312}
+ m_CullTransparentMesh: 1
+--- !u!114 &2080256316
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2080256312}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.122641504, g: 0.10355108, b: 0.10355108, a: 0.78039217}
+ m_HighlightedColor: {r: 0.016896129, g: 0.09433961, b: 0.0093449615, a: 0.9019608}
+ m_PressedColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 1}
+ m_SelectedColor: {r: 0.019607844, g: 0.09803922, b: 0.011764706, a: 1}
+ m_DisabledColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 2080256314}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/MatchmakingRoom.unity.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/MatchmakingRoom.unity.meta
new file mode 100644
index 00000000..264e225f
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/MatchmakingRoom.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f6a0c22b70db6034eb6f092e0d96a0ec
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/SimpleMode.unity b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/SimpleMode.unity
new file mode 100644
index 00000000..0620d7fb
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/SimpleMode.unity
@@ -0,0 +1,3345 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 705507994}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 2
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &49557027
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 49557029}
+ - component: {fileID: 49557028}
+ m_Layer: 0
+ m_Name: XR Interaction Manager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &49557028
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 49557027}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_StartingHoverFilters: []
+ m_StartingSelectFilters: []
+--- !u!4 &49557029
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 49557027}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 86.65201, y: -79.478424, z: -131.49371}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 740800145}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &189646931
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 189646932}
+ m_Layer: 0
+ m_Name: Camera Offset
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &189646932
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 189646931}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.1176, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 898451400}
+ - {fileID: 957514849}
+ - {fileID: 1112846887}
+ m_Father: {fileID: 1633817999}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &423086411
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 423086412}
+ - component: {fileID: 423086413}
+ m_Layer: 0
+ m_Name: SimpleModeInRoomPanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &423086412
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 423086411}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 174.9, y: 97, z: 0}
+ m_LocalScale: {x: 5.484828, y: 5.484828, z: 5.484828}
+ m_Children:
+ - {fileID: 1917349330}
+ - {fileID: 714524895}
+ - {fileID: 2080256313}
+ - {fileID: 1640954129}
+ - {fileID: 2134647986}
+ m_Father: {fileID: 1670590169}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &423086413
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 423086411}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5b011c756878c3542a52401bdc0d27ad, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ MoveButton: {fileID: 1917349331}
+ StartRoomButton: {fileID: 1640954132}
+ JoinRoomButton: {fileID: 2134647989}
+ ExitRoomButton: {fileID: 2080256316}
+ StatusText: {fileID: 714524893}
+--- !u!1 &547427229
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 547427233}
+ - component: {fileID: 547427232}
+ - component: {fileID: 547427231}
+ - component: {fileID: 547427230}
+ m_Layer: 0
+ m_Name: Plane
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!64 &547427230
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 547427229}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &547427231
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 547427229}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ 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: 9e846946727b5da4c888ba9c998f1e08, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &547427232
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 547427229}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &547427233
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 547427229}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 10, y: 1, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &572138294
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 572138295}
+ - component: {fileID: 572138297}
+ - component: {fileID: 572138296}
+ m_Layer: 0
+ m_Name: Text (TMP)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &572138295
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572138294}
+ 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: 1640954129}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &572138296
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572138294}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 'StartRoom
+
+'
+ 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: 3.6
+ m_fontSizeBase: 3.6
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &572138297
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572138294}
+ m_CullTransparentMesh: 1
+--- !u!1 &705507993
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 705507995}
+ - component: {fileID: 705507994}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &705507994
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 705507993}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 1
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &705507995
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 705507993}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &714524892
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 714524895}
+ - component: {fileID: 714524894}
+ - component: {fileID: 714524893}
+ m_Layer: 5
+ m_Name: InRoomInfo
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &714524893
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 714524892}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: InRoomInfo
+ 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: 4294901758
+ m_fontColor: {r: 0.99532855, g: 1, b: 0.995283, 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: 16
+ m_fontSizeBase: 16
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &714524894
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 714524892}
+ m_CullTransparentMesh: 1
+--- !u!224 &714524895
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 714524892}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.18232113, y: 0.18232113, z: 0.18232113}
+ m_Children: []
+ m_Father: {fileID: 423086412}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -17.7, y: 2.187851}
+ m_SizeDelta: {x: 200, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &740800144
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 740800145}
+ m_Layer: 0
+ m_Name: XR
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &740800145
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 740800144}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -86.65201, y: 79.478424, z: 131.49371}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 49557029}
+ - {fileID: 1633817999}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &858958269
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 858958272}
+ - component: {fileID: 858958271}
+ - component: {fileID: 858958273}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &858958271
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 858958269}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!4 &858958272
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 858958269}
+ 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: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &858958273
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 858958269}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ClickSpeed: 0.3
+ m_MoveDeadzone: 0.6
+ m_RepeatDelay: 0.5
+ m_RepeatRate: 0.1
+ m_TrackedDeviceDragThresholdMultiplier: 1.4
+ m_ActiveInputMode: 1
+ m_MaxTrackedDeviceRaycastDistance: 1000
+ m_EnableXRInput: 1
+ m_EnableMouseInput: 1
+ m_EnableTouchInput: 1
+ m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_EnableBuiltinActionsAsFallback: 1
+ m_EnableGamepadInput: 1
+ m_EnableJoystickInput: 1
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+--- !u!1 &898451399
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 898451400}
+ - component: {fileID: 898451403}
+ - component: {fileID: 898451402}
+ - component: {fileID: 898451401}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &898451400
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 898451399}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -10}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 189646932}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &898451401
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 898451399}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_TrackingType: 0
+ m_UpdateType: 0
+ m_PositionInput:
+ m_UseReference: 0
+ m_Action:
+ m_Name: Position
+ m_Type: 0
+ m_ExpectedControlType: Vector3
+ m_Id: bb3cbc07-84fa-4e0b-bf2c-384e1f810bbc
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings:
+ - m_Name:
+ m_Id: 9ec00e42-9900-44b6-b573-12ceb31b4bdd
+ m_Path: /centerEyePosition
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Position
+ m_Flags: 0
+ - m_Name:
+ m_Id: 0ca9ab31-df56-4019-9ea6-08d69cbb1d46
+ m_Path: /devicePosition
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Position
+ m_Flags: 0
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_RotationInput:
+ m_UseReference: 0
+ m_Action:
+ m_Name: Rotation
+ m_Type: 0
+ m_ExpectedControlType: Quaternion
+ m_Id: 35477100-6ee3-4d6b-962a-1e5f73c7659a
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings:
+ - m_Name:
+ m_Id: a906f4f2-78e7-41b4-b859-68644e929ef3
+ m_Path: /centerEyeRotation
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Rotation
+ m_Flags: 0
+ - m_Name:
+ m_Id: 5f1b7763-61bc-49b8-9ecc-9d904451eed6
+ m_Path: /deviceRotation
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Rotation
+ m_Flags: 0
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_PositionAction:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_RotationAction:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_HasMigratedActions: 1
+--- !u!81 &898451402
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 898451399}
+ m_Enabled: 1
+--- !u!20 &898451403
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 898451399}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.05273228, g: 0.087256715, b: 0.14150941, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.01
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 33
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!1 &957514848
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 957514849}
+ - component: {fileID: 957514853}
+ - component: {fileID: 957514852}
+ - component: {fileID: 957514851}
+ - component: {fileID: 957514850}
+ m_Layer: 0
+ m_Name: LeftHand Controller
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &957514849
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ 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: 189646932}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &957514850
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_LineWidth: 0.02
+ m_OverrideInteractorLineLength: 0
+ m_LineLength: 10
+ m_WidthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_ValidColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_InvalidColorGradient:
+ serializedVersion: 2
+ key0: {r: 0.11718281, g: 0.17947538, b: 0.745283, a: 1}
+ key1: {r: 1, g: 0, b: 0, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_BlockedColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_TreatSelectionAsValidState: 0
+ m_SmoothMovement: 0
+ m_FollowTightness: 10
+ m_SnapThresholdDistance: 10
+ m_Reticle: {fileID: 0}
+ m_BlockedReticle: {fileID: 0}
+ m_StopLineAtFirstRaycastHit: 0
+ m_StopLineAtSelection: 0
+--- !u!120 &957514851
+LineRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 0
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10306, 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: 5
+ m_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: 1}
+ m_Parameters:
+ serializedVersion: 3
+ widthMultiplier: 0.02
+ widthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ colorGradient:
+ serializedVersion: 2
+ key0: {r: 0, g: 0, b: 1, a: 1}
+ key1: {r: 0, g: 0, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ numCornerVertices: 4
+ numCapVertices: 4
+ alignment: 0
+ textureMode: 0
+ shadowBias: 0.5
+ generateLightingData: 0
+ m_UseWorldSpace: 1
+ m_Loop: 0
+--- !u!114 &957514852
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_InteractionManager: {fileID: 49557028}
+ m_InteractionLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_InteractionLayers:
+ m_Bits: 4294967295
+ m_AttachTransform: {fileID: 0}
+ m_KeepSelectedTargetValid: 1
+ m_StartingSelectedInteractable: {fileID: 0}
+ m_StartingTargetFilter: {fileID: 0}
+ m_HoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_HoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_StartingHoverFilters: []
+ m_StartingSelectFilters: []
+ m_OnHoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnHoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectActionTrigger: 0
+ m_HideControllerOnSelect: 0
+ m_AllowHoveredActivate: 0
+ m_TargetPriorityMode: 0
+ m_PlayAudioClipOnSelectEntered: 0
+ m_AudioClipForOnSelectEntered: {fileID: 0}
+ m_PlayAudioClipOnSelectExited: 0
+ m_AudioClipForOnSelectExited: {fileID: 0}
+ m_PlayAudioClipOnSelectCanceled: 0
+ m_AudioClipForOnSelectCanceled: {fileID: 0}
+ m_PlayAudioClipOnHoverEntered: 0
+ m_AudioClipForOnHoverEntered: {fileID: 0}
+ m_PlayAudioClipOnHoverExited: 0
+ m_AudioClipForOnHoverExited: {fileID: 0}
+ m_PlayAudioClipOnHoverCanceled: 0
+ m_AudioClipForOnHoverCanceled: {fileID: 0}
+ m_AllowHoverAudioWhileSelecting: 1
+ m_PlayHapticsOnSelectEntered: 0
+ m_HapticSelectEnterIntensity: 0
+ m_HapticSelectEnterDuration: 0
+ m_PlayHapticsOnSelectExited: 0
+ m_HapticSelectExitIntensity: 0
+ m_HapticSelectExitDuration: 0
+ m_PlayHapticsOnSelectCanceled: 0
+ m_HapticSelectCancelIntensity: 0
+ m_HapticSelectCancelDuration: 0
+ m_PlayHapticsOnHoverEntered: 0
+ m_HapticHoverEnterIntensity: 0
+ m_HapticHoverEnterDuration: 0
+ m_PlayHapticsOnHoverExited: 0
+ m_HapticHoverExitIntensity: 0
+ m_HapticHoverExitDuration: 0
+ m_PlayHapticsOnHoverCanceled: 0
+ m_HapticHoverCancelIntensity: 0
+ m_HapticHoverCancelDuration: 0
+ m_AllowHoverHapticsWhileSelecting: 1
+ m_LineType: 0
+ m_BlendVisualLinePoints: 1
+ m_MaxRaycastDistance: 36
+ m_RayOriginTransform: {fileID: 0}
+ m_ReferenceFrame: {fileID: 0}
+ m_Velocity: 16
+ m_Acceleration: 9.8
+ m_AdditionalGroundHeight: 0.1
+ m_AdditionalFlightTime: 0.5
+ m_EndPointDistance: 30
+ m_EndPointHeight: -10
+ m_ControlPointDistance: 10
+ m_ControlPointHeight: 5
+ m_SampleFrequency: 20
+ m_HitDetectionType: 0
+ m_SphereCastRadius: 0.1
+ m_RaycastMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RaycastTriggerInteraction: 1
+ m_HitClosestOnly: 0
+ m_HoverToSelect: 0
+ m_HoverTimeToSelect: 0.5
+ m_EnableUIInteraction: 1
+ m_AllowAnchorControl: 1
+ m_UseForceGrab: 1
+ m_RotateSpeed: 180
+ m_TranslateSpeed: 1
+ m_AnchorRotateReferenceFrame: {fileID: 0}
+ m_AnchorRotationMode: 0
+--- !u!114 &957514853
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 957514848}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UpdateTrackingType: 0
+ m_EnableInputTracking: 1
+ m_EnableInputActions: 1
+ m_ModelPrefab: {fileID: 2673240740586844490, guid: d792b21ba2f3e6e4ba026384d6d6536f, type: 3}
+ m_ModelParent: {fileID: 0}
+ m_Model: {fileID: 0}
+ m_AnimateModel: 0
+ m_ModelSelectTransition:
+ m_ModelDeSelectTransition:
+ m_PositionAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Position
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 26d2aaa4-6518-4d33-8fae-419043a723d4
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -2024308242397127297, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotationAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotation
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: d7a15530-737b-416a-9d5d-a8b51ba6c682
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_TrackingStateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Tracking State
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: e12d3305-8866-42f0-a9b8-2cd7f4310c31
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 05483079-4b7c-4369-9176-fb8514428e98
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -6131295136447488360, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 8e42f062-fb45-44df-9825-35e1dfc18834
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 38e5c09b-96d2-40e4-ae8e-3bfb9eb16727
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -5982496924579745919, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: ff2b1032-d7ae-4e1a-8e8a-a5556d5f8db5
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 347fe4ac-83bc-44f7-a0d2-2793a5775161
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 8b29ebc3-3830-4622-8c66-56f3a9b98d73
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 71106601250685021, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_HapticDeviceAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Haptic Device
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 35cfed17-bcaf-4ff9-9fe0-fa1727b7619b
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 4fcd4b62-1769-4cc4-aaee-aea2fc40d24f
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_DirectionalAnchorRotationAction:
+ m_UseReference: 0
+ m_Action:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_TranslateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Translate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 7bfe4461-8d15-4a61-9fa6-28ce950c9996
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ButtonPressPoint: 0.5
+--- !u!1 &1045233174
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1045233176}
+ - component: {fileID: 1045233178}
+ - component: {fileID: 1045233177}
+ m_Layer: 0
+ m_Name: GameLogic
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1045233176
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045233174}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -86.65201, y: 79.478424, z: 131.49371}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1045233177
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045233174}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: efe5516b9c6135142a7e63556db66891, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ TransportLogLevel: 1
+ WorkMode: 0
+ SimpleModeInfo:
+ roomName: abc
+ password:
+--- !u!114 &1045233178
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045233174}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 593a2fe42fa9d37498c96f9a383b6521, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ RunInBackground: 1
+ LogLevel: 1
+ NetworkConfig:
+ ProtocolVersion: 0
+ NetworkTransport: {fileID: 1045233177}
+ PlayerPrefab: {fileID: 6535690648612318365, guid: adfb2094fd67e2244bce895fca8eb3b8, type: 3}
+ NetworkPrefabs: []
+ TickRate: 30
+ ClientConnectionBufferTimeout: 10
+ ConnectionApproval: 0
+ ConnectionData:
+ EnableTimeResync: 0
+ TimeResyncInterval: 30
+ EnsureNetworkVariableLengthSafety: 0
+ EnableSceneManagement: 1
+ ForceSamePrefabs: 1
+ RecycleNetworkIds: 1
+ NetworkIdRecycleDelay: 120
+ RpcHashSize: 0
+ LoadSceneTimeOut: 120
+ SpawnTimeout: 1
+ EnableNetworkLogs: 1
+--- !u!1 &1112846886
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1112846887}
+ - component: {fileID: 1112846891}
+ - component: {fileID: 1112846890}
+ - component: {fileID: 1112846889}
+ - component: {fileID: 1112846888}
+ m_Layer: 0
+ m_Name: RightHand Controller
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1112846887
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ 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: 189646932}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1112846888
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_LineWidth: 0.02
+ m_OverrideInteractorLineLength: 0
+ m_LineLength: 10
+ m_WidthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_ValidColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_InvalidColorGradient:
+ serializedVersion: 2
+ key0: {r: 0.09801824, g: 0.27126268, b: 0.5566038, a: 1}
+ key1: {r: 1, g: 0, b: 0, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_BlockedColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_TreatSelectionAsValidState: 0
+ m_SmoothMovement: 0
+ m_FollowTightness: 10
+ m_SnapThresholdDistance: 10
+ m_Reticle: {fileID: 0}
+ m_BlockedReticle: {fileID: 0}
+ m_StopLineAtFirstRaycastHit: 0
+ m_StopLineAtSelection: 0
+--- !u!120 &1112846889
+LineRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 0
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10306, 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: 5
+ m_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: 1}
+ m_Parameters:
+ serializedVersion: 3
+ widthMultiplier: 0.02
+ widthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ colorGradient:
+ serializedVersion: 2
+ key0: {r: 0, g: 0, b: 1, a: 1}
+ key1: {r: 0, g: 0, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ numCornerVertices: 4
+ numCapVertices: 4
+ alignment: 0
+ textureMode: 0
+ shadowBias: 0.5
+ generateLightingData: 0
+ m_UseWorldSpace: 1
+ m_Loop: 0
+--- !u!114 &1112846890
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_InteractionManager: {fileID: 49557028}
+ m_InteractionLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_InteractionLayers:
+ m_Bits: 4294967295
+ m_AttachTransform: {fileID: 0}
+ m_KeepSelectedTargetValid: 1
+ m_StartingSelectedInteractable: {fileID: 0}
+ m_StartingTargetFilter: {fileID: 0}
+ m_HoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_HoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_StartingHoverFilters: []
+ m_StartingSelectFilters: []
+ m_OnHoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnHoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectActionTrigger: 0
+ m_HideControllerOnSelect: 0
+ m_AllowHoveredActivate: 0
+ m_TargetPriorityMode: 0
+ m_PlayAudioClipOnSelectEntered: 0
+ m_AudioClipForOnSelectEntered: {fileID: 0}
+ m_PlayAudioClipOnSelectExited: 0
+ m_AudioClipForOnSelectExited: {fileID: 0}
+ m_PlayAudioClipOnSelectCanceled: 0
+ m_AudioClipForOnSelectCanceled: {fileID: 0}
+ m_PlayAudioClipOnHoverEntered: 0
+ m_AudioClipForOnHoverEntered: {fileID: 0}
+ m_PlayAudioClipOnHoverExited: 0
+ m_AudioClipForOnHoverExited: {fileID: 0}
+ m_PlayAudioClipOnHoverCanceled: 0
+ m_AudioClipForOnHoverCanceled: {fileID: 0}
+ m_AllowHoverAudioWhileSelecting: 1
+ m_PlayHapticsOnSelectEntered: 0
+ m_HapticSelectEnterIntensity: 0
+ m_HapticSelectEnterDuration: 0
+ m_PlayHapticsOnSelectExited: 0
+ m_HapticSelectExitIntensity: 0
+ m_HapticSelectExitDuration: 0
+ m_PlayHapticsOnSelectCanceled: 0
+ m_HapticSelectCancelIntensity: 0
+ m_HapticSelectCancelDuration: 0
+ m_PlayHapticsOnHoverEntered: 0
+ m_HapticHoverEnterIntensity: 0
+ m_HapticHoverEnterDuration: 0
+ m_PlayHapticsOnHoverExited: 0
+ m_HapticHoverExitIntensity: 0
+ m_HapticHoverExitDuration: 0
+ m_PlayHapticsOnHoverCanceled: 0
+ m_HapticHoverCancelIntensity: 0
+ m_HapticHoverCancelDuration: 0
+ m_AllowHoverHapticsWhileSelecting: 1
+ m_LineType: 0
+ m_BlendVisualLinePoints: 1
+ m_MaxRaycastDistance: 36
+ m_RayOriginTransform: {fileID: 0}
+ m_ReferenceFrame: {fileID: 0}
+ m_Velocity: 16
+ m_Acceleration: 9.8
+ m_AdditionalGroundHeight: 0.1
+ m_AdditionalFlightTime: 0.5
+ m_EndPointDistance: 30
+ m_EndPointHeight: -10
+ m_ControlPointDistance: 10
+ m_ControlPointHeight: 5
+ m_SampleFrequency: 20
+ m_HitDetectionType: 0
+ m_SphereCastRadius: 0.1
+ m_RaycastMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RaycastTriggerInteraction: 1
+ m_HitClosestOnly: 0
+ m_HoverToSelect: 0
+ m_HoverTimeToSelect: 0.5
+ m_EnableUIInteraction: 1
+ m_AllowAnchorControl: 1
+ m_UseForceGrab: 1
+ m_RotateSpeed: 180
+ m_TranslateSpeed: 1
+ m_AnchorRotateReferenceFrame: {fileID: 0}
+ m_AnchorRotationMode: 0
+--- !u!114 &1112846891
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1112846886}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UpdateTrackingType: 0
+ m_EnableInputTracking: 1
+ m_EnableInputActions: 1
+ m_ModelPrefab: {fileID: 2281696399307846454, guid: 94f7925a0585b274fbc5fe6b8f9b1f4e, type: 3}
+ m_ModelParent: {fileID: 0}
+ m_Model: {fileID: 0}
+ m_AnimateModel: 0
+ m_ModelSelectTransition:
+ m_ModelDeSelectTransition:
+ m_PositionAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Position
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 93ead265-4bff-4199-8ddf-33c028dcfee9
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -3326005586356538449, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotationAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotation
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: cd9a8368-32d3-4e58-86a0-6fe78d199369
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_TrackingStateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Tracking State
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 7964ebc4-45e1-4431-a17a-7f2206e38661
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 3207346a-8b2f-4b24-b45a-90ea1cdef7fb
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 187161793506945269, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: dcf177a1-4c6d-42a7-b095-5f68848dadf1
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: ed3be3cd-637e-48d6-ae4b-dd97305eaa40
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 83097790271614945, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: af4d694a-0159-4acb-bf36-7b78c35a10d5
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 55ce5c5d-aad8-4ebf-9f21-899ff595a062
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: cdab09f7-ec37-4eee-b72c-06339cc37c8b
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -5908353012961274365, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_HapticDeviceAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Haptic Device
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 60f81e0e-3fab-4e26-90b6-a5ab762e2bb1
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -8222252007134549311, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: aca8fec0-a925-428d-a6b7-25cfbd478258
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_DirectionalAnchorRotationAction:
+ m_UseReference: 0
+ m_Action:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_TranslateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Translate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 161874b5-2545-4bb2-bea4-eeddeb4fabf6
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ButtonPressPoint: 0.5
+--- !u!1 &1633817997
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1633817999}
+ - component: {fileID: 1633817998}
+ - component: {fileID: 1633818000}
+ - component: {fileID: 1633818001}
+ m_Layer: 0
+ m_Name: XR Origin
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1633817998
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1633817997}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e0cb9aa70a22847b5925ee5f067c10a9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Camera: {fileID: 898451403}
+ m_OriginBaseGameObject: {fileID: 1633817997}
+ m_CameraFloorOffsetObject: {fileID: 189646931}
+ m_RequestedTrackingOriginMode: 0
+ m_CameraYOffset: 1.1176
+--- !u!4 &1633817999
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1633817997}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 86.65201, y: -77.7, z: -136.3}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 189646932}
+ m_Father: {fileID: 740800145}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1633818000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1633817997}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 017c5e3933235514c9520e1dace2a4b2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ActionAssets:
+ - {fileID: -944628639613478452, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+--- !u!114 &1633818001
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1633817997}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fd9f82377aeb9704193bd866d119aaa5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ screenFade: 0
+ eyeTracking: 0
+ trackingMode: 0
+ faceTracking: 0
+ lipsyncTracking: 0
+ lateLatching: 0
+ latelatchingDebug: 0
+ bodyTracking: 0
+ foveationLevel: -1
+ openMRC: 0
+ foregroundLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ backLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ backgroundCamObj: {fileID: 0}
+ foregroundCamObj: {fileID: 0}
+ mrcBackgroundRT: {fileID: 0}
+ mrcForegroundRT: {fileID: 0}
+ useRecommendedAntiAliasingLevel: 1
+--- !u!1 &1640954128
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1640954129}
+ - component: {fileID: 1640954131}
+ - component: {fileID: 1640954130}
+ - component: {fileID: 1640954132}
+ m_Layer: 0
+ m_Name: StartRoomButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1640954129
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1640954128}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 572138295}
+ m_Father: {fileID: 423086412}
+ m_RootOrder: 3
+ 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: -65.6, y: -8.428}
+ m_SizeDelta: {x: 30.6691, y: 8.2239}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1640954130
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1640954128}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1640954131
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1640954128}
+ m_CullTransparentMesh: 1
+--- !u!114 &1640954132
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1640954128}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.122641504, g: 0.10355108, b: 0.10355108, a: 0.78039217}
+ m_HighlightedColor: {r: 0.016896129, g: 0.09433961, b: 0.0093449615, a: 0.9019608}
+ m_PressedColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 1}
+ m_SelectedColor: {r: 0.019607844, g: 0.09803922, b: 0.011764706, a: 1}
+ m_DisabledColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1640954130}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!1 &1670590165
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1670590169}
+ - component: {fileID: 1670590168}
+ - component: {fileID: 1670590167}
+ - component: {fileID: 1670590166}
+ - component: {fileID: 1670590170}
+ - component: {fileID: 1670590171}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1670590166
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &1670590167
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 36
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!223 &1670590168
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 1
+ m_Camera: {fileID: 898451403}
+ m_PlaneDistance: 30
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &1670590169
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0, y: 0, z: 0}
+ m_Children:
+ - {fileID: 423086412}
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
+--- !u!114 &1670590170
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 0
+ m_CheckFor2DOcclusion: 0
+ m_CheckFor3DOcclusion: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RaycastTriggerInteraction: 1
+--- !u!114 &1670590171
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1670590165}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 81a06c6bd0359d042a03d199f76b19bf, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ InRoomPanel: {fileID: 423086413}
+--- !u!1 &1708814644
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1708814645}
+ - component: {fileID: 1708814647}
+ - component: {fileID: 1708814646}
+ m_Layer: 0
+ m_Name: Text (TMP)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1708814645
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708814644}
+ 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: 2080256313}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1708814646
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708814644}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 'ExitRoom
+
+'
+ 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: 3.6
+ m_fontSizeBase: 3.6
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &1708814647
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1708814644}
+ m_CullTransparentMesh: 1
+--- !u!1 &1917349329
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1917349330}
+ - component: {fileID: 1917349333}
+ - component: {fileID: 1917349332}
+ - component: {fileID: 1917349331}
+ m_Layer: 0
+ m_Name: MoveButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1917349330
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1917349329}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 2020266519}
+ m_Father: {fileID: 423086412}
+ 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: 2, y: -8.428}
+ m_SizeDelta: {x: 30.6691, y: 8.2239}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1917349331
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1917349329}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.122641504, g: 0.10355108, b: 0.10355108, a: 0.78039217}
+ m_HighlightedColor: {r: 0.016896129, g: 0.09433961, b: 0.0093449615, a: 0.9019608}
+ m_PressedColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 1}
+ m_SelectedColor: {r: 0.019607844, g: 0.09803922, b: 0.011764706, a: 1}
+ m_DisabledColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1917349332}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!114 &1917349332
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1917349329}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1917349333
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1917349329}
+ m_CullTransparentMesh: 1
+--- !u!1 &2020266518
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2020266519}
+ - component: {fileID: 2020266521}
+ - component: {fileID: 2020266520}
+ m_Layer: 0
+ m_Name: Text (TMP)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2020266519
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2020266518}
+ 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: 1917349330}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2020266520
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2020266518}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 'Move
+
+'
+ 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: 3.6
+ m_fontSizeBase: 3.6
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &2020266521
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2020266518}
+ m_CullTransparentMesh: 1
+--- !u!1 &2055274005
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2055274006}
+ - component: {fileID: 2055274008}
+ - component: {fileID: 2055274007}
+ m_Layer: 0
+ m_Name: Text (TMP)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2055274006
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2055274005}
+ 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: 2134647986}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2055274007
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2055274005}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 'JoinRoom
+
+'
+ 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: 3.6
+ m_fontSizeBase: 3.6
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &2055274008
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2055274005}
+ m_CullTransparentMesh: 1
+--- !u!1 &2080256312
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2080256313}
+ - component: {fileID: 2080256315}
+ - component: {fileID: 2080256314}
+ - component: {fileID: 2080256316}
+ m_Layer: 0
+ m_Name: ExitRoomButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &2080256313
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2080256312}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1708814645}
+ m_Father: {fileID: 423086412}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -31.8, y: -8.428}
+ m_SizeDelta: {x: 30.6691, y: 8.2239}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2080256314
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2080256312}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &2080256315
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2080256312}
+ m_CullTransparentMesh: 1
+--- !u!114 &2080256316
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2080256312}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.122641504, g: 0.10355108, b: 0.10355108, a: 0.78039217}
+ m_HighlightedColor: {r: 0.016896129, g: 0.09433961, b: 0.0093449615, a: 0.9019608}
+ m_PressedColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 1}
+ m_SelectedColor: {r: 0.019607844, g: 0.09803922, b: 0.011764706, a: 1}
+ m_DisabledColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 2080256314}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!1 &2134647985
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2134647986}
+ - component: {fileID: 2134647988}
+ - component: {fileID: 2134647987}
+ - component: {fileID: 2134647989}
+ m_Layer: 0
+ m_Name: JoinRoomButton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2134647986
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2134647985}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 2055274006}
+ m_Father: {fileID: 423086412}
+ m_RootOrder: 4
+ 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: -31.8, y: -8.5}
+ m_SizeDelta: {x: 30.6691, y: 8.2239}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2134647987
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2134647985}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &2134647988
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2134647985}
+ m_CullTransparentMesh: 1
+--- !u!114 &2134647989
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2134647985}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.122641504, g: 0.10355108, b: 0.10355108, a: 0.78039217}
+ m_HighlightedColor: {r: 0.016896129, g: 0.09433961, b: 0.0093449615, a: 0.9019608}
+ m_PressedColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 1}
+ m_SelectedColor: {r: 0.019607844, g: 0.09803922, b: 0.011764706, a: 1}
+ m_DisabledColor: {r: 0.12156863, g: 0.101960786, b: 0.101960786, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 2134647987}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/SimpleMode.unity.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/SimpleMode.unity.meta
new file mode 100644
index 00000000..a4af3f1d
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scenes/SimpleMode.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 62e625b919d49ff42a3ec0e05c207d43
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts.meta
new file mode 100644
index 00000000..743bc82a
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7d736fbd7f3a2f448a4f38c6cd90e727
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/Logic.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/Logic.meta
new file mode 100644
index 00000000..4a50e0f8
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/Logic.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6669e30b95d35ad409eb2f23cd70efd4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/Logic/PlayerBehaviour.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/Logic/PlayerBehaviour.cs
new file mode 100644
index 00000000..1aebdd53
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/Logic/PlayerBehaviour.cs
@@ -0,0 +1,51 @@
+using System.Collections;
+using System.Collections.Generic;
+using Unity.Netcode;
+using UnityEngine;
+
+namespace Netcode.Transports.Pico.Samples.PicoGoldenPath
+{
+ public class PlayerBehaviour : NetworkBehaviour
+ {
+ public NetworkVariable Position = new NetworkVariable();
+
+ public override void OnNetworkSpawn()
+ {
+ if (IsOwner)
+ {
+ Move();
+ }
+ }
+
+ public void Move()
+ {
+ if (NetworkManager.Singleton.IsServer)
+ {
+ var randomPosition = GetRandomPositionOnPlane();
+ transform.position = randomPosition;
+ Position.Value = randomPosition;
+ }
+ else
+ {
+ SubmitPositionRequestServerRpc();
+ }
+ }
+
+ [ServerRpc]
+ void SubmitPositionRequestServerRpc(ServerRpcParams rpcParams = default)
+ {
+ Position.Value = GetRandomPositionOnPlane();
+ }
+
+ static Vector3 GetRandomPositionOnPlane()
+ {
+ return new Vector3(Random.Range(-3f, 3f), 1f, Random.Range(-3f, 3f));
+ }
+
+ void Update()
+ {
+ transform.position = Position.Value;
+ }
+ }
+
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/Logic/PlayerBehaviour.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/Logic/PlayerBehaviour.cs.meta
new file mode 100644
index 00000000..89375600
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/Logic/PlayerBehaviour.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5e53162aef0a49e468280a1374f10ed4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI.meta
new file mode 100644
index 00000000..ddf445e4
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: aa7f1b24b7c3240448c6183b010af47e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking.meta
new file mode 100644
index 00000000..c9d4f087
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1e12412b7ba718a458b1f81eb3b582ce
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingMainUI.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingMainUI.cs
new file mode 100644
index 00000000..d5dc33fe
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingMainUI.cs
@@ -0,0 +1,116 @@
+using UnityEngine;
+using TMPro;
+using UnityEngine.UI;
+using Unity.Netcode;
+using UnityEngine.Serialization;
+using UnityEngine.SceneManagement;
+
+namespace Netcode.Transports.Pico.Samples.PicoGoldenPath
+{
+ public class MatchmakingMainUI : MonoBehaviour
+ {
+ private enum ETransportType
+ {
+ PicoTransport = 1,
+ PhotonTransport = 2,
+ }
+
+ public Button InitPicoSDKBtn;
+ public Button JoinBtn;
+ public TextMeshProUGUI CurStatus;
+ public TextMeshProUGUI SelfOpenID;
+ public MatchmakingRoomPanel InRoomPanel;
+
+ private ExternalModeSDKUser _picoSDKUser;
+
+ // Start is called before the first frame update
+ void Start()
+ {
+ _picoSDKUser = FindObjectOfType();
+ PicoTransport picoTransport = NetworkManager.Singleton.NetworkConfig.NetworkTransport as PicoTransport;
+ bool isPico = picoTransport != null;
+ if (isPico)
+ {
+ picoTransport.WorkMode = PicoTransport.EWorkMode.ExternalRoom;
+ InitPicoSDKBtn.onClick.AddListener(StartPicoInExternalMode);
+ }
+ else
+ {
+ Debug.Assert(false, "set netcode transport to pico please");
+ }
+ CurStatus.text = SceneManager.GetActiveScene().name + ":" + "press init button to start";
+ JoinBtn.onClick.AddListener(_picoSDKUser.StartJoinRoom);
+ _picoSDKUser.OnStatusChange += OnStatusChage;
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ }
+
+ void StartPicoInExternalMode()
+ {
+ //mode 'external room'
+ TextAsset mockConfig = null;
+#if UNITY_EDITOR
+ if ((Application.platform == RuntimePlatform.WindowsPlayer || Application.platform == RuntimePlatform.WindowsEditor))
+ {
+ // Automatically start server if this is the original editor
+ mockConfig = Resources.Load("PicoSdkPCConfig");
+ }
+#endif
+ _picoSDKUser.StartPicoGame(mockConfig);
+ }
+
+ void OnStatusChage(ExternalModeSDKUser.EGameState oldState, ExternalModeSDKUser.EGameState curState, string statusDesc, string selfOpenID, string roomDesc)
+ {
+ if (null == selfOpenID)
+ {
+ selfOpenID = "not loggined";
+ }
+ if (null == InitPicoSDKBtn || null == JoinBtn || null == InRoomPanel)
+ {
+ Debug.Log($"OnStatusChage to {curState}, ui object is null");
+ return;
+ }
+ CurStatus.text = SceneManager.GetActiveScene().name + ":" + statusDesc;
+ SelfOpenID.text = "selfUID:" + selfOpenID;
+
+ Debug.Log($"state from {oldState} to {curState}, reason {statusDesc}");
+ if (curState == oldState)
+ {
+ return;
+ }
+ if (curState < ExternalModeSDKUser.EGameState.Inited || curState == ExternalModeSDKUser.EGameState.RoomLeft)
+ {
+ InitPicoSDKBtn.gameObject?.SetActive(true);
+ JoinBtn.gameObject?.SetActive(false);
+ InRoomPanel.gameObject?.SetActive(false);
+ }
+ if (curState == ExternalModeSDKUser.EGameState.InMatching)
+ {
+ InitPicoSDKBtn.gameObject?.SetActive(false);
+ JoinBtn.gameObject.SetActive(false);
+ InRoomPanel.gameObject?.SetActive(false);
+ }
+ if (curState == ExternalModeSDKUser.EGameState.MatchFound)
+ {
+ InitPicoSDKBtn.gameObject?.SetActive(false);
+ JoinBtn.gameObject?.SetActive(true);
+ InRoomPanel.gameObject?.SetActive(false);
+ }
+ if (curState == ExternalModeSDKUser.EGameState.InRoom)
+ {
+ InitPicoSDKBtn.gameObject?.SetActive(false);
+ JoinBtn.gameObject?.SetActive(false);
+ InRoomPanel.gameObject?.SetActive(true);
+ }
+
+ if (curState == ExternalModeSDKUser.EGameState.InRoom)
+ {
+ _picoSDKUser.StartNetcode();
+ }
+ }
+ }
+
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingMainUI.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingMainUI.cs.meta
new file mode 100644
index 00000000..074127ee
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingMainUI.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2329b7346f9f6b7408b0b2ed7d48f8fd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingRoomPanel.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingRoomPanel.cs
new file mode 100644
index 00000000..489e7b29
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingRoomPanel.cs
@@ -0,0 +1,78 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using TMPro;
+using Unity.Netcode;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Netcode.Transports.Pico.Samples.PicoGoldenPath
+{
+ public class MatchmakingRoomPanel : MonoBehaviour
+ {
+ public Button MoveButton;
+ public Button LeaveButton;
+ public TextMeshProUGUI ButtonText;
+ public TextMeshProUGUI StatusText;
+
+ private ExternalModeSDKUser _picoSDKUser;
+
+ private void Start()
+ {
+ _picoSDKUser = FindObjectOfType();
+ MoveButton.onClick.AddListener(OnMoveButton);
+ LeaveButton.onClick.AddListener(_picoSDKUser.StartLeaveRoom);
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ if (!(NetworkManager.Singleton.IsServer || NetworkManager.Singleton.IsClient))
+ {
+ return;
+ }
+ StatusText.text = "Netcode mode:";
+ if (NetworkManager.Singleton.IsHost)
+ {
+ StatusText.text += "HOST";
+ }
+ else if (NetworkManager.Singleton.IsServer)
+ {
+ StatusText.text += "SERVER";
+ }
+ else
+ {
+ StatusText.text += "CLIENT";
+ }
+ if (NetworkManager.Singleton.IsServer && !NetworkManager.Singleton.IsClient)
+ {
+ ButtonText.text = "Move";
+ }
+ else
+ {
+ ButtonText.text = "Submit position";
+ }
+ }
+
+ public void OnMoveButton()
+ {
+ if (NetworkManager.Singleton.IsServer && !NetworkManager.Singleton.IsClient)
+ {
+ foreach (ulong uid in NetworkManager.Singleton.ConnectedClientsIds)
+ NetworkManager.Singleton.SpawnManager.GetPlayerNetworkObject(uid)
+ .GetComponent().Move();
+ }
+ else
+ {
+ var playerObject = NetworkManager.Singleton.SpawnManager.GetLocalPlayerObject();
+ if (!playerObject)
+ {
+ Debug.LogError("player object is not spawned now");
+ }
+ var player = playerObject.GetComponent();
+ player.Move();
+ }
+ }
+ }
+
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingRoomPanel.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingRoomPanel.cs.meta
new file mode 100644
index 00000000..0cbcab90
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Matchmaking/MatchmakingRoomPanel.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8c2d4f6573dd3c940b2ead76f81c14cf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple.meta
new file mode 100644
index 00000000..ab74e524
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 19a8af511e72e4d4481a35e1b2b5d721
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeMainUI.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeMainUI.cs
new file mode 100644
index 00000000..fd4437df
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeMainUI.cs
@@ -0,0 +1,45 @@
+using UnityEngine;
+using TMPro;
+using UnityEngine.UI;
+using Unity.Netcode;
+using UnityEngine.Serialization;
+using UnityEngine.SceneManagement;
+
+namespace Netcode.Transports.Pico.Samples.PicoGoldenPath
+{
+ public class SimpleModeMainUI : MonoBehaviour
+ {
+ public SimpleModeRoomPanel InRoomPanel;
+
+ // Start is called before the first frame update
+ void Start()
+ {
+ PicoTransport picoTransport = NetworkManager.Singleton.NetworkConfig.NetworkTransport as PicoTransport;
+ bool isPico = picoTransport != null;
+ if (isPico)
+ {
+ if (picoTransport.WorkMode != PicoTransport.EWorkMode.Simple)
+ {
+ picoTransport.WorkMode = PicoTransport.EWorkMode.Simple;
+ picoTransport.SimpleModeInfo.roomName = "test_room_name_abc";
+ picoTransport.SimpleModeInfo.password = "";
+ }
+ }
+ else
+ {
+ Debug.Assert(false, "set netcode transport to pico please");
+ }
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ }
+
+ //void InitPanel()
+ //{
+ // InRoomPanel.gameObject?.SetActive(true);
+ //}
+ }
+
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeMainUI.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeMainUI.cs.meta
new file mode 100644
index 00000000..e61b8d8e
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeMainUI.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 81a06c6bd0359d042a03d199f76b19bf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeRoomPanel.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeRoomPanel.cs
new file mode 100644
index 00000000..9c54dfa5
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeRoomPanel.cs
@@ -0,0 +1,100 @@
+using TMPro;
+using Unity.Netcode;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Netcode.Transports.Pico.Samples.PicoGoldenPath
+{
+ public class SimpleModeRoomPanel : MonoBehaviour
+ {
+ public Button MoveButton;
+ public Button StartRoomButton;
+ public Button JoinRoomButton;
+ public Button ExitRoomButton;
+ public TextMeshProUGUI StatusText;
+
+ private void Start()
+ {
+ MoveButton.onClick.AddListener(OnMoveButton);
+ StartRoomButton.onClick.AddListener(OnStartRoomButton);
+ JoinRoomButton.onClick.AddListener(OnJoinRoomButton);
+ ExitRoomButton.onClick.AddListener(OnExitRoomButton);
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ bool isNetcodeStarted = NetworkManager.Singleton.isActiveAndEnabled;
+ bool isHostOrClient = isNetcodeStarted && NetworkManager.Singleton.IsHost || NetworkManager.Singleton.IsClient;
+ if (isHostOrClient)
+ {
+ StartRoomButton.gameObject.SetActive(false);
+ JoinRoomButton.gameObject.SetActive(false);
+ ExitRoomButton.gameObject.SetActive(true);
+ } else
+ {
+ StartRoomButton.gameObject.SetActive(true);
+ JoinRoomButton.gameObject.SetActive(true);
+ ExitRoomButton.gameObject.SetActive(false);
+ }
+ if (!(NetworkManager.Singleton.IsServer || NetworkManager.Singleton.IsClient))
+ {
+ StatusText.text = "Netcode not start";
+ return;
+ }
+ StatusText.text = "Netcode mode:";
+ if (NetworkManager.Singleton.IsHost)
+ {
+ StatusText.text += "HOST";
+ }
+ else if (NetworkManager.Singleton.IsServer)
+ {
+ StatusText.text += "SERVER";
+ }
+ else
+ {
+ StatusText.text += "CLIENT";
+ }
+ }
+
+ public void OnStartRoomButton()
+ {
+ NetworkManager.Singleton.StartHost();
+ return;
+ }
+
+ public void OnJoinRoomButton()
+ {
+ NetworkManager.Singleton.StartClient();
+ return;
+ }
+
+ public void OnExitRoomButton()
+ {
+ NetworkManager.Singleton.Shutdown();
+ return;
+ }
+
+ public void OnMoveButton()
+ {
+ if (NetworkManager.Singleton.IsServer && !NetworkManager.Singleton.IsClient)
+ {
+ foreach (ulong uid in NetworkManager.Singleton.ConnectedClientsIds)
+ NetworkManager.Singleton.SpawnManager.GetPlayerNetworkObject(uid)
+ .GetComponent().Move();
+ }
+ else
+ {
+ var playerObject = NetworkManager.Singleton.SpawnManager.GetLocalPlayerObject();
+ if (!playerObject)
+ {
+ Debug.LogError("player object is not spawned now");
+ return;
+ }
+ var player = playerObject.GetComponent();
+ player.Move();
+ }
+ }
+ }
+
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeRoomPanel.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeRoomPanel.cs.meta
new file mode 100644
index 00000000..4f6eb552
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Golden Path/Scripts/UI/Simple/SimpleModeRoomPanel.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5b011c756878c3542a52401bdc0d27ad
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer.meta
new file mode 100644
index 00000000..b311265b
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e236e7a5307c5a448996ff3cc62ca3d2
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem.meta
new file mode 100644
index 00000000..85957f17
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 193b24619d24a014aad229bba6fb5ed9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/InputSystem.inputsettings.asset b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/InputSystem.inputsettings.asset
new file mode 100644
index 00000000..8bc65705
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/InputSystem.inputsettings.asset
@@ -0,0 +1,35 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c46f07b5ed07e4e92aa78254188d3d10, type: 3}
+ m_Name: InputSystem.inputsettings
+ m_EditorClassIdentifier:
+ m_SupportedDevices: []
+ m_UpdateMode: 1
+ m_MaxEventBytesPerUpdate: 5242880
+ m_MaxQueuedEventsPerUpdate: 1000
+ m_CompensateForScreenOrientation: 1
+ m_BackgroundBehavior: 0
+ m_EditorInputBehaviorInPlayMode: 1
+ m_DefaultDeadzoneMin: 0.125
+ m_DefaultDeadzoneMax: 0.925
+ m_DefaultButtonPressPoint: 0.5
+ m_ButtonReleaseThreshold: 0.75
+ m_DefaultTapTime: 0.2
+ m_DefaultSlowTapTime: 0.5
+ m_DefaultHoldTime: 0.4
+ m_TapRadius: 5
+ m_MultiTapDelayTime: 0.75
+ m_DisableRedundantEventsMerging: 0
+ m_iOSSettings:
+ m_MotionUsage:
+ m_Enabled: 0
+ m_Description:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/InputSystem.inputsettings.asset.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/InputSystem.inputsettings.asset.meta
new file mode 100644
index 00000000..a78b61ed
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/InputSystem.inputsettings.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6cba80975b711f0468adf8267e33bb33
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/SharedSpacesInputs.inputactions b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/SharedSpacesInputs.inputactions
new file mode 100644
index 00000000..c19fdc6e
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/SharedSpacesInputs.inputactions
@@ -0,0 +1,183 @@
+{
+ "name": "SharedSpacesInputs",
+ "maps": [
+ {
+ "name": "Player",
+ "id": "f62a4b92-ef5e-4175-8f4c-c9075429d32c",
+ "actions": [
+ {
+ "name": "Move",
+ "type": "Value",
+ "id": "6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d",
+ "expectedControlType": "Vector2",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "Jump",
+ "type": "Button",
+ "id": "8c4abdf8-4099-493a-aa1a-129acec7c3df",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Orbit",
+ "type": "Value",
+ "id": "3c99cc3e-40c8-44b5-a106-819fdfc646c4",
+ "expectedControlType": "Vector2",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "ChangeColor",
+ "type": "Button",
+ "id": "025b40dc-c838-4799-b4de-5ee49d705a39",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ }
+ ],
+ "bindings": [
+ {
+ "name": "WASD",
+ "id": "b7594ddb-26c9-4ba2-bd5a-901468929edc",
+ "path": "2DVector(mode=1)",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Move",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "up",
+ "id": "2063a8b5-6a45-43de-851b-65f3d46e7b58",
+ "path": "/w",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "down",
+ "id": "64e4d037-32e1-4fb9-80e4-fc7330404dfe",
+ "path": "/s",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "left",
+ "id": "0fce8b11-5eab-4e4e-a741-b732e7b20873",
+ "path": "/a",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "right",
+ "id": "7bdda0d6-57a8-47c8-8238-8aecf3110e47",
+ "path": "/d",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "",
+ "id": "e2f9aa65-db06-4c5b-a2e9-41bc8acb9517",
+ "path": "{LeftHand}/primary2DAxis",
+ "interactions": "",
+ "processors": "StickDeadzone",
+ "groups": "Keyboard",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "2c00a040-0d49-4e6a-b4ac-872676a2c599",
+ "path": "{RightHand}/primary2DAxis",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "1bd55a0b-761e-4ae4-89ae-8ec127e08a29",
+ "path": "/space",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard",
+ "action": "Jump",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "b7bf9f75-659f-4f86-8fa6-c1dea7e2c7bf",
+ "path": "{LeftHand}/secondaryButton",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard",
+ "action": "Jump",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "05065a16-7fd1-41c0-886f-5c4775b96cf0",
+ "path": "{RightHand}/secondaryButton",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard",
+ "action": "Jump",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "1412935b-da56-42fb-b55d-cef8f8e99c47",
+ "path": "/c",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard",
+ "action": "ChangeColor",
+ "isComposite": false,
+ "isPartOfComposite": false
+ }
+ ]
+ }
+ ],
+ "controlSchemes": [
+ {
+ "name": "Keyboard",
+ "bindingGroup": "Keyboard",
+ "devices": [
+ {
+ "devicePath": "",
+ "isOptional": false,
+ "isOR": false
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/SharedSpacesInputs.inputactions.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/SharedSpacesInputs.inputactions.meta
new file mode 100644
index 00000000..0e1c2410
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/InputSystem/SharedSpacesInputs.inputactions.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: 5ddaa6e6135d699449c676d9915924ad
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
+ generateWrapperCode: 0
+ wrapperCodePath:
+ wrapperClassName:
+ wrapperCodeNamespace:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats.meta
new file mode 100644
index 00000000..08d1214b
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 490d16ade8f399148b846a45ac8b2f5e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Lobby.mat b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Lobby.mat
new file mode 100644
index 00000000..255f9665
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Lobby.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Lobby
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 0.018867908, g: 0.025054105, b: 0.11320752, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Lobby.mat.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Lobby.mat.meta
new file mode 100644
index 00000000..aa7d851d
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Lobby.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 984d99356fa1ffe4b8449615f94b6b46
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneFight.mat b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneFight.mat
new file mode 100644
index 00000000..8620c7eb
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneFight.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: PlaneFight
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 0.14150941, g: 0.02882599, b: 0, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneFight.mat.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneFight.mat.meta
new file mode 100644
index 00000000..4e2c5a49
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneFight.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 71197b886c4fe414c8d2382969b585dc
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneStart.mat b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneStart.mat
new file mode 100644
index 00000000..8ce25ddc
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneStart.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: PlaneStart
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 0.04555538, g: 0.1792453, b: 0.04509314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneStart.mat.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneStart.mat.meta
new file mode 100644
index 00000000..f7dd57e1
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/PlaneStart.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 32be8ebc26e8cc548bb32907231a07e4
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Portal.mat b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Portal.mat
new file mode 100644
index 00000000..116a3785
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Portal.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Portal
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords:
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 0.4056604, g: 0.1399244, b: 0.006378267, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Portal.mat.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Portal.mat.meta
new file mode 100644
index 00000000..8f9e84b3
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Mats/Portal.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c9c5f3f9c119af64db7abc05805c490b
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules.meta
new file mode 100644
index 00000000..c9fcacba
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ac4388b6c167f36468379bc9e0cb9566
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character.meta
new file mode 100644
index 00000000..158e5446
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d41cdbda94f3f664db70c0bf58eda2c1
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations.meta
new file mode 100644
index 00000000..1014f732
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f5b8b2aa5d490474d8cdfb0c78581faa
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--InAir.anim.fbx b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--InAir.anim.fbx
new file mode 100644
index 00000000..55a2ed25
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--InAir.anim.fbx differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--InAir.anim.fbx.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--InAir.anim.fbx.meta
new file mode 100644
index 00000000..59922d7b
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--InAir.anim.fbx.meta
@@ -0,0 +1,918 @@
+fileFormatVersion: 2
+guid: aaef612b70883e64ebb66fe9058b5090
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable:
+ - first:
+ 74: -2702400367771620057
+ second: InAir
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.25
+ animationPositionError: 0.05
+ animationScaleError: 0.05
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations:
+ - serializedVersion: 16
+ name: InAir
+ takeName: InAir
+ internalID: 0
+ firstFrame: 0
+ lastFrame: 80
+ wrapMode: 0
+ orientationOffsetY: 0
+ level: 0
+ cycleOffset: 0
+ loop: 0
+ hasAdditiveReferencePose: 0
+ loopTime: 1
+ loopBlend: 1
+ loopBlendOrientation: 1
+ loopBlendPositionY: 1
+ loopBlendPositionXZ: 1
+ keepOriginalOrientation: 1
+ keepOriginalPositionY: 1
+ keepOriginalPositionXZ: 1
+ heightFromFeet: 0
+ mirror: 0
+ bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
+ curves: []
+ events: []
+ transformMask: []
+ maskType: 3
+ maskSource: {instanceID: 0}
+ additiveReferencePoseFrame: 0
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human:
+ - boneName: Hips
+ humanName: Hips
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperLeg
+ humanName: RightUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerLeg
+ humanName: RightLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Foot
+ humanName: RightFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Toes
+ humanName: RightToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Spine
+ humanName: Spine
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Chest
+ humanName: Chest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: UpperChest
+ humanName: UpperChest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Shoulder
+ humanName: RightShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperArm
+ humanName: RightUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerArm
+ humanName: RightLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Hand
+ humanName: RightHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Neck
+ humanName: Neck
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Head
+ humanName: Head
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Jaw
+ humanName: Jaw
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Shoulder
+ humanName: LeftShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperArm
+ humanName: LeftUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerArm
+ humanName: LeftLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Hand
+ humanName: LeftHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperLeg
+ humanName: LeftUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerLeg
+ humanName: LeftLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Foot
+ humanName: LeftFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Toes
+ humanName: LeftToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbProximal
+ humanName: Left Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbIntermediate
+ humanName: Left Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbDistal
+ humanName: Left Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexProximal
+ humanName: Left Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexIntermediate
+ humanName: Left Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexDistal
+ humanName: Left Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleProximal
+ humanName: Left Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleIntermediate
+ humanName: Left Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleDistal
+ humanName: Left Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingProximal
+ humanName: Left Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingIntermediate
+ humanName: Left Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingDistal
+ humanName: Left Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyProximal
+ humanName: Left Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyIntermediate
+ humanName: Left Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyDistal
+ humanName: Left Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbProximal
+ humanName: Right Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbIntermediate
+ humanName: Right Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbDistal
+ humanName: Right Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexProximal
+ humanName: Right Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexIntermediate
+ humanName: Right Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexDistal
+ humanName: Right Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleProximal
+ humanName: Right Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleIntermediate
+ humanName: Right Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleDistal
+ humanName: Right Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingProximal
+ humanName: Right Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingIntermediate
+ humanName: Right Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingDistal
+ humanName: Right Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyProximal
+ humanName: Right Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyIntermediate
+ humanName: Right Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyDistal
+ humanName: Right Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ skeleton:
+ - name: Mannequin(Clone)
+ parentName:
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Geometry
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Mannequin_Mesh
+ parentName: Geometry
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Skeleton
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Hips
+ parentName: Skeleton
+ position: {x: -0, y: 0.9810986, z: -0.01590455}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperLeg
+ parentName: Hips
+ position: {x: -0.08610317, y: -0.053458035, z: -0.011470641}
+ rotation: {x: 0.999839, y: -0.01775374, z: 0.000046300094, w: -0.0026074864}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerLeg
+ parentName: Left_UpperLeg
+ position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Foot
+ parentName: Left_LowerLeg
+ position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Toes
+ parentName: Left_Foot
+ position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506}
+ rotation: {x: -0.7071068, y: 8.7157646e-33, z: -8.7157646e-33, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ToesEnd
+ parentName: Left_Toes
+ position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperLeg
+ parentName: Hips
+ position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475}
+ rotation: {x: 0.0026075041, y: 0.000046300407, z: 0.01775374, w: 0.999839}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerLeg
+ parentName: Right_UpperLeg
+ position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Foot
+ parentName: Right_LowerLeg
+ position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Toes
+ parentName: Right_Foot
+ position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807}
+ rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ToesEnd
+ parentName: Right_Toes
+ position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Spine
+ parentName: Hips
+ position: {x: -0, y: 0.058229383, z: 0.0012229546}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Chest
+ parentName: Spine
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: UpperChest
+ parentName: Chest
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Shoulder
+ parentName: UpperChest
+ position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945}
+ rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperArm
+ parentName: Left_Shoulder
+ position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17}
+ rotation: {x: 0.12673509, y: 0.03332071, z: 0.6809724, w: 0.72048914}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerArm
+ parentName: Left_UpperArm
+ position: {x: -2.8421706e-16, y: 0.28508067, z: 0}
+ rotation: {x: 0.020536564, y: 0.00832135, z: -0.020624585, w: 0.9995417}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Hand
+ parentName: Left_LowerArm
+ position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexProximal
+ parentName: Left_Hand
+ position: {x: 0.007815497, y: 0.0918443, z: 0.02657316}
+ rotation: {x: -0.0000789147, y: -0.7104809, z: -0.006305193, w: 0.70368826}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexIntermediate
+ parentName: Left_IndexProximal
+ position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16}
+ rotation: {x: 0.030199163, y: 0.00000005960465, z: -0.00000038841978, w: 0.9995439}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistal
+ parentName: Left_IndexIntermediate
+ position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16}
+ rotation: {x: 0.03945603, y: 0.000000016383924, z: 0.0000000332638, w: 0.9992213}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistalEnd
+ parentName: Left_IndexDistal
+ position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleProximal
+ parentName: Left_Hand
+ position: {x: 0.012847862, y: 0.08609763, z: 0.003435423}
+ rotation: {x: -0.004090429, y: -0.6610811, z: -0.004001968, w: 0.7502927}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleIntermediate
+ parentName: Left_MiddleProximal
+ position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17}
+ rotation: {x: 0.026233751, y: -0.000000029802322, z: -0.0000007133931, w: 0.99965584}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistal
+ parentName: Left_MiddleIntermediate
+ position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistalEnd
+ parentName: Left_MiddleDistal
+ position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyProximal
+ parentName: Left_Hand
+ position: {x: 0.004436847, y: 0.07288173, z: -0.029359013}
+ rotation: {x: -0.02007038, y: -0.5504896, z: -0.008246153, w: 0.83456}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyIntermediate
+ parentName: Left_PinkyProximal
+ position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16}
+ rotation: {x: 0.028115956, y: -0.00000008940699, z: -0.0000005941839, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistal
+ parentName: Left_PinkyIntermediate
+ position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17}
+ rotation: {x: 0.03643686, y: 0.00000014611446, z: 0.00000018696, w: 0.999336}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistalEnd
+ parentName: Left_PinkyDistal
+ position: {x: -1.2434495e-16, y: 0.018519057, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingProximal
+ parentName: Left_Hand
+ position: {x: 0.009525569, y: 0.08161553, z: -0.012242405}
+ rotation: {x: -0.017654313, y: -0.6026994, z: -0.0040520057, w: 0.79776275}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingIntermediate
+ parentName: Left_RingProximal
+ position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16}
+ rotation: {x: 0.023556013, y: 0.00000026822087, z: 0.0000007636844, w: 0.99972254}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistal
+ parentName: Left_RingIntermediate
+ position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16}
+ rotation: {x: 0.03908592, y: -0.000000019744585, z: 0.00000042049942, w: 0.9992359}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistalEnd
+ parentName: Left_RingDistal
+ position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbProximal
+ parentName: Left_Hand
+ position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476}
+ rotation: {x: 0.1796032, y: 0.8841741, z: 0.4239896, w: -0.07881452}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbIntermediate
+ parentName: Left_ThumbProximal
+ position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592}
+ rotation: {x: 0.1278054, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistal
+ parentName: Left_ThumbIntermediate
+ position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915}
+ rotation: {x: -0.045421924, y: -0.00000036741366, z: -0.0000008691409, w: 0.9989679}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistalEnd
+ parentName: Left_ThumbDistal
+ position: {x: -4.2632555e-16, y: 0.029458016, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck
+ parentName: UpperChest
+ position: {x: -0, y: 0.25104657, z: -0.015329581}
+ rotation: {x: 0.060688436, y: -0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Head
+ parentName: Neck
+ position: {x: -0, y: 0.12747401, z: 0}
+ rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Jaw
+ parentName: Head
+ position: {x: -0, y: -0.00763539, z: 0.012895278}
+ rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Eye
+ parentName: Head
+ position: {x: -0.03330326, y: 0.034598116, z: 0.0867403}
+ rotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Eye
+ parentName: Head
+ position: {x: 0.033303294, y: 0.03459628, z: 0.0867403}
+ rotation: {x: 0.7071068, y: 4.3297806e-17, z: 0.7071068, w: -4.3297806e-17}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck_Twist_A
+ parentName: Neck
+ position: {x: -0, y: 0.063737005, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Shoulder
+ parentName: UpperChest
+ position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803}
+ rotation: {x: 0.99258024, y: -0.04327539, z: -0.113521874, w: 0.004949396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperArm
+ parentName: Right_Shoulder
+ position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746}
+ rotation: {x: 0.1267345, y: 0.033320885, z: 0.68096745, w: 0.720494}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerArm
+ parentName: Right_UpperArm
+ position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226}
+ rotation: {x: 0.020541133, y: 0.008317431, z: -0.020620903, w: 0.99954176}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Hand
+ parentName: Right_LowerArm
+ position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexProximal
+ parentName: Right_Hand
+ position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574}
+ rotation: {x: -0.00008773989, y: -0.7104814, z: -0.0063276542, w: 0.7036876}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexIntermediate
+ parentName: Right_IndexProximal
+ position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077}
+ rotation: {x: 0.03020306, y: -0.0000005662439, z: 0.000012195228, w: 0.99954385}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistal
+ parentName: Right_IndexIntermediate
+ position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629}
+ rotation: {x: 0.03948371, y: -0.000000052504312, z: -0.000005515076, w: 0.99922025}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistalEnd
+ parentName: Right_IndexDistal
+ position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131}
+ rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleProximal
+ parentName: Right_Hand
+ position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337}
+ rotation: {x: -0.0040856875, y: -0.6610817, z: -0.0040004994, w: 0.7502922}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleIntermediate
+ parentName: Right_MiddleProximal
+ position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695}
+ rotation: {x: 0.026226329, y: -0.0000007450579, z: -0.0000027469353, w: 0.9996561}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistal
+ parentName: Right_MiddleIntermediate
+ position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistalEnd
+ parentName: Right_MiddleDistal
+ position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyProximal
+ parentName: Right_Hand
+ position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566}
+ rotation: {x: -0.020058475, y: -0.55049545, z: -0.008249418, w: 0.83455646}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyIntermediate
+ parentName: Right_PinkyProximal
+ position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623}
+ rotation: {x: 0.02811499, y: -0.0000035166731, z: -0.00000016298141, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistal
+ parentName: Right_PinkyIntermediate
+ position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345}
+ rotation: {x: 0.03642403, y: -0.0000024211556, z: -0.000008829222, w: 0.9993365}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistalEnd
+ parentName: Right_PinkyDistal
+ position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108}
+ rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingProximal
+ parentName: Right_Hand
+ position: {x: -0.00952738, y: -0.08161427, z: 0.012242128}
+ rotation: {x: -0.017649079, y: -0.6027014, z: -0.0040535578, w: 0.7977614}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingIntermediate
+ parentName: Right_RingProximal
+ position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335}
+ rotation: {x: 0.023547903, y: 0.0000024139879, z: 0.0000069094813, w: 0.9997228}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistal
+ parentName: Right_RingIntermediate
+ position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098}
+ rotation: {x: 0.039100695, y: 0.00000009656897, z: -0.000004755179, w: 0.99923533}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistalEnd
+ parentName: Right_RingDistal
+ position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459}
+ rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbProximal
+ parentName: Right_Hand
+ position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695}
+ rotation: {x: 0.17960793, y: 0.8841713, z: 0.42399347, w: -0.07881395}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbIntermediate
+ parentName: Right_ThumbProximal
+ position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848}
+ rotation: {x: 0.12780538, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistal
+ parentName: Right_ThumbIntermediate
+ position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783}
+ rotation: {x: -0.04541878, y: -0.000003060937, z: 0.000004811603, w: 0.99896806}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistalEnd
+ parentName: Right_ThumbDistal
+ position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683}
+ rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ armTwist: 1
+ foreArmTwist: 0
+ upperLegTwist: 1
+ legTwist: 0
+ armStretch: 0
+ legStretch: 0
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 1
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 597976b6b3e452c499a186f5f40cbf87, type: 3}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 3
+ humanoidOversampling: 1
+ avatarSetup: 2
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--Jump.anim.fbx b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--Jump.anim.fbx
new file mode 100644
index 00000000..73d426da
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--Jump.anim.fbx differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--Jump.anim.fbx.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--Jump.anim.fbx.meta
new file mode 100644
index 00000000..3f199527
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Jump--Jump.anim.fbx.meta
@@ -0,0 +1,953 @@
+fileFormatVersion: 2
+guid: 2d23be5e9434d5048b641985a85fcc81
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable:
+ - first:
+ 74: 7478122292733868173
+ second: JumpStart
+ - first:
+ 74: -2702400367771620057
+ second: InAir
+ - first:
+ 74: -9098803823909532060
+ second: JumpLand
+ externalObjects: {}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.05
+ animationPositionError: 0.05
+ animationScaleError: 0.25
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations:
+ - serializedVersion: 16
+ name: JumpStart
+ takeName: JumpStart
+ internalID: 0
+ firstFrame: 28
+ lastFrame: 40
+ wrapMode: 0
+ orientationOffsetY: 0
+ level: 0.2
+ cycleOffset: 0
+ loop: 0
+ hasAdditiveReferencePose: 0
+ loopTime: 0
+ loopBlend: 0
+ loopBlendOrientation: 1
+ loopBlendPositionY: 1
+ loopBlendPositionXZ: 1
+ keepOriginalOrientation: 1
+ keepOriginalPositionY: 1
+ keepOriginalPositionXZ: 1
+ heightFromFeet: 0
+ mirror: 0
+ bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
+ curves: []
+ events: []
+ transformMask: []
+ maskType: 3
+ maskSource: {instanceID: 0}
+ additiveReferencePoseFrame: 20
+ - serializedVersion: 16
+ name: JumpLand
+ takeName: JumpStart
+ internalID: 0
+ firstFrame: 55
+ lastFrame: 74
+ wrapMode: 0
+ orientationOffsetY: 0
+ level: 0
+ cycleOffset: 0
+ loop: 0
+ hasAdditiveReferencePose: 0
+ loopTime: 0
+ loopBlend: 0
+ loopBlendOrientation: 1
+ loopBlendPositionY: 1
+ loopBlendPositionXZ: 1
+ keepOriginalOrientation: 1
+ keepOriginalPositionY: 1
+ keepOriginalPositionXZ: 1
+ heightFromFeet: 0
+ mirror: 0
+ bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
+ curves: []
+ events: []
+ transformMask: []
+ maskType: 3
+ maskSource: {instanceID: 0}
+ additiveReferencePoseFrame: 20
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human:
+ - boneName: Hips
+ humanName: Hips
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperLeg
+ humanName: RightUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerLeg
+ humanName: RightLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Foot
+ humanName: RightFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Toes
+ humanName: RightToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Spine
+ humanName: Spine
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Chest
+ humanName: Chest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: UpperChest
+ humanName: UpperChest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Shoulder
+ humanName: RightShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperArm
+ humanName: RightUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerArm
+ humanName: RightLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Hand
+ humanName: RightHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Neck
+ humanName: Neck
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Head
+ humanName: Head
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Jaw
+ humanName: Jaw
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Shoulder
+ humanName: LeftShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperArm
+ humanName: LeftUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerArm
+ humanName: LeftLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Hand
+ humanName: LeftHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperLeg
+ humanName: LeftUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerLeg
+ humanName: LeftLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Foot
+ humanName: LeftFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Toes
+ humanName: LeftToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbProximal
+ humanName: Left Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbIntermediate
+ humanName: Left Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbDistal
+ humanName: Left Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexProximal
+ humanName: Left Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexIntermediate
+ humanName: Left Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexDistal
+ humanName: Left Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleProximal
+ humanName: Left Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleIntermediate
+ humanName: Left Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleDistal
+ humanName: Left Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingProximal
+ humanName: Left Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingIntermediate
+ humanName: Left Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingDistal
+ humanName: Left Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyProximal
+ humanName: Left Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyIntermediate
+ humanName: Left Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyDistal
+ humanName: Left Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbProximal
+ humanName: Right Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbIntermediate
+ humanName: Right Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbDistal
+ humanName: Right Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexProximal
+ humanName: Right Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexIntermediate
+ humanName: Right Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexDistal
+ humanName: Right Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleProximal
+ humanName: Right Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleIntermediate
+ humanName: Right Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleDistal
+ humanName: Right Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingProximal
+ humanName: Right Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingIntermediate
+ humanName: Right Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingDistal
+ humanName: Right Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyProximal
+ humanName: Right Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyIntermediate
+ humanName: Right Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyDistal
+ humanName: Right Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ skeleton:
+ - name: Mannequin(Clone)
+ parentName:
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Geometry
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Mannequin_Mesh
+ parentName: Geometry
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Skeleton
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Hips
+ parentName: Skeleton
+ position: {x: -0, y: 0.9810986, z: -0.01590455}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperLeg
+ parentName: Hips
+ position: {x: -0.08610317, y: -0.053458035, z: -0.011470641}
+ rotation: {x: 0.999839, y: -0.01775374, z: 0.000046300094, w: -0.0026074864}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerLeg
+ parentName: Left_UpperLeg
+ position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Foot
+ parentName: Left_LowerLeg
+ position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Toes
+ parentName: Left_Foot
+ position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506}
+ rotation: {x: -0.7071068, y: 8.7157646e-33, z: -8.7157646e-33, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ToesEnd
+ parentName: Left_Toes
+ position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperLeg
+ parentName: Hips
+ position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475}
+ rotation: {x: 0.0026075041, y: 0.000046300407, z: 0.01775374, w: 0.999839}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerLeg
+ parentName: Right_UpperLeg
+ position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Foot
+ parentName: Right_LowerLeg
+ position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Toes
+ parentName: Right_Foot
+ position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807}
+ rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ToesEnd
+ parentName: Right_Toes
+ position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Spine
+ parentName: Hips
+ position: {x: -0, y: 0.058229383, z: 0.0012229546}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Chest
+ parentName: Spine
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: UpperChest
+ parentName: Chest
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Shoulder
+ parentName: UpperChest
+ position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945}
+ rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperArm
+ parentName: Left_Shoulder
+ position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17}
+ rotation: {x: 0.12673509, y: 0.03332071, z: 0.6809724, w: 0.72048914}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerArm
+ parentName: Left_UpperArm
+ position: {x: -2.8421706e-16, y: 0.28508067, z: 0}
+ rotation: {x: 0.020536564, y: 0.00832135, z: -0.020624585, w: 0.9995417}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Hand
+ parentName: Left_LowerArm
+ position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexProximal
+ parentName: Left_Hand
+ position: {x: 0.007815497, y: 0.0918443, z: 0.02657316}
+ rotation: {x: -0.0000789147, y: -0.7104809, z: -0.006305193, w: 0.70368826}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexIntermediate
+ parentName: Left_IndexProximal
+ position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16}
+ rotation: {x: 0.030199163, y: 0.00000005960465, z: -0.00000038841978, w: 0.9995439}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistal
+ parentName: Left_IndexIntermediate
+ position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16}
+ rotation: {x: 0.03945603, y: 0.000000016383924, z: 0.0000000332638, w: 0.9992213}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistalEnd
+ parentName: Left_IndexDistal
+ position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleProximal
+ parentName: Left_Hand
+ position: {x: 0.012847862, y: 0.08609763, z: 0.003435423}
+ rotation: {x: -0.004090429, y: -0.6610811, z: -0.004001968, w: 0.7502927}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleIntermediate
+ parentName: Left_MiddleProximal
+ position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17}
+ rotation: {x: 0.026233751, y: -0.000000029802322, z: -0.0000007133931, w: 0.99965584}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistal
+ parentName: Left_MiddleIntermediate
+ position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistalEnd
+ parentName: Left_MiddleDistal
+ position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyProximal
+ parentName: Left_Hand
+ position: {x: 0.004436847, y: 0.07288173, z: -0.029359013}
+ rotation: {x: -0.02007038, y: -0.5504896, z: -0.008246153, w: 0.83456}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyIntermediate
+ parentName: Left_PinkyProximal
+ position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16}
+ rotation: {x: 0.028115956, y: -0.00000008940699, z: -0.0000005941839, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistal
+ parentName: Left_PinkyIntermediate
+ position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17}
+ rotation: {x: 0.03643686, y: 0.00000014611446, z: 0.00000018696, w: 0.999336}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistalEnd
+ parentName: Left_PinkyDistal
+ position: {x: -1.2434495e-16, y: 0.018519057, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingProximal
+ parentName: Left_Hand
+ position: {x: 0.009525569, y: 0.08161553, z: -0.012242405}
+ rotation: {x: -0.017654313, y: -0.6026994, z: -0.0040520057, w: 0.79776275}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingIntermediate
+ parentName: Left_RingProximal
+ position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16}
+ rotation: {x: 0.023556013, y: 0.00000026822087, z: 0.0000007636844, w: 0.99972254}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistal
+ parentName: Left_RingIntermediate
+ position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16}
+ rotation: {x: 0.03908592, y: -0.000000019744585, z: 0.00000042049942, w: 0.9992359}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistalEnd
+ parentName: Left_RingDistal
+ position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbProximal
+ parentName: Left_Hand
+ position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476}
+ rotation: {x: 0.1796032, y: 0.8841741, z: 0.4239896, w: -0.07881452}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbIntermediate
+ parentName: Left_ThumbProximal
+ position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592}
+ rotation: {x: 0.1278054, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistal
+ parentName: Left_ThumbIntermediate
+ position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915}
+ rotation: {x: -0.045421924, y: -0.00000036741366, z: -0.0000008691409, w: 0.9989679}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistalEnd
+ parentName: Left_ThumbDistal
+ position: {x: -4.2632555e-16, y: 0.029458016, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck
+ parentName: UpperChest
+ position: {x: -0, y: 0.25104657, z: -0.015329581}
+ rotation: {x: 0.060688436, y: -0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Head
+ parentName: Neck
+ position: {x: -0, y: 0.12747401, z: 0}
+ rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Jaw
+ parentName: Head
+ position: {x: -0, y: -0.00763539, z: 0.012895278}
+ rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Eye
+ parentName: Head
+ position: {x: -0.03330326, y: 0.034598116, z: 0.0867403}
+ rotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Eye
+ parentName: Head
+ position: {x: 0.033303294, y: 0.03459628, z: 0.0867403}
+ rotation: {x: 0.7071068, y: 4.3297806e-17, z: 0.7071068, w: -4.3297806e-17}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck_Twist_A
+ parentName: Neck
+ position: {x: -0, y: 0.063737005, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Shoulder
+ parentName: UpperChest
+ position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803}
+ rotation: {x: 0.99258024, y: -0.04327539, z: -0.113521874, w: 0.004949396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperArm
+ parentName: Right_Shoulder
+ position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746}
+ rotation: {x: 0.1267345, y: 0.033320885, z: 0.68096745, w: 0.720494}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerArm
+ parentName: Right_UpperArm
+ position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226}
+ rotation: {x: 0.020541133, y: 0.008317431, z: -0.020620903, w: 0.99954176}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Hand
+ parentName: Right_LowerArm
+ position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexProximal
+ parentName: Right_Hand
+ position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574}
+ rotation: {x: -0.00008773989, y: -0.7104814, z: -0.0063276542, w: 0.7036876}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexIntermediate
+ parentName: Right_IndexProximal
+ position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077}
+ rotation: {x: 0.03020306, y: -0.0000005662439, z: 0.000012195228, w: 0.99954385}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistal
+ parentName: Right_IndexIntermediate
+ position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629}
+ rotation: {x: 0.03948371, y: -0.000000052504312, z: -0.000005515076, w: 0.99922025}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistalEnd
+ parentName: Right_IndexDistal
+ position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131}
+ rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleProximal
+ parentName: Right_Hand
+ position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337}
+ rotation: {x: -0.0040856875, y: -0.6610817, z: -0.0040004994, w: 0.7502922}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleIntermediate
+ parentName: Right_MiddleProximal
+ position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695}
+ rotation: {x: 0.026226329, y: -0.0000007450579, z: -0.0000027469353, w: 0.9996561}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistal
+ parentName: Right_MiddleIntermediate
+ position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistalEnd
+ parentName: Right_MiddleDistal
+ position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyProximal
+ parentName: Right_Hand
+ position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566}
+ rotation: {x: -0.020058475, y: -0.55049545, z: -0.008249418, w: 0.83455646}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyIntermediate
+ parentName: Right_PinkyProximal
+ position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623}
+ rotation: {x: 0.02811499, y: -0.0000035166731, z: -0.00000016298141, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistal
+ parentName: Right_PinkyIntermediate
+ position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345}
+ rotation: {x: 0.03642403, y: -0.0000024211556, z: -0.000008829222, w: 0.9993365}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistalEnd
+ parentName: Right_PinkyDistal
+ position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108}
+ rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingProximal
+ parentName: Right_Hand
+ position: {x: -0.00952738, y: -0.08161427, z: 0.012242128}
+ rotation: {x: -0.017649079, y: -0.6027014, z: -0.0040535578, w: 0.7977614}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingIntermediate
+ parentName: Right_RingProximal
+ position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335}
+ rotation: {x: 0.023547903, y: 0.0000024139879, z: 0.0000069094813, w: 0.9997228}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistal
+ parentName: Right_RingIntermediate
+ position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098}
+ rotation: {x: 0.039100695, y: 0.00000009656897, z: -0.000004755179, w: 0.99923533}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistalEnd
+ parentName: Right_RingDistal
+ position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459}
+ rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbProximal
+ parentName: Right_Hand
+ position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695}
+ rotation: {x: 0.17960793, y: 0.8841713, z: 0.42399347, w: -0.07881395}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbIntermediate
+ parentName: Right_ThumbProximal
+ position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848}
+ rotation: {x: 0.12780538, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistal
+ parentName: Right_ThumbIntermediate
+ position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783}
+ rotation: {x: -0.04541878, y: -0.000003060937, z: 0.000004811603, w: 0.99896806}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistalEnd
+ parentName: Right_ThumbDistal
+ position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683}
+ rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ armTwist: 1
+ foreArmTwist: 0
+ upperLegTwist: 1
+ legTwist: 0
+ armStretch: 0
+ legStretch: 0
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 1
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 597976b6b3e452c499a186f5f40cbf87, type: 3}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 3
+ humanoidOversampling: 1
+ avatarSetup: 2
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N.anim.fbx b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N.anim.fbx
new file mode 100644
index 00000000..e13c6b31
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N.anim.fbx differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N.anim.fbx.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N.anim.fbx.meta
new file mode 100644
index 00000000..cfe8c501
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N.anim.fbx.meta
@@ -0,0 +1,918 @@
+fileFormatVersion: 2
+guid: de5e2c79af098f84cbefb0eca5400827
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable:
+ - first:
+ 74: 6564411413370888346
+ second: Run_N
+ externalObjects: {}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.05
+ animationPositionError: 0.05
+ animationScaleError: 0.25
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations:
+ - serializedVersion: 16
+ name: Run_N
+ takeName: Run_N
+ internalID: 0
+ firstFrame: 0
+ lastFrame: 20
+ wrapMode: 0
+ orientationOffsetY: 0
+ level: 0
+ cycleOffset: 0
+ loop: 0
+ hasAdditiveReferencePose: 0
+ loopTime: 1
+ loopBlend: 0
+ loopBlendOrientation: 1
+ loopBlendPositionY: 1
+ loopBlendPositionXZ: 1
+ keepOriginalOrientation: 1
+ keepOriginalPositionY: 1
+ keepOriginalPositionXZ: 1
+ heightFromFeet: 0
+ mirror: 0
+ bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
+ curves: []
+ events: []
+ transformMask: []
+ maskType: 3
+ maskSource: {instanceID: 0}
+ additiveReferencePoseFrame: 0
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human:
+ - boneName: Hips
+ humanName: Hips
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperLeg
+ humanName: RightUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerLeg
+ humanName: RightLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Foot
+ humanName: RightFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Toes
+ humanName: RightToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Spine
+ humanName: Spine
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Chest
+ humanName: Chest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: UpperChest
+ humanName: UpperChest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Shoulder
+ humanName: RightShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperArm
+ humanName: RightUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerArm
+ humanName: RightLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Hand
+ humanName: RightHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Neck
+ humanName: Neck
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Head
+ humanName: Head
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Jaw
+ humanName: Jaw
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Shoulder
+ humanName: LeftShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperArm
+ humanName: LeftUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerArm
+ humanName: LeftLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Hand
+ humanName: LeftHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperLeg
+ humanName: LeftUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerLeg
+ humanName: LeftLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Foot
+ humanName: LeftFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Toes
+ humanName: LeftToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbProximal
+ humanName: Left Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbIntermediate
+ humanName: Left Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbDistal
+ humanName: Left Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexProximal
+ humanName: Left Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexIntermediate
+ humanName: Left Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexDistal
+ humanName: Left Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleProximal
+ humanName: Left Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleIntermediate
+ humanName: Left Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleDistal
+ humanName: Left Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingProximal
+ humanName: Left Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingIntermediate
+ humanName: Left Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingDistal
+ humanName: Left Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyProximal
+ humanName: Left Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyIntermediate
+ humanName: Left Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyDistal
+ humanName: Left Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbProximal
+ humanName: Right Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbIntermediate
+ humanName: Right Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbDistal
+ humanName: Right Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexProximal
+ humanName: Right Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexIntermediate
+ humanName: Right Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexDistal
+ humanName: Right Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleProximal
+ humanName: Right Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleIntermediate
+ humanName: Right Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleDistal
+ humanName: Right Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingProximal
+ humanName: Right Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingIntermediate
+ humanName: Right Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingDistal
+ humanName: Right Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyProximal
+ humanName: Right Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyIntermediate
+ humanName: Right Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyDistal
+ humanName: Right Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ skeleton:
+ - name: Mannequin(Clone)
+ parentName:
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Geometry
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Mannequin_Mesh
+ parentName: Geometry
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Skeleton
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Hips
+ parentName: Skeleton
+ position: {x: -0, y: 0.9810986, z: -0.01590455}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperLeg
+ parentName: Hips
+ position: {x: -0.08610317, y: -0.053458035, z: -0.011470641}
+ rotation: {x: 0.999839, y: -0.01775374, z: 0.000046300094, w: -0.0026074864}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerLeg
+ parentName: Left_UpperLeg
+ position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Foot
+ parentName: Left_LowerLeg
+ position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Toes
+ parentName: Left_Foot
+ position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506}
+ rotation: {x: -0.7071068, y: 8.7157646e-33, z: -8.7157646e-33, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ToesEnd
+ parentName: Left_Toes
+ position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperLeg
+ parentName: Hips
+ position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475}
+ rotation: {x: 0.0026075041, y: 0.000046300407, z: 0.01775374, w: 0.999839}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerLeg
+ parentName: Right_UpperLeg
+ position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Foot
+ parentName: Right_LowerLeg
+ position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Toes
+ parentName: Right_Foot
+ position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807}
+ rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ToesEnd
+ parentName: Right_Toes
+ position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Spine
+ parentName: Hips
+ position: {x: -0, y: 0.058229383, z: 0.0012229546}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Chest
+ parentName: Spine
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: UpperChest
+ parentName: Chest
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Shoulder
+ parentName: UpperChest
+ position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945}
+ rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperArm
+ parentName: Left_Shoulder
+ position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17}
+ rotation: {x: 0.12673509, y: 0.03332071, z: 0.6809724, w: 0.72048914}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerArm
+ parentName: Left_UpperArm
+ position: {x: -2.8421706e-16, y: 0.28508067, z: 0}
+ rotation: {x: 0.020536564, y: 0.00832135, z: -0.020624585, w: 0.9995417}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Hand
+ parentName: Left_LowerArm
+ position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexProximal
+ parentName: Left_Hand
+ position: {x: 0.007815497, y: 0.0918443, z: 0.02657316}
+ rotation: {x: -0.0000789147, y: -0.7104809, z: -0.006305193, w: 0.70368826}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexIntermediate
+ parentName: Left_IndexProximal
+ position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16}
+ rotation: {x: 0.030199163, y: 0.00000005960465, z: -0.00000038841978, w: 0.9995439}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistal
+ parentName: Left_IndexIntermediate
+ position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16}
+ rotation: {x: 0.03945603, y: 0.000000016383924, z: 0.0000000332638, w: 0.9992213}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistalEnd
+ parentName: Left_IndexDistal
+ position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleProximal
+ parentName: Left_Hand
+ position: {x: 0.012847862, y: 0.08609763, z: 0.003435423}
+ rotation: {x: -0.004090429, y: -0.6610811, z: -0.004001968, w: 0.7502927}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleIntermediate
+ parentName: Left_MiddleProximal
+ position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17}
+ rotation: {x: 0.026233751, y: -0.000000029802322, z: -0.0000007133931, w: 0.99965584}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistal
+ parentName: Left_MiddleIntermediate
+ position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistalEnd
+ parentName: Left_MiddleDistal
+ position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyProximal
+ parentName: Left_Hand
+ position: {x: 0.004436847, y: 0.07288173, z: -0.029359013}
+ rotation: {x: -0.02007038, y: -0.5504896, z: -0.008246153, w: 0.83456}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyIntermediate
+ parentName: Left_PinkyProximal
+ position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16}
+ rotation: {x: 0.028115956, y: -0.00000008940699, z: -0.0000005941839, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistal
+ parentName: Left_PinkyIntermediate
+ position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17}
+ rotation: {x: 0.03643686, y: 0.00000014611446, z: 0.00000018696, w: 0.999336}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistalEnd
+ parentName: Left_PinkyDistal
+ position: {x: -1.2434495e-16, y: 0.018519057, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingProximal
+ parentName: Left_Hand
+ position: {x: 0.009525569, y: 0.08161553, z: -0.012242405}
+ rotation: {x: -0.017654313, y: -0.6026994, z: -0.0040520057, w: 0.79776275}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingIntermediate
+ parentName: Left_RingProximal
+ position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16}
+ rotation: {x: 0.023556013, y: 0.00000026822087, z: 0.0000007636844, w: 0.99972254}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistal
+ parentName: Left_RingIntermediate
+ position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16}
+ rotation: {x: 0.03908592, y: -0.000000019744585, z: 0.00000042049942, w: 0.9992359}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistalEnd
+ parentName: Left_RingDistal
+ position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbProximal
+ parentName: Left_Hand
+ position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476}
+ rotation: {x: 0.1796032, y: 0.8841741, z: 0.4239896, w: -0.07881452}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbIntermediate
+ parentName: Left_ThumbProximal
+ position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592}
+ rotation: {x: 0.1278054, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistal
+ parentName: Left_ThumbIntermediate
+ position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915}
+ rotation: {x: -0.045421924, y: -0.00000036741366, z: -0.0000008691409, w: 0.9989679}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistalEnd
+ parentName: Left_ThumbDistal
+ position: {x: -4.2632555e-16, y: 0.029458016, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck
+ parentName: UpperChest
+ position: {x: -0, y: 0.25104657, z: -0.015329581}
+ rotation: {x: 0.060688436, y: -0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Head
+ parentName: Neck
+ position: {x: -0, y: 0.12747401, z: 0}
+ rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Jaw
+ parentName: Head
+ position: {x: -0, y: -0.00763539, z: 0.012895278}
+ rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Eye
+ parentName: Head
+ position: {x: -0.03330326, y: 0.034598116, z: 0.0867403}
+ rotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Eye
+ parentName: Head
+ position: {x: 0.033303294, y: 0.03459628, z: 0.0867403}
+ rotation: {x: 0.7071068, y: 4.3297806e-17, z: 0.7071068, w: -4.3297806e-17}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck_Twist_A
+ parentName: Neck
+ position: {x: -0, y: 0.063737005, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Shoulder
+ parentName: UpperChest
+ position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803}
+ rotation: {x: 0.99258024, y: -0.04327539, z: -0.113521874, w: 0.004949396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperArm
+ parentName: Right_Shoulder
+ position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746}
+ rotation: {x: 0.1267345, y: 0.033320885, z: 0.68096745, w: 0.720494}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerArm
+ parentName: Right_UpperArm
+ position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226}
+ rotation: {x: 0.020541133, y: 0.008317431, z: -0.020620903, w: 0.99954176}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Hand
+ parentName: Right_LowerArm
+ position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexProximal
+ parentName: Right_Hand
+ position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574}
+ rotation: {x: -0.00008773989, y: -0.7104814, z: -0.0063276542, w: 0.7036876}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexIntermediate
+ parentName: Right_IndexProximal
+ position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077}
+ rotation: {x: 0.03020306, y: -0.0000005662439, z: 0.000012195228, w: 0.99954385}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistal
+ parentName: Right_IndexIntermediate
+ position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629}
+ rotation: {x: 0.03948371, y: -0.000000052504312, z: -0.000005515076, w: 0.99922025}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistalEnd
+ parentName: Right_IndexDistal
+ position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131}
+ rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleProximal
+ parentName: Right_Hand
+ position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337}
+ rotation: {x: -0.0040856875, y: -0.6610817, z: -0.0040004994, w: 0.7502922}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleIntermediate
+ parentName: Right_MiddleProximal
+ position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695}
+ rotation: {x: 0.026226329, y: -0.0000007450579, z: -0.0000027469353, w: 0.9996561}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistal
+ parentName: Right_MiddleIntermediate
+ position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistalEnd
+ parentName: Right_MiddleDistal
+ position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyProximal
+ parentName: Right_Hand
+ position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566}
+ rotation: {x: -0.020058475, y: -0.55049545, z: -0.008249418, w: 0.83455646}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyIntermediate
+ parentName: Right_PinkyProximal
+ position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623}
+ rotation: {x: 0.02811499, y: -0.0000035166731, z: -0.00000016298141, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistal
+ parentName: Right_PinkyIntermediate
+ position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345}
+ rotation: {x: 0.03642403, y: -0.0000024211556, z: -0.000008829222, w: 0.9993365}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistalEnd
+ parentName: Right_PinkyDistal
+ position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108}
+ rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingProximal
+ parentName: Right_Hand
+ position: {x: -0.00952738, y: -0.08161427, z: 0.012242128}
+ rotation: {x: -0.017649079, y: -0.6027014, z: -0.0040535578, w: 0.7977614}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingIntermediate
+ parentName: Right_RingProximal
+ position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335}
+ rotation: {x: 0.023547903, y: 0.0000024139879, z: 0.0000069094813, w: 0.9997228}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistal
+ parentName: Right_RingIntermediate
+ position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098}
+ rotation: {x: 0.039100695, y: 0.00000009656897, z: -0.000004755179, w: 0.99923533}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistalEnd
+ parentName: Right_RingDistal
+ position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459}
+ rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbProximal
+ parentName: Right_Hand
+ position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695}
+ rotation: {x: 0.17960793, y: 0.8841713, z: 0.42399347, w: -0.07881395}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbIntermediate
+ parentName: Right_ThumbProximal
+ position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848}
+ rotation: {x: 0.12780538, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistal
+ parentName: Right_ThumbIntermediate
+ position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783}
+ rotation: {x: -0.04541878, y: -0.000003060937, z: 0.000004811603, w: 0.99896806}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistalEnd
+ parentName: Right_ThumbDistal
+ position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683}
+ rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ armTwist: 1
+ foreArmTwist: 0
+ upperLegTwist: 1
+ legTwist: 0
+ armStretch: 0
+ legStretch: 0
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 1
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 597976b6b3e452c499a186f5f40cbf87, type: 3}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 3
+ humanoidOversampling: 1
+ avatarSetup: 2
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N_Land.anim.fbx b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N_Land.anim.fbx
new file mode 100644
index 00000000..b92e2826
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N_Land.anim.fbx differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N_Land.anim.fbx.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N_Land.anim.fbx.meta
new file mode 100644
index 00000000..4c317f15
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Run_N_Land.anim.fbx.meta
@@ -0,0 +1,918 @@
+fileFormatVersion: 2
+guid: 5a062b6e69369a948ab0756a92ada2a5
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable:
+ - first:
+ 74: -2817517482862745934
+ second: Run_N_Land
+ externalObjects: {}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 1
+ animationCompression: 1
+ animationRotationError: 0.05
+ animationPositionError: 0.05
+ animationScaleError: 0.25
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations:
+ - serializedVersion: 16
+ name: Run_N_Land
+ takeName: Run_N_Land
+ internalID: 0
+ firstFrame: 0
+ lastFrame: 20
+ wrapMode: 0
+ orientationOffsetY: 0
+ level: 0
+ cycleOffset: 0
+ loop: 0
+ hasAdditiveReferencePose: 0
+ loopTime: 0
+ loopBlend: 0
+ loopBlendOrientation: 1
+ loopBlendPositionY: 1
+ loopBlendPositionXZ: 1
+ keepOriginalOrientation: 1
+ keepOriginalPositionY: 1
+ keepOriginalPositionXZ: 1
+ heightFromFeet: 0
+ mirror: 0
+ bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
+ curves: []
+ events: []
+ transformMask: []
+ maskType: 3
+ maskSource: {instanceID: 0}
+ additiveReferencePoseFrame: 0
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human:
+ - boneName: Hips
+ humanName: Hips
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperLeg
+ humanName: RightUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerLeg
+ humanName: RightLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Foot
+ humanName: RightFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Toes
+ humanName: RightToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Spine
+ humanName: Spine
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Chest
+ humanName: Chest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: UpperChest
+ humanName: UpperChest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Shoulder
+ humanName: RightShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperArm
+ humanName: RightUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerArm
+ humanName: RightLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Hand
+ humanName: RightHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Neck
+ humanName: Neck
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Head
+ humanName: Head
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Jaw
+ humanName: Jaw
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Shoulder
+ humanName: LeftShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperArm
+ humanName: LeftUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerArm
+ humanName: LeftLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Hand
+ humanName: LeftHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperLeg
+ humanName: LeftUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerLeg
+ humanName: LeftLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Foot
+ humanName: LeftFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Toes
+ humanName: LeftToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbProximal
+ humanName: Left Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbIntermediate
+ humanName: Left Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbDistal
+ humanName: Left Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexProximal
+ humanName: Left Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexIntermediate
+ humanName: Left Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexDistal
+ humanName: Left Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleProximal
+ humanName: Left Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleIntermediate
+ humanName: Left Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleDistal
+ humanName: Left Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingProximal
+ humanName: Left Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingIntermediate
+ humanName: Left Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingDistal
+ humanName: Left Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyProximal
+ humanName: Left Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyIntermediate
+ humanName: Left Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyDistal
+ humanName: Left Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbProximal
+ humanName: Right Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbIntermediate
+ humanName: Right Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbDistal
+ humanName: Right Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexProximal
+ humanName: Right Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexIntermediate
+ humanName: Right Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexDistal
+ humanName: Right Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleProximal
+ humanName: Right Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleIntermediate
+ humanName: Right Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleDistal
+ humanName: Right Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingProximal
+ humanName: Right Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingIntermediate
+ humanName: Right Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingDistal
+ humanName: Right Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyProximal
+ humanName: Right Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyIntermediate
+ humanName: Right Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyDistal
+ humanName: Right Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ skeleton:
+ - name: Mannequin(Clone)
+ parentName:
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Geometry
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Mannequin_Mesh
+ parentName: Geometry
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Skeleton
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Hips
+ parentName: Skeleton
+ position: {x: -0, y: 0.9810986, z: -0.01590455}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperLeg
+ parentName: Hips
+ position: {x: -0.08610317, y: -0.053458035, z: -0.011470641}
+ rotation: {x: 0.999839, y: -0.01775374, z: 0.000046300094, w: -0.0026074864}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerLeg
+ parentName: Left_UpperLeg
+ position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Foot
+ parentName: Left_LowerLeg
+ position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Toes
+ parentName: Left_Foot
+ position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506}
+ rotation: {x: -0.7071068, y: 8.7157646e-33, z: -8.7157646e-33, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ToesEnd
+ parentName: Left_Toes
+ position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperLeg
+ parentName: Hips
+ position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475}
+ rotation: {x: 0.0026075041, y: 0.000046300407, z: 0.01775374, w: 0.999839}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerLeg
+ parentName: Right_UpperLeg
+ position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Foot
+ parentName: Right_LowerLeg
+ position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Toes
+ parentName: Right_Foot
+ position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807}
+ rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ToesEnd
+ parentName: Right_Toes
+ position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Spine
+ parentName: Hips
+ position: {x: -0, y: 0.058229383, z: 0.0012229546}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Chest
+ parentName: Spine
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: UpperChest
+ parentName: Chest
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Shoulder
+ parentName: UpperChest
+ position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945}
+ rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperArm
+ parentName: Left_Shoulder
+ position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17}
+ rotation: {x: 0.12673509, y: 0.03332071, z: 0.6809724, w: 0.72048914}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerArm
+ parentName: Left_UpperArm
+ position: {x: -2.8421706e-16, y: 0.28508067, z: 0}
+ rotation: {x: 0.020536564, y: 0.00832135, z: -0.020624585, w: 0.9995417}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Hand
+ parentName: Left_LowerArm
+ position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexProximal
+ parentName: Left_Hand
+ position: {x: 0.007815497, y: 0.0918443, z: 0.02657316}
+ rotation: {x: -0.0000789147, y: -0.7104809, z: -0.006305193, w: 0.70368826}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexIntermediate
+ parentName: Left_IndexProximal
+ position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16}
+ rotation: {x: 0.030199163, y: 0.00000005960465, z: -0.00000038841978, w: 0.9995439}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistal
+ parentName: Left_IndexIntermediate
+ position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16}
+ rotation: {x: 0.03945603, y: 0.000000016383924, z: 0.0000000332638, w: 0.9992213}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistalEnd
+ parentName: Left_IndexDistal
+ position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleProximal
+ parentName: Left_Hand
+ position: {x: 0.012847862, y: 0.08609763, z: 0.003435423}
+ rotation: {x: -0.004090429, y: -0.6610811, z: -0.004001968, w: 0.7502927}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleIntermediate
+ parentName: Left_MiddleProximal
+ position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17}
+ rotation: {x: 0.026233751, y: -0.000000029802322, z: -0.0000007133931, w: 0.99965584}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistal
+ parentName: Left_MiddleIntermediate
+ position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistalEnd
+ parentName: Left_MiddleDistal
+ position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyProximal
+ parentName: Left_Hand
+ position: {x: 0.004436847, y: 0.07288173, z: -0.029359013}
+ rotation: {x: -0.02007038, y: -0.5504896, z: -0.008246153, w: 0.83456}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyIntermediate
+ parentName: Left_PinkyProximal
+ position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16}
+ rotation: {x: 0.028115956, y: -0.00000008940699, z: -0.0000005941839, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistal
+ parentName: Left_PinkyIntermediate
+ position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17}
+ rotation: {x: 0.03643686, y: 0.00000014611446, z: 0.00000018696, w: 0.999336}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistalEnd
+ parentName: Left_PinkyDistal
+ position: {x: -1.2434495e-16, y: 0.018519057, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingProximal
+ parentName: Left_Hand
+ position: {x: 0.009525569, y: 0.08161553, z: -0.012242405}
+ rotation: {x: -0.017654313, y: -0.6026994, z: -0.0040520057, w: 0.79776275}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingIntermediate
+ parentName: Left_RingProximal
+ position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16}
+ rotation: {x: 0.023556013, y: 0.00000026822087, z: 0.0000007636844, w: 0.99972254}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistal
+ parentName: Left_RingIntermediate
+ position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16}
+ rotation: {x: 0.03908592, y: -0.000000019744585, z: 0.00000042049942, w: 0.9992359}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistalEnd
+ parentName: Left_RingDistal
+ position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbProximal
+ parentName: Left_Hand
+ position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476}
+ rotation: {x: 0.1796032, y: 0.8841741, z: 0.4239896, w: -0.07881452}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbIntermediate
+ parentName: Left_ThumbProximal
+ position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592}
+ rotation: {x: 0.1278054, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistal
+ parentName: Left_ThumbIntermediate
+ position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915}
+ rotation: {x: -0.045421924, y: -0.00000036741366, z: -0.0000008691409, w: 0.9989679}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistalEnd
+ parentName: Left_ThumbDistal
+ position: {x: -4.2632555e-16, y: 0.029458016, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck
+ parentName: UpperChest
+ position: {x: -0, y: 0.25104657, z: -0.015329581}
+ rotation: {x: 0.060688436, y: -0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Head
+ parentName: Neck
+ position: {x: -0, y: 0.12747401, z: 0}
+ rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Jaw
+ parentName: Head
+ position: {x: -0, y: -0.00763539, z: 0.012895278}
+ rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Eye
+ parentName: Head
+ position: {x: -0.03330326, y: 0.034598116, z: 0.0867403}
+ rotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Eye
+ parentName: Head
+ position: {x: 0.033303294, y: 0.03459628, z: 0.0867403}
+ rotation: {x: 0.7071068, y: 4.3297806e-17, z: 0.7071068, w: -4.3297806e-17}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck_Twist_A
+ parentName: Neck
+ position: {x: -0, y: 0.063737005, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Shoulder
+ parentName: UpperChest
+ position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803}
+ rotation: {x: 0.99258024, y: -0.04327539, z: -0.113521874, w: 0.004949396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperArm
+ parentName: Right_Shoulder
+ position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746}
+ rotation: {x: 0.1267345, y: 0.033320885, z: 0.68096745, w: 0.720494}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerArm
+ parentName: Right_UpperArm
+ position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226}
+ rotation: {x: 0.020541133, y: 0.008317431, z: -0.020620903, w: 0.99954176}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Hand
+ parentName: Right_LowerArm
+ position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexProximal
+ parentName: Right_Hand
+ position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574}
+ rotation: {x: -0.00008773989, y: -0.7104814, z: -0.0063276542, w: 0.7036876}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexIntermediate
+ parentName: Right_IndexProximal
+ position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077}
+ rotation: {x: 0.03020306, y: -0.0000005662439, z: 0.000012195228, w: 0.99954385}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistal
+ parentName: Right_IndexIntermediate
+ position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629}
+ rotation: {x: 0.03948371, y: -0.000000052504312, z: -0.000005515076, w: 0.99922025}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistalEnd
+ parentName: Right_IndexDistal
+ position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131}
+ rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleProximal
+ parentName: Right_Hand
+ position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337}
+ rotation: {x: -0.0040856875, y: -0.6610817, z: -0.0040004994, w: 0.7502922}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleIntermediate
+ parentName: Right_MiddleProximal
+ position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695}
+ rotation: {x: 0.026226329, y: -0.0000007450579, z: -0.0000027469353, w: 0.9996561}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistal
+ parentName: Right_MiddleIntermediate
+ position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistalEnd
+ parentName: Right_MiddleDistal
+ position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyProximal
+ parentName: Right_Hand
+ position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566}
+ rotation: {x: -0.020058475, y: -0.55049545, z: -0.008249418, w: 0.83455646}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyIntermediate
+ parentName: Right_PinkyProximal
+ position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623}
+ rotation: {x: 0.02811499, y: -0.0000035166731, z: -0.00000016298141, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistal
+ parentName: Right_PinkyIntermediate
+ position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345}
+ rotation: {x: 0.03642403, y: -0.0000024211556, z: -0.000008829222, w: 0.9993365}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistalEnd
+ parentName: Right_PinkyDistal
+ position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108}
+ rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingProximal
+ parentName: Right_Hand
+ position: {x: -0.00952738, y: -0.08161427, z: 0.012242128}
+ rotation: {x: -0.017649079, y: -0.6027014, z: -0.0040535578, w: 0.7977614}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingIntermediate
+ parentName: Right_RingProximal
+ position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335}
+ rotation: {x: 0.023547903, y: 0.0000024139879, z: 0.0000069094813, w: 0.9997228}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistal
+ parentName: Right_RingIntermediate
+ position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098}
+ rotation: {x: 0.039100695, y: 0.00000009656897, z: -0.000004755179, w: 0.99923533}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistalEnd
+ parentName: Right_RingDistal
+ position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459}
+ rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbProximal
+ parentName: Right_Hand
+ position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695}
+ rotation: {x: 0.17960793, y: 0.8841713, z: 0.42399347, w: -0.07881395}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbIntermediate
+ parentName: Right_ThumbProximal
+ position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848}
+ rotation: {x: 0.12780538, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistal
+ parentName: Right_ThumbIntermediate
+ position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783}
+ rotation: {x: -0.04541878, y: -0.000003060937, z: 0.000004811603, w: 0.99896806}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistalEnd
+ parentName: Right_ThumbDistal
+ position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683}
+ rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ armTwist: 1
+ foreArmTwist: 0
+ upperLegTwist: 1
+ legTwist: 0
+ armStretch: 0
+ legStretch: 0
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 1
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 597976b6b3e452c499a186f5f40cbf87, type: 3}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 3
+ humanoidOversampling: 1
+ avatarSetup: 2
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N.anim.fbx b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N.anim.fbx
new file mode 100644
index 00000000..b85d4c10
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N.anim.fbx differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N.anim.fbx.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N.anim.fbx.meta
new file mode 100644
index 00000000..c1ba193d
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N.anim.fbx.meta
@@ -0,0 +1,918 @@
+fileFormatVersion: 2
+guid: a6eb3fccc7d4a3c4cb39dcac32812438
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable:
+ - first:
+ 74: 1657602633327794031
+ second: Walk_N
+ externalObjects: {}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.05
+ animationPositionError: 0.05
+ animationScaleError: 0.25
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations:
+ - serializedVersion: 16
+ name: Walk_N
+ takeName: Walk_N
+ internalID: 0
+ firstFrame: 0
+ lastFrame: 29
+ wrapMode: 0
+ orientationOffsetY: 0
+ level: 0
+ cycleOffset: 0
+ loop: 0
+ hasAdditiveReferencePose: 0
+ loopTime: 1
+ loopBlend: 1
+ loopBlendOrientation: 1
+ loopBlendPositionY: 1
+ loopBlendPositionXZ: 1
+ keepOriginalOrientation: 1
+ keepOriginalPositionY: 1
+ keepOriginalPositionXZ: 1
+ heightFromFeet: 0
+ mirror: 0
+ bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
+ curves: []
+ events: []
+ transformMask: []
+ maskType: 3
+ maskSource: {instanceID: 0}
+ additiveReferencePoseFrame: 0
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human:
+ - boneName: Hips
+ humanName: Hips
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperLeg
+ humanName: RightUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerLeg
+ humanName: RightLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Foot
+ humanName: RightFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Toes
+ humanName: RightToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Spine
+ humanName: Spine
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Chest
+ humanName: Chest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: UpperChest
+ humanName: UpperChest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Shoulder
+ humanName: RightShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperArm
+ humanName: RightUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerArm
+ humanName: RightLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Hand
+ humanName: RightHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Neck
+ humanName: Neck
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Head
+ humanName: Head
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Jaw
+ humanName: Jaw
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Shoulder
+ humanName: LeftShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperArm
+ humanName: LeftUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerArm
+ humanName: LeftLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Hand
+ humanName: LeftHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperLeg
+ humanName: LeftUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerLeg
+ humanName: LeftLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Foot
+ humanName: LeftFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Toes
+ humanName: LeftToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbProximal
+ humanName: Left Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbIntermediate
+ humanName: Left Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbDistal
+ humanName: Left Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexProximal
+ humanName: Left Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexIntermediate
+ humanName: Left Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexDistal
+ humanName: Left Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleProximal
+ humanName: Left Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleIntermediate
+ humanName: Left Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleDistal
+ humanName: Left Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingProximal
+ humanName: Left Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingIntermediate
+ humanName: Left Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingDistal
+ humanName: Left Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyProximal
+ humanName: Left Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyIntermediate
+ humanName: Left Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyDistal
+ humanName: Left Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbProximal
+ humanName: Right Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbIntermediate
+ humanName: Right Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbDistal
+ humanName: Right Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexProximal
+ humanName: Right Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexIntermediate
+ humanName: Right Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexDistal
+ humanName: Right Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleProximal
+ humanName: Right Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleIntermediate
+ humanName: Right Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleDistal
+ humanName: Right Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingProximal
+ humanName: Right Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingIntermediate
+ humanName: Right Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingDistal
+ humanName: Right Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyProximal
+ humanName: Right Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyIntermediate
+ humanName: Right Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyDistal
+ humanName: Right Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ skeleton:
+ - name: Mannequin(Clone)
+ parentName:
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Geometry
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Mannequin_Mesh
+ parentName: Geometry
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Skeleton
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Hips
+ parentName: Skeleton
+ position: {x: -0, y: 0.9810986, z: -0.01590455}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperLeg
+ parentName: Hips
+ position: {x: -0.08610317, y: -0.053458035, z: -0.011470641}
+ rotation: {x: 0.999839, y: -0.01775374, z: 0.000046300094, w: -0.0026074864}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerLeg
+ parentName: Left_UpperLeg
+ position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Foot
+ parentName: Left_LowerLeg
+ position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Toes
+ parentName: Left_Foot
+ position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506}
+ rotation: {x: -0.7071068, y: 8.7157646e-33, z: -8.7157646e-33, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ToesEnd
+ parentName: Left_Toes
+ position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperLeg
+ parentName: Hips
+ position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475}
+ rotation: {x: 0.0026075041, y: 0.000046300407, z: 0.01775374, w: 0.999839}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerLeg
+ parentName: Right_UpperLeg
+ position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Foot
+ parentName: Right_LowerLeg
+ position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Toes
+ parentName: Right_Foot
+ position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807}
+ rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ToesEnd
+ parentName: Right_Toes
+ position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Spine
+ parentName: Hips
+ position: {x: -0, y: 0.058229383, z: 0.0012229546}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Chest
+ parentName: Spine
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: UpperChest
+ parentName: Chest
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Shoulder
+ parentName: UpperChest
+ position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945}
+ rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperArm
+ parentName: Left_Shoulder
+ position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17}
+ rotation: {x: 0.12673509, y: 0.03332071, z: 0.6809724, w: 0.72048914}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerArm
+ parentName: Left_UpperArm
+ position: {x: -2.8421706e-16, y: 0.28508067, z: 0}
+ rotation: {x: 0.020536564, y: 0.00832135, z: -0.020624585, w: 0.9995417}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Hand
+ parentName: Left_LowerArm
+ position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexProximal
+ parentName: Left_Hand
+ position: {x: 0.007815497, y: 0.0918443, z: 0.02657316}
+ rotation: {x: -0.0000789147, y: -0.7104809, z: -0.006305193, w: 0.70368826}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexIntermediate
+ parentName: Left_IndexProximal
+ position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16}
+ rotation: {x: 0.030199163, y: 0.00000005960465, z: -0.00000038841978, w: 0.9995439}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistal
+ parentName: Left_IndexIntermediate
+ position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16}
+ rotation: {x: 0.03945603, y: 0.000000016383924, z: 0.0000000332638, w: 0.9992213}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistalEnd
+ parentName: Left_IndexDistal
+ position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleProximal
+ parentName: Left_Hand
+ position: {x: 0.012847862, y: 0.08609763, z: 0.003435423}
+ rotation: {x: -0.004090429, y: -0.6610811, z: -0.004001968, w: 0.7502927}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleIntermediate
+ parentName: Left_MiddleProximal
+ position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17}
+ rotation: {x: 0.026233751, y: -0.000000029802322, z: -0.0000007133931, w: 0.99965584}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistal
+ parentName: Left_MiddleIntermediate
+ position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistalEnd
+ parentName: Left_MiddleDistal
+ position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyProximal
+ parentName: Left_Hand
+ position: {x: 0.004436847, y: 0.07288173, z: -0.029359013}
+ rotation: {x: -0.02007038, y: -0.5504896, z: -0.008246153, w: 0.83456}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyIntermediate
+ parentName: Left_PinkyProximal
+ position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16}
+ rotation: {x: 0.028115956, y: -0.00000008940699, z: -0.0000005941839, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistal
+ parentName: Left_PinkyIntermediate
+ position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17}
+ rotation: {x: 0.03643686, y: 0.00000014611446, z: 0.00000018696, w: 0.999336}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistalEnd
+ parentName: Left_PinkyDistal
+ position: {x: -1.2434495e-16, y: 0.018519057, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingProximal
+ parentName: Left_Hand
+ position: {x: 0.009525569, y: 0.08161553, z: -0.012242405}
+ rotation: {x: -0.017654313, y: -0.6026994, z: -0.0040520057, w: 0.79776275}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingIntermediate
+ parentName: Left_RingProximal
+ position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16}
+ rotation: {x: 0.023556013, y: 0.00000026822087, z: 0.0000007636844, w: 0.99972254}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistal
+ parentName: Left_RingIntermediate
+ position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16}
+ rotation: {x: 0.03908592, y: -0.000000019744585, z: 0.00000042049942, w: 0.9992359}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistalEnd
+ parentName: Left_RingDistal
+ position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbProximal
+ parentName: Left_Hand
+ position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476}
+ rotation: {x: 0.1796032, y: 0.8841741, z: 0.4239896, w: -0.07881452}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbIntermediate
+ parentName: Left_ThumbProximal
+ position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592}
+ rotation: {x: 0.1278054, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistal
+ parentName: Left_ThumbIntermediate
+ position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915}
+ rotation: {x: -0.045421924, y: -0.00000036741366, z: -0.0000008691409, w: 0.9989679}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistalEnd
+ parentName: Left_ThumbDistal
+ position: {x: -4.2632555e-16, y: 0.029458016, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck
+ parentName: UpperChest
+ position: {x: -0, y: 0.25104657, z: -0.015329581}
+ rotation: {x: 0.060688436, y: -0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Head
+ parentName: Neck
+ position: {x: -0, y: 0.12747401, z: 0}
+ rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Jaw
+ parentName: Head
+ position: {x: -0, y: -0.00763539, z: 0.012895278}
+ rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Eye
+ parentName: Head
+ position: {x: -0.03330326, y: 0.034598116, z: 0.0867403}
+ rotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Eye
+ parentName: Head
+ position: {x: 0.033303294, y: 0.03459628, z: 0.0867403}
+ rotation: {x: 0.7071068, y: 4.3297806e-17, z: 0.7071068, w: -4.3297806e-17}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck_Twist_A
+ parentName: Neck
+ position: {x: -0, y: 0.063737005, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Shoulder
+ parentName: UpperChest
+ position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803}
+ rotation: {x: 0.99258024, y: -0.04327539, z: -0.113521874, w: 0.004949396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperArm
+ parentName: Right_Shoulder
+ position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746}
+ rotation: {x: 0.1267345, y: 0.033320885, z: 0.68096745, w: 0.720494}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerArm
+ parentName: Right_UpperArm
+ position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226}
+ rotation: {x: 0.020541133, y: 0.008317431, z: -0.020620903, w: 0.99954176}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Hand
+ parentName: Right_LowerArm
+ position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexProximal
+ parentName: Right_Hand
+ position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574}
+ rotation: {x: -0.00008773989, y: -0.7104814, z: -0.0063276542, w: 0.7036876}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexIntermediate
+ parentName: Right_IndexProximal
+ position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077}
+ rotation: {x: 0.03020306, y: -0.0000005662439, z: 0.000012195228, w: 0.99954385}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistal
+ parentName: Right_IndexIntermediate
+ position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629}
+ rotation: {x: 0.03948371, y: -0.000000052504312, z: -0.000005515076, w: 0.99922025}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistalEnd
+ parentName: Right_IndexDistal
+ position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131}
+ rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleProximal
+ parentName: Right_Hand
+ position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337}
+ rotation: {x: -0.0040856875, y: -0.6610817, z: -0.0040004994, w: 0.7502922}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleIntermediate
+ parentName: Right_MiddleProximal
+ position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695}
+ rotation: {x: 0.026226329, y: -0.0000007450579, z: -0.0000027469353, w: 0.9996561}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistal
+ parentName: Right_MiddleIntermediate
+ position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistalEnd
+ parentName: Right_MiddleDistal
+ position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyProximal
+ parentName: Right_Hand
+ position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566}
+ rotation: {x: -0.020058475, y: -0.55049545, z: -0.008249418, w: 0.83455646}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyIntermediate
+ parentName: Right_PinkyProximal
+ position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623}
+ rotation: {x: 0.02811499, y: -0.0000035166731, z: -0.00000016298141, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistal
+ parentName: Right_PinkyIntermediate
+ position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345}
+ rotation: {x: 0.03642403, y: -0.0000024211556, z: -0.000008829222, w: 0.9993365}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistalEnd
+ parentName: Right_PinkyDistal
+ position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108}
+ rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingProximal
+ parentName: Right_Hand
+ position: {x: -0.00952738, y: -0.08161427, z: 0.012242128}
+ rotation: {x: -0.017649079, y: -0.6027014, z: -0.0040535578, w: 0.7977614}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingIntermediate
+ parentName: Right_RingProximal
+ position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335}
+ rotation: {x: 0.023547903, y: 0.0000024139879, z: 0.0000069094813, w: 0.9997228}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistal
+ parentName: Right_RingIntermediate
+ position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098}
+ rotation: {x: 0.039100695, y: 0.00000009656897, z: -0.000004755179, w: 0.99923533}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistalEnd
+ parentName: Right_RingDistal
+ position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459}
+ rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbProximal
+ parentName: Right_Hand
+ position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695}
+ rotation: {x: 0.17960793, y: 0.8841713, z: 0.42399347, w: -0.07881395}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbIntermediate
+ parentName: Right_ThumbProximal
+ position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848}
+ rotation: {x: 0.12780538, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistal
+ parentName: Right_ThumbIntermediate
+ position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783}
+ rotation: {x: -0.04541878, y: -0.000003060937, z: 0.000004811603, w: 0.99896806}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistalEnd
+ parentName: Right_ThumbDistal
+ position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683}
+ rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ armTwist: 1
+ foreArmTwist: 0
+ upperLegTwist: 1
+ legTwist: 0
+ armStretch: 0
+ legStretch: 0
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 1
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 597976b6b3e452c499a186f5f40cbf87, type: 3}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 3
+ humanoidOversampling: 1
+ avatarSetup: 2
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N_Land.anim.fbx b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N_Land.anim.fbx
new file mode 100644
index 00000000..8a9bc157
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N_Land.anim.fbx differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N_Land.anim.fbx.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N_Land.anim.fbx.meta
new file mode 100644
index 00000000..e4043989
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Locomotion--Walk_N_Land.anim.fbx.meta
@@ -0,0 +1,918 @@
+fileFormatVersion: 2
+guid: 30752a151c1db0347ae9798abd6e76a5
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable:
+ - first:
+ 74: 3062299877480904481
+ second: Walk_N_Land
+ externalObjects: {}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 3
+ animationRotationError: 0.05
+ animationPositionError: 0.05
+ animationScaleError: 0.25
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations:
+ - serializedVersion: 16
+ name: Walk_N_Land
+ takeName: Walk_N_Land
+ internalID: 0
+ firstFrame: 0
+ lastFrame: 16
+ wrapMode: 0
+ orientationOffsetY: 0
+ level: 0
+ cycleOffset: 0
+ loop: 0
+ hasAdditiveReferencePose: 0
+ loopTime: 0
+ loopBlend: 0
+ loopBlendOrientation: 1
+ loopBlendPositionY: 1
+ loopBlendPositionXZ: 1
+ keepOriginalOrientation: 1
+ keepOriginalPositionY: 1
+ keepOriginalPositionXZ: 1
+ heightFromFeet: 0
+ mirror: 0
+ bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
+ curves: []
+ events: []
+ transformMask: []
+ maskType: 3
+ maskSource: {instanceID: 0}
+ additiveReferencePoseFrame: 0
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human:
+ - boneName: Hips
+ humanName: Hips
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperLeg
+ humanName: RightUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerLeg
+ humanName: RightLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Foot
+ humanName: RightFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Toes
+ humanName: RightToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Spine
+ humanName: Spine
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Chest
+ humanName: Chest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: UpperChest
+ humanName: UpperChest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Shoulder
+ humanName: RightShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperArm
+ humanName: RightUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerArm
+ humanName: RightLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Hand
+ humanName: RightHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Neck
+ humanName: Neck
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Head
+ humanName: Head
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Jaw
+ humanName: Jaw
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Shoulder
+ humanName: LeftShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperArm
+ humanName: LeftUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerArm
+ humanName: LeftLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Hand
+ humanName: LeftHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperLeg
+ humanName: LeftUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerLeg
+ humanName: LeftLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Foot
+ humanName: LeftFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Toes
+ humanName: LeftToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbProximal
+ humanName: Left Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbIntermediate
+ humanName: Left Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbDistal
+ humanName: Left Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexProximal
+ humanName: Left Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexIntermediate
+ humanName: Left Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexDistal
+ humanName: Left Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleProximal
+ humanName: Left Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleIntermediate
+ humanName: Left Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleDistal
+ humanName: Left Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingProximal
+ humanName: Left Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingIntermediate
+ humanName: Left Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingDistal
+ humanName: Left Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyProximal
+ humanName: Left Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyIntermediate
+ humanName: Left Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyDistal
+ humanName: Left Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbProximal
+ humanName: Right Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbIntermediate
+ humanName: Right Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbDistal
+ humanName: Right Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexProximal
+ humanName: Right Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexIntermediate
+ humanName: Right Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexDistal
+ humanName: Right Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleProximal
+ humanName: Right Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleIntermediate
+ humanName: Right Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleDistal
+ humanName: Right Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingProximal
+ humanName: Right Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingIntermediate
+ humanName: Right Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingDistal
+ humanName: Right Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyProximal
+ humanName: Right Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyIntermediate
+ humanName: Right Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyDistal
+ humanName: Right Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ skeleton:
+ - name: Mannequin(Clone)
+ parentName:
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Geometry
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Mannequin_Mesh
+ parentName: Geometry
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Skeleton
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Hips
+ parentName: Skeleton
+ position: {x: -0, y: 0.9810986, z: -0.01590455}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperLeg
+ parentName: Hips
+ position: {x: -0.08610317, y: -0.053458035, z: -0.011470641}
+ rotation: {x: 0.999839, y: -0.01775374, z: 0.000046300094, w: -0.0026074864}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerLeg
+ parentName: Left_UpperLeg
+ position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Foot
+ parentName: Left_LowerLeg
+ position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Toes
+ parentName: Left_Foot
+ position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506}
+ rotation: {x: -0.7071068, y: 8.7157646e-33, z: -8.7157646e-33, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ToesEnd
+ parentName: Left_Toes
+ position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperLeg
+ parentName: Hips
+ position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475}
+ rotation: {x: 0.0026075041, y: 0.000046300407, z: 0.01775374, w: 0.999839}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerLeg
+ parentName: Right_UpperLeg
+ position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Foot
+ parentName: Right_LowerLeg
+ position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Toes
+ parentName: Right_Foot
+ position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807}
+ rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ToesEnd
+ parentName: Right_Toes
+ position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Spine
+ parentName: Hips
+ position: {x: -0, y: 0.058229383, z: 0.0012229546}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Chest
+ parentName: Spine
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: UpperChest
+ parentName: Chest
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Shoulder
+ parentName: UpperChest
+ position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945}
+ rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperArm
+ parentName: Left_Shoulder
+ position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17}
+ rotation: {x: 0.12673509, y: 0.03332071, z: 0.6809724, w: 0.72048914}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerArm
+ parentName: Left_UpperArm
+ position: {x: -2.8421706e-16, y: 0.28508067, z: 0}
+ rotation: {x: 0.020536564, y: 0.00832135, z: -0.020624585, w: 0.9995417}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Hand
+ parentName: Left_LowerArm
+ position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexProximal
+ parentName: Left_Hand
+ position: {x: 0.007815497, y: 0.0918443, z: 0.02657316}
+ rotation: {x: -0.0000789147, y: -0.7104809, z: -0.006305193, w: 0.70368826}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexIntermediate
+ parentName: Left_IndexProximal
+ position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16}
+ rotation: {x: 0.030199163, y: 0.00000005960465, z: -0.00000038841978, w: 0.9995439}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistal
+ parentName: Left_IndexIntermediate
+ position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16}
+ rotation: {x: 0.03945603, y: 0.000000016383924, z: 0.0000000332638, w: 0.9992213}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistalEnd
+ parentName: Left_IndexDistal
+ position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleProximal
+ parentName: Left_Hand
+ position: {x: 0.012847862, y: 0.08609763, z: 0.003435423}
+ rotation: {x: -0.004090429, y: -0.6610811, z: -0.004001968, w: 0.7502927}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleIntermediate
+ parentName: Left_MiddleProximal
+ position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17}
+ rotation: {x: 0.026233751, y: -0.000000029802322, z: -0.0000007133931, w: 0.99965584}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistal
+ parentName: Left_MiddleIntermediate
+ position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistalEnd
+ parentName: Left_MiddleDistal
+ position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyProximal
+ parentName: Left_Hand
+ position: {x: 0.004436847, y: 0.07288173, z: -0.029359013}
+ rotation: {x: -0.02007038, y: -0.5504896, z: -0.008246153, w: 0.83456}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyIntermediate
+ parentName: Left_PinkyProximal
+ position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16}
+ rotation: {x: 0.028115956, y: -0.00000008940699, z: -0.0000005941839, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistal
+ parentName: Left_PinkyIntermediate
+ position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17}
+ rotation: {x: 0.03643686, y: 0.00000014611446, z: 0.00000018696, w: 0.999336}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistalEnd
+ parentName: Left_PinkyDistal
+ position: {x: -1.2434495e-16, y: 0.018519057, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingProximal
+ parentName: Left_Hand
+ position: {x: 0.009525569, y: 0.08161553, z: -0.012242405}
+ rotation: {x: -0.017654313, y: -0.6026994, z: -0.0040520057, w: 0.79776275}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingIntermediate
+ parentName: Left_RingProximal
+ position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16}
+ rotation: {x: 0.023556013, y: 0.00000026822087, z: 0.0000007636844, w: 0.99972254}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistal
+ parentName: Left_RingIntermediate
+ position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16}
+ rotation: {x: 0.03908592, y: -0.000000019744585, z: 0.00000042049942, w: 0.9992359}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistalEnd
+ parentName: Left_RingDistal
+ position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbProximal
+ parentName: Left_Hand
+ position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476}
+ rotation: {x: 0.1796032, y: 0.8841741, z: 0.4239896, w: -0.07881452}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbIntermediate
+ parentName: Left_ThumbProximal
+ position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592}
+ rotation: {x: 0.1278054, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistal
+ parentName: Left_ThumbIntermediate
+ position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915}
+ rotation: {x: -0.045421924, y: -0.00000036741366, z: -0.0000008691409, w: 0.9989679}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistalEnd
+ parentName: Left_ThumbDistal
+ position: {x: -4.2632555e-16, y: 0.029458016, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck
+ parentName: UpperChest
+ position: {x: -0, y: 0.25104657, z: -0.015329581}
+ rotation: {x: 0.060688436, y: -0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Head
+ parentName: Neck
+ position: {x: -0, y: 0.12747401, z: 0}
+ rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Jaw
+ parentName: Head
+ position: {x: -0, y: -0.00763539, z: 0.012895278}
+ rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Eye
+ parentName: Head
+ position: {x: -0.03330326, y: 0.034598116, z: 0.0867403}
+ rotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Eye
+ parentName: Head
+ position: {x: 0.033303294, y: 0.03459628, z: 0.0867403}
+ rotation: {x: 0.7071068, y: 4.3297806e-17, z: 0.7071068, w: -4.3297806e-17}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck_Twist_A
+ parentName: Neck
+ position: {x: -0, y: 0.063737005, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Shoulder
+ parentName: UpperChest
+ position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803}
+ rotation: {x: 0.99258024, y: -0.04327539, z: -0.113521874, w: 0.004949396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperArm
+ parentName: Right_Shoulder
+ position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746}
+ rotation: {x: 0.1267345, y: 0.033320885, z: 0.68096745, w: 0.720494}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerArm
+ parentName: Right_UpperArm
+ position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226}
+ rotation: {x: 0.020541133, y: 0.008317431, z: -0.020620903, w: 0.99954176}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Hand
+ parentName: Right_LowerArm
+ position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexProximal
+ parentName: Right_Hand
+ position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574}
+ rotation: {x: -0.00008773989, y: -0.7104814, z: -0.0063276542, w: 0.7036876}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexIntermediate
+ parentName: Right_IndexProximal
+ position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077}
+ rotation: {x: 0.03020306, y: -0.0000005662439, z: 0.000012195228, w: 0.99954385}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistal
+ parentName: Right_IndexIntermediate
+ position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629}
+ rotation: {x: 0.03948371, y: -0.000000052504312, z: -0.000005515076, w: 0.99922025}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistalEnd
+ parentName: Right_IndexDistal
+ position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131}
+ rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleProximal
+ parentName: Right_Hand
+ position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337}
+ rotation: {x: -0.0040856875, y: -0.6610817, z: -0.0040004994, w: 0.7502922}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleIntermediate
+ parentName: Right_MiddleProximal
+ position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695}
+ rotation: {x: 0.026226329, y: -0.0000007450579, z: -0.0000027469353, w: 0.9996561}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistal
+ parentName: Right_MiddleIntermediate
+ position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistalEnd
+ parentName: Right_MiddleDistal
+ position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyProximal
+ parentName: Right_Hand
+ position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566}
+ rotation: {x: -0.020058475, y: -0.55049545, z: -0.008249418, w: 0.83455646}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyIntermediate
+ parentName: Right_PinkyProximal
+ position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623}
+ rotation: {x: 0.02811499, y: -0.0000035166731, z: -0.00000016298141, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistal
+ parentName: Right_PinkyIntermediate
+ position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345}
+ rotation: {x: 0.03642403, y: -0.0000024211556, z: -0.000008829222, w: 0.9993365}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistalEnd
+ parentName: Right_PinkyDistal
+ position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108}
+ rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingProximal
+ parentName: Right_Hand
+ position: {x: -0.00952738, y: -0.08161427, z: 0.012242128}
+ rotation: {x: -0.017649079, y: -0.6027014, z: -0.0040535578, w: 0.7977614}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingIntermediate
+ parentName: Right_RingProximal
+ position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335}
+ rotation: {x: 0.023547903, y: 0.0000024139879, z: 0.0000069094813, w: 0.9997228}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistal
+ parentName: Right_RingIntermediate
+ position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098}
+ rotation: {x: 0.039100695, y: 0.00000009656897, z: -0.000004755179, w: 0.99923533}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistalEnd
+ parentName: Right_RingDistal
+ position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459}
+ rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbProximal
+ parentName: Right_Hand
+ position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695}
+ rotation: {x: 0.17960793, y: 0.8841713, z: 0.42399347, w: -0.07881395}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbIntermediate
+ parentName: Right_ThumbProximal
+ position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848}
+ rotation: {x: 0.12780538, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistal
+ parentName: Right_ThumbIntermediate
+ position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783}
+ rotation: {x: -0.04541878, y: -0.000003060937, z: 0.000004811603, w: 0.99896806}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistalEnd
+ parentName: Right_ThumbDistal
+ position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683}
+ rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ armTwist: 1
+ foreArmTwist: 0
+ upperLegTwist: 1
+ legTwist: 0
+ armStretch: 0
+ legStretch: 0
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 1
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 597976b6b3e452c499a186f5f40cbf87, type: 3}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 3
+ humanoidOversampling: 1
+ avatarSetup: 2
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/SharedSpacesPlayerController.controller b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/SharedSpacesPlayerController.controller
new file mode 100644
index 00000000..96c3f4e7
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/SharedSpacesPlayerController.controller
@@ -0,0 +1,637 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1102 &-7469282255733588732
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: InAir
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: -1241942381204629156}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 1
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: -2702400367771620057, guid: aaef612b70883e64ebb66fe9058b5090, type: 3}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1107 &-5602963042399094863
+AnimatorStateMachine:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Base Layer
+ m_ChildStates:
+ - serializedVersion: 1
+ m_State: {fileID: 6904719651407550685}
+ m_Position: {x: -570, y: -270, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -7469282255733588732}
+ m_Position: {x: -570, y: -70, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -1645763842379584696}
+ m_Position: {x: -370, y: -180, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 2316907928501487792}
+ m_Position: {x: -770, y: -180, z: 0}
+ m_ChildStateMachines: []
+ m_AnyStateTransitions: []
+ m_EntryTransitions: []
+ m_StateMachineTransitions: {}
+ m_StateMachineBehaviours: []
+ m_AnyStatePosition: {x: -760, y: -340, z: 0}
+ m_EntryPosition: {x: -550, y: -340, z: 0}
+ m_ExitPosition: {x: -90, y: -410, z: 0}
+ m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+ m_DefaultState: {fileID: 6904719651407550685}
+--- !u!1101 &-5554260563948360725
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 0}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.925
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &-5395363184730745010
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Grounded
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -1645763842379584696}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.13652915
+ m_TransitionOffset: 0.1872593
+ m_ExitTime: 0.65006435
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &-4639224020698590961
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: FreeFall
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -7469282255733588732}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.037536144
+ m_TransitionOffset: 0.23041831
+ m_ExitTime: 0.9466194
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &-3943826829571047522
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: FreeFall
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 0}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.037536144
+ m_TransitionOffset: 0.23041831
+ m_ExitTime: 0.9466194
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &-3768668417189682236
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 2
+ m_ConditionEvent: Flying
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -7469282255733588732}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.17459607
+ m_TransitionOffset: 0
+ m_ExitTime: 0.925
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1102 &-1645763842379584696
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: JumpLand
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 1965893691485178243}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 8738420251406115919}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1101 &-1241942381204629156
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Grounded
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -1645763842379584696}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.09764749
+ m_TransitionOffset: 0.08027425
+ m_ExitTime: 0.30146867
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!91 &9100000
+AnimatorController:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: SharedSpacesPlayerController
+ serializedVersion: 5
+ m_AnimatorParameters:
+ - m_Name: Speed
+ m_Type: 1
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 9100000}
+ - m_Name: Jump
+ m_Type: 4
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 9100000}
+ - m_Name: Grounded
+ m_Type: 4
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 9100000}
+ - m_Name: FreeFall
+ m_Type: 4
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 9100000}
+ - m_Name: MotionSpeed
+ m_Type: 1
+ m_DefaultFloat: 0
+ m_DefaultInt: 0
+ m_DefaultBool: 0
+ m_Controller: {fileID: 9100000}
+ m_AnimatorLayers:
+ - serializedVersion: 5
+ m_Name: Base Layer
+ m_StateMachine: {fileID: -5602963042399094863}
+ m_Mask: {fileID: 0}
+ m_Motions: []
+ m_Behaviours: []
+ m_BlendingMode: 0
+ m_SyncedLayerIndex: -1
+ m_DefaultWeight: 0
+ m_IKPass: 0
+ m_SyncedLayerAffectsTiming: 0
+ m_Controller: {fileID: 9100000}
+--- !u!1101 &1381778882725410896
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Grounded
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -1645763842379584696}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.13652915
+ m_TransitionOffset: 0.1872593
+ m_ExitTime: 0.65006435
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 2
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &1705606405774109490
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -7469282255733588732}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.47048202
+ m_TransitionOffset: 0.60876185
+ m_ExitTime: 0.66366935
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1102 &1725567275296691115
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Fly
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: -3768668417189682236}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: -4506558747437489242, guid: d3b2083e086810047ab04d540db8afbc, type: 3}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1101 &1965893691485178243
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 6904719651407550685}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.4340285
+ m_TransitionOffset: 0.36290926
+ m_ExitTime: 0.39948252
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 2
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1102 &2316907928501487792
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: JumpStart
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 1705606405774109490}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 1
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7478122292733868173, guid: 2d23be5e9434d5048b641985a85fcc81, type: 3}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1101 &2455683505482688366
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -7469282255733588732}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.9466192
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &5185278855704465556
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Flying
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 1725567275296691115}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.1320467
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 0
+--- !u!1102 &6904719651407550685
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Idle Walk Run Blend
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: -4639224020698590961}
+ - {fileID: 8635457214972911529}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 1
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 1
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 8571049798372811705}
+ m_Tag:
+ m_SpeedParameter: MotionSpeed
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter: Speed
+--- !u!1101 &7604687646627025577
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Jump
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 0}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.07026386
+ m_TransitionOffset: 0.058338698
+ m_ExitTime: 0.8555227
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &8308480711204209675
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: FreeFall
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -7469282255733588732}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.75
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!206 &8571049798372811705
+BlendTree:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Blend Tree
+ m_Childs:
+ - serializedVersion: 2
+ m_Motion: {fileID: -3100369314251171874, guid: 6656f6eaf36db184492e518f9be4aab5, type: 3}
+ m_Threshold: 0
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: Speed
+ m_Mirror: 0
+ - serializedVersion: 2
+ m_Motion: {fileID: 1657602633327794031, guid: a6eb3fccc7d4a3c4cb39dcac32812438, type: 3}
+ m_Threshold: 2
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: Speed
+ m_Mirror: 0
+ - serializedVersion: 2
+ m_Motion: {fileID: 6564411413370888346, guid: de5e2c79af098f84cbefb0eca5400827, type: 3}
+ m_Threshold: 6
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: Speed
+ m_Mirror: 0
+ m_BlendParameter: Speed
+ m_BlendParameterY: Speed
+ m_MinThreshold: 0
+ m_MaxThreshold: 6
+ m_UseAutomaticThresholds: 0
+ m_NormalizedBlendValues: 0
+ m_BlendType: 0
+--- !u!1101 &8635457214972911529
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 1
+ m_ConditionEvent: Jump
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 2316907928501487792}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.07026373
+ m_TransitionOffset: 0
+ m_ExitTime: 0.03574113
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!206 &8738420251406115919
+BlendTree:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Blend Tree
+ m_Childs:
+ - serializedVersion: 2
+ m_Motion: {fileID: -9098803823909532060, guid: 2d23be5e9434d5048b641985a85fcc81, type: 3}
+ m_Threshold: 0
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: Speed
+ m_Mirror: 0
+ - serializedVersion: 2
+ m_Motion: {fileID: 3062299877480904481, guid: 30752a151c1db0347ae9798abd6e76a5, type: 3}
+ m_Threshold: 2
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: Speed
+ m_Mirror: 0
+ - serializedVersion: 2
+ m_Motion: {fileID: -2817517482862745934, guid: 5a062b6e69369a948ab0756a92ada2a5, type: 3}
+ m_Threshold: 6
+ m_Position: {x: 0, y: 0}
+ m_TimeScale: 1
+ m_CycleOffset: 0
+ m_DirectBlendParameter: Speed
+ m_Mirror: 0
+ m_BlendParameter: Speed
+ m_BlendParameterY: Speed
+ m_MinThreshold: 0
+ m_MaxThreshold: 6
+ m_UseAutomaticThresholds: 0
+ m_NormalizedBlendValues: 0
+ m_BlendType: 0
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/SharedSpacesPlayerController.controller.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/SharedSpacesPlayerController.controller.meta
new file mode 100644
index 00000000..f850e9e5
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/SharedSpacesPlayerController.controller.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d2a053c389952cb45b8dcbe5fb58c888
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Stand--Idle.anim.fbx b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Stand--Idle.anim.fbx
new file mode 100644
index 00000000..3008e63a
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Stand--Idle.anim.fbx differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Stand--Idle.anim.fbx.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Stand--Idle.anim.fbx.meta
new file mode 100644
index 00000000..c2cb100a
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Animations/Stand--Idle.anim.fbx.meta
@@ -0,0 +1,918 @@
+fileFormatVersion: 2
+guid: 6656f6eaf36db184492e518f9be4aab5
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable:
+ - first:
+ 74: -3100369314251171874
+ second: Idle
+ externalObjects: {}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.05
+ animationPositionError: 0.05
+ animationScaleError: 0.25
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations:
+ - serializedVersion: 16
+ name: Idle
+ takeName: Idle
+ internalID: 0
+ firstFrame: 1
+ lastFrame: 149
+ wrapMode: 0
+ orientationOffsetY: 0
+ level: 0
+ cycleOffset: 0
+ loop: 0
+ hasAdditiveReferencePose: 0
+ loopTime: 1
+ loopBlend: 0
+ loopBlendOrientation: 1
+ loopBlendPositionY: 1
+ loopBlendPositionXZ: 1
+ keepOriginalOrientation: 1
+ keepOriginalPositionY: 1
+ keepOriginalPositionXZ: 1
+ heightFromFeet: 0
+ mirror: 0
+ bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
+ curves: []
+ events: []
+ transformMask: []
+ maskType: 3
+ maskSource: {instanceID: 0}
+ additiveReferencePoseFrame: 1
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human:
+ - boneName: Hips
+ humanName: Hips
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperLeg
+ humanName: RightUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerLeg
+ humanName: RightLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Foot
+ humanName: RightFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Toes
+ humanName: RightToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Spine
+ humanName: Spine
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Chest
+ humanName: Chest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: UpperChest
+ humanName: UpperChest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Shoulder
+ humanName: RightShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperArm
+ humanName: RightUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerArm
+ humanName: RightLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Hand
+ humanName: RightHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Neck
+ humanName: Neck
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Head
+ humanName: Head
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Jaw
+ humanName: Jaw
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Shoulder
+ humanName: LeftShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperArm
+ humanName: LeftUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerArm
+ humanName: LeftLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Hand
+ humanName: LeftHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperLeg
+ humanName: LeftUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerLeg
+ humanName: LeftLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Foot
+ humanName: LeftFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Toes
+ humanName: LeftToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbProximal
+ humanName: Left Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbIntermediate
+ humanName: Left Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbDistal
+ humanName: Left Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexProximal
+ humanName: Left Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexIntermediate
+ humanName: Left Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexDistal
+ humanName: Left Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleProximal
+ humanName: Left Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleIntermediate
+ humanName: Left Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleDistal
+ humanName: Left Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingProximal
+ humanName: Left Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingIntermediate
+ humanName: Left Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingDistal
+ humanName: Left Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyProximal
+ humanName: Left Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyIntermediate
+ humanName: Left Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyDistal
+ humanName: Left Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbProximal
+ humanName: Right Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbIntermediate
+ humanName: Right Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbDistal
+ humanName: Right Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexProximal
+ humanName: Right Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexIntermediate
+ humanName: Right Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexDistal
+ humanName: Right Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleProximal
+ humanName: Right Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleIntermediate
+ humanName: Right Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleDistal
+ humanName: Right Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingProximal
+ humanName: Right Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingIntermediate
+ humanName: Right Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingDistal
+ humanName: Right Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyProximal
+ humanName: Right Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyIntermediate
+ humanName: Right Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyDistal
+ humanName: Right Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ skeleton:
+ - name: Mannequin(Clone)
+ parentName:
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Geometry
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Mannequin_Mesh
+ parentName: Geometry
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Skeleton
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Hips
+ parentName: Skeleton
+ position: {x: -0, y: 0.9810986, z: -0.01590455}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperLeg
+ parentName: Hips
+ position: {x: -0.08610317, y: -0.053458035, z: -0.011470641}
+ rotation: {x: 0.999839, y: -0.01775374, z: 0.000046300094, w: -0.0026074864}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerLeg
+ parentName: Left_UpperLeg
+ position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Foot
+ parentName: Left_LowerLeg
+ position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Toes
+ parentName: Left_Foot
+ position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506}
+ rotation: {x: -0.7071068, y: 8.7157646e-33, z: -8.7157646e-33, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ToesEnd
+ parentName: Left_Toes
+ position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperLeg
+ parentName: Hips
+ position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475}
+ rotation: {x: 0.0026075041, y: 0.000046300407, z: 0.01775374, w: 0.999839}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerLeg
+ parentName: Right_UpperLeg
+ position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Foot
+ parentName: Right_LowerLeg
+ position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Toes
+ parentName: Right_Foot
+ position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807}
+ rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ToesEnd
+ parentName: Right_Toes
+ position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Spine
+ parentName: Hips
+ position: {x: -0, y: 0.058229383, z: 0.0012229546}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Chest
+ parentName: Spine
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: UpperChest
+ parentName: Chest
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Shoulder
+ parentName: UpperChest
+ position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945}
+ rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperArm
+ parentName: Left_Shoulder
+ position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17}
+ rotation: {x: 0.12673509, y: 0.03332071, z: 0.6809724, w: 0.72048914}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerArm
+ parentName: Left_UpperArm
+ position: {x: -2.8421706e-16, y: 0.28508067, z: 0}
+ rotation: {x: 0.020536564, y: 0.00832135, z: -0.020624585, w: 0.9995417}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Hand
+ parentName: Left_LowerArm
+ position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexProximal
+ parentName: Left_Hand
+ position: {x: 0.007815497, y: 0.0918443, z: 0.02657316}
+ rotation: {x: -0.0000789147, y: -0.7104809, z: -0.006305193, w: 0.70368826}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexIntermediate
+ parentName: Left_IndexProximal
+ position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16}
+ rotation: {x: 0.030199163, y: 0.00000005960465, z: -0.00000038841978, w: 0.9995439}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistal
+ parentName: Left_IndexIntermediate
+ position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16}
+ rotation: {x: 0.03945603, y: 0.000000016383924, z: 0.0000000332638, w: 0.9992213}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistalEnd
+ parentName: Left_IndexDistal
+ position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleProximal
+ parentName: Left_Hand
+ position: {x: 0.012847862, y: 0.08609763, z: 0.003435423}
+ rotation: {x: -0.004090429, y: -0.6610811, z: -0.004001968, w: 0.7502927}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleIntermediate
+ parentName: Left_MiddleProximal
+ position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17}
+ rotation: {x: 0.026233751, y: -0.000000029802322, z: -0.0000007133931, w: 0.99965584}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistal
+ parentName: Left_MiddleIntermediate
+ position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistalEnd
+ parentName: Left_MiddleDistal
+ position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyProximal
+ parentName: Left_Hand
+ position: {x: 0.004436847, y: 0.07288173, z: -0.029359013}
+ rotation: {x: -0.02007038, y: -0.5504896, z: -0.008246153, w: 0.83456}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyIntermediate
+ parentName: Left_PinkyProximal
+ position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16}
+ rotation: {x: 0.028115956, y: -0.00000008940699, z: -0.0000005941839, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistal
+ parentName: Left_PinkyIntermediate
+ position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17}
+ rotation: {x: 0.03643686, y: 0.00000014611446, z: 0.00000018696, w: 0.999336}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistalEnd
+ parentName: Left_PinkyDistal
+ position: {x: -1.2434495e-16, y: 0.018519057, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingProximal
+ parentName: Left_Hand
+ position: {x: 0.009525569, y: 0.08161553, z: -0.012242405}
+ rotation: {x: -0.017654313, y: -0.6026994, z: -0.0040520057, w: 0.79776275}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingIntermediate
+ parentName: Left_RingProximal
+ position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16}
+ rotation: {x: 0.023556013, y: 0.00000026822087, z: 0.0000007636844, w: 0.99972254}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistal
+ parentName: Left_RingIntermediate
+ position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16}
+ rotation: {x: 0.03908592, y: -0.000000019744585, z: 0.00000042049942, w: 0.9992359}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistalEnd
+ parentName: Left_RingDistal
+ position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbProximal
+ parentName: Left_Hand
+ position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476}
+ rotation: {x: 0.1796032, y: 0.8841741, z: 0.4239896, w: -0.07881452}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbIntermediate
+ parentName: Left_ThumbProximal
+ position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592}
+ rotation: {x: 0.1278054, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistal
+ parentName: Left_ThumbIntermediate
+ position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915}
+ rotation: {x: -0.045421924, y: -0.00000036741366, z: -0.0000008691409, w: 0.9989679}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistalEnd
+ parentName: Left_ThumbDistal
+ position: {x: -4.2632555e-16, y: 0.029458016, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck
+ parentName: UpperChest
+ position: {x: -0, y: 0.25104657, z: -0.015329581}
+ rotation: {x: 0.060688436, y: -0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Head
+ parentName: Neck
+ position: {x: -0, y: 0.12747401, z: 0}
+ rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Jaw
+ parentName: Head
+ position: {x: -0, y: -0.00763539, z: 0.012895278}
+ rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Eye
+ parentName: Head
+ position: {x: -0.03330326, y: 0.034598116, z: 0.0867403}
+ rotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Eye
+ parentName: Head
+ position: {x: 0.033303294, y: 0.03459628, z: 0.0867403}
+ rotation: {x: 0.7071068, y: 4.3297806e-17, z: 0.7071068, w: -4.3297806e-17}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck_Twist_A
+ parentName: Neck
+ position: {x: -0, y: 0.063737005, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Shoulder
+ parentName: UpperChest
+ position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803}
+ rotation: {x: 0.99258024, y: -0.04327539, z: -0.113521874, w: 0.004949396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperArm
+ parentName: Right_Shoulder
+ position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746}
+ rotation: {x: 0.1267345, y: 0.033320885, z: 0.68096745, w: 0.720494}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerArm
+ parentName: Right_UpperArm
+ position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226}
+ rotation: {x: 0.020541133, y: 0.008317431, z: -0.020620903, w: 0.99954176}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Hand
+ parentName: Right_LowerArm
+ position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexProximal
+ parentName: Right_Hand
+ position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574}
+ rotation: {x: -0.00008773989, y: -0.7104814, z: -0.0063276542, w: 0.7036876}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexIntermediate
+ parentName: Right_IndexProximal
+ position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077}
+ rotation: {x: 0.03020306, y: -0.0000005662439, z: 0.000012195228, w: 0.99954385}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistal
+ parentName: Right_IndexIntermediate
+ position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629}
+ rotation: {x: 0.03948371, y: -0.000000052504312, z: -0.000005515076, w: 0.99922025}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistalEnd
+ parentName: Right_IndexDistal
+ position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131}
+ rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleProximal
+ parentName: Right_Hand
+ position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337}
+ rotation: {x: -0.0040856875, y: -0.6610817, z: -0.0040004994, w: 0.7502922}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleIntermediate
+ parentName: Right_MiddleProximal
+ position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695}
+ rotation: {x: 0.026226329, y: -0.0000007450579, z: -0.0000027469353, w: 0.9996561}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistal
+ parentName: Right_MiddleIntermediate
+ position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistalEnd
+ parentName: Right_MiddleDistal
+ position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyProximal
+ parentName: Right_Hand
+ position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566}
+ rotation: {x: -0.020058475, y: -0.55049545, z: -0.008249418, w: 0.83455646}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyIntermediate
+ parentName: Right_PinkyProximal
+ position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623}
+ rotation: {x: 0.02811499, y: -0.0000035166731, z: -0.00000016298141, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistal
+ parentName: Right_PinkyIntermediate
+ position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345}
+ rotation: {x: 0.03642403, y: -0.0000024211556, z: -0.000008829222, w: 0.9993365}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistalEnd
+ parentName: Right_PinkyDistal
+ position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108}
+ rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingProximal
+ parentName: Right_Hand
+ position: {x: -0.00952738, y: -0.08161427, z: 0.012242128}
+ rotation: {x: -0.017649079, y: -0.6027014, z: -0.0040535578, w: 0.7977614}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingIntermediate
+ parentName: Right_RingProximal
+ position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335}
+ rotation: {x: 0.023547903, y: 0.0000024139879, z: 0.0000069094813, w: 0.9997228}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistal
+ parentName: Right_RingIntermediate
+ position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098}
+ rotation: {x: 0.039100695, y: 0.00000009656897, z: -0.000004755179, w: 0.99923533}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistalEnd
+ parentName: Right_RingDistal
+ position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459}
+ rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbProximal
+ parentName: Right_Hand
+ position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695}
+ rotation: {x: 0.17960793, y: 0.8841713, z: 0.42399347, w: -0.07881395}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbIntermediate
+ parentName: Right_ThumbProximal
+ position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848}
+ rotation: {x: 0.12780538, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistal
+ parentName: Right_ThumbIntermediate
+ position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783}
+ rotation: {x: -0.04541878, y: -0.000003060937, z: 0.000004811603, w: 0.99896806}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistalEnd
+ parentName: Right_ThumbDistal
+ position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683}
+ rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ armTwist: 1
+ foreArmTwist: 0
+ upperLegTwist: 1
+ legTwist: 0
+ armStretch: 0
+ legStretch: 0
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 1
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 597976b6b3e452c499a186f5f40cbf87, type: 3}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 3
+ humanoidOversampling: 1
+ avatarSetup: 2
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials.meta
new file mode 100644
index 00000000..792b3747
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9fed0489c7358c140b1555bffe07c370
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Arms.mat b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Arms.mat
new file mode 100644
index 00000000..862f5c8a
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Arms.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: M_Armature_Arms
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _METALLICGLOSSMAP _NORMALMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 104a45460231b8d4783e0bb2223be28c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: c6dc62700fa06274b9608a9fce8ed21b, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: b41d630ccc344454bb1f27587f9acd70, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Arms.mat.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Arms.mat.meta
new file mode 100644
index 00000000..ad8b8cb6
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Arms.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0e2e06a678caac24ca80e224cdaa3a39
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Body.mat b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Body.mat
new file mode 100644
index 00000000..0fa831aa
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Body.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: M_Armature_Body
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _METALLICGLOSSMAP _NORMALMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 2a3daea46c599324e873f935ab08000a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 28d78c5517421f047b88352f3b18e8e7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: e73adacd5e8f6fc45a491dbd62e71ead, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Body.mat.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Body.mat.meta
new file mode 100644
index 00000000..92cd6a7f
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Body.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e33f634b6e438de49af0935eb85afe2a
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Legs.mat b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Legs.mat
new file mode 100644
index 00000000..3cbbb9fb
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Legs.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: M_Armature_Legs
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _METALLICGLOSSMAP _NORMALMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: b2c5d9c39850da946ae135dcb57faaea, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: c444e3d02d2fcff4d9fe5211d67652a0, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: 1c98c94efa7792645972ecf95e6f86c2, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 0.757
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Legs.mat.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Legs.mat.meta
new file mode 100644
index 00000000..22a72413
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Materials/M_Armature_Legs.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 40a6c63e9a7478f44bb51ab57bc33b1c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Models.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Models.meta
new file mode 100644
index 00000000..d2833fb7
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Models.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9f1922dce2a2b2f4bb4a7c4af3900ca9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Models/Armature.fbx b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Models/Armature.fbx
new file mode 100644
index 00000000..212cfc7d
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Models/Armature.fbx differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Models/Armature.fbx.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Models/Armature.fbx.meta
new file mode 100644
index 00000000..124ebb26
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Models/Armature.fbx.meta
@@ -0,0 +1,889 @@
+fileFormatVersion: 2
+guid: 597976b6b3e452c499a186f5f40cbf87
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable:
+ - first:
+ 74: 1827226128182048838
+ second: Take 001
+ externalObjects: {}
+ materials:
+ materialImportMode: 0
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.05
+ animationPositionError: 0.05
+ animationScaleError: 0.25
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 0
+ humanDescription:
+ serializedVersion: 3
+ human:
+ - boneName: Hips
+ humanName: Hips
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperLeg
+ humanName: RightUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerLeg
+ humanName: RightLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Foot
+ humanName: RightFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Toes
+ humanName: RightToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Spine
+ humanName: Spine
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Chest
+ humanName: Chest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: UpperChest
+ humanName: UpperChest
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Shoulder
+ humanName: RightShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_UpperArm
+ humanName: RightUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_LowerArm
+ humanName: RightLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_Hand
+ humanName: RightHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Neck
+ humanName: Neck
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Head
+ humanName: Head
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Jaw
+ humanName: Jaw
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Shoulder
+ humanName: LeftShoulder
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperArm
+ humanName: LeftUpperArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerArm
+ humanName: LeftLowerArm
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Hand
+ humanName: LeftHand
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_UpperLeg
+ humanName: LeftUpperLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_LowerLeg
+ humanName: LeftLowerLeg
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Foot
+ humanName: LeftFoot
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_Toes
+ humanName: LeftToes
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbProximal
+ humanName: Left Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbIntermediate
+ humanName: Left Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_ThumbDistal
+ humanName: Left Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexProximal
+ humanName: Left Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexIntermediate
+ humanName: Left Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_IndexDistal
+ humanName: Left Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleProximal
+ humanName: Left Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleIntermediate
+ humanName: Left Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_MiddleDistal
+ humanName: Left Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingProximal
+ humanName: Left Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingIntermediate
+ humanName: Left Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_RingDistal
+ humanName: Left Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyProximal
+ humanName: Left Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyIntermediate
+ humanName: Left Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Left_PinkyDistal
+ humanName: Left Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbProximal
+ humanName: Right Thumb Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbIntermediate
+ humanName: Right Thumb Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_ThumbDistal
+ humanName: Right Thumb Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexProximal
+ humanName: Right Index Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexIntermediate
+ humanName: Right Index Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_IndexDistal
+ humanName: Right Index Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleProximal
+ humanName: Right Middle Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleIntermediate
+ humanName: Right Middle Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_MiddleDistal
+ humanName: Right Middle Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingProximal
+ humanName: Right Ring Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingIntermediate
+ humanName: Right Ring Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_RingDistal
+ humanName: Right Ring Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyProximal
+ humanName: Right Little Proximal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyIntermediate
+ humanName: Right Little Intermediate
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ - boneName: Right_PinkyDistal
+ humanName: Right Little Distal
+ limit:
+ min: {x: 0, y: 0, z: 0}
+ max: {x: 0, y: 0, z: 0}
+ value: {x: 0, y: 0, z: 0}
+ length: 0
+ modified: 0
+ skeleton:
+ - name: Mannequin(Clone)
+ parentName:
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Geometry
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Mannequin_Mesh
+ parentName: Geometry
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Skeleton
+ parentName: Mannequin(Clone)
+ position: {x: -0, y: 0, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Hips
+ parentName: Skeleton
+ position: {x: -0, y: 0.9810986, z: -0.01590455}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperLeg
+ parentName: Hips
+ position: {x: -0.08610317, y: -0.053458035, z: -0.011470641}
+ rotation: {x: 0.999839, y: -0.01775374, z: 0.000046300094, w: -0.0026074864}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerLeg
+ parentName: Left_UpperLeg
+ position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Foot
+ parentName: Left_LowerLeg
+ position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Toes
+ parentName: Left_Foot
+ position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506}
+ rotation: {x: -0.7071068, y: 8.7157646e-33, z: -8.7157646e-33, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ToesEnd
+ parentName: Left_Toes
+ position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperLeg
+ parentName: Hips
+ position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475}
+ rotation: {x: 0.0026075041, y: 0.000046300407, z: 0.01775374, w: 0.999839}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerLeg
+ parentName: Right_UpperLeg
+ position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435}
+ rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Foot
+ parentName: Right_LowerLeg
+ position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502}
+ rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Toes
+ parentName: Right_Foot
+ position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807}
+ rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ToesEnd
+ parentName: Right_Toes
+ position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898}
+ rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Spine
+ parentName: Hips
+ position: {x: -0, y: 0.058229383, z: 0.0012229546}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Chest
+ parentName: Spine
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: UpperChest
+ parentName: Chest
+ position: {x: -0, y: 0.1034043, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Shoulder
+ parentName: UpperChest
+ position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945}
+ rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_UpperArm
+ parentName: Left_Shoulder
+ position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17}
+ rotation: {x: 0.12673509, y: 0.03332071, z: 0.6809724, w: 0.72048914}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_LowerArm
+ parentName: Left_UpperArm
+ position: {x: -2.8421706e-16, y: 0.28508067, z: 0}
+ rotation: {x: 0.020536564, y: 0.00832135, z: -0.020624585, w: 0.9995417}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Hand
+ parentName: Left_LowerArm
+ position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexProximal
+ parentName: Left_Hand
+ position: {x: 0.007815497, y: 0.0918443, z: 0.02657316}
+ rotation: {x: -0.0000789147, y: -0.7104809, z: -0.006305193, w: 0.70368826}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexIntermediate
+ parentName: Left_IndexProximal
+ position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16}
+ rotation: {x: 0.030199163, y: 0.00000005960465, z: -0.00000038841978, w: 0.9995439}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistal
+ parentName: Left_IndexIntermediate
+ position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16}
+ rotation: {x: 0.03945603, y: 0.000000016383924, z: 0.0000000332638, w: 0.9992213}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_IndexDistalEnd
+ parentName: Left_IndexDistal
+ position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleProximal
+ parentName: Left_Hand
+ position: {x: 0.012847862, y: 0.08609763, z: 0.003435423}
+ rotation: {x: -0.004090429, y: -0.6610811, z: -0.004001968, w: 0.7502927}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleIntermediate
+ parentName: Left_MiddleProximal
+ position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17}
+ rotation: {x: 0.026233751, y: -0.000000029802322, z: -0.0000007133931, w: 0.99965584}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistal
+ parentName: Left_MiddleIntermediate
+ position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_MiddleDistalEnd
+ parentName: Left_MiddleDistal
+ position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyProximal
+ parentName: Left_Hand
+ position: {x: 0.004436847, y: 0.07288173, z: -0.029359013}
+ rotation: {x: -0.02007038, y: -0.5504896, z: -0.008246153, w: 0.83456}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyIntermediate
+ parentName: Left_PinkyProximal
+ position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16}
+ rotation: {x: 0.028115956, y: -0.00000008940699, z: -0.0000005941839, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistal
+ parentName: Left_PinkyIntermediate
+ position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17}
+ rotation: {x: 0.03643686, y: 0.00000014611446, z: 0.00000018696, w: 0.999336}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_PinkyDistalEnd
+ parentName: Left_PinkyDistal
+ position: {x: -1.2434495e-16, y: 0.018519057, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingProximal
+ parentName: Left_Hand
+ position: {x: 0.009525569, y: 0.08161553, z: -0.012242405}
+ rotation: {x: -0.017654313, y: -0.6026994, z: -0.0040520057, w: 0.79776275}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingIntermediate
+ parentName: Left_RingProximal
+ position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16}
+ rotation: {x: 0.023556013, y: 0.00000026822087, z: 0.0000007636844, w: 0.99972254}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistal
+ parentName: Left_RingIntermediate
+ position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16}
+ rotation: {x: 0.03908592, y: -0.000000019744585, z: 0.00000042049942, w: 0.9992359}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_RingDistalEnd
+ parentName: Left_RingDistal
+ position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbProximal
+ parentName: Left_Hand
+ position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476}
+ rotation: {x: 0.1796032, y: 0.8841741, z: 0.4239896, w: -0.07881452}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbIntermediate
+ parentName: Left_ThumbProximal
+ position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592}
+ rotation: {x: 0.1278054, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistal
+ parentName: Left_ThumbIntermediate
+ position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915}
+ rotation: {x: -0.045421924, y: -0.00000036741366, z: -0.0000008691409, w: 0.9989679}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_ThumbDistalEnd
+ parentName: Left_ThumbDistal
+ position: {x: -4.2632555e-16, y: 0.029458016, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck
+ parentName: UpperChest
+ position: {x: -0, y: 0.25104657, z: -0.015329581}
+ rotation: {x: 0.060688436, y: -0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Head
+ parentName: Neck
+ position: {x: -0, y: 0.12747401, z: 0}
+ rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Jaw
+ parentName: Head
+ position: {x: -0, y: -0.00763539, z: 0.012895278}
+ rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Left_Eye
+ parentName: Head
+ position: {x: -0.03330326, y: 0.034598116, z: 0.0867403}
+ rotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Eye
+ parentName: Head
+ position: {x: 0.033303294, y: 0.03459628, z: 0.0867403}
+ rotation: {x: 0.7071068, y: 4.3297806e-17, z: 0.7071068, w: -4.3297806e-17}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Neck_Twist_A
+ parentName: Neck
+ position: {x: -0, y: 0.063737005, z: 0}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Shoulder
+ parentName: UpperChest
+ position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803}
+ rotation: {x: 0.99258024, y: -0.04327539, z: -0.113521874, w: 0.004949396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_UpperArm
+ parentName: Right_Shoulder
+ position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746}
+ rotation: {x: 0.1267345, y: 0.033320885, z: 0.68096745, w: 0.720494}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_LowerArm
+ parentName: Right_UpperArm
+ position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226}
+ rotation: {x: 0.020541133, y: 0.008317431, z: -0.020620903, w: 0.99954176}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_Hand
+ parentName: Right_LowerArm
+ position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368}
+ rotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexProximal
+ parentName: Right_Hand
+ position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574}
+ rotation: {x: -0.00008773989, y: -0.7104814, z: -0.0063276542, w: 0.7036876}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexIntermediate
+ parentName: Right_IndexProximal
+ position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077}
+ rotation: {x: 0.03020306, y: -0.0000005662439, z: 0.000012195228, w: 0.99954385}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistal
+ parentName: Right_IndexIntermediate
+ position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629}
+ rotation: {x: 0.03948371, y: -0.000000052504312, z: -0.000005515076, w: 0.99922025}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_IndexDistalEnd
+ parentName: Right_IndexDistal
+ position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131}
+ rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleProximal
+ parentName: Right_Hand
+ position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337}
+ rotation: {x: -0.0040856875, y: -0.6610817, z: -0.0040004994, w: 0.7502922}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleIntermediate
+ parentName: Right_MiddleProximal
+ position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695}
+ rotation: {x: 0.026226329, y: -0.0000007450579, z: -0.0000027469353, w: 0.9996561}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistal
+ parentName: Right_MiddleIntermediate
+ position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916}
+ rotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_MiddleDistalEnd
+ parentName: Right_MiddleDistal
+ position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584}
+ rotation: {x: 0, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyProximal
+ parentName: Right_Hand
+ position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566}
+ rotation: {x: -0.020058475, y: -0.55049545, z: -0.008249418, w: 0.83455646}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyIntermediate
+ parentName: Right_PinkyProximal
+ position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623}
+ rotation: {x: 0.02811499, y: -0.0000035166731, z: -0.00000016298141, w: 0.9996047}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistal
+ parentName: Right_PinkyIntermediate
+ position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345}
+ rotation: {x: 0.03642403, y: -0.0000024211556, z: -0.000008829222, w: 0.9993365}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_PinkyDistalEnd
+ parentName: Right_PinkyDistal
+ position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108}
+ rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingProximal
+ parentName: Right_Hand
+ position: {x: -0.00952738, y: -0.08161427, z: 0.012242128}
+ rotation: {x: -0.017649079, y: -0.6027014, z: -0.0040535578, w: 0.7977614}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingIntermediate
+ parentName: Right_RingProximal
+ position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335}
+ rotation: {x: 0.023547903, y: 0.0000024139879, z: 0.0000069094813, w: 0.9997228}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistal
+ parentName: Right_RingIntermediate
+ position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098}
+ rotation: {x: 0.039100695, y: 0.00000009656897, z: -0.000004755179, w: 0.99923533}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_RingDistalEnd
+ parentName: Right_RingDistal
+ position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459}
+ rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbProximal
+ parentName: Right_Hand
+ position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695}
+ rotation: {x: 0.17960793, y: 0.8841713, z: 0.42399347, w: -0.07881395}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbIntermediate
+ parentName: Right_ThumbProximal
+ position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848}
+ rotation: {x: 0.12780538, y: -0, z: -0, w: 0.9917993}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistal
+ parentName: Right_ThumbIntermediate
+ position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783}
+ rotation: {x: -0.04541878, y: -0.000003060937, z: 0.000004811603, w: 0.99896806}
+ scale: {x: 1, y: 1, z: 1}
+ - name: Right_ThumbDistalEnd
+ parentName: Right_ThumbDistal
+ position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683}
+ rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1}
+ scale: {x: 1, y: 1, z: 1}
+ armTwist: 1
+ foreArmTwist: 0
+ upperLegTwist: 1
+ legTwist: 0
+ armStretch: 0
+ legStretch: 0
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 1
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 0
+ animationType: 3
+ humanoidOversampling: 1
+ avatarSetup: 1
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures.meta
new file mode 100644
index 00000000..b970bb6d
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b7be97fd73e314e4aa8896e86bd51e18
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_AlbedoTransparency.png b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_AlbedoTransparency.png
new file mode 100644
index 00000000..2283e9d5
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_AlbedoTransparency.png differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_AlbedoTransparency.png.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_AlbedoTransparency.png.meta
new file mode 100644
index 00000000..ba9d6dfd
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_AlbedoTransparency.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: c6dc62700fa06274b9608a9fce8ed21b
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ 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
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ 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
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 2
+ 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: 2
+ 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: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_MetallicSmoothness.png b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_MetallicSmoothness.png
new file mode 100644
index 00000000..25032a9d
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_MetallicSmoothness.png differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_MetallicSmoothness.png.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_MetallicSmoothness.png.meta
new file mode 100644
index 00000000..8c48bd34
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_MetallicSmoothness.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: b41d630ccc344454bb1f27587f9acd70
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ 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
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ 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
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 2
+ 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: 2
+ 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: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_Normal.png b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_Normal.png
new file mode 100644
index 00000000..8b44fc4b
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_Normal.png differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_Normal.png.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_Normal.png.meta
new file mode 100644
index 00000000..6353e568
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Arms_Normal.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: 104a45460231b8d4783e0bb2223be28c
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ 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
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ 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: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 2
+ 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: 2
+ 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: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_AlbedoTransparency.png b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_AlbedoTransparency.png
new file mode 100644
index 00000000..d276430f
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_AlbedoTransparency.png differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_AlbedoTransparency.png.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_AlbedoTransparency.png.meta
new file mode 100644
index 00000000..4a126653
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_AlbedoTransparency.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: 28d78c5517421f047b88352f3b18e8e7
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ 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
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ 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
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 2
+ 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: 2
+ 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: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_MetallicSmoothness.png b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_MetallicSmoothness.png
new file mode 100644
index 00000000..9167e2f9
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_MetallicSmoothness.png differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_MetallicSmoothness.png.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_MetallicSmoothness.png.meta
new file mode 100644
index 00000000..d7044d10
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_MetallicSmoothness.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: e73adacd5e8f6fc45a491dbd62e71ead
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ 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
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ 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
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 2
+ 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: 2
+ 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: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_Normal.png b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_Normal.png
new file mode 100644
index 00000000..037c6990
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_Normal.png differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_Normal.png.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_Normal.png.meta
new file mode 100644
index 00000000..e1ab23a9
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Body_Normal.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: 2a3daea46c599324e873f935ab08000a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ 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
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ 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: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 2
+ 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: 2
+ 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: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_AlbedoTransparency.png b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_AlbedoTransparency.png
new file mode 100644
index 00000000..46344844
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_AlbedoTransparency.png differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_AlbedoTransparency.png.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_AlbedoTransparency.png.meta
new file mode 100644
index 00000000..57f70b33
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_AlbedoTransparency.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: c444e3d02d2fcff4d9fe5211d67652a0
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ 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
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ 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
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 2
+ 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: 2
+ 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: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_MetallicSmoothness.png b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_MetallicSmoothness.png
new file mode 100644
index 00000000..01ae5d85
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_MetallicSmoothness.png differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_MetallicSmoothness.png.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_MetallicSmoothness.png.meta
new file mode 100644
index 00000000..73389aca
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_MetallicSmoothness.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: 1c98c94efa7792645972ecf95e6f86c2
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ 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
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ 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
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 2
+ 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: 2
+ 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: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_Normal.png b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_Normal.png
new file mode 100644
index 00000000..baf96648
Binary files /dev/null and b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_Normal.png differ
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_Normal.png.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_Normal.png.meta
new file mode 100644
index 00000000..e4cddacf
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Modules/Character/Textures/Armature_Legs_Normal.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: b2c5d9c39850da946ae135dcb57faaea
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ 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
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ 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: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 2
+ 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: 2
+ 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: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources.meta
new file mode 100644
index 00000000..8d71c95f
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 25e8a2bd75f5cea438a5366b828e0d33
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs.meta
new file mode 100644
index 00000000..242cde3c
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ccd7f089c449ba04d85f64ebeac3cfe8
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Application.prefab b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Application.prefab
new file mode 100644
index 00000000..461f247d
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Application.prefab
@@ -0,0 +1,2811 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &162623273
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 162623276}
+ - component: {fileID: 162623275}
+ - component: {fileID: 162623274}
+ - component: {fileID: 162623277}
+ m_Layer: 0
+ m_Name: XR Origin
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &162623276
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 162623273}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 11.67}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 915312238}
+ m_Father: {fileID: 6691438890776943788}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &162623275
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 162623273}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e0cb9aa70a22847b5925ee5f067c10a9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Camera: {fileID: 1907124830}
+ m_OriginBaseGameObject: {fileID: 162623273}
+ m_CameraFloorOffsetObject: {fileID: 915312237}
+ m_RequestedTrackingOriginMode: 0
+ m_CameraYOffset: 1.1176
+--- !u!114 &162623274
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 162623273}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 017c5e3933235514c9520e1dace2a4b2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ActionAssets:
+ - {fileID: -944628639613478452, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+--- !u!114 &162623277
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 162623273}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fd9f82377aeb9704193bd866d119aaa5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ screenFade: 0
+ eyeTracking: 0
+ trackingMode: 0
+ faceTracking: 0
+ lipsyncTracking: 0
+ lateLatching: 0
+ latelatchingDebug: 0
+ bodyTracking: 0
+ foveationLevel: -1
+ openMRC: 0
+ foregroundLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ backLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ backgroundCamObj: {fileID: 0}
+ foregroundCamObj: {fileID: 0}
+ mrcBackgroundRT: {fileID: 0}
+ mrcForegroundRT: {fileID: 0}
+ useRecommendedAntiAliasingLevel: 1
+--- !u!1 &553282659
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 553282660}
+ - component: {fileID: 7233021183560949412}
+ m_Layer: 0
+ m_Name: LocalPlayerState
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &553282660
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 553282659}
+ 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: 6691438890776943788}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &7233021183560949412
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 553282659}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: be4e373e1bcf36e41a7eb8a2ccefdc5b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Color: {r: 0, g: 0, b: 0, a: 0}
+ Username:
+--- !u!1 &607149441
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 607149442}
+ - component: {fileID: 607149446}
+ - component: {fileID: 607149445}
+ - component: {fileID: 607149444}
+ - component: {fileID: 607149443}
+ m_Layer: 0
+ m_Name: LeftHand
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &607149442
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 607149441}
+ 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_Children: []
+ m_Father: {fileID: 915312238}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &607149446
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 607149441}
+ m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &607149445
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 607149441}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ 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!136 &607149444
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 607149441}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ m_Radius: 0.5
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &607149443
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 607149441}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5a2a9c34df4095f47b9ca8f975175f5b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Device: 1
+ m_PoseSource: 4
+ m_PoseProviderComponent: {fileID: 0}
+ m_TrackingType: 0
+ m_UpdateType: 0
+ m_UseRelativeTransform: 0
+--- !u!1 &736865442
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 736865443}
+ - component: {fileID: 736865445}
+ - component: {fileID: 736865444}
+ m_Layer: 0
+ m_Name: MatchedInfo
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &736865443
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 736865442}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.0000031292}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6691438890034753970}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: -100, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &736865445
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 736865442}
+ m_CullTransparentMesh: 1
+--- !u!114 &736865444
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 736865442}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: asdfasdfsaf
+ 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: 2.5
+ m_fontSizeBase: 2.5
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 1024
+ 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: 1
+ 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: 14.353836}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &915312237
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 915312238}
+ - component: {fileID: 915312239}
+ m_Layer: 0
+ m_Name: Camera Offset
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &915312238
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 915312237}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 2, z: -4}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1907124827}
+ - {fileID: 607149442}
+ - {fileID: 2041826241}
+ - {fileID: 1964154072}
+ - {fileID: 1833726076}
+ m_Father: {fileID: 162623276}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &915312239
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 915312237}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 87179611c159e6643be218eba35e0966, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Offset: {x: 0, y: 2, z: -4}
+ SmoothSpeed: 0.1
+--- !u!1 &1008802421
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1008802422}
+ - component: {fileID: 1008802424}
+ - component: {fileID: 1008802423}
+ m_Layer: 0
+ m_Name: ButtonText
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1008802422
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1008802421}
+ 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: 2131672837}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0.837}
+ m_AnchoredPosition: {x: 0, y: 1.1213999}
+ m_SizeDelta: {x: -2.382, y: 2.2419}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1008802424
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1008802421}
+ m_CullTransparentMesh: 1
+--- !u!114 &1008802423
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1008802421}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: Start
+ 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: 3.9
+ m_fontSizeBase: 3.9
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &1259580255
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1259580257}
+ - component: {fileID: 1259580256}
+ m_Layer: 0
+ m_Name: XR Interaction Manager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1259580257
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1259580255}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 11.67}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6691438890776943788}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1259580256
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1259580255}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_StartingHoverFilters: []
+ m_StartingSelectFilters: []
+--- !u!1 &1833726075
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1833726076}
+ - component: {fileID: 1833726081}
+ - component: {fileID: 1833726080}
+ - component: {fileID: 1833726079}
+ - component: {fileID: 1833726078}
+ - component: {fileID: 1833726077}
+ m_Layer: 0
+ m_Name: RightControler
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1833726076
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1833726075}
+ 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: 915312238}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1833726081
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1833726075}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UpdateTrackingType: 0
+ m_EnableInputTracking: 1
+ m_EnableInputActions: 1
+ m_ModelPrefab: {fileID: 2281696399307846454, guid: 94f7925a0585b274fbc5fe6b8f9b1f4e, type: 3}
+ m_ModelParent: {fileID: 0}
+ m_Model: {fileID: 0}
+ m_AnimateModel: 0
+ m_ModelSelectTransition:
+ m_ModelDeSelectTransition:
+ m_PositionAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Position
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 93ead265-4bff-4199-8ddf-33c028dcfee9
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -3326005586356538449, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotationAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotation
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: cd9a8368-32d3-4e58-86a0-6fe78d199369
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 5101698808175986029, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_TrackingStateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Tracking State
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 7964ebc4-45e1-4431-a17a-7f2206e38661
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -1277054153949319361, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 3207346a-8b2f-4b24-b45a-90ea1cdef7fb
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 187161793506945269, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: dcf177a1-4c6d-42a7-b095-5f68848dadf1
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -1758520528963094988, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: ed3be3cd-637e-48d6-ae4b-dd97305eaa40
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 83097790271614945, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: af4d694a-0159-4acb-bf36-7b78c35a10d5
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 7904272356298805229, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 55ce5c5d-aad8-4ebf-9f21-899ff595a062
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: cdab09f7-ec37-4eee-b72c-06339cc37c8b
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -5908353012961274365, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_HapticDeviceAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Haptic Device
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 60f81e0e-3fab-4e26-90b6-a5ab762e2bb1
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -8222252007134549311, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: aca8fec0-a925-428d-a6b7-25cfbd478258
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -5913262927076077117, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_DirectionalAnchorRotationAction:
+ m_UseReference: 0
+ m_Action:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_TranslateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Translate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 161874b5-2545-4bb2-bea4-eeddeb4fabf6
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 875253871413052681, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ButtonPressPoint: 0.5
+--- !u!114 &1833726080
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1833726075}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_InteractionManager: {fileID: 1259580256}
+ m_InteractionLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_InteractionLayers:
+ m_Bits: 4294967295
+ m_AttachTransform: {fileID: 0}
+ m_KeepSelectedTargetValid: 1
+ m_StartingSelectedInteractable: {fileID: 0}
+ m_StartingTargetFilter: {fileID: 0}
+ m_HoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_HoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_StartingHoverFilters: []
+ m_StartingSelectFilters: []
+ m_OnHoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnHoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectActionTrigger: 0
+ m_HideControllerOnSelect: 0
+ m_AllowHoveredActivate: 0
+ m_TargetPriorityMode: 0
+ m_PlayAudioClipOnSelectEntered: 0
+ m_AudioClipForOnSelectEntered: {fileID: 0}
+ m_PlayAudioClipOnSelectExited: 0
+ m_AudioClipForOnSelectExited: {fileID: 0}
+ m_PlayAudioClipOnSelectCanceled: 0
+ m_AudioClipForOnSelectCanceled: {fileID: 0}
+ m_PlayAudioClipOnHoverEntered: 0
+ m_AudioClipForOnHoverEntered: {fileID: 0}
+ m_PlayAudioClipOnHoverExited: 0
+ m_AudioClipForOnHoverExited: {fileID: 0}
+ m_PlayAudioClipOnHoverCanceled: 0
+ m_AudioClipForOnHoverCanceled: {fileID: 0}
+ m_AllowHoverAudioWhileSelecting: 1
+ m_PlayHapticsOnSelectEntered: 0
+ m_HapticSelectEnterIntensity: 0
+ m_HapticSelectEnterDuration: 0
+ m_PlayHapticsOnSelectExited: 0
+ m_HapticSelectExitIntensity: 0
+ m_HapticSelectExitDuration: 0
+ m_PlayHapticsOnSelectCanceled: 0
+ m_HapticSelectCancelIntensity: 0
+ m_HapticSelectCancelDuration: 0
+ m_PlayHapticsOnHoverEntered: 0
+ m_HapticHoverEnterIntensity: 0
+ m_HapticHoverEnterDuration: 0
+ m_PlayHapticsOnHoverExited: 0
+ m_HapticHoverExitIntensity: 0
+ m_HapticHoverExitDuration: 0
+ m_PlayHapticsOnHoverCanceled: 0
+ m_HapticHoverCancelIntensity: 0
+ m_HapticHoverCancelDuration: 0
+ m_AllowHoverHapticsWhileSelecting: 1
+ m_LineType: 0
+ m_BlendVisualLinePoints: 1
+ m_MaxRaycastDistance: 30
+ m_RayOriginTransform: {fileID: 0}
+ m_ReferenceFrame: {fileID: 0}
+ m_Velocity: 16
+ m_Acceleration: 9.8
+ m_AdditionalGroundHeight: 0.1
+ m_AdditionalFlightTime: 0.5
+ m_EndPointDistance: 30
+ m_EndPointHeight: -10
+ m_ControlPointDistance: 10
+ m_ControlPointHeight: 5
+ m_SampleFrequency: 20
+ m_HitDetectionType: 0
+ m_SphereCastRadius: 0.1
+ m_RaycastMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RaycastTriggerInteraction: 1
+ m_HitClosestOnly: 0
+ m_HoverToSelect: 0
+ m_HoverTimeToSelect: 0.5
+ m_EnableUIInteraction: 1
+ m_AllowAnchorControl: 1
+ m_UseForceGrab: 1
+ m_RotateSpeed: 180
+ m_TranslateSpeed: 1
+ m_AnchorRotateReferenceFrame: {fileID: 0}
+ m_AnchorRotationMode: 0
+--- !u!120 &1833726079
+LineRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1833726075}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 0
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10306, 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_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: 1}
+ m_Parameters:
+ serializedVersion: 3
+ widthMultiplier: 0.02
+ widthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ colorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ numCornerVertices: 4
+ numCapVertices: 4
+ alignment: 0
+ textureMode: 0
+ shadowBias: 0.5
+ generateLightingData: 0
+ m_UseWorldSpace: 1
+ m_Loop: 0
+--- !u!114 &1833726078
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1833726075}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_LineWidth: 0.02
+ m_OverrideInteractorLineLength: 1
+ m_LineLength: 10
+ m_WidthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_ValidColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_InvalidColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 0, b: 0, a: 1}
+ key1: {r: 1, g: 0, b: 0, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_BlockedColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_TreatSelectionAsValidState: 0
+ m_SmoothMovement: 0
+ m_FollowTightness: 10
+ m_SnapThresholdDistance: 10
+ m_Reticle: {fileID: 0}
+ m_BlockedReticle: {fileID: 0}
+ m_StopLineAtFirstRaycastHit: 1
+ m_StopLineAtSelection: 0
+--- !u!210 &1833726077
+SortingGroup:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1833726075}
+ m_Enabled: 1
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 5
+--- !u!1 &1907124826
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1907124827}
+ - component: {fileID: 1907124830}
+ - component: {fileID: 1907124829}
+ - component: {fileID: 1907124828}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1907124827
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1907124826}
+ 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: 915312238}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &1907124830
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1907124826}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.054957286, g: 0.10378471, b: 0.1792453, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.01
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!81 &1907124829
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1907124826}
+ m_Enabled: 1
+--- !u!114 &1907124828
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1907124826}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_TrackingType: 0
+ m_UpdateType: 0
+ m_PositionInput:
+ m_UseReference: 0
+ m_Action:
+ m_Name: Position
+ m_Type: 0
+ m_ExpectedControlType: Vector3
+ m_Id: 5c33571a-d6bc-410e-b6ec-1917c5453256
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings:
+ - m_Name:
+ m_Id: d6b53e13-f3da-4f0d-a4e8-1993664e062a
+ m_Path: /centerEyePosition
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Position
+ m_Flags: 0
+ - m_Name:
+ m_Id: e39cb1b7-6839-448a-99c7-da921303e0bb
+ m_Path: /devicePosition
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Position
+ m_Flags: 0
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_RotationInput:
+ m_UseReference: 0
+ m_Action:
+ m_Name: Rotation
+ m_Type: 0
+ m_ExpectedControlType: Quaternion
+ m_Id: a7047426-986c-4ed4-84c1-d556dcc0748b
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings:
+ - m_Name:
+ m_Id: 543c4424-11c7-4df9-824e-27e2edb02709
+ m_Path: /centerEyeRotation
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Rotation
+ m_Flags: 0
+ - m_Name:
+ m_Id: 8921d6fe-89a1-422f-9e4b-c657581b4eb7
+ m_Path: /deviceRotation
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Rotation
+ m_Flags: 0
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_PositionAction:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_RotationAction:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_HasMigratedActions: 1
+--- !u!1 &1964154071
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1964154072}
+ - component: {fileID: 1964154077}
+ - component: {fileID: 1964154076}
+ - component: {fileID: 1964154075}
+ - component: {fileID: 1964154074}
+ - component: {fileID: 1964154073}
+ m_Layer: 0
+ m_Name: LeftControler
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1964154072
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1964154071}
+ 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: 915312238}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1964154077
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1964154071}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UpdateTrackingType: 0
+ m_EnableInputTracking: 1
+ m_EnableInputActions: 1
+ m_ModelPrefab: {fileID: 2673240740586844490, guid: d792b21ba2f3e6e4ba026384d6d6536f, type: 3}
+ m_ModelParent: {fileID: 0}
+ m_Model: {fileID: 0}
+ m_AnimateModel: 0
+ m_ModelSelectTransition:
+ m_ModelDeSelectTransition:
+ m_PositionAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Position
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 26d2aaa4-6518-4d33-8fae-419043a723d4
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -2024308242397127297, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotationAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotation
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: d7a15530-737b-416a-9d5d-a8b51ba6c682
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_TrackingStateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Tracking State
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: e12d3305-8866-42f0-a9b8-2cd7f4310c31
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 684395432459739428, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 05483079-4b7c-4369-9176-fb8514428e98
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -6131295136447488360, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SelectActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Select Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 8e42f062-fb45-44df-9825-35e1dfc18834
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 6558622148059887818, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 38e5c09b-96d2-40e4-ae8e-3bfb9eb16727
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -5982496924579745919, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ActivateActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Activate Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: ff2b1032-d7ae-4e1a-8e8a-a5556d5f8db5
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -4289430672226363583, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 347fe4ac-83bc-44f7-a0d2-2793a5775161
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -6395602842196007441, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_UIPressActionValue:
+ m_UseReference: 1
+ m_Action:
+ m_Name: UI Press Action Value
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 8b29ebc3-3830-4622-8c66-56f3a9b98d73
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 71106601250685021, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_HapticDeviceAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Haptic Device
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 35cfed17-bcaf-4ff9-9fe0-fa1727b7619b
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -8785819595477538065, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RotateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Rotate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 4fcd4b62-1769-4cc4-aaee-aea2fc40d24f
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: -7363382999065477798, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_DirectionalAnchorRotationAction:
+ m_UseReference: 0
+ m_Action:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id:
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 0}
+ m_TranslateAnchorAction:
+ m_UseReference: 1
+ m_Action:
+ m_Name: Translate Anchor
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 7bfe4461-8d15-4a61-9fa6-28ce950c9996
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_Reference: {fileID: 7779212132400271959, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ButtonPressPoint: 0.5
+--- !u!114 &1964154076
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1964154071}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_InteractionManager: {fileID: 1259580256}
+ m_InteractionLayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_InteractionLayers:
+ m_Bits: 4294967295
+ m_AttachTransform: {fileID: 0}
+ m_KeepSelectedTargetValid: 1
+ m_StartingSelectedInteractable: {fileID: 0}
+ m_StartingTargetFilter: {fileID: 0}
+ m_HoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_HoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_StartingHoverFilters: []
+ m_StartingSelectFilters: []
+ m_OnHoverEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnHoverExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectEntered:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnSelectExited:
+ m_PersistentCalls:
+ m_Calls: []
+ m_SelectActionTrigger: 0
+ m_HideControllerOnSelect: 0
+ m_AllowHoveredActivate: 0
+ m_TargetPriorityMode: 0
+ m_PlayAudioClipOnSelectEntered: 0
+ m_AudioClipForOnSelectEntered: {fileID: 0}
+ m_PlayAudioClipOnSelectExited: 0
+ m_AudioClipForOnSelectExited: {fileID: 0}
+ m_PlayAudioClipOnSelectCanceled: 0
+ m_AudioClipForOnSelectCanceled: {fileID: 0}
+ m_PlayAudioClipOnHoverEntered: 0
+ m_AudioClipForOnHoverEntered: {fileID: 0}
+ m_PlayAudioClipOnHoverExited: 0
+ m_AudioClipForOnHoverExited: {fileID: 0}
+ m_PlayAudioClipOnHoverCanceled: 0
+ m_AudioClipForOnHoverCanceled: {fileID: 0}
+ m_AllowHoverAudioWhileSelecting: 1
+ m_PlayHapticsOnSelectEntered: 0
+ m_HapticSelectEnterIntensity: 0
+ m_HapticSelectEnterDuration: 0
+ m_PlayHapticsOnSelectExited: 0
+ m_HapticSelectExitIntensity: 0
+ m_HapticSelectExitDuration: 0
+ m_PlayHapticsOnSelectCanceled: 0
+ m_HapticSelectCancelIntensity: 0
+ m_HapticSelectCancelDuration: 0
+ m_PlayHapticsOnHoverEntered: 0
+ m_HapticHoverEnterIntensity: 0
+ m_HapticHoverEnterDuration: 0
+ m_PlayHapticsOnHoverExited: 0
+ m_HapticHoverExitIntensity: 0
+ m_HapticHoverExitDuration: 0
+ m_PlayHapticsOnHoverCanceled: 0
+ m_HapticHoverCancelIntensity: 0
+ m_HapticHoverCancelDuration: 0
+ m_AllowHoverHapticsWhileSelecting: 1
+ m_LineType: 0
+ m_BlendVisualLinePoints: 1
+ m_MaxRaycastDistance: 30
+ m_RayOriginTransform: {fileID: 0}
+ m_ReferenceFrame: {fileID: 0}
+ m_Velocity: 16
+ m_Acceleration: 9.8
+ m_AdditionalGroundHeight: 0.1
+ m_AdditionalFlightTime: 0.5
+ m_EndPointDistance: 30
+ m_EndPointHeight: -10
+ m_ControlPointDistance: 10
+ m_ControlPointHeight: 5
+ m_SampleFrequency: 20
+ m_HitDetectionType: 0
+ m_SphereCastRadius: 0.1
+ m_RaycastMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RaycastTriggerInteraction: 1
+ m_HitClosestOnly: 0
+ m_HoverToSelect: 0
+ m_HoverTimeToSelect: 0.5
+ m_EnableUIInteraction: 1
+ m_AllowAnchorControl: 1
+ m_UseForceGrab: 1
+ m_RotateSpeed: 180
+ m_TranslateSpeed: 1
+ m_AnchorRotateReferenceFrame: {fileID: 0}
+ m_AnchorRotationMode: 0
+--- !u!120 &1964154075
+LineRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1964154071}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 0
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10306, 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_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: 1}
+ m_Parameters:
+ serializedVersion: 3
+ widthMultiplier: 0.02
+ widthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ colorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ numCornerVertices: 4
+ numCapVertices: 4
+ alignment: 0
+ textureMode: 0
+ shadowBias: 0.5
+ generateLightingData: 0
+ m_UseWorldSpace: 1
+ m_Loop: 0
+--- !u!114 &1964154074
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1964154071}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_LineWidth: 0.02
+ m_OverrideInteractorLineLength: 1
+ m_LineLength: 10
+ m_WidthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_ValidColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_InvalidColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 0, b: 0, a: 1}
+ key1: {r: 1, g: 0, b: 0, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_BlockedColorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ m_TreatSelectionAsValidState: 0
+ m_SmoothMovement: 0
+ m_FollowTightness: 10
+ m_SnapThresholdDistance: 10
+ m_Reticle: {fileID: 0}
+ m_BlockedReticle: {fileID: 0}
+ m_StopLineAtFirstRaycastHit: 1
+ m_StopLineAtSelection: 0
+--- !u!210 &1964154073
+SortingGroup:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1964154071}
+ m_Enabled: 1
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 5
+--- !u!1 &2041826240
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2041826241}
+ - component: {fileID: 2041826245}
+ - component: {fileID: 2041826244}
+ - component: {fileID: 2041826243}
+ - component: {fileID: 2041826242}
+ m_Layer: 0
+ m_Name: RightHand
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2041826241
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2041826240}
+ 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_Children: []
+ m_Father: {fileID: 915312238}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &2041826245
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2041826240}
+ m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &2041826244
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2041826240}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ 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!136 &2041826243
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2041826240}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ m_Radius: 0.5
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &2041826242
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2041826240}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5a2a9c34df4095f47b9ca8f975175f5b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Device: 1
+ m_PoseSource: 5
+ m_PoseProviderComponent: {fileID: 0}
+ m_TrackingType: 0
+ m_UpdateType: 0
+ m_UseRelativeTransform: 0
+--- !u!1 &2131672836
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2131672837}
+ - component: {fileID: 2131672840}
+ - component: {fileID: 2131672839}
+ - component: {fileID: 2131672838}
+ m_Layer: 0
+ m_Name: Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2131672837
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2131672836}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1008802422}
+ m_Father: {fileID: 6691438890034753970}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 51.32, y: 6.547}
+ m_SizeDelta: {x: 41.624, y: 13.092}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2131672840
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2131672836}
+ m_CullTransparentMesh: 1
+--- !u!114 &2131672839
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2131672836}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 5
+--- !u!114 &2131672838
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2131672836}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.16981131, g: 0.16420433, b: 0.16420433, a: 0.92156863}
+ m_HighlightedColor: {r: 0.07697892, g: 0.21698111, b: 0.06243324, a: 1}
+ m_PressedColor: {r: 0.754717, g: 0.25496852, b: 0.04034645, a: 1}
+ m_SelectedColor: {r: 0.06666667, g: 0.36862746, b: 0.03529412, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 2131672839}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 926134321}
+ m_TargetAssemblyTypeName: UIHandler, Assembly-CSharp
+ m_MethodName: HandleButtonClick
+ 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
+--- !u!1 &6691438889502969061
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6691438889502969065}
+ - component: {fileID: 6691438889502969066}
+ - component: {fileID: 6691438889502969060}
+ m_Layer: 0
+ m_Name: ConsoleLog
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6691438889502969065
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438889502969061}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.0000031292}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6691438890034753970}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6691438889502969066
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438889502969061}
+ m_CullTransparentMesh: 1
+--- !u!114 &6691438889502969060
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438889502969061}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: asdfasdfsaf
+ 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: 2.5
+ m_fontSizeBase: 2.5
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 1024
+ 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: 1
+ 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: 14.353836}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &6691438890034753971
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6691438890034753970}
+ - component: {fileID: 6691438890034753974}
+ - component: {fileID: 6691438890034753975}
+ - component: {fileID: 6691438890034753968}
+ - component: {fileID: 6691438890034753969}
+ m_Layer: 0
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6691438890034753970
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890034753971}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.01, y: 0.01, z: 1}
+ m_Children:
+ - {fileID: 6691438889502969065}
+ - {fileID: 2131672837}
+ - {fileID: 736865443}
+ m_Father: {fileID: 6691438890974912409}
+ 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.00112, y: 0.00282}
+ m_SizeDelta: {x: 100.22314, y: 98.56335}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!223 &6691438890034753974
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890034753971}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 2
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!114 &6691438890034753975
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890034753971}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 10
+ m_PresetInfoIsWorld: 1
+--- !u!114 &6691438890034753968
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890034753971}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &6691438890034753969
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890034753971}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 0
+ m_CheckFor2DOcclusion: 0
+ m_CheckFor3DOcclusion: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RaycastTriggerInteraction: 1
+--- !u!1 &6691438890673311621
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6691438890673311620}
+ - component: {fileID: 6691438890673311626}
+ - component: {fileID: 6691438890673311627}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6691438890673311620
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890673311621}
+ 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: 6691438890974912409}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &6691438890673311626
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890673311621}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!114 &6691438890673311627
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890673311621}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ClickSpeed: 0.3
+ m_MoveDeadzone: 0.6
+ m_RepeatDelay: 0.5
+ m_RepeatRate: 0.1
+ m_TrackedDeviceDragThresholdMultiplier: 1.4
+ m_ActiveInputMode: 1
+ m_MaxTrackedDeviceRaycastDistance: 1000
+ m_EnableXRInput: 1
+ m_EnableMouseInput: 1
+ m_EnableTouchInput: 1
+ m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+ m_EnableBuiltinActionsAsFallback: 1
+ m_EnableGamepadInput: 1
+ m_EnableJoystickInput: 1
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+--- !u!1 &6691438890776943791
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6691438890776943788}
+ - component: {fileID: 926134324}
+ - component: {fileID: 1699911265}
+ - component: {fileID: 926134322}
+ - component: {fileID: 6691438890776943789}
+ - component: {fileID: 926134321}
+ - component: {fileID: 1699911264}
+ - component: {fileID: 4659063662912108431}
+ m_Layer: 0
+ m_Name: Application
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6691438890776943788
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890776943791}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6691438890974912409}
+ - {fileID: 553282660}
+ - {fileID: 1259580257}
+ - {fileID: 162623276}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &926134324
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890776943791}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 593a2fe42fa9d37498c96f9a383b6521, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ RunInBackground: 1
+ LogLevel: 1
+ NetworkConfig:
+ ProtocolVersion: 0
+ NetworkTransport: {fileID: 1699911265}
+ PlayerPrefab: {fileID: 0}
+ NetworkPrefabs:
+ - Override: 0
+ Prefab: {fileID: 1599288629967111268, guid: 68e108c869573c241a2ff37d9cf22837, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
+ TickRate: 30
+ ClientConnectionBufferTimeout: 10
+ ConnectionApproval: 0
+ ConnectionData:
+ EnableTimeResync: 0
+ TimeResyncInterval: 30
+ EnsureNetworkVariableLengthSafety: 0
+ EnableSceneManagement: 1
+ ForceSamePrefabs: 1
+ RecycleNetworkIds: 1
+ NetworkIdRecycleDelay: 120
+ RpcHashSize: 0
+ LoadSceneTimeOut: 120
+ SpawnTimeout: 1
+ EnableNetworkLogs: 1
+--- !u!114 &1699911265
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890776943791}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: efe5516b9c6135142a7e63556db66891, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ TransportLogLevel: 0
+ WorkMode: 0
+ SimpleModeInfo:
+ roomName:
+ password:
+--- !u!114 &926134322
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890776943791}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b7130cb81802d6e45835a346f31e2600, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ ServerCreatePlayerPrefabPath:
+--- !u!114 &6691438890776943789
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890776943791}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 81fad7056184de44e8092a62c25752a9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &926134321
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890776943791}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cff991b4fc574ba45bdd67a245296db5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &1699911264
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890776943791}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2f48b0ad61cd4994896da0986a751340, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &4659063662912108431
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890776943791}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 865ade5e8e233a54d84be0c4f32f1550, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DebuggingPanel: {fileID: 0}
+--- !u!1 &6691438890974912406
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6691438890974912409}
+ - component: {fileID: 6691438890974912410}
+ - component: {fileID: 6691438890974912411}
+ - component: {fileID: 6691438890974912404}
+ - component: {fileID: 6691438890974912405}
+ m_Layer: 0
+ m_Name: LogPanel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6691438890974912409
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890974912406}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -1.2093, y: 4.9904, z: 20}
+ m_LocalScale: {x: 12.419114, y: 9.980853, z: 0.1}
+ m_Children:
+ - {fileID: 6691438890034753970}
+ - {fileID: 6691438890673311620}
+ m_Father: {fileID: 6691438890776943788}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &6691438890974912410
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890974912406}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &6691438890974912411
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890974912406}
+ m_Enabled: 0
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &6691438890974912404
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890974912406}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &6691438890974912405
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6691438890974912406}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fda1c6983651e5242956bf55f410adde, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Application.prefab.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Application.prefab.meta
new file mode 100644
index 00000000..dd326e57
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Application.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a3826b127d4cc834c8839b168f36c47c
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Player.prefab b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Player.prefab
new file mode 100644
index 00000000..352b7bea
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Player.prefab
@@ -0,0 +1,2938 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &76468672943380513
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1062876408709803709}
+ m_Layer: 0
+ m_Name: Chest
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1062876408709803709
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 76468672943380513}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0.1034043, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 9104809705314273201}
+ m_Father: {fileID: 5261834649404514297}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &98750789798901204
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1757547786725583219}
+ m_Layer: 0
+ m_Name: Left_MiddleProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1757547786725583219
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 98750789798901204}
+ m_LocalRotation: {x: 0.09593409, y: -0.6426922, z: 0.21124882, w: 0.73014885}
+ m_LocalPosition: {x: 0.012847862, y: 0.08609763, z: 0.003435423}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 522493189634858149}
+ m_Father: {fileID: 6053053201436335062}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &347459792225773625
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2053235968611070756}
+ m_Layer: 0
+ m_Name: Right_PinkyProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2053235968611070756
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 347459792225773625}
+ m_LocalRotation: {x: 0.0066045397, y: -0.5050901, z: 0.37113747, w: 0.77916455}
+ m_LocalPosition: {x: -0.0044381507, y: -0.07288141, z: 0.029358566}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6027131479180507195}
+ m_Father: {fileID: 6686232878256220678}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &443994095726717835
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3773729066802646704}
+ m_Layer: 0
+ m_Name: Right_MiddleDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3773729066802646704
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 443994095726717835}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1189242802241364244}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &728628209287039367
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 522493189634858149}
+ m_Layer: 0
+ m_Name: Left_MiddleIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &522493189634858149
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 728628209287039367}
+ m_LocalRotation: {x: 0.3409832, y: -0, z: -0, w: 0.94006944}
+ m_LocalPosition: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1762433776710079977}
+ m_Father: {fileID: 1757547786725583219}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1099998643440032657
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1262667820407712849}
+ m_Layer: 0
+ m_Name: Right_ThumbIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1262667820407712849
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1099998643440032657}
+ m_LocalRotation: {x: 0.12780538, y: -0, z: -0, w: 0.9917993}
+ m_LocalPosition: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4118738314565124299}
+ m_Father: {fileID: 3089204320418158555}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1261656172873877017
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5107406741809878127}
+ m_Layer: 0
+ m_Name: Hips
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5107406741809878127
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1261656172873877017}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0.9810986, z: -0.01590455}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 5446055538663914621}
+ - {fileID: 3910260677174180530}
+ - {fileID: 5261834649404514297}
+ m_Father: {fileID: 2933003944999231559}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1270161089126808932
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3910260677174180530}
+ m_Layer: 0
+ m_Name: Right_UpperLeg
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3910260677174180530
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1270161089126808932}
+ m_LocalRotation: {x: 0.0026075041, y: 0.000046300407, z: 0.01775374, w: 0.999839}
+ m_LocalPosition: {x: 0.086103186, y: -0.053458147, z: -0.0114706475}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 3224579133659466384}
+ m_Father: {fileID: 5107406741809878127}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1270763276388569306
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1786337735878820749}
+ m_Layer: 0
+ m_Name: Right_Foot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1786337735878820749
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1270763276388569306}
+ m_LocalRotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ m_LocalPosition: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 827090398748392440}
+ m_Father: {fileID: 3224579133659466384}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1565186815096942648
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6277512874380028866}
+ m_Layer: 0
+ m_Name: Right_ThumbDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6277512874380028866
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1565186815096942648}
+ m_LocalRotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4118738314565124299}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1599288629967111268
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2124010335323201246}
+ - component: {fileID: 5447716112945857700}
+ - component: {fileID: 7201686783073200431}
+ - component: {fileID: -8974180167308970091}
+ - component: {fileID: -800655191947982011}
+ - component: {fileID: 3656432421240593708}
+ - component: {fileID: 1599288629967111278}
+ - component: {fileID: 1599288629967111272}
+ - component: {fileID: 1676107263}
+ - component: {fileID: 3489425200523137537}
+ - component: {fileID: 1958991436557891974}
+ - component: {fileID: 2310570625586604485}
+ m_Layer: 8
+ m_Name: Player
+ m_TagString: Player
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2124010335323201246
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_LocalRotation: {x: -0, y: -0.059889756, z: 0, w: -0.99820507}
+ m_LocalPosition: {x: 0.0034836822, y: 0, z: 2.998934}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6397305807401598264}
+ - {fileID: 4931444906570684940}
+ - {fileID: 2933003944999231559}
+ - {fileID: 3133874598237595125}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 366.867, z: 0}
+--- !u!95 &5447716112945857700
+Animator:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Enabled: 1
+ m_Avatar: {fileID: 9000000, guid: 597976b6b3e452c499a186f5f40cbf87, type: 3}
+ m_Controller: {fileID: 9100000, guid: d2a053c389952cb45b8dcbe5fb58c888, type: 2}
+ m_CullingMode: 1
+ m_UpdateMode: 0
+ m_ApplyRootMotion: 0
+ m_LinearVelocityBlending: 0
+ m_WarningMessage:
+ m_HasTransformHierarchy: 1
+ m_AllowConstantClipSamplingOptimization: 1
+ m_KeepAnimatorControllerStateOnDisable: 0
+--- !u!136 &7201686783073200431
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 1
+ m_Enabled: 1
+ m_Radius: 0.5
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0, y: 1, z: 0}
+--- !u!114 &-8974180167308970091
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ GlobalObjectIdHash: 951099334
+ AlwaysReplicateAsRoot: 0
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+--- !u!114 &-800655191947982011
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e8d0727d5ae3244e3b569694d3912374, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ TransitionStateInfoList: []
+ m_Animator: {fileID: 5447716112945857700}
+--- !u!114 &3656432421240593708
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 291a27c3dcf217f46afc08f0d82b43fb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ SyncPositionX: 1
+ SyncPositionY: 1
+ SyncPositionZ: 1
+ SyncRotAngleX: 1
+ SyncRotAngleY: 1
+ SyncRotAngleZ: 1
+ SyncScaleX: 1
+ SyncScaleY: 1
+ SyncScaleZ: 1
+ PositionThreshold: 0.001
+ RotAngleThreshold: 0.01
+ ScaleThreshold: 0.01
+ InLocalSpace: 0
+ Interpolate: 1
+--- !u!143 &1599288629967111278
+CharacterController:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Height: 1.8
+ m_Radius: 0.28
+ m_SlopeLimit: 45
+ m_StepOffset: 0.25
+ m_SkinWidth: 0.02
+ m_MinMoveDistance: 0
+ m_Center: {x: 0, y: 0.93, z: 0}
+--- !u!114 &1599288629967111272
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Enabled: 0
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Actions: {fileID: -944628639613478452, guid: 5ddaa6e6135d699449c676d9915924ad, type: 3}
+ m_NotificationBehavior: 0
+ m_UIInputModule: {fileID: 0}
+ m_DeviceLostEvent:
+ m_PersistentCalls:
+ m_Calls: []
+ m_DeviceRegainedEvent:
+ m_PersistentCalls:
+ m_Calls: []
+ m_ControlsChangedEvent:
+ m_PersistentCalls:
+ m_Calls: []
+ m_ActionEvents:
+ - m_PersistentCalls:
+ m_Calls: []
+ m_ActionId: 6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d
+ m_ActionName: Player/Move[/Keyboard/w,/Keyboard/s,/Keyboard/a,/Keyboard/d,/Keyboard/upArrow,/Keyboard/downArrow,/Keyboard/leftArrow,/Keyboard/rightArrow,/XInputControllerWindows/leftStick]
+ - m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 0}
+ m_TargetAssemblyTypeName:
+ m_MethodName: InputJump
+ m_Mode: 0
+ 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
+ m_ActionId: 8c4abdf8-4099-493a-aa1a-129acec7c3df
+ m_ActionName: Player/Jump[/Keyboard/space,/XInputControllerWindows/buttonSouth]
+ - m_PersistentCalls:
+ m_Calls: []
+ m_ActionId: 3c99cc3e-40c8-44b5-a106-819fdfc646c4
+ m_ActionName: Player/Orbit
+ - m_PersistentCalls:
+ m_Calls: []
+ m_ActionId: 025b40dc-c838-4799-b4de-5ee49d705a39
+ m_ActionName: Player/ChangeColor[/Keyboard/c]
+ m_NeverAutoSwitchControlSchemes: 0
+ m_DefaultControlScheme:
+ m_DefaultActionMap: Player
+ m_SplitScreenIndex: -1
+ m_Camera: {fileID: 0}
+--- !u!114 &1676107263
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7b4715a52ea00714e8f61f754c00b3c4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ MoveInput: {x: 0, y: 0}
+ OrbitInput: {x: 0, y: 0}
+ JumpInput: 0
+--- !u!114 &3489425200523137537
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c26a557c6e1fcd541a3ae9c888ceb411, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ MoveSpeed: 5.33
+ RotationSmoothTime: 0.12
+ SpeedChangeRate: 10
+ GroundLayers:
+ serializedVersion: 2
+ m_Bits: 1
+--- !u!114 &1958991436557891974
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5ac080fb1c241a14abff668d6020ddf3, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ PlayerMeshRenderer: {fileID: 7408759211263970704}
+ UsernameCanvas: {fileID: 3133874598237595125}
+--- !u!114 &2310570625586604485
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1599288629967111268}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ce914d3f7f1f3b4479d0978cda710d06, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ pushLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ canPush: 0
+ strength: 1.1
+--- !u!1 &1674741982337949367
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5261834649404514297}
+ m_Layer: 0
+ m_Name: Spine
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5261834649404514297
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1674741982337949367}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0.058229383, z: 0.0012229546}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1062876408709803709}
+ m_Father: {fileID: 5107406741809878127}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1758181298841488679
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3089204320418158555}
+ m_Layer: 0
+ m_Name: Right_ThumbProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3089204320418158555
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1758181298841488679}
+ m_LocalRotation: {x: -0.22855467, y: 0.9196341, z: 0.3181213, w: 0.028891658}
+ m_LocalPosition: {x: 0.00080341793, y: -0.028816395, z: -0.023514695}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1262667820407712849}
+ m_Father: {fileID: 6686232878256220678}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1877834785957790317
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6721086291248870707}
+ m_Layer: 0
+ m_Name: Left_UpperArm
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6721086291248870707
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1877834785957790317}
+ m_LocalRotation: {x: 0.17870995, y: 0.027966414, z: 0.90344393, w: 0.38867685}
+ m_LocalPosition: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 926245842159057168}
+ m_Father: {fileID: 4767831773250079449}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1964484605984732704
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 779023380748359179}
+ m_Layer: 0
+ m_Name: Left_PinkyIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &779023380748359179
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1964484605984732704}
+ m_LocalRotation: {x: 0.29918617, y: -0, z: -0, w: 0.9541948}
+ m_LocalPosition: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 7173763147004306177}
+ m_Father: {fileID: 7587339503393063290}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2029630846399663569
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8790255502443537702}
+ m_Layer: 0
+ m_Name: Right_MiddleProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8790255502443537702
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2029630846399663569}
+ m_LocalRotation: {x: 0.09593409, y: -0.6426922, z: 0.21124882, w: 0.73014885}
+ m_LocalPosition: {x: -0.012848663, y: -0.08609768, z: -0.0034359337}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 601113037231909054}
+ m_Father: {fileID: 6686232878256220678}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2179702826741153884
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4931444906570684940}
+ m_Layer: 0
+ m_Name: Geometry
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4931444906570684940
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2179702826741153884}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 8343799267571330540}
+ m_Father: {fileID: 2124010335323201246}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2202317783129345085
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8644118213468032209}
+ m_Layer: 0
+ m_Name: Right_IndexDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8644118213468032209
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2202317783129345085}
+ m_LocalRotation: {x: 0.08318636, y: -0, z: -0, w: 0.996534}
+ m_LocalPosition: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1561045414050068972}
+ m_Father: {fileID: 3909440992574653390}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2211846422530839179
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 827090398748392440}
+ m_Layer: 0
+ m_Name: Right_Toes
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &827090398748392440
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2211846422530839179}
+ m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: -0.00000015643121, y: -0.07224799, z: 0.11807}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 3459072465803051433}
+ m_Father: {fileID: 1786337735878820749}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2390857198169066767
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2464920848348160738}
+ m_Layer: 0
+ m_Name: Right_UpperArm
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2464920848348160738
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2390857198169066767}
+ m_LocalRotation: {x: 0.17870995, y: 0.027966414, z: 0.90344393, w: 0.38867685}
+ m_LocalPosition: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6342006238853838902}
+ m_Father: {fileID: 6204387222185902461}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2546074519962557817
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4231331622228445573}
+ m_Layer: 0
+ m_Name: Neck
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4231331622228445573
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2546074519962557817}
+ m_LocalRotation: {x: 0.060688436, y: -0, z: -0, w: 0.9981568}
+ m_LocalPosition: {x: -0, y: 0.25104657, z: -0.015329581}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 8691077462631030848}
+ - {fileID: 2728358839821900210}
+ m_Father: {fileID: 9104809705314273201}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2928890801311073994
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5532945687647974234}
+ m_Layer: 0
+ m_Name: Left_ToesEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5532945687647974234
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2928890801311073994}
+ m_LocalRotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ m_LocalPosition: {x: -0.0010026174, y: 0.06423476, z: 0.016843978}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 5844905578719327712}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3083925290418127842
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4457480194464785198}
+ m_Layer: 0
+ m_Name: Left_ThumbDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4457480194464785198
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3083925290418127842}
+ m_LocalRotation: {x: 0.17147453, y: -0, z: -0, w: 0.98518854}
+ m_LocalPosition: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6988829942569125388}
+ m_Father: {fileID: 4946479194576785862}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3133874597194004026
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3133874597194004029}
+ - component: {fileID: 3133874597194004031}
+ - component: {fileID: 7871075168002114864}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3133874597194004029
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3133874597194004026}
+ 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: 3133874598237595125}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 1, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3133874597194004031
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3133874597194004026}
+ m_CullTransparentMesh: 1
+--- !u!114 &7871075168002114864
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3133874597194004026}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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:
+ 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: 4281479730
+ m_fontColor: {r: 0.1960784, g: 0.1960784, b: 0.1960784, 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: 12
+ m_fontSizeBase: 12
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 15
+ 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: 1
+ 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
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &3133874598237595122
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3133874598237595125}
+ - component: {fileID: 3133874598237595126}
+ - component: {fileID: 3133874598237595127}
+ - component: {fileID: 3133874598237595124}
+ m_Layer: 5
+ m_Name: Username
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3133874598237595125
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3133874598237595122}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.01, y: 0.01, z: 1}
+ m_Children:
+ - {fileID: 3133874597194004029}
+ - {fileID: 4223862768519689062}
+ m_Father: {fileID: 2124010335323201246}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 1.85}
+ m_SizeDelta: {x: 100, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!223 &3133874598237595126
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3133874598237595122}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 2
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!114 &3133874598237595127
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3133874598237595122}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 2
+ m_PresetInfoIsWorld: 1
+--- !u!114 &3133874598237595124
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3133874598237595122}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!1 &3173643587886409495
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 500521369295522988}
+ m_Layer: 0
+ m_Name: Left_Foot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &500521369295522988
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3173643587886409495}
+ m_LocalRotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211}
+ m_LocalPosition: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 5844905578719327712}
+ m_Father: {fileID: 1687623220653670037}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3249969822784655225
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7818847723424213447}
+ m_Layer: 0
+ m_Name: Right_PinkyDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &7818847723424213447
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3249969822784655225}
+ m_LocalRotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1841476727492185203}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3424025887531589703
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3980168153290175205}
+ m_Layer: 0
+ m_Name: Left_IndexDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3980168153290175205
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3424025887531589703}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4732198518482456777}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3469802082086984541
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3909440992574653390}
+ m_Layer: 0
+ m_Name: Right_IndexIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3909440992574653390
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3469802082086984541}
+ m_LocalRotation: {x: 0.26077324, y: -0, z: -0, w: 0.9654001}
+ m_LocalPosition: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 8644118213468032209}
+ m_Father: {fileID: 8574280312317698940}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &3773869881221151748
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7587339503393063290}
+ m_Layer: 0
+ m_Name: Left_PinkyProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &7587339503393063290
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3773869881221151748}
+ m_LocalRotation: {x: 0.0066045397, y: -0.5050901, z: 0.37113747, w: 0.77916455}
+ m_LocalPosition: {x: 0.004436847, y: 0.07288173, z: -0.029359013}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 779023380748359179}
+ m_Father: {fileID: 6053053201436335062}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4040168257539306549
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8691077462631030848}
+ m_Layer: 0
+ m_Name: Head
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8691077462631030848
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4040168257539306549}
+ m_LocalRotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568}
+ m_LocalPosition: {x: -0, y: 0.12747401, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4224687925969542290}
+ - {fileID: 99325714740975445}
+ - {fileID: 7573041470224030126}
+ m_Father: {fileID: 4231331622228445573}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4303685434444700002
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4591866165246876258}
+ m_Layer: 0
+ m_Name: Left_PinkyDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4591866165246876258
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4303685434444700002}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -1.2434495e-16, y: 0.018519057, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 7173763147004306177}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4320503317538483026
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1716819193729068769}
+ m_Layer: 0
+ m_Name: Right_RingProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1716819193729068769
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4320503317538483026}
+ m_LocalRotation: {x: 0.035571605, y: -0.5691555, z: 0.3065858, w: 0.76210356}
+ m_LocalPosition: {x: -0.00952738, y: -0.08161427, z: 0.012242128}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 8280533341018746420}
+ m_Father: {fileID: 6686232878256220678}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4352253440609144885
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6988829942569125388}
+ m_Layer: 0
+ m_Name: Left_ThumbDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6988829942569125388
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4352253440609144885}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -4.2632555e-16, y: 0.029458016, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4457480194464785198}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4488553275125356592
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4887059914419779532}
+ m_Layer: 0
+ m_Name: Left_RingDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4887059914419779532
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4488553275125356592}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2320340731376233844}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4532205335744397557
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4946479194576785862}
+ m_Layer: 0
+ m_Name: Left_ThumbIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4946479194576785862
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4532205335744397557}
+ m_LocalRotation: {x: 0.1278054, y: -0, z: -0, w: 0.9917993}
+ m_LocalPosition: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4457480194464785198}
+ m_Father: {fileID: 5236503168874096607}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4673283591589382790
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 926245842159057168}
+ m_Layer: 0
+ m_Name: Left_LowerArm
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &926245842159057168
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4673283591589382790}
+ m_LocalRotation: {x: 0.37416065, y: -8.0435996e-17, z: -3.2453267e-17, w: 0.92736393}
+ m_LocalPosition: {x: -2.8421706e-16, y: 0.28508067, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6053053201436335062}
+ m_Father: {fileID: 6721086291248870707}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4907138939871111429
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1189242802241364244}
+ m_Layer: 0
+ m_Name: Right_MiddleDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1189242802241364244
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4907138939871111429}
+ m_LocalRotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ m_LocalPosition: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 3773729066802646704}
+ m_Father: {fileID: 601113037231909054}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4918370063433878967
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1687623220653670037}
+ m_Layer: 0
+ m_Name: Left_LowerLeg
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1687623220653670037
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4918370063433878967}
+ m_LocalRotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ m_LocalPosition: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 500521369295522988}
+ m_Father: {fileID: 5446055538663914621}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5170344208505936311
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5236503168874096607}
+ m_Layer: 0
+ m_Name: Left_ThumbProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5236503168874096607
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5170344208505936311}
+ m_LocalRotation: {x: -0.22855467, y: 0.9196341, z: 0.3181213, w: 0.028891658}
+ m_LocalPosition: {x: -0.00080496486, y: 0.028816883, z: 0.023514476}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4946479194576785862}
+ m_Father: {fileID: 6053053201436335062}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5229117001497368060
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8574280312317698940}
+ m_Layer: 0
+ m_Name: Right_IndexProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8574280312317698940
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5229117001497368060}
+ m_LocalRotation: {x: 0.1338533, y: -0.6899348, z: 0.20177367, w: 0.6821735}
+ m_LocalPosition: {x: -0.0078223245, y: -0.0918393, z: -0.026574574}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 3909440992574653390}
+ m_Father: {fileID: 6686232878256220678}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5315084161683211931
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2320340731376233844}
+ m_Layer: 0
+ m_Name: Left_RingDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2320340731376233844
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5315084161683211931}
+ m_LocalRotation: {x: 0.09052901, y: -0, z: -0, w: 0.99589384}
+ m_LocalPosition: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4887059914419779532}
+ m_Father: {fileID: 4883763450720363258}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5361225606978447410
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1762433776710079977}
+ m_Layer: 0
+ m_Name: Left_MiddleDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1762433776710079977
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5361225606978447410}
+ m_LocalRotation: {x: 0.03347514, y: -0, z: -0, w: 0.9994396}
+ m_LocalPosition: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6862518161539130489}
+ m_Father: {fileID: 522493189634858149}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5390002730425279407
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 601113037231909054}
+ m_Layer: 0
+ m_Name: Right_MiddleIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &601113037231909054
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5390002730425279407}
+ m_LocalRotation: {x: 0.3409832, y: -0, z: -0, w: 0.94006944}
+ m_LocalPosition: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1189242802241364244}
+ m_Father: {fileID: 8790255502443537702}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5443070189843395868
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1561045414050068972}
+ m_Layer: 0
+ m_Name: Right_IndexDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1561045414050068972
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5443070189843395868}
+ m_LocalRotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 8644118213468032209}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5536261122732454826
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1841476727492185203}
+ m_Layer: 0
+ m_Name: Right_PinkyDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1841476727492185203
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5536261122732454826}
+ m_LocalRotation: {x: 0.14234784, y: -0, z: -0, w: 0.9898167}
+ m_LocalPosition: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 7818847723424213447}
+ m_Father: {fileID: 6027131479180507195}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5567392743736718437
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6342006238853838902}
+ m_Layer: 0
+ m_Name: Right_LowerArm
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6342006238853838902
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5567392743736718437}
+ m_LocalRotation: {x: 0.37416065, y: -8.0435996e-17, z: -3.2453267e-17, w: 0.92736393}
+ m_LocalPosition: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6686232878256220678}
+ m_Father: {fileID: 2464920848348160738}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5576802287961340222
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4223862768519689062}
+ - component: {fileID: 2179345699435534017}
+ - component: {fileID: 6268938787285214922}
+ m_Layer: 5
+ m_Name: Master
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4223862768519689062
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5576802287961340222}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 0.2, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3133874598237595125}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0}
+ m_AnchorMax: {x: 0.5, y: 0}
+ m_AnchoredPosition: {x: 0, y: 64}
+ m_SizeDelta: {x: 100, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2179345699435534017
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5576802287961340222}
+ m_CullTransparentMesh: 1
+--- !u!114 &6268938787285214922
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5576802287961340222}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &5818861437094798075
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6204387222185902461}
+ m_Layer: 0
+ m_Name: Right_Shoulder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6204387222185902461
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5818861437094798075}
+ m_LocalRotation: {x: 0.99258024, y: -0.04327539, z: -0.113521874, w: 0.004949396}
+ m_LocalPosition: {x: 0.0009571358, y: 0.19149381, z: -0.008727803}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 2464920848348160738}
+ m_Father: {fileID: 9104809705314273201}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5903194991887126832
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 99325714740975445}
+ m_Layer: 0
+ m_Name: Left_Eye
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &99325714740975445
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5903194991887126832}
+ m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: -0.03330326, y: 0.034598116, z: 0.0867403}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 8691077462631030848}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6140914785204143544
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3224579133659466384}
+ m_Layer: 0
+ m_Name: Right_LowerLeg
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3224579133659466384
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6140914785204143544}
+ m_LocalRotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.728622e-21, w: 0.9994203}
+ m_LocalPosition: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1786337735878820749}
+ m_Father: {fileID: 3910260677174180530}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6150573812937891112
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 9054990982182414043}
+ m_Layer: 0
+ m_Name: Right_RingDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &9054990982182414043
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6150573812937891112}
+ m_LocalRotation: {x: 0.09052901, y: -0, z: -0, w: 0.99589384}
+ m_LocalPosition: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 7943993227524089181}
+ m_Father: {fileID: 8280533341018746420}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6176227746682791573
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8280533341018746420}
+ m_Layer: 0
+ m_Name: Right_RingIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8280533341018746420
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6176227746682791573}
+ m_LocalRotation: {x: 0.3907906, y: -0, z: -0, w: 0.9204796}
+ m_LocalPosition: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 9054990982182414043}
+ m_Father: {fileID: 1716819193729068769}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6211469708578990227
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6053053201436335062}
+ m_Layer: 0
+ m_Name: Left_Hand
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6053053201436335062
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6211469708578990227}
+ m_LocalRotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ m_LocalPosition: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1208230835467766430}
+ - {fileID: 1757547786725583219}
+ - {fileID: 7587339503393063290}
+ - {fileID: 8471126848462783375}
+ - {fileID: 5236503168874096607}
+ m_Father: {fileID: 926245842159057168}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6225311885505217650
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3459072465803051433}
+ m_Layer: 0
+ m_Name: Right_ToesEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3459072465803051433
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6225311885505217650}
+ m_LocalRotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656}
+ m_LocalPosition: {x: 0.0010031584, y: -0.06423059, z: -0.016843898}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 827090398748392440}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6333180305667733650
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1208230835467766430}
+ m_Layer: 0
+ m_Name: Left_IndexProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1208230835467766430
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6333180305667733650}
+ m_LocalRotation: {x: 0.1338533, y: -0.6899348, z: 0.20177367, w: 0.6821735}
+ m_LocalPosition: {x: 0.007815497, y: 0.0918443, z: 0.02657316}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 3471800566640001390}
+ m_Father: {fileID: 6053053201436335062}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6389627433573982915
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7573041470224030126}
+ m_Layer: 0
+ m_Name: Right_Eye
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &7573041470224030126
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6389627433573982915}
+ m_LocalRotation: {x: 0.7071068, y: 4.3297806e-17, z: 0.7071068, w: -4.3297806e-17}
+ m_LocalPosition: {x: 0.033303294, y: 0.03459628, z: 0.0867403}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 8691077462631030848}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6397305807401598271
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6397305807401598264}
+ m_Layer: 0
+ m_Name: PlayerCameraRoot
+ m_TagString: CinemachineTarget
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6397305807401598264
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6397305807401598271}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.375, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2124010335323201246}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &6548917017751022632
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8343799267571330540}
+ - component: {fileID: 7408759211263970704}
+ m_Layer: 0
+ m_Name: Armature_Mesh
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8343799267571330540
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6548917017751022632}
+ 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: 4931444906570684940}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!137 &7408759211263970704
+SkinnedMeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6548917017751022632}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 3
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: e33f634b6e438de49af0935eb85afe2a, type: 2}
+ - {fileID: 2100000, guid: 0e2e06a678caac24ca80e224cdaa3a39, type: 2}
+ - {fileID: 2100000, guid: 40a6c63e9a7478f44bb51ab57bc33b1c, 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
+ serializedVersion: 2
+ m_Quality: 0
+ m_UpdateWhenOffscreen: 0
+ m_SkinnedMotionVectors: 1
+ m_Mesh: {fileID: 4698152120088058464, guid: 597976b6b3e452c499a186f5f40cbf87, type: 3}
+ m_Bones:
+ - {fileID: 5107406741809878127}
+ - {fileID: 5261834649404514297}
+ - {fileID: 1062876408709803709}
+ - {fileID: 9104809705314273201}
+ - {fileID: 4231331622228445573}
+ - {fileID: 8691077462631030848}
+ - {fileID: 7573041470224030126}
+ - {fileID: 99325714740975445}
+ - {fileID: 4224687925969542290}
+ - {fileID: 2728358839821900210}
+ - {fileID: 4767831773250079449}
+ - {fileID: 6721086291248870707}
+ - {fileID: 926245842159057168}
+ - {fileID: 6053053201436335062}
+ - {fileID: 7587339503393063290}
+ - {fileID: 779023380748359179}
+ - {fileID: 7173763147004306177}
+ - {fileID: 4591866165246876258}
+ - {fileID: 8471126848462783375}
+ - {fileID: 4883763450720363258}
+ - {fileID: 2320340731376233844}
+ - {fileID: 4887059914419779532}
+ - {fileID: 1757547786725583219}
+ - {fileID: 522493189634858149}
+ - {fileID: 1762433776710079977}
+ - {fileID: 6862518161539130489}
+ - {fileID: 1208230835467766430}
+ - {fileID: 3471800566640001390}
+ - {fileID: 4732198518482456777}
+ - {fileID: 3980168153290175205}
+ - {fileID: 5236503168874096607}
+ - {fileID: 4946479194576785862}
+ - {fileID: 4457480194464785198}
+ - {fileID: 6988829942569125388}
+ - {fileID: 6204387222185902461}
+ - {fileID: 2464920848348160738}
+ - {fileID: 6342006238853838902}
+ - {fileID: 6686232878256220678}
+ - {fileID: 2053235968611070756}
+ - {fileID: 6027131479180507195}
+ - {fileID: 1841476727492185203}
+ - {fileID: 7818847723424213447}
+ - {fileID: 1716819193729068769}
+ - {fileID: 8280533341018746420}
+ - {fileID: 9054990982182414043}
+ - {fileID: 7943993227524089181}
+ - {fileID: 8790255502443537702}
+ - {fileID: 601113037231909054}
+ - {fileID: 1189242802241364244}
+ - {fileID: 3773729066802646704}
+ - {fileID: 8574280312317698940}
+ - {fileID: 3909440992574653390}
+ - {fileID: 8644118213468032209}
+ - {fileID: 1561045414050068972}
+ - {fileID: 3089204320418158555}
+ - {fileID: 1262667820407712849}
+ - {fileID: 4118738314565124299}
+ - {fileID: 6277512874380028866}
+ - {fileID: 5446055538663914621}
+ - {fileID: 1687623220653670037}
+ - {fileID: 500521369295522988}
+ - {fileID: 5844905578719327712}
+ - {fileID: 5532945687647974234}
+ - {fileID: 3910260677174180530}
+ - {fileID: 3224579133659466384}
+ - {fileID: 1786337735878820749}
+ - {fileID: 827090398748392440}
+ - {fileID: 3459072465803051433}
+ m_BlendShapeWeights: []
+ m_RootBone: {fileID: 5107406741809878127}
+ m_AABB:
+ m_Center: {x: -0.000000029802322, y: -0.09214255, z: 0.026248664}
+ m_Extent: {x: 0.52818465, y: 0.88092995, z: 0.22050178}
+ m_DirtyAABB: 0
+--- !u!1 &7027496727895014879
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6686232878256220678}
+ m_Layer: 0
+ m_Name: Right_Hand
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6686232878256220678
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7027496727895014879}
+ m_LocalRotation: {x: -0.047397237, y: -0.24003562, z: 0.013464749, w: 0.9695128}
+ m_LocalPosition: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 8574280312317698940}
+ - {fileID: 8790255502443537702}
+ - {fileID: 2053235968611070756}
+ - {fileID: 1716819193729068769}
+ - {fileID: 3089204320418158555}
+ m_Father: {fileID: 6342006238853838902}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &7276515991117340415
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4883763450720363258}
+ m_Layer: 0
+ m_Name: Left_RingIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4883763450720363258
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7276515991117340415}
+ m_LocalRotation: {x: 0.3907906, y: -0, z: -0, w: 0.9204796}
+ m_LocalPosition: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 2320340731376233844}
+ m_Father: {fileID: 8471126848462783375}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &7280339759583280630
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 9104809705314273201}
+ m_Layer: 0
+ m_Name: UpperChest
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &9104809705314273201
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7280339759583280630}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0.1034043, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4767831773250079449}
+ - {fileID: 4231331622228445573}
+ - {fileID: 6204387222185902461}
+ m_Father: {fileID: 1062876408709803709}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &7759047850719878055
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6862518161539130489}
+ m_Layer: 0
+ m_Name: Left_MiddleDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6862518161539130489
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7759047850719878055}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1762433776710079977}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &7822687246847617060
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7173763147004306177}
+ m_Layer: 0
+ m_Name: Left_PinkyDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &7173763147004306177
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7822687246847617060}
+ m_LocalRotation: {x: 0.14234784, y: -0, z: -0, w: 0.9898167}
+ m_LocalPosition: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4591866165246876258}
+ m_Father: {fileID: 779023380748359179}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &7905700633508531188
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6027131479180507195}
+ m_Layer: 0
+ m_Name: Right_PinkyIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6027131479180507195
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7905700633508531188}
+ m_LocalRotation: {x: 0.29918617, y: -0, z: -0, w: 0.9541948}
+ m_LocalPosition: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1841476727492185203}
+ m_Father: {fileID: 2053235968611070756}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8028161399116197021
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8471126848462783375}
+ m_Layer: 0
+ m_Name: Left_RingProximal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8471126848462783375
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8028161399116197021}
+ m_LocalRotation: {x: 0.035571605, y: -0.5691555, z: 0.3065858, w: 0.76210356}
+ m_LocalPosition: {x: 0.009525569, y: 0.08161553, z: -0.012242405}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4883763450720363258}
+ m_Father: {fileID: 6053053201436335062}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8127126219349686941
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5844905578719327712}
+ m_Layer: 0
+ m_Name: Left_Toes
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5844905578719327712
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8127126219349686941}
+ m_LocalRotation: {x: -0.7071068, y: 8.7157646e-33, z: -8.7157646e-33, w: 0.7071068}
+ m_LocalPosition: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 5532945687647974234}
+ m_Father: {fileID: 500521369295522988}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8190880401892792206
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5446055538663914621}
+ m_Layer: 0
+ m_Name: Left_UpperLeg
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5446055538663914621
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8190880401892792206}
+ m_LocalRotation: {x: 0.999839, y: -0.01775374, z: 0.000046300094, w: -0.0026074864}
+ m_LocalPosition: {x: -0.08610317, y: -0.053458035, z: -0.011470641}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1687623220653670037}
+ m_Father: {fileID: 5107406741809878127}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8265869927499068047
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7943993227524089181}
+ m_Layer: 0
+ m_Name: Right_RingDistalEnd
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &7943993227524089181
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8265869927499068047}
+ m_LocalRotation: {x: 9.02056e-17, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 9054990982182414043}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8290800839049258763
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4118738314565124299}
+ m_Layer: 0
+ m_Name: Right_ThumbDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4118738314565124299
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8290800839049258763}
+ m_LocalRotation: {x: 0.17147453, y: -0, z: -0, w: 0.98518854}
+ m_LocalPosition: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6277512874380028866}
+ m_Father: {fileID: 1262667820407712849}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8339566524125761427
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4224687925969542290}
+ m_Layer: 0
+ m_Name: Jaw
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4224687925969542290
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8339566524125761427}
+ m_LocalRotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485}
+ m_LocalPosition: {x: -0, y: -0.00763539, z: 0.012895278}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 8691077462631030848}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8384695571224166172
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4767831773250079449}
+ m_Layer: 0
+ m_Name: Left_Shoulder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4767831773250079449
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8384695571224166172}
+ m_LocalRotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024}
+ m_LocalPosition: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6721086291248870707}
+ m_Father: {fileID: 9104809705314273201}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8404716561851667553
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2728358839821900210}
+ m_Layer: 0
+ m_Name: Neck_Twist_A
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2728358839821900210
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8404716561851667553}
+ m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0, y: 0.063737005, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4231331622228445573}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8733018819080058272
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2933003944999231559}
+ m_Layer: 0
+ m_Name: Skeleton
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2933003944999231559
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8733018819080058272}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 5107406741809878127}
+ m_Father: {fileID: 2124010335323201246}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &9098736885609426174
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4732198518482456777}
+ m_Layer: 0
+ m_Name: Left_IndexDistal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4732198518482456777
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9098736885609426174}
+ m_LocalRotation: {x: 0.08318636, y: -0, z: -0, w: 0.996534}
+ m_LocalPosition: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 3980168153290175205}
+ m_Father: {fileID: 3471800566640001390}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &9192520606435498989
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3471800566640001390}
+ m_Layer: 0
+ m_Name: Left_IndexIntermediate
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3471800566640001390
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9192520606435498989}
+ m_LocalRotation: {x: 0.26077324, y: -0, z: -0, w: 0.9654001}
+ m_LocalPosition: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 4732198518482456777}
+ m_Father: {fileID: 1208230835467766430}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Player.prefab.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Player.prefab.meta
new file mode 100644
index 00000000..1feadd4e
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Resources/Prefabs/Player.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 68e108c869573c241a2ff37d9cf22837
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes.meta
new file mode 100644
index 00000000..f6dd9e6f
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 31cb77f52970d0d4885582e3051c82af
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Fight.unity b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Fight.unity
new file mode 100644
index 00000000..4044c331
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Fight.unity
@@ -0,0 +1,483 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &1194362851
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1194362853}
+ - component: {fileID: 1194362852}
+ m_Layer: 0
+ m_Name: Fighter
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1194362852
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1194362851}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 560595d29df3ffc49bedb3af629e9609, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1194362853
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1194362851}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -6.930179, y: 5.803161, z: 1.1544257}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1306211725
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1306211727}
+ - component: {fileID: 1306211726}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1306211726
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1306211725}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1306211727
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1306211725}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &1739996596
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1739996601}
+ - component: {fileID: 1739996600}
+ - component: {fileID: 1739996599}
+ - component: {fileID: 1739996598}
+ - component: {fileID: 1739996597}
+ - component: {fileID: 1739996602}
+ m_Layer: 0
+ m_Name: Portal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1739996597
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1739996596}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e5e79171bb13dba41b313670406b0de4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!64 &1739996598
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1739996596}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &1739996599
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1739996596}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ 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: 32be8ebc26e8cc548bb32907231a07e4, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1739996600
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1739996596}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1739996601
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1739996596}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 20.26, y: 0.01, z: 12.08}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!54 &1739996602
+Rigidbody:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1739996596}
+ serializedVersion: 2
+ m_Mass: 1
+ m_Drag: 0
+ m_AngularDrag: 0.05
+ m_UseGravity: 0
+ m_IsKinematic: 1
+ m_Interpolate: 0
+ m_Constraints: 0
+ m_CollisionDetection: 0
+--- !u!1 &2079815265
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2079815269}
+ - component: {fileID: 2079815268}
+ - component: {fileID: 2079815267}
+ - component: {fileID: 2079815266}
+ m_Layer: 0
+ m_Name: Ground
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!64 &2079815266
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &2079815267
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ 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: 71197b886c4fe414c8d2382969b585dc, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &2079815268
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &2079815269
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 10, y: 10, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Fight.unity.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Fight.unity.meta
new file mode 100644
index 00000000..5a2138ee
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Fight.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 36060053ae21c1a4b8d83afcfbbca65f
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Init.unity b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Init.unity
new file mode 100644
index 00000000..b82333cb
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Init.unity
@@ -0,0 +1,380 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &1306211725
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1306211727}
+ - component: {fileID: 1306211726}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1306211726
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1306211725}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1306211727
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1306211725}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1001 &1699911262
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1699911265, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: WorkMode
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -11.67
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943788, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890776943791, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_Name
+ value: Application
+ objectReference: {fileID: 0}
+ - target: {fileID: 6691438890974912406, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ propertyPath: m_Name
+ value: UI
+ objectReference: {fileID: 0}
+ m_RemovedComponents:
+ - {fileID: 8901074784448856764, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+ m_SourcePrefab: {fileID: 100100000, guid: a3826b127d4cc834c8839b168f36c47c, type: 3}
+--- !u!1 &2079815265
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2079815269}
+ - component: {fileID: 2079815268}
+ - component: {fileID: 2079815267}
+ - component: {fileID: 2079815266}
+ m_Layer: 0
+ m_Name: Ground
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!64 &2079815266
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &2079815267
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ 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: 32be8ebc26e8cc548bb32907231a07e4, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &2079815268
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &2079815269
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 10, y: 10, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Init.unity.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Init.unity.meta
new file mode 100644
index 00000000..b33605b8
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Init.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ccbcbd54e323be7428e2eb6215e004d8
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Start.unity b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Start.unity
new file mode 100644
index 00000000..707c8a92
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Start.unity
@@ -0,0 +1,314 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &1306211725
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1306211727}
+ - component: {fileID: 1306211726}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1306211726
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1306211725}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1306211727
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1306211725}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &2079815265
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2079815269}
+ - component: {fileID: 2079815268}
+ - component: {fileID: 2079815267}
+ - component: {fileID: 2079815266}
+ m_Layer: 0
+ m_Name: Ground
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!64 &2079815266
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &2079815267
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ 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: 32be8ebc26e8cc548bb32907231a07e4, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &2079815268
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &2079815269
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2079815265}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 10, y: 10, z: 10}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Start.unity.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Start.unity.meta
new file mode 100644
index 00000000..0ce9e023
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scenes/Start.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 703ce64c5af55cc478907e772605e27e
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts.meta
new file mode 100644
index 00000000..2c94731b
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3480b9f2dad46224295c74ba0feb50dc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/CameraFollower.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/CameraFollower.cs
new file mode 100644
index 00000000..42f2d995
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/CameraFollower.cs
@@ -0,0 +1,50 @@
+using UnityEngine;
+using UnityEngine.SceneManagement;
+
+namespace Netcode.Transports.Pico.Sample.PicoMultiplayer
+{
+ public class CameraFollower : MonoBehaviour
+ {
+ private Transform _target;
+ public Vector3 Offset;
+ public float SmoothSpeed = 0.1f;
+
+ public void SetTarget(Transform target)
+ {
+ _target = target;
+ }
+
+ private void LateUpdate()
+ {
+ if (_target)
+ {
+ SmoothFollow();
+ }
+ }
+
+ private void OnEnable()
+ {
+ SceneManager.sceneLoaded += ResetCameraPosition;
+ }
+
+ private void OnDestroy()
+ {
+ SceneManager.sceneLoaded -= ResetCameraPosition;
+ }
+
+ private void ResetCameraPosition(Scene scene, LoadSceneMode mode)
+ {
+ transform.position = Offset;
+ transform.rotation = Quaternion.identity;
+ }
+
+ private void SmoothFollow()
+ {
+ Vector3 targetPos = _target.position + Offset;
+ Vector3 smoothFollow = Vector3.Lerp(transform.position, targetPos, SmoothSpeed);
+
+ transform.position = smoothFollow;
+ transform.LookAt(_target);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/CameraFollower.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/CameraFollower.cs.meta
new file mode 100644
index 00000000..d193f4c4
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/CameraFollower.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 87179611c159e6643be218eba35e0966
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/FightScene.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/FightScene.cs
new file mode 100644
index 00000000..f9bf4f5e
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/FightScene.cs
@@ -0,0 +1,23 @@
+using UnityEngine;
+
+namespace Netcode.Transports.Pico.Sample.PicoMultiplayer
+{
+ public class FightScene : MonoBehaviour
+ {
+ private ExternalModeSDKUser _picoUser;
+
+ // Start is called before the first frame update
+ void Start()
+ {
+ _picoUser = FindObjectOfType();
+ _picoUser.SetAutoRestartFlag();
+ _picoUser.StartNetcode();
+ }
+
+ private void OnDestroy()
+ {
+ _picoUser.StopNetcode("fight scene destroy");
+ _picoUser = null;
+ }
+ }
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/FightScene.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/FightScene.cs.meta
new file mode 100644
index 00000000..eafcced2
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/FightScene.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 560595d29df3ffc49bedb3af629e9609
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InitScene.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InitScene.cs
new file mode 100644
index 00000000..29f2732e
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InitScene.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+
+namespace Netcode.Transports.Pico.Sample.PicoMultiplayer
+{
+ public class InitScene : MonoBehaviour
+ {
+ private void Awake()
+ {
+ SampleApplication.GetInstance();
+ }
+ }
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InitScene.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InitScene.cs.meta
new file mode 100644
index 00000000..1cee3780
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InitScene.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2f48b0ad61cd4994896da0986a751340
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InputsReader.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InputsReader.cs
new file mode 100644
index 00000000..f6c445fc
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InputsReader.cs
@@ -0,0 +1,92 @@
+using Unity.Netcode;
+using UnityEngine;
+
+namespace Netcode.Transports.Pico.Sample.PicoMultiplayer
+{
+ public class InputsReader : NetworkBehaviour
+ {
+ public Vector2 MoveInput;
+ public Vector2 OrbitInput;
+ public bool JumpInput;
+
+ private UnityEngine.XR.InputDevice _xrInputs;
+ private Vector2 _axis2D = Vector2.zero;
+ private bool _primaryButton;
+
+ public void Start()
+ {
+ //ref: D:\works\pico\PICO Unity Integration SDK v212\Runtime\Scripts\Controller\PXR_ControllerAnimator.cs
+ _xrInputs = UnityEngine.XR.InputDevices.GetDeviceAtXRNode(UnityEngine.XR.XRNode.RightHand);
+ }
+
+ public void Update()
+ {
+ if (IsOwner)
+ {
+ CheckXRInput();
+ }
+ }
+
+ public void CheckXRInput()
+ {
+ if (!_xrInputs.isValid)
+ {
+ return;
+ }
+
+ _xrInputs.TryGetFeatureValue(UnityEngine.XR.CommonUsages.primary2DAxis, out _axis2D);
+ _xrInputs.TryGetFeatureValue(UnityEngine.XR.CommonUsages.primaryButton, out _primaryButton);
+ if (_axis2D.magnitude > 0.001)
+ {
+ MoveInput = _axis2D;
+ }
+ else
+ {
+ MoveInput = Vector2.zero;
+ }
+
+ if (_primaryButton)
+ {
+ JumpInput = true;
+ }
+ else
+ {
+ JumpInput = false;
+ }
+ }
+
+ public void OnMove(UnityEngine.InputSystem.InputValue value)
+ {
+ //Debug.Log($"OnMove: {value.Get()}");
+ MoveInput = value.Get();
+ }
+
+ public void OnJump(UnityEngine.InputSystem.InputValue value)
+ {
+ //Debug.Log($"OnJump: {value.isPressed}");
+ JumpInput = value.isPressed;
+ }
+
+ public void OnOrbit(UnityEngine.InputSystem.InputValue value)
+ {
+ //Debug.Log($"OnOrbit: {value.isPressed}");
+ OrbitInput = value.Get();
+ }
+
+ public void OnDeviceLost(UnityEngine.InputSystem.PlayerInput input)
+ {
+ Debug.Log($"OnDeviceLost: {input.name}");
+ }
+
+ public void OnDeviceRegained(UnityEngine.InputSystem.PlayerInput input)
+ {
+ Debug.Log($"OnDeviceRegained: {input.name}");
+ }
+
+ public void OnControlsChanged(UnityEngine.InputSystem.PlayerInput input)
+ {
+ Debug.Log($"OnControlsChanged: {input.name}");
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InputsReader.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InputsReader.cs.meta
new file mode 100644
index 00000000..c81d1e49
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/InputsReader.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7b4715a52ea00714e8f61f754c00b3c4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/LocalPlayerState.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/LocalPlayerState.cs
new file mode 100644
index 00000000..1fcccd14
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/LocalPlayerState.cs
@@ -0,0 +1,19 @@
+using UnityEngine;
+
+public class LocalPlayerState : Singleton
+{
+ [HideInInspector]
+ public Color Color;
+ [HideInInspector]
+ public string Username;
+
+ public event System.Action OnSelfStateChange;
+
+ public void Init(string selfName)
+ {
+ Color = Random.ColorHSV();
+ Username = selfName;// message.Data.DisplayName;
+ OnSelfStateChange?.Invoke();
+ }
+
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/LocalPlayerState.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/LocalPlayerState.cs.meta
new file mode 100644
index 00000000..b7d49b9d
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/LocalPlayerState.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: be4e373e1bcf36e41a7eb8a2ccefdc5b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerController.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerController.cs
new file mode 100644
index 00000000..93b1c685
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerController.cs
@@ -0,0 +1,246 @@
+using UnityEngine;
+using Unity.Netcode;
+using UnityEngine.InputSystem;
+using System.Collections.Generic;
+
+namespace Netcode.Transports.Pico.Sample.PicoMultiplayer
+{
+ [RequireComponent(typeof(CharacterController))]
+ [RequireComponent(typeof(PlayerInput))]
+ public class PlayerController : NetworkBehaviour
+ {
+ public float MoveSpeed = 5.33f;
+ public float RotationSmoothTime = 0.12f;
+ public float SpeedChangeRate = 10.0f;
+ private float JumpHeight = 1.2f;
+ private float Gravity = -15.0f;
+ private float JumpTimeout = 0.50f;
+ private float FallTimeout = 0.15f;
+ private bool Grounded = true;
+ private float GroundedOffset = -0.14f;
+ private float GroundedRadius = 0.28f;
+ public LayerMask GroundLayers;
+
+ // player
+ private float _speed;
+ private float _animationBlend;
+ private float _targetRotation = 0.0f;
+ private float _rotationVelocity;
+ private float _verticalVelocity;
+ private float _terminalVelocity = 53.0f;
+
+ private float _jumpTimeoutDelta;
+ private float _fallTimeoutDelta;
+
+ private int _animIDSpeed;
+ private int _animIDGrounded;
+ private int _animIDJump;
+ private int _animIDFreeFall;
+ private int _animIDMotionSpeed;
+ private Dictionary _animPropCache = new Dictionary();
+
+ private Animator _animator;
+ private CharacterController _controller;
+ private InputsReader _inputReader;
+ private CameraFollower _cameraFollower;
+
+ private bool _hasAnimator;
+
+ private void Start()
+ {
+ AssignAnimationIDs();
+ _hasAnimator = TryGetComponent(out _animator);
+ _controller = GetComponent();
+ _inputReader = GetComponent();
+ _jumpTimeoutDelta = JumpTimeout;
+ _fallTimeoutDelta = FallTimeout;
+ if (IsOwner)
+ {
+ _cameraFollower = FindObjectOfType();
+ _cameraFollower.SetTarget(this.transform);
+ }
+ }
+
+ public override void OnNetworkSpawn()
+ {
+ enabled = IsOwner;
+ GetComponent().enabled = IsOwner;
+ }
+
+ private void Update()
+ {
+ if (!_controller.enabled) return;
+ _hasAnimator = TryGetComponent(out _animator);
+ JumpAndGravity();
+ GroundedCheck();
+ Move();
+ }
+
+ private void AssignAnimationIDs()
+ {
+ _animIDSpeed = Animator.StringToHash("Speed");
+ _animIDGrounded = Animator.StringToHash("Grounded");
+ _animIDJump = Animator.StringToHash("Jump");
+ _animIDFreeFall = Animator.StringToHash("FreeFall");
+ _animIDMotionSpeed = Animator.StringToHash("MotionSpeed");
+ }
+
+ private void GroundedCheck()
+ {
+ Vector3 spherePosition = new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z);
+ Grounded = Physics.CheckSphere(spherePosition, GroundedRadius, GroundLayers, QueryTriggerInteraction.Ignore);
+ if (_hasAnimator)
+ {
+ SetAnimatorBool(_animIDGrounded, Grounded);
+ }
+ }
+
+ private void Move()
+ {
+ float targetSpeed = MoveSpeed;
+ if (_inputReader.MoveInput == Vector2.zero) targetSpeed = 0.0f;
+ float currentHorizontalSpeed = new Vector3(_controller.velocity.x, 0.0f, _controller.velocity.z).magnitude;
+ float speedOffset = 0.1f;
+ float inputMagnitude = _inputReader.MoveInput.magnitude;
+
+ if (currentHorizontalSpeed < targetSpeed - speedOffset ||
+ currentHorizontalSpeed > targetSpeed + speedOffset)
+ {
+ _speed = Mathf.Lerp(currentHorizontalSpeed, targetSpeed * inputMagnitude, Time.deltaTime * SpeedChangeRate);
+ _speed = Mathf.Round(_speed * 1000f) / 1000f;
+ }
+ else
+ {
+ _speed = targetSpeed;
+ }
+ _animationBlend = Mathf.Lerp(_animationBlend, targetSpeed, Time.deltaTime * SpeedChangeRate);
+
+ //input speed
+ Vector3 inputDirection = new Vector3(_inputReader.MoveInput.x, 0.0f, _inputReader.MoveInput.y).normalized;
+ if (_inputReader.MoveInput != Vector2.zero)
+ {
+ _targetRotation = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg + Camera.main.transform.eulerAngles.y;
+ float rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, _targetRotation, ref _rotationVelocity, RotationSmoothTime);
+ transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f);
+ }
+ Vector3 targetDirection = Quaternion.Euler(0.0f, _targetRotation, 0.0f) * Vector3.forward;
+ Vector3 moveVec = targetDirection.normalized * (_speed * Time.deltaTime) + new Vector3(0.0f, _verticalVelocity, 0.0f) * Time.deltaTime;
+ _controller.Move(moveVec);
+ //update animator
+ if (_hasAnimator)
+ {
+ SetAnimatorFloat(_animIDSpeed, _animationBlend);
+ SetAnimatorFloat(_animIDMotionSpeed, inputMagnitude);
+ }
+ }
+
+ private void JumpAndGravity()
+ {
+ if (Grounded)
+ {
+ _fallTimeoutDelta = FallTimeout;
+ if (_hasAnimator)
+ {
+ SetAnimatorBool(_animIDJump, false);
+ SetAnimatorBool(_animIDFreeFall, false);
+ }
+ if (_verticalVelocity < 0.0f)
+ {
+ _verticalVelocity = -2f;
+ }
+ // check jump cmd
+ if (_inputReader.JumpInput && _jumpTimeoutDelta <= 0.0f)
+ {
+ _verticalVelocity = Mathf.Sqrt(JumpHeight * -2f * Gravity);
+ if (_hasAnimator)
+ {
+ SetAnimatorBool(_animIDJump, true);
+ }
+ }
+ // check jump timeout
+ if (_jumpTimeoutDelta >= 0.0f)
+ {
+ _jumpTimeoutDelta -= Time.deltaTime;
+ }
+ }
+ else
+ {
+ _jumpTimeoutDelta = JumpTimeout;
+ if (_fallTimeoutDelta >= 0.0f)
+ {
+ _fallTimeoutDelta -= Time.deltaTime;
+ }
+ else
+ {
+ if (_hasAnimator)
+ {
+ SetAnimatorBool(_animIDFreeFall, true);
+ }
+ }
+ _inputReader.JumpInput = false;
+ }
+ if (_verticalVelocity < _terminalVelocity)
+ {
+ _verticalVelocity += Gravity * Time.deltaTime;
+ }
+ }
+
+ private void OnDrawGizmosSelected()
+ {
+ Color transparentGreen = new Color(0.0f, 1.0f, 0.0f, 0.35f);
+ Color transparentRed = new Color(1.0f, 0.0f, 0.0f, 0.35f);
+ if (Grounded) Gizmos.color = transparentGreen;
+ else Gizmos.color = transparentRed;
+ Gizmos.DrawSphere(new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z), GroundedRadius);
+ }
+
+ [ServerRpc(RequireOwnership = true)]
+ private void SetAnimatorFloatServerRpc(int id, float value)
+ {
+ _hasAnimator = _hasAnimator || TryGetComponent(out _animator);
+ if (_hasAnimator)
+ {
+ _animator.SetFloat(id, value);
+ }
+ }
+
+ [ServerRpc(RequireOwnership = true)]
+ private void SetAnimatorBoolServerRpc(int id, bool value)
+ {
+ _hasAnimator = _hasAnimator || TryGetComponent(out _animator);
+ if (_hasAnimator)
+ {
+ _animator.SetBool(id, value);
+ }
+ }
+
+ private void SetAnimatorFloat(int id, float value)
+ {
+ if (_hasAnimator && _animPropCache.TryGetValue(id, out var current) && current.f.IsCloseTo(value))
+ {
+ return;
+ }
+
+ SetAnimatorFloatServerRpc(id, value);
+ _animPropCache[id] = (value, false);
+ if (_hasAnimator)
+ {
+ _animator.SetFloat(id, value);
+ }
+ }
+
+ private void SetAnimatorBool(int id, bool value)
+ {
+ if (_hasAnimator && _animPropCache.TryGetValue(id, out var current) && current.b == value)
+ {
+ return;
+ }
+ SetAnimatorBoolServerRpc(id, value);
+ _animPropCache[id] = (0.0f, value);
+ if (_hasAnimator)
+ {
+ _animator.SetBool(id, value);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerController.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerController.cs.meta
new file mode 100644
index 00000000..885fc7ef
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerController.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c26a557c6e1fcd541a3ae9c888ceb411
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerState.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerState.cs
new file mode 100644
index 00000000..f70b63bd
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerState.cs
@@ -0,0 +1,133 @@
+using UnityEngine;
+using Unity.Collections;
+using Unity.Netcode;
+using TMPro;
+using UnityEngine.UI;
+
+public class PlayerState : NetworkBehaviour
+{
+ public Renderer PlayerMeshRenderer;
+ public Transform UsernameCanvas;
+
+ private NetworkVariable _nvColor = new NetworkVariable();
+ private NetworkVariable _nvUsername = new NetworkVariable();
+ private NetworkVariable _nvHostFlag = new NetworkVariable(true);
+
+ private TMP_Text _uiUsername;
+ private Image _uiMasterIcon;
+ private Transform _cameraRigForUIHostFlag;
+ private LocalPlayerState _localPlayerState => IsOwner ? LocalPlayerState.Instance : null;
+
+ public bool IsSelfPlayer()
+ {
+ return IsOwner;
+ }
+
+ private void OnEnable()
+ {
+ _uiUsername = UsernameCanvas.GetComponentInChildren();
+ _uiMasterIcon = transform.GetComponentInChildren();
+
+ _nvColor.OnValueChanged += OnColorChanged;
+ _nvUsername.OnValueChanged += OnUsernameChanged;
+ _nvHostFlag.OnValueChanged += OnMasterclientChanged;
+ }
+
+ private void OnDisable()
+ {
+ _nvColor.OnValueChanged -= OnColorChanged;
+ _nvUsername.OnValueChanged -= OnUsernameChanged;
+ _nvHostFlag.OnValueChanged -= OnMasterclientChanged;
+ }
+
+ private void Start()
+ {
+ _cameraRigForUIHostFlag = Camera.main.GetComponentInParent();
+ OnColorChanged(_nvColor.Value, _nvColor.Value);
+ OnUsernameChanged(_nvUsername.Value, _nvUsername.Value);
+ OnMasterclientChanged(_nvHostFlag.Value, _nvHostFlag.Value);
+ if (IsSelfPlayer())
+ {
+ _localPlayerState.OnSelfStateChange += UpdateData;
+ UpdateData();
+ }
+ }
+
+ private void Update()
+ {
+ UsernameCanvas.rotation = Quaternion.LookRotation(UsernameCanvas.position - _cameraRigForUIHostFlag.position);
+ }
+
+ public override void OnDestroy()
+ {
+ base.OnDestroy();
+ if (IsSelfPlayer() && _localPlayerState)
+ {
+ _localPlayerState.transform.position = transform.position;
+ _localPlayerState.transform.rotation = transform.rotation;
+ _localPlayerState.OnSelfStateChange -= UpdateData;
+ }
+ }
+
+ private void OnColorChanged(Color oldColor, Color newColor)
+ {
+ foreach (Material mat in PlayerMeshRenderer.materials)
+ {
+ mat.color = newColor;
+ }
+ }
+
+ private void OnUsernameChanged(FixedString128Bytes oldName, FixedString128Bytes newName)
+ {
+ _uiUsername.text = newName.ConvertToString();
+ }
+
+ private void OnMasterclientChanged(bool oldVal, bool newVal)
+ {
+ _uiMasterIcon.enabled = newVal;
+ }
+
+ public void SetColor()
+ {
+ if (!_localPlayerState) return;
+
+ _localPlayerState.Color = Random.ColorHSV();
+ SetColorServerRpc(_localPlayerState.Color);
+ }
+
+ private void UpdateData()
+ {
+ SetStateServerRpc(_localPlayerState.Color, _localPlayerState.Username);
+ }
+
+ [ServerRpc]
+ private void SetStateServerRpc(Color color_, string username_)
+ {
+ _nvColor.Value = color_;
+ _nvUsername.Value = username_;
+ }
+
+ [ServerRpc]
+ private void SetColorServerRpc(Color color_)
+ {
+ _nvColor.Value = color_;
+ }
+
+ [ServerRpc]
+ private void SetMasterServerRpc(bool masterclient_)
+ {
+ _nvHostFlag.Value = masterclient_;
+ }
+
+ public override void OnNetworkSpawn()
+ {
+ base.OnNetworkSpawn();
+
+ if (IsOwner && _localPlayerState)
+ {
+ Debug.Log($"update state in server, _uiUsername {_localPlayerState.Username}");
+ SetStateServerRpc(_localPlayerState.Color, _localPlayerState.Username);
+ SetMasterServerRpc(IsHost);
+ }
+ }
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerState.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerState.cs.meta
new file mode 100644
index 00000000..854c0b03
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/PlayerState.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5ac080fb1c241a14abff668d6020ddf3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/Portal.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/Portal.cs
new file mode 100644
index 00000000..1bab69bc
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/Portal.cs
@@ -0,0 +1,25 @@
+using UnityEngine;
+
+namespace Netcode.Transports.Pico.Sample.PicoMultiplayer
+{
+ public class Portal : MonoBehaviour
+ {
+ private SampleApplication _application;
+
+ private void Start()
+ {
+ _application = SampleApplication.GetInstance();
+ }
+
+ private void OnTriggerEnter(Collider other)
+ {
+ var playerState = other.GetComponent();
+ if (!playerState)
+ {
+ return;
+ }
+ if (!playerState.IsSelfPlayer()) return;
+ _application.OnPortalEnter();
+ }
+ }
+}
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/Portal.cs.meta b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/Portal.cs.meta
new file mode 100644
index 00000000..490bc57c
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/Portal.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e5e79171bb13dba41b313670406b0de4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/SampleApplication.cs b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/SampleApplication.cs
new file mode 100644
index 00000000..1e67e9df
--- /dev/null
+++ b/Transports/com.community.netcode.transport.pico/Samples~/Pico Multiplayer/Scripts/SampleApplication.cs
@@ -0,0 +1,167 @@
+using System.Collections;
+using UnityEngine;
+using UnityEngine.SceneManagement;
+
+namespace Netcode.Transports.Pico.Sample.PicoMultiplayer
+{
+
+ public class SampleApplication : MonoBehaviour
+ {
+ const string APP_PREFAB_PATH = "Prefabs/Application";
+
+ public enum Scenes
+ {
+ Init,
+ Start,
+ Fight
+ }
+
+ public static Scenes CurrentScene;
+ private bool _sceneLoaded = false;
+ private ExternalModeSDKUser _picoUser;
+
+ static SampleApplication _application;
+
+ static public SampleApplication GetInstance()
+ {
+ if (!_application)
+ {
+ SampleApplication preExisted = FindObjectOfType();
+ if (preExisted)
+ {
+ _application = preExisted;
+ }
+ else
+ {
+ Object prefab = Resources.Load(APP_PREFAB_PATH);
+ GameObject go = (GameObject)Instantiate(prefab, new Vector3(-4, 0, -12),
+ Quaternion.AngleAxis(45, Vector3.up));
+ _application = go.GetComponent();
+ }
+
+ _application.Refresh(true);
+ DontDestroyOnLoad(_application.gameObject);
+ }
+
+ return _application;
+ }
+
+ private void OnEnable()
+ {
+ SceneManager.sceneLoaded += OnSceneLoaded;
+ if (_picoUser)
+ {
+ _picoUser.OnStatusChange += HandlePicoStatusChange;
+ }
+ }
+
+ private void OnDisable()
+ {
+ SceneManager.sceneLoaded -= OnSceneLoaded;
+ if (_picoUser)
+ {
+ _picoUser.OnStatusChange -= HandlePicoStatusChange;
+ }
+ }
+
+ private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
+ {
+ Debug.Log($"scene {scene.name} loaded");
+ _sceneLoaded = true;
+ CurrentScene = (Scenes)scene.buildIndex;
+ }
+
+ public void LoadScene(Scenes scene)
+ {
+ if (scene == CurrentScene) return;
+ _sceneLoaded = false;
+ SceneManager.LoadSceneAsync((int)scene);
+ }
+
+ private void Start()
+ {
+ _picoUser = GetComponent();
+ _picoUser.ServerCreatePlayerPrefabPath = "Prefabs/Player";
+ _picoUser.OnStatusChange += HandlePicoStatusChange;
+ StartCoroutine(Init());
+ }
+
+ public void Refresh(bool resetTransform)
+ {
+ Camera camera = FindObjectOfType();
+ Canvas[] canvas = GetComponentsInChildren