diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 620e8c05ce..ac441af2c8 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -7,10 +7,10 @@ Metrics/ @Unity-Technologies/multiplayer-tools
/com.unity.netcode.gameobjects/Runtime/Transports/ @Unity-Technologies/multiplayer-workflows
/com.unity.netcode.gameobjects/Tests/Editor/Transports/ @Unity-Technologies/multiplayer-workflows
/com.unity.netcode.gameobjects/Tests/Runtime/Transports/ @Unity-Technologies/multiplayer-workflows
-*.asmdef @chrispope @miniwolf @NoelStephensUnity @fluong6
-package.json @chrispope @miniwolf @NoelStephensUnity @fluong6
-AssemblyInfo.cs @chrispope @miniwolf @NoelStephensUnity @fluong6
-.editorconfig @chrispope @miniwolf @NoelStephensUnity @fluong6
-.gitignore @chrispope @miniwolf @NoelStephensUnity @fluong6
-.github/ @chrispope @miniwolf @NoelStephensUnity @fluong6
-.yamato/ @chrispope @miniwolf @NoelStephensUnity @fluong6
+*.asmdef @chrispope @miniwolf
+package.json @chrispope @miniwolf
+AssemblyInfo.cs @chrispope @miniwolf
+.editorconfig @chrispope @miniwolf
+.gitignore @chrispope @miniwolf
+.github/ @chrispope @miniwolf
+.yamato/ @chrispope @miniwolf
diff --git a/.github/workflows/conventional-pr.yml b/.github/workflows/conventional-pr.yml
index ec3a6512e3..6090fe2ab2 100644
--- a/.github/workflows/conventional-pr.yml
+++ b/.github/workflows/conventional-pr.yml
@@ -6,6 +6,7 @@ on:
branches:
- develop
- develop-2.0.0
+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
diff --git a/.yamato/_triggers.yml b/.yamato/_triggers.yml
index 6bafa5ff1b..e225500f59 100644
--- a/.yamato/_triggers.yml
+++ b/.yamato/_triggers.yml
@@ -64,7 +64,7 @@ pull_request_trigger:
- "develop"
- "develop-2.0.0"
- "/release\/.*/"
-
+
# Currently, we need to have a trigger to updated badges
# Only package badges currently exist
badges_test_trigger:
diff --git a/.yamato/project-standards.yml b/.yamato/project-standards.yml
index 64cf1ecb3e..c4335cc50a 100644
--- a/.yamato/project-standards.yml
+++ b/.yamato/project-standards.yml
@@ -4,7 +4,7 @@ standards_{{ projects.first.name }}:
name: Standards Check {{ projects.first.name }}
agent:
type: Unity::VM
- image: desktop/logging-testing-linux:v0.1.2-926285
+ image: package-ci/ubuntu-20.04:v4
flavor: b1.large
commands:
- dotnet --version
diff --git a/.yamato/project.metafile b/.yamato/project.metafile
index c0ec992fc0..191842fd5e 100644
--- a/.yamato/project.metafile
+++ b/.yamato/project.metafile
@@ -1,5 +1,5 @@
-validation_editor: 2021.3
-mobile_validation_editor: 2021.3
+validation_editor: 6000.0
+mobile_validation_editor: 6000.0
# Platforms that will be tested. The first entry in this array will also
# be used for validation
@@ -42,9 +42,7 @@ projects:
- name: com.unity.netcode.gameobjects
path: com.unity.netcode.gameobjects
test_editors:
- - 2021.3
- - 2022.2
- - 2023.1
+ - 6000.0
- trunk
- name: minimalproject
path: minimalproject
@@ -55,23 +53,22 @@ projects:
- name: com.unity.netcode.gameobjects
path: com.unity.netcode.gameobjects
test_editors:
- - 2021.3
+ - 6000.0
- name: testproject-tools-integration
path: testproject-tools-integration
validate: false
publish: false
has_tests: true
test_editors:
- - 2021.3
- - 2022.2
+ - 6000.0
- trunk
# Package dependencies
dependencies:
- name: com.unity.transport
- version: 2.0.0-pre.2
+ version: 2.2.1
test_editors:
- - 2022.2
+ - 6000.0
- trunk
# Scripting backends used by Standalone Playmode Tests
diff --git a/.yamato/wrench/api-validation-jobs.yml b/.yamato/wrench/api-validation-jobs.yml
new file mode 100644
index 0000000000..03dbad8669
--- /dev/null
+++ b/.yamato/wrench/api-validation-jobs.yml
@@ -0,0 +1,60 @@
+# Auto-generated by Recipe Engine, do not modify manually.
+# This job is generated by the wrench recipe engine module.
+
+# upm-ci validation tests for API Validation - netcode.gameobjects - 6000.0 - windows (6000.0 - Windows).
+api_validation_-_netcode_gameobjects_-_6000_0_-_windows:
+ name: API Validation - netcode.gameobjects - 6000.0 - windows
+ agent:
+ image: package-ci/win10:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
+ timeout: 20
+ retries: 10
+ - command: unity-downloader-cli -u 6000.0 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: python PythonScripts/PackageJsonCondersor.py
+ timeout: 1
+ retries: 0
+ - command: upm-ci package test -u .Editor --package-path com.unity.netcode.gameobjects --type vetting-tests || exit 0
+ timeout: 30
+ retries: 0
+ - command: python PythonScripts/parse_upm_ci_results.py --package-path=com.unity.netcode.gameobjects
+ timeout: 2
+ retries: 0
+ after:
+ - command: cmd.exe /c "curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.bat --output run_standalone_instability_detection-latest.bat --retry 5 || exit 0"
+ - command: cmd.exe /c "run_standalone_instability_detection-latest.bat 0.5.0 || exit 0"
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ logs:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - upm-ci~/test-results/**/*
+ - upm-ci~/temp/*/Logs/**
+ - upm-ci~/temp/*/Library/*.log
+ - upm-ci~/temp/*/*.log
+ - upm-ci~/temp/Builds/*.log
+ browsable: onNonSuccess
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ triggers:
+ expression: push.branch match "^release/.*"
+ cancel_old_ci: true
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
diff --git a/.yamato/wrench/package-pack-jobs.yml b/.yamato/wrench/package-pack-jobs.yml
new file mode 100644
index 0000000000..0dfb1e44cf
--- /dev/null
+++ b/.yamato/wrench/package-pack-jobs.yml
@@ -0,0 +1,36 @@
+# Auto-generated by Recipe Engine, do not modify manually.
+# This job is generated by the wrench recipe engine module.
+
+# Pack and Sign Netcode for GameObjects
+package_pack_-_netcode_gameobjects:
+ name: Package Pack - netcode.gameobjects
+ agent:
+ image: package-ci/ubuntu-20.04:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
+ timeout: 20
+ retries: 10
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: upm-ci package pack --package-path com.unity.netcode.gameobjects
+ - command: cp upm-ci~/packages/packages.json upm-ci~/packages/com.unity.netcode.gameobjects_packages.json
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh ubuntu 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ variables:
+ UPMCI_ACK_LARGE_PACKAGE: 1
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
diff --git a/.yamato/wrench/preview-a-p-v.yml b/.yamato/wrench/preview-a-p-v.yml
new file mode 100644
index 0000000000..9ad7ec7b24
--- /dev/null
+++ b/.yamato/wrench/preview-a-p-v.yml
@@ -0,0 +1,366 @@
+# Auto-generated by Recipe Engine, do not modify manually.
+# This job is generated by the wrench recipe engine module.
+
+# Parent Preview APV Job.
+all_preview_apv_jobs:
+ name: All Preview APV Jobs
+ dependencies:
+ - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_0_-_macos
+ - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_0_-_ubuntu
+ - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_0_-_windows
+ - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_1_-_macos
+ - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_1_-_ubuntu
+ - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_1_-_windows
+ triggers:
+ expression: push.branch match "^release/.*"
+ cancel_old_ci: true
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
+# Functional tests for dependents found in the latest 6000.0 manifest (MacOS).
+preview_apv_-_6000_0_-_macos:
+ name: Preview APV - 6000.0 - macos
+ agent:
+ image: package-ci/macos-13:default
+ type: Unity::VM::osx
+ flavor: b1.xlarge
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
+ timeout: 20
+ retries: 10
+ - command: unity-downloader-cli -u 6000.0 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.0 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~
+ - command: echo 'Skipping Editor Manifest Validator as it is only supported on Windows'
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh macos 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ logs:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - upm-ci~/test-results/**/*
+ - upm-ci~/temp/*/Logs/**
+ - upm-ci~/temp/*/Library/*.log
+ - upm-ci~/temp/*/*.log
+ - upm-ci~/temp/Builds/*.log
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ PreviewAPVResults:
+ paths:
+ - PreviewApvArtifacts~/**
+ - APVTest/**/manifest.json
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
+# Functional tests for dependents found in the latest 6000.0 manifest (Ubuntu).
+preview_apv_-_6000_0_-_ubuntu:
+ name: Preview APV - 6000.0 - ubuntu
+ agent:
+ image: package-ci/ubuntu-20.04:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
+ timeout: 20
+ retries: 10
+ - command: unity-downloader-cli -u 6000.0 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.0 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~
+ - command: echo 'Skipping Editor Manifest Validator as it is only supported on Windows'
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh ubuntu 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ logs:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - upm-ci~/test-results/**/*
+ - upm-ci~/temp/*/Logs/**
+ - upm-ci~/temp/*/Library/*.log
+ - upm-ci~/temp/*/*.log
+ - upm-ci~/temp/Builds/*.log
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ PreviewAPVResults:
+ paths:
+ - PreviewApvArtifacts~/**
+ - APVTest/**/manifest.json
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
+# Functional tests for dependents found in the latest 6000.0 manifest (Windows).
+preview_apv_-_6000_0_-_windows:
+ name: Preview APV - 6000.0 - windows
+ agent:
+ image: package-ci/win10:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
+ timeout: 20
+ retries: 10
+ - command: unity-downloader-cli -u 6000.0 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.0 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~
+ - command: python PythonScripts/editor_manifest_validator.py --version=6000.0 --wrench-config=.yamato/wrench/wrench_config.json
+ after:
+ - command: cmd.exe /c "curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.bat --output run_standalone_instability_detection-latest.bat --retry 5 || exit 0"
+ - command: cmd.exe /c "run_standalone_instability_detection-latest.bat 0.5.0 || exit 0"
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ logs:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - upm-ci~/test-results/**/*
+ - upm-ci~/temp/*/Logs/**
+ - upm-ci~/temp/*/Library/*.log
+ - upm-ci~/temp/*/*.log
+ - upm-ci~/temp/Builds/*.log
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ PreviewAPVResults:
+ paths:
+ - PreviewApvArtifacts~/**
+ - APVTest/**/manifest.json
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ interpreter: powershell
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
+# Functional tests for dependents found in the latest 6000.1 manifest (MacOS).
+preview_apv_-_6000_1_-_macos:
+ name: Preview APV - 6000.1 - macos
+ agent:
+ image: package-ci/macos-13:default
+ type: Unity::VM::osx
+ flavor: b1.xlarge
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
+ timeout: 20
+ retries: 10
+ - command: unity-downloader-cli -u 6000.1 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.1 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~
+ - command: echo 'Skipping Editor Manifest Validator as it is only supported on Windows'
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh macos 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ logs:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - upm-ci~/test-results/**/*
+ - upm-ci~/temp/*/Logs/**
+ - upm-ci~/temp/*/Library/*.log
+ - upm-ci~/temp/*/*.log
+ - upm-ci~/temp/Builds/*.log
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ PreviewAPVResults:
+ paths:
+ - PreviewApvArtifacts~/**
+ - APVTest/**/manifest.json
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
+# Functional tests for dependents found in the latest 6000.1 manifest (Ubuntu).
+preview_apv_-_6000_1_-_ubuntu:
+ name: Preview APV - 6000.1 - ubuntu
+ agent:
+ image: package-ci/ubuntu-20.04:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
+ timeout: 20
+ retries: 10
+ - command: unity-downloader-cli -u 6000.1 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.1 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~
+ - command: echo 'Skipping Editor Manifest Validator as it is only supported on Windows'
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh ubuntu 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ logs:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - upm-ci~/test-results/**/*
+ - upm-ci~/temp/*/Logs/**
+ - upm-ci~/temp/*/Library/*.log
+ - upm-ci~/temp/*/*.log
+ - upm-ci~/temp/Builds/*.log
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ PreviewAPVResults:
+ paths:
+ - PreviewApvArtifacts~/**
+ - APVTest/**/manifest.json
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
+# Functional tests for dependents found in the latest 6000.1 manifest (Windows).
+preview_apv_-_6000_1_-_windows:
+ name: Preview APV - 6000.1 - windows
+ agent:
+ image: package-ci/win10:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
+ timeout: 20
+ retries: 10
+ - command: unity-downloader-cli -u 6000.1 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.1 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~
+ - command: python PythonScripts/editor_manifest_validator.py --version=6000.1 --wrench-config=.yamato/wrench/wrench_config.json
+ after:
+ - command: cmd.exe /c "curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.bat --output run_standalone_instability_detection-latest.bat --retry 5 || exit 0"
+ - command: cmd.exe /c "run_standalone_instability_detection-latest.bat 0.5.0 || exit 0"
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ logs:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - upm-ci~/test-results/**/*
+ - upm-ci~/temp/*/Logs/**
+ - upm-ci~/temp/*/Library/*.log
+ - upm-ci~/temp/*/*.log
+ - upm-ci~/temp/Builds/*.log
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ PreviewAPVResults:
+ paths:
+ - PreviewApvArtifacts~/**
+ - APVTest/**/manifest.json
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ interpreter: powershell
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
diff --git a/.yamato/wrench/promotion-jobs.yml b/.yamato/wrench/promotion-jobs.yml
new file mode 100644
index 0000000000..d3f5d202d2
--- /dev/null
+++ b/.yamato/wrench/promotion-jobs.yml
@@ -0,0 +1,172 @@
+# Auto-generated by Recipe Engine, do not modify manually.
+# This job is generated by the wrench recipe engine module.
+
+# Publish Dry Run for netcode.gameobjects to https://artifactory-slo.bf.unity3d.com/artifactory/api/npm/upm-npm
+publish_dry_run_netcode_gameobjects:
+ name: Publish Dry Run netcode.gameobjects
+ agent:
+ image: package-ci/ubuntu-20.04:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/report_valid_editors.py
+ - command: python PythonScripts/ignore_existing_package_failure.py
+ - command: python PythonScripts/run_publish_if_any_package_left.py --dry-run
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh ubuntu 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ logs:
+ paths:
+ - results/UTR/**/*
+ browsable: onNonSuccess
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_0_-_macos
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.0-macos
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.0-macos
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_0_-_ubuntu
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.0-ubuntu
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.0-ubuntu
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_0_-_windows
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.0-windows
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.0-windows
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_1_-_macos
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.1-macos
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.1-macos
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_1_-_ubuntu
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.1-ubuntu
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.1-ubuntu
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_1_-_windows
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.1-windows
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.1-windows
+ unzip: true
+ variables:
+ UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ triggers:
+ expression: push.branch match "^release/.*"
+ cancel_old_ci: true
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
+# Publish for netcode.gameobjects to https://artifactory-slo.bf.unity3d.com/artifactory/api/npm/upm-npm
+publish_netcode_gameobjects:
+ name: Publish netcode.gameobjects
+ agent:
+ image: package-ci/ubuntu-20.04:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/report_valid_editors.py
+ - command: python PythonScripts/ignore_existing_package_failure.py
+ - command: python PythonScripts/run_publish_if_any_package_left.py
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh ubuntu 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ logs:
+ paths:
+ - results/UTR/**/*
+ browsable: onNonSuccess
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_0_-_macos
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.0-macos
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.0-macos
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_0_-_ubuntu
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.0-ubuntu
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.0-ubuntu
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_0_-_windows
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.0-windows
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.0-windows
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_1_-_macos
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.1-macos
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.1-macos
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_1_-_ubuntu
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.1-ubuntu
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.1-ubuntu
+ unzip: true
+ - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_1_-_windows
+ specific_options:
+ UTR:
+ location: results/UTR/validate-netcode.gameobjects-6000.1-windows
+ unzip: true
+ pvp-results:
+ location: results/pvp/validate-netcode.gameobjects-6000.1-windows
+ unzip: true
+ variables:
+ UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
diff --git a/.yamato/wrench/recipe-regeneration.yml b/.yamato/wrench/recipe-regeneration.yml
new file mode 100644
index 0000000000..03a579082d
--- /dev/null
+++ b/.yamato/wrench/recipe-regeneration.yml
@@ -0,0 +1,30 @@
+# Auto-generated by Recipe Engine, do not modify manually.
+# This job is generated by the wrench recipe engine module.
+
+# Test that Generated Wrench Jobs are up to date.
+test_-_wrench_jobs_up_to_date:
+ name: Test - Wrench Jobs up to date
+ agent:
+ image: package-ci/ubuntu-20.04:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: dotnet run --project Tools\CI\NGO.Cookbook.csproj
+ - command: |-
+ if [ -n "$(git status --porcelain)" ]; then
+ git status
+ echo "Your repo is not clean - diff output:"
+ git diff
+ echo "You must run recipe generation after updating recipes to update the generated YAML!"
+ echo "Run 'dotnet run --project Tools\CI\NGO.Cookbook.csproj' from the root of your repository to regenerate all job definitions created by wrench."
+ exit 1
+ fi
+ variables:
+ DOTNET_CLI_TELEMETRY_OPTOUT: 1
+ triggers:
+ expression: push.branch match "^release/.*"
+ cancel_old_ci: true
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+
diff --git a/.yamato/wrench/validation-jobs.yml b/.yamato/wrench/validation-jobs.yml
new file mode 100644
index 0000000000..db48d0b2bc
--- /dev/null
+++ b/.yamato/wrench/validation-jobs.yml
@@ -0,0 +1,405 @@
+# Auto-generated by Recipe Engine, do not modify manually.
+# This job is generated by the wrench recipe engine module, see find the docs here: http://Go/ii2fb
+
+# PVP Editor and Playmode tests for Validate - netcode.gameobjects - 6000.0 - macos (6000.0 - MacOS).
+validate_-_netcode_gameobjects_-_6000_0_-_macos:
+ name: Validate - netcode.gameobjects - 6000.0 - macos
+ agent:
+ image: package-ci/macos-13:default
+ type: Unity::VM::osx
+ flavor: b1.xlarge
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: unity-downloader-cli -u 6000.0 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: upm-pvp create-test-project test-netcode.gameobjects --packages "upm-ci~/packages/*.tgz" --unity .Editor
+ timeout: 10
+ retries: 1
+ - command: echo No internal packages to add.
+ - command: upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --results upm-ci~/pvp
+ timeout: 20
+ retries: 0
+ - command: echo Skipping check for PVP-160-1 as there is a bug on Windows. https://jira.unity3d.com/browse/PETS-1462
+ - command: upm-pvp require "rme PVP-160-1 supported" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json
+ timeout: 10
+ retries: 0
+ - command: UnifiedTestRunner --testproject=test-netcode.gameobjects --editor-location=.Editor --reruncount=1 --clean-library-on-rerun --artifacts_path=artifacts --suite=Editor --suite=Playmode "--ff={ops.upmpvpevidence.enable=true}"
+ timeout: 30
+ retries: 1
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh macos 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ UTR:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - artifacts/**/*
+ - test-netcode.gameobjects/Logs/**
+ - test-netcode.gameobjects/Library/*.log
+ - test-netcode.gameobjects/*.log
+ - test-netcode.gameobjects/Builds/*.log
+ - build/test-results/**
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+ labels:
+ - Packages:netcode.gameobjects
+
+# PVP Editor and Playmode tests for Validate - netcode.gameobjects - 6000.0 - ubuntu (6000.0 - Ubuntu).
+validate_-_netcode_gameobjects_-_6000_0_-_ubuntu:
+ name: Validate - netcode.gameobjects - 6000.0 - ubuntu
+ agent:
+ image: package-ci/ubuntu-20.04:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: unity-downloader-cli -u 6000.0 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: upm-pvp create-test-project test-netcode.gameobjects --packages "upm-ci~/packages/*.tgz" --unity .Editor
+ timeout: 10
+ retries: 1
+ - command: echo No internal packages to add.
+ - command: upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --results upm-ci~/pvp
+ timeout: 20
+ retries: 0
+ - command: echo Skipping check for PVP-160-1 as there is a bug on Windows. https://jira.unity3d.com/browse/PETS-1462
+ - command: upm-pvp require "rme PVP-160-1 supported" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json
+ timeout: 10
+ retries: 0
+ - command: UnifiedTestRunner --testproject=test-netcode.gameobjects --editor-location=.Editor --reruncount=1 --clean-library-on-rerun --artifacts_path=artifacts --suite=Editor --suite=Playmode "--ff={ops.upmpvpevidence.enable=true}"
+ timeout: 30
+ retries: 1
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh ubuntu 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ UTR:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - artifacts/**/*
+ - test-netcode.gameobjects/Logs/**
+ - test-netcode.gameobjects/Library/*.log
+ - test-netcode.gameobjects/*.log
+ - test-netcode.gameobjects/Builds/*.log
+ - build/test-results/**
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+ labels:
+ - Packages:netcode.gameobjects
+
+# PVP Editor and Playmode tests for Validate - netcode.gameobjects - 6000.0 - windows (6000.0 - Windows).
+validate_-_netcode_gameobjects_-_6000_0_-_windows:
+ name: Validate - netcode.gameobjects - 6000.0 - windows
+ agent:
+ image: package-ci/win10:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: unity-downloader-cli -u 6000.0 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: upm-pvp create-test-project test-netcode.gameobjects --packages "upm-ci~/packages/*.tgz" --unity .Editor
+ timeout: 10
+ retries: 1
+ - command: echo No internal packages to add.
+ - command: upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --results upm-ci~/pvp
+ timeout: 20
+ retries: 0
+ - command: echo Skipping check for PVP-160-1 as there is a bug on Windows. https://jira.unity3d.com/browse/PETS-1462
+ - command: upm-pvp require "rme PVP-160-1 supported" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json
+ timeout: 10
+ retries: 0
+ - command: UnifiedTestRunner.exe --testproject=test-netcode.gameobjects --editor-location=.Editor --reruncount=1 --clean-library-on-rerun --artifacts_path=artifacts --suite=Editor --suite=Playmode "--ff={ops.upmpvpevidence.enable=true}"
+ timeout: 30
+ retries: 1
+ after:
+ - command: cmd.exe /c "curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.bat --output run_standalone_instability_detection-latest.bat --retry 5 || exit 0"
+ - command: cmd.exe /c "run_standalone_instability_detection-latest.bat 0.5.0 || exit 0"
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ UTR:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - artifacts/**/*
+ - test-netcode.gameobjects/Logs/**
+ - test-netcode.gameobjects/Library/*.log
+ - test-netcode.gameobjects/*.log
+ - test-netcode.gameobjects/Builds/*.log
+ - build/test-results/**
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+ labels:
+ - Packages:netcode.gameobjects
+
+# PVP Editor and Playmode tests for Validate - netcode.gameobjects - 6000.1 - macos (6000.1 - MacOS).
+validate_-_netcode_gameobjects_-_6000_1_-_macos:
+ name: Validate - netcode.gameobjects - 6000.1 - macos
+ agent:
+ image: package-ci/macos-13:default
+ type: Unity::VM::osx
+ flavor: b1.xlarge
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: unity-downloader-cli -u 6000.1 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: upm-pvp create-test-project test-netcode.gameobjects --packages "upm-ci~/packages/*.tgz" --unity .Editor
+ timeout: 10
+ retries: 1
+ - command: echo No internal packages to add.
+ - command: upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --results upm-ci~/pvp
+ timeout: 20
+ retries: 0
+ - command: echo Skipping check for PVP-160-1 as there is a bug on Windows. https://jira.unity3d.com/browse/PETS-1462
+ - command: upm-pvp require "rme PVP-160-1 supported" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json
+ timeout: 10
+ retries: 0
+ - command: UnifiedTestRunner --testproject=test-netcode.gameobjects --editor-location=.Editor --reruncount=1 --clean-library-on-rerun --artifacts_path=artifacts --suite=Editor --suite=Playmode "--ff={ops.upmpvpevidence.enable=true}"
+ timeout: 30
+ retries: 1
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh macos 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ UTR:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - artifacts/**/*
+ - test-netcode.gameobjects/Logs/**
+ - test-netcode.gameobjects/Library/*.log
+ - test-netcode.gameobjects/*.log
+ - test-netcode.gameobjects/Builds/*.log
+ - build/test-results/**
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+ labels:
+ - Packages:netcode.gameobjects
+
+# PVP Editor and Playmode tests for Validate - netcode.gameobjects - 6000.1 - ubuntu (6000.1 - Ubuntu).
+validate_-_netcode_gameobjects_-_6000_1_-_ubuntu:
+ name: Validate - netcode.gameobjects - 6000.1 - ubuntu
+ agent:
+ image: package-ci/ubuntu-20.04:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: unity-downloader-cli -u 6000.1 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: upm-pvp create-test-project test-netcode.gameobjects --packages "upm-ci~/packages/*.tgz" --unity .Editor
+ timeout: 10
+ retries: 1
+ - command: echo No internal packages to add.
+ - command: upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --results upm-ci~/pvp
+ timeout: 20
+ retries: 0
+ - command: echo Skipping check for PVP-160-1 as there is a bug on Windows. https://jira.unity3d.com/browse/PETS-1462
+ - command: upm-pvp require "rme PVP-160-1 supported" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json
+ timeout: 10
+ retries: 0
+ - command: UnifiedTestRunner --testproject=test-netcode.gameobjects --editor-location=.Editor --reruncount=1 --clean-library-on-rerun --artifacts_path=artifacts --suite=Editor --suite=Playmode "--ff={ops.upmpvpevidence.enable=true}"
+ timeout: 30
+ retries: 1
+ after:
+ - command: curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.sh --output run_standalone_instability_detection-latest.sh --retry 5 || exit 0
+ - command: bash ./run_standalone_instability_detection-latest.sh ubuntu 0.5.0 || exit 0
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ UTR:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - artifacts/**/*
+ - test-netcode.gameobjects/Logs/**
+ - test-netcode.gameobjects/Library/*.log
+ - test-netcode.gameobjects/*.log
+ - test-netcode.gameobjects/Builds/*.log
+ - build/test-results/**
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+ labels:
+ - Packages:netcode.gameobjects
+
+# PVP Editor and Playmode tests for Validate - netcode.gameobjects - 6000.1 - windows (6000.1 - Windows).
+validate_-_netcode_gameobjects_-_6000_1_-_windows:
+ name: Validate - netcode.gameobjects - 6000.1 - windows
+ agent:
+ image: package-ci/win10:default
+ type: Unity::VM
+ flavor: b1.large
+ commands:
+ - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-2-54_4ed3929f39f0279ecefec81a437d0eb42e21a4f9c6469a88d31e8f3d764709fe.zip -o wrench-localapv.zip
+ - command: 7z x -aoa wrench-localapv.zip
+ - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple
+ - command: python PythonScripts/print_machine_info.py
+ - command: unity-downloader-cli -u 6000.1 -c Editor --fast
+ timeout: 10
+ retries: 3
+ - command: upm-pvp create-test-project test-netcode.gameobjects --packages "upm-ci~/packages/*.tgz" --unity .Editor
+ timeout: 10
+ retries: 1
+ - command: echo No internal packages to add.
+ - command: upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --results upm-ci~/pvp
+ timeout: 20
+ retries: 0
+ - command: echo Skipping check for PVP-160-1 as there is a bug on Windows. https://jira.unity3d.com/browse/PETS-1462
+ - command: upm-pvp require "rme PVP-160-1 supported" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json
+ timeout: 10
+ retries: 0
+ - command: UnifiedTestRunner.exe --testproject=test-netcode.gameobjects --editor-location=.Editor --reruncount=1 --clean-library-on-rerun --artifacts_path=artifacts --suite=Editor --suite=Playmode "--ff={ops.upmpvpevidence.enable=true}"
+ timeout: 30
+ retries: 1
+ after:
+ - command: cmd.exe /c "curl -s https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/setup/run_standalone_instability_detection-latest.bat --output run_standalone_instability_detection-latest.bat --retry 5 || exit 0"
+ - command: cmd.exe /c "run_standalone_instability_detection-latest.bat 0.5.0 || exit 0"
+ timeout: 10
+ retries: 1
+ artifacts:
+ Crash Dumps:
+ paths:
+ - CrashDumps/**
+ packages:
+ paths:
+ - upm-ci~/packages/**/*
+ pvp-results:
+ paths:
+ - upm-ci~/pvp/**/*
+ browsable: onDemand
+ UTR:
+ paths:
+ - '*.log'
+ - '*.xml'
+ - artifacts/**/*
+ - test-netcode.gameobjects/Logs/**
+ - test-netcode.gameobjects/Library/*.log
+ - test-netcode.gameobjects/*.log
+ - test-netcode.gameobjects/Builds/*.log
+ - build/test-results/**
+ browsable: onDemand
+ dependencies:
+ - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
+ variables:
+ UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1
+ UPMPVP_CONTEXT_WRENCH: 0.10.31.0
+ metadata:
+ Job Maintainers: '#rm-packageworks'
+ Wrench: 0.10.31.0
+ labels:
+ - Packages:netcode.gameobjects
+
diff --git a/.yamato/wrench/wrench_config.json b/.yamato/wrench/wrench_config.json
new file mode 100644
index 0000000000..2ef87583c3
--- /dev/null
+++ b/.yamato/wrench/wrench_config.json
@@ -0,0 +1,37 @@
+{
+ "schema_version": 0.7,
+ "packages": {
+ "com.unity.netcode.gameobjects": {
+ "directory": "com.unity.netcode.gameobjects/",
+ "prePackCommands": [],
+ "preTestCommands": {
+ "MacOS": [],
+ "Ubuntu": [],
+ "Windows": []
+ },
+ "InternalOnly": false,
+ "NeverPublish": false,
+ "MaxEditorVersion": "",
+ "coverageEnabled": false,
+ "coverageCommands": [
+ "generateAdditionalMetrics;generateHtmlReport;assemblyFilters:ASSEMBLY_NAME;pathReplacePatterns:@*,,**/PackageCache/,;sourcePaths:YAMATO_SOURCE_DIR/Packages;"
+ ],
+ "dependantsToIgnoreInPreviewApv": {}
+ }
+ },
+ "releasing_packages": [
+ "com.unity.netcode.gameobjects"
+ ],
+ "jobs_to_monitor": {
+ "com.unity.netcode.gameobjects": [
+ ".yamato/wrench/api-validation-jobs.yml#api_validation_-_netcode_gameobjects_-_6000_0_-_windows",
+ ".yamato/wrench/preview-a-p-v.yml#all_preview_apv_jobs",
+ ".yamato/wrench/promotion-jobs.yml#publish_dry_run_netcode_gameobjects"
+ ]
+ },
+ "publishing_job": ".yamato/wrench/promotion-jobs.yml#publish_netcode_gameobjects",
+ "branch_pattern": "ReleaseSlash",
+ "wrench_version": "0.10.31.0",
+ "pvp_exemption_path": ".yamato/wrench/pvp-exemptions.json",
+ "cs_project_path": "Tools\\CI\\NGO.Cookbook.csproj"
+}
\ No newline at end of file
diff --git a/Examples/CharacterControllerMovingBodies/.gitignore b/Examples/CharacterControllerMovingBodies/.gitignore
new file mode 100644
index 0000000000..2800399634
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/.gitignore
@@ -0,0 +1,83 @@
+# This .gitignore file should be placed at the root of your Unity project directory
+#
+# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
+#
+/[Ll]ibrary/
+/[Tt]emp/
+/[Oo]bj/
+/[Bb]uild/
+/[Bb]uilds/
+/[Ll]ogs/
+/[Uu]ser[Ss]ettings/
+
+# MemoryCaptures can get excessive in size.
+# They also could contain extremely sensitive data
+/[Mm]emoryCaptures/
+
+# Asset meta data should only be ignored when the corresponding asset is also ignored
+!/[Aa]ssets/**/*.meta
+
+# Uncomment this line if you wish to ignore the asset store tools plugin
+# /[Aa]ssets/AssetStoreTools*
+
+# Autogenerated Jetbrains Rider plugin
+/[Aa]ssets/Plugins/Editor/JetBrains*
+
+# Visual Studio cache directory
+.vs/
+
+# Gradle cache directory
+.gradle/
+
+# Autogenerated VS/MD/Consulo solution and project files
+ExportedObj/
+.consulo/
+*.csproj
+*.unityproj
+*.sln
+*.suo
+*.tmp
+*.user
+*.userprefs
+*.pidb
+*.booproj
+*.svd
+*.pdb
+*.mdb
+*.opendb
+*.VC.db
+
+# Unity3D generated meta files
+*.pidb.meta
+*.pdb.meta
+*.mdb.meta
+
+# Unity3D generated file on crash reports
+sysinfo.txt
+
+# Builds
+*.apk
+*.aab
+*.unitypackage
+
+# Crashlytics generated file
+crashlytics-build.properties
+
+# Packed Addressables
+/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
+
+# Temporary auto-generated Android Assets
+/[Aa]ssets/[Ss]treamingAssets/aa.meta
+/[Aa]ssets/[Ss]treamingAssets/aa/*
+/[Aa]ssets/[Ss]treamingAssets/BuildInfo.json
+/[Aa]ssets/[Ss]treamingAssets/BuildInfo.json.meta
+
+# Secrets
+*.pem
+*.pem.meta
+
+InitTestScene*
+
+boot.config
+SceneTemplateSettings.json
+*BurstAotSettings*.json
diff --git a/Examples/CharacterControllerMovingBodies/Assets/DefaultNetworkPrefabs.asset b/Examples/CharacterControllerMovingBodies/Assets/DefaultNetworkPrefabs.asset
new file mode 100644
index 0000000000..073f4484e8
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/DefaultNetworkPrefabs.asset
@@ -0,0 +1,31 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e651dbb3fbac04af2b8f5abf007ddc23, type: 3}
+ m_Name: DefaultNetworkPrefabs
+ m_EditorClassIdentifier:
+ IsDefault: 1
+ List:
+ - Override: 0
+ Prefab: {fileID: 2522762726852386808, guid: 380c984d34fc8664c8f53fc1d8733a25, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
+ - Override: 0
+ Prefab: {fileID: 8921789205124766477, guid: 89b57e576a8d47643b2dbd45b1f8cab1, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
+ - Override: 0
+ Prefab: {fileID: 3439633038736912633, guid: 398aad09d8b2a47eba664a076763cdcc, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/DefaultNetworkPrefabs.asset.meta b/Examples/CharacterControllerMovingBodies/Assets/DefaultNetworkPrefabs.asset.meta
new file mode 100644
index 0000000000..fee27b3ade
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/DefaultNetworkPrefabs.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: aa82390bfdde2564f828b8e5be375282
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/com.unity.netcode.gameobjects/Samples.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials.meta
similarity index 77%
rename from com.unity.netcode.gameobjects/Samples.meta
rename to Examples/CharacterControllerMovingBodies/Assets/Materials.meta
index 5a5e3b286a..463de70d61 100644
--- a/com.unity.netcode.gameobjects/Samples.meta
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d48e3f2a8be084f8aae6470ef87063d9
+guid: d5b7ad71451c27e4291295cfffc10328
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocal.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocal.mat
new file mode 100644
index 0000000000..b6fd2dd9a1
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocal.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ChildLocal
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHAPREMULTIPLY_ON
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 3
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 0.8980392, g: 0.039215658, b: 0.7682729, a: 0.2509804}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocal.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocal.mat.meta
new file mode 100644
index 0000000000..35e4d565be
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocal.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 45fc555bc05bfee4ab8b0d536799ecee
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocalNoParentSync.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocalNoParentSync.mat
new file mode 100644
index 0000000000..c44172e7a7
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocalNoParentSync.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ChildLocalNoParentSync
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHAPREMULTIPLY_ON
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 3
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 0.039215658, g: 0.78592235, b: 0.8980392, a: 0.2509804}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocalNoParentSync.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocalNoParentSync.mat.meta
new file mode 100644
index 0000000000..3a26e43d98
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildLocalNoParentSync.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: affef70511a06dd46b8f52636020af4a
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorld.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorld.mat
new file mode 100644
index 0000000000..0c2bf4b187
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorld.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ChildWorld
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHAPREMULTIPLY_ON
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 3
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 0.3783494, g: 0.039215658, b: 0.8980392, a: 0.2509804}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorld.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorld.mat.meta
new file mode 100644
index 0000000000..9a00ded8c6
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorld.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 15d0bda12a233964086aee5c0c357e24
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorldNoParentSync.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorldNoParentSync.mat
new file mode 100644
index 0000000000..86b27eb5c9
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorldNoParentSync.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ChildWorldNoParentSync
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHAPREMULTIPLY_ON
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 3
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 0.039215658, g: 0.8980392, b: 0.09095798, a: 0.2509804}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorldNoParentSync.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorldNoParentSync.mat.meta
new file mode 100644
index 0000000000..5ab7ff2e72
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ChildWorldNoParentSync.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a5e199307b2e0894294d9c8bee99a691
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/Direction.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/Direction.mat
new file mode 100644
index 0000000000..ed5ed117c3
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/Direction.mat
@@ -0,0 +1,84 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Direction
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 0.8962264, g: 0.52830994, b: 0.038047332, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/Direction.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/Direction.mat.meta
new file mode 100644
index 0000000000..c93791fac0
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/Direction.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5324c76c2bab7344badd5ea27a40bcb5
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/GridBlue.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridBlue.mat
new file mode 100644
index 0000000000..9009817e26
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridBlue.mat
@@ -0,0 +1,138 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-2624353793879203111
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: GridBlue
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _EMISSION
+ - _GLOSSYREFLECTIONS_OFF
+ - _NORMALMAP
+ m_InvalidKeywords: []
+ m_LightmapFlags: 2
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: b94463ba36040ec4082132c54dd1bbad, 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: 2800000, guid: 8bf2cf149563066489e749ea032dbca7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: e71f43865e91e6b418bd0d67be2445dc, type: 3}
+ 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}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.477
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 0
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 0.5438323, g: 0.88474977, b: 0.9528302, a: 1}
+ - _EmissionColor: {r: 0, g: 0.6988592, b: 1, a: 1}
+ - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+ m_BuildTextureStacks: []
+ m_AllowLocking: 1
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/GridBlue.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridBlue.mat.meta
new file mode 100644
index 0000000000..b8caf3cbac
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridBlue.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1448a5da57523ce4bbc377143e02fe3c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/GridOrange.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridOrange.mat
new file mode 100644
index 0000000000..38a4e9808b
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridOrange.mat
@@ -0,0 +1,138 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-2624353793879203111
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: GridOrange
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _EMISSION
+ - _GLOSSYREFLECTIONS_OFF
+ - _NORMALMAP
+ m_InvalidKeywords: []
+ m_LightmapFlags: 2
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: b94463ba36040ec4082132c54dd1bbad, 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: 2800000, guid: 8bf2cf149563066489e749ea032dbca7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: e71f43865e91e6b418bd0d67be2445dc, type: 3}
+ 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}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.477
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 0
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 1, g: 0.49475378, b: 0, a: 1}
+ - _EmissionColor: {r: 0.990566, g: 0.48359674, b: 0.378471, a: 1}
+ - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+ m_BuildTextureStacks: []
+ m_AllowLocking: 1
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/GridOrange.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridOrange.mat.meta
new file mode 100644
index 0000000000..bf2873069e
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridOrange.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2e2c886f4af8e304eb9a1e2e50d023b3
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/GridPattern.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridPattern.mat
new file mode 100644
index 0000000000..f44981f387
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridPattern.mat
@@ -0,0 +1,85 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: GridPattern
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _GLOSSYREFLECTIONS_OFF
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 1
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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: 6, y: 6}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: a092c5fa8c60ed04aa1d72555f1740bc, type: 3}
+ m_Scale: {x: 6, y: 6}
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0.785
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0.254717, g: 0.23188858, b: 0.23188858, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/GridPattern.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridPattern.mat.meta
new file mode 100644
index 0000000000..cbca0f4485
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridPattern.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 42c4a0ad1f9d67a45b12f68697321aad
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/GridWhite.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridWhite.mat
new file mode 100644
index 0000000000..7345253099
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridWhite.mat
@@ -0,0 +1,138 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-2624353793879203111
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: GridWhite
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _EMISSION
+ - _GLOSSYREFLECTIONS_OFF
+ - _NORMALMAP
+ m_InvalidKeywords: []
+ m_LightmapFlags: 2
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: b94463ba36040ec4082132c54dd1bbad, 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: 2800000, guid: 8bf2cf149563066489e749ea032dbca7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: e71f43865e91e6b418bd0d67be2445dc, type: 3}
+ 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}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 1
+ - _Glossiness: 0.477
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 0
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+ m_BuildTextureStacks: []
+ m_AllowLocking: 1
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/GridWhite.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridWhite.mat.meta
new file mode 100644
index 0000000000..4559482bba
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/GridWhite.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a53ba8919fa78c14caac473c7e7ce7d3
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/Ground.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/Ground.mat
new file mode 100644
index 0000000000..252ea1a0ed
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/Ground.mat
@@ -0,0 +1,79 @@
+%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: Ground
+ m_Shader: {fileID: 7, 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_Ints: []
+ 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.14769986, g: 0.1509434, b: 0.1473834, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/Ground.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/Ground.mat.meta
new file mode 100644
index 0000000000..6dbcac16d3
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/Ground.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9c73b921ea39f4344a19c2d1c7d6b314
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/PlayerMaterial.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/PlayerMaterial.mat
new file mode 100644
index 0000000000..e7f5729956
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/PlayerMaterial.mat
@@ -0,0 +1,80 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: PlayerMaterial
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ 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_Ints: []
+ 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/Examples/CharacterControllerMovingBodies/Assets/Materials/PlayerMaterial.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/PlayerMaterial.mat.meta
new file mode 100644
index 0000000000..1ceca58536
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/PlayerMaterial.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 44e292334941fe148b997ca2b01b5789
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ShaderGraphGrid_01_Mat.mat b/Examples/CharacterControllerMovingBodies/Assets/Materials/ShaderGraphGrid_01_Mat.mat
new file mode 100644
index 0000000000..5161ac9b8e
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ShaderGraphGrid_01_Mat.mat
@@ -0,0 +1,134 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ShaderGraphGrid_01_Mat
+ m_Shader: {fileID: -6465566751694194690, guid: b8d7679189d4a5940af46004f3870920, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - Texture2D_C5E3E723:
+ m_Texture: {fileID: 2800000, guid: d4d6919451fe3e24388816386a6d15a4, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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}
+ - _Grid_Normal_Map:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: d9c0dd5cdac07b145be73329e489869a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0.004, 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}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - Boolean_35A71344: 0
+ - Boolean_7A5F3F39: 1
+ - Boolean_7AC8D832: 1
+ - Vector1_3402D67A: 1
+ - Vector1_3655428E: 5
+ - Vector1_5B05FA1F: 0.062
+ - Vector1_6B67A8FF: -20
+ - Vector1_7810F718: 1
+ - Vector1_B6126E6E: 0.335
+ - Vector1_CA7D5F3: 30
+ - Vector1_D5FBE925: 0.3
+ - Vector1_F2A922B4: 1.73
+ - Vector1_F5FD9210: 33.9
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.119
+ - _GlossyReflections: 1
+ - _Grid_Normal_Strength: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 0
+ - _Parallax: 0.02
+ - _QueueControl: 0
+ - _QueueOffset: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - Color_2B671050: {r: 0.23202202, g: 0.6245157, b: 0.745283, a: 0}
+ - Color_30A0CA2F: {r: 0.02745098, g: 1, b: 0.7565653, a: 0}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
+--- !u!114 &6450197988115792188
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Materials/ShaderGraphGrid_01_Mat.mat.meta b/Examples/CharacterControllerMovingBodies/Assets/Materials/ShaderGraphGrid_01_Mat.mat.meta
new file mode 100644
index 0000000000..efd03db61f
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Materials/ShaderGraphGrid_01_Mat.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7be68f3cac640fd40a7663ac97380a9c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/com.unity.netcode.gameobjects/Components/Messages.meta b/Examples/CharacterControllerMovingBodies/Assets/Models.meta
similarity index 77%
rename from com.unity.netcode.gameobjects/Components/Messages.meta
rename to Examples/CharacterControllerMovingBodies/Assets/Models.meta
index fcf8b73d3a..21910d8d7a 100644
--- a/com.unity.netcode.gameobjects/Components/Messages.meta
+++ b/Examples/CharacterControllerMovingBodies/Assets/Models.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a9db1d18fa0117f4da5e8e65386b894a
+guid: bd50c879f39d9d94b92706513b4f56ef
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_100x100x200_Mesh.fbx b/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_100x100x200_Mesh.fbx
new file mode 100644
index 0000000000..2fa479b052
Binary files /dev/null and b/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_100x100x200_Mesh.fbx differ
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_100x100x200_Mesh.fbx.meta b/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_100x100x200_Mesh.fbx.meta
new file mode 100644
index 0000000000..2ebb0bb69b
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_100x100x200_Mesh.fbx.meta
@@ -0,0 +1,107 @@
+fileFormatVersion: 2
+guid: 4c31b0c9eb3dcdf4890cd904bf277cdf
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ strictVertexDataChecks: 0
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_Mesh.fbx b/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_Mesh.fbx
new file mode 100644
index 0000000000..ac24ee24d6
Binary files /dev/null and b/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_Mesh.fbx differ
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_Mesh.fbx.meta b/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_Mesh.fbx.meta
new file mode 100644
index 0000000000..f9aabd0c03
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Models/Ramp_Mesh.fbx.meta
@@ -0,0 +1,107 @@
+fileFormatVersion: 2
+guid: 5d8449220d5795b448a4cee5cbde4b56
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ strictVertexDataChecks: 0
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Models/Tunnel_Mesh.fbx b/Examples/CharacterControllerMovingBodies/Assets/Models/Tunnel_Mesh.fbx
new file mode 100644
index 0000000000..7ec9d4bb74
Binary files /dev/null and b/Examples/CharacterControllerMovingBodies/Assets/Models/Tunnel_Mesh.fbx differ
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Models/Tunnel_Mesh.fbx.meta b/Examples/CharacterControllerMovingBodies/Assets/Models/Tunnel_Mesh.fbx.meta
new file mode 100644
index 0000000000..75c9997470
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Models/Tunnel_Mesh.fbx.meta
@@ -0,0 +1,107 @@
+fileFormatVersion: 2
+guid: 63fcabcd345d556498e09f748683088e
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ strictVertexDataChecks: 0
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Models/Wall_Mesh.fbx b/Examples/CharacterControllerMovingBodies/Assets/Models/Wall_Mesh.fbx
new file mode 100644
index 0000000000..0bfc7f6493
Binary files /dev/null and b/Examples/CharacterControllerMovingBodies/Assets/Models/Wall_Mesh.fbx differ
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Models/Wall_Mesh.fbx.meta b/Examples/CharacterControllerMovingBodies/Assets/Models/Wall_Mesh.fbx.meta
new file mode 100644
index 0000000000..15452589e0
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Models/Wall_Mesh.fbx.meta
@@ -0,0 +1,107 @@
+fileFormatVersion: 2
+guid: 34560503bf9d61046b252db98a8cf770
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ strictVertexDataChecks: 0
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs.meta b/Examples/CharacterControllerMovingBodies/Assets/Prefabs.meta
new file mode 100644
index 0000000000..c867cd3a70
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4b97118ef11ec3347bc72b8d681e094b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Floor.physicMaterial b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Floor.physicMaterial
new file mode 100644
index 0000000000..5aeefdde15
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Floor.physicMaterial
@@ -0,0 +1,15 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!134 &13400000
+PhysicsMaterial:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Floor
+ serializedVersion: 2
+ m_DynamicFriction: 2.5
+ m_StaticFriction: 2
+ m_Bounciness: 0
+ m_FrictionCombine: 3
+ m_BounceCombine: 2
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Floor.physicMaterial.meta b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Floor.physicMaterial.meta
new file mode 100644
index 0000000000..a55550d94a
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Floor.physicMaterial.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2c574f6ade946d94f9ec0183e3bc4579
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 13400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/PlayerNoRigidbody.prefab b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/PlayerNoRigidbody.prefab
new file mode 100644
index 0000000000..ca1d2b414e
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/PlayerNoRigidbody.prefab
@@ -0,0 +1,960 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2819221948576051598
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8815849029736207364}
+ - component: {fileID: 3042900316038666559}
+ - component: {fileID: 1437858011576020080}
+ - component: {fileID: 8264281895793262867}
+ m_Layer: 0
+ m_Name: PlayerBallChild1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8815849029736207364
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2819221948576051598}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 1, y: 0, z: 0}
+ m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 394823601370723229}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &3042900316038666559
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2819221948576051598}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &1437858011576020080
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2819221948576051598}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 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!114 &8264281895793262867
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2819221948576051598}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 792d7ce524eb358469373fe12babef88, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ AuthorityMode: 1
+ TickSyncChildren: 0
+ UseUnreliableDeltas: 0
+ 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
+ UseQuaternionSynchronization: 1
+ UseQuaternionCompression: 0
+ UseHalfFloatPrecision: 0
+ InLocalSpace: 1
+ SwitchTransformSpaceWhenParented: 0
+ Interpolate: 1
+ SlerpPosition: 1
+ ExpandPlayerBallMotion: 1
+ ExpandNetworkTransform: 1
+ RotationAxis: 2
+ RotationSpeed: 1.5
+--- !u!1 &3959781627078922459
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 394823601370723229}
+ - component: {fileID: 1530657457870194733}
+ - component: {fileID: 8179170832269307327}
+ - component: {fileID: 8231288296501785146}
+ m_Layer: 0
+ m_Name: PlayerBallPrime
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &394823601370723229
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3959781627078922459}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 1.25, y: 0, z: 0}
+ m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 8815849029736207364}
+ - {fileID: 7136463849438099188}
+ - {fileID: 5551906405844277949}
+ m_Father: {fileID: 8921789205124766473}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &1530657457870194733
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3959781627078922459}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &8179170832269307327
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3959781627078922459}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: a53ba8919fa78c14caac473c7e7ce7d3, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!114 &8231288296501785146
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3959781627078922459}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 792d7ce524eb358469373fe12babef88, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ AuthorityMode: 1
+ TickSyncChildren: 0
+ UseUnreliableDeltas: 0
+ 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
+ UseQuaternionSynchronization: 1
+ UseQuaternionCompression: 0
+ UseHalfFloatPrecision: 0
+ InLocalSpace: 1
+ SwitchTransformSpaceWhenParented: 0
+ Interpolate: 1
+ SlerpPosition: 1
+ ExpandPlayerBallMotion: 1
+ ExpandNetworkTransform: 1
+ RotationAxis: 0
+ RotationSpeed: 1.5
+--- !u!1 &3973637191948275635
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8797190989880117053}
+ - component: {fileID: 1956256172504790623}
+ - component: {fileID: 2171905566637076429}
+ m_Layer: 0
+ m_Name: ParentedText
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8797190989880117053
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3973637191948275635}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.91, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 8921789205124766473}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1956256172504790623
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3973637191948275635}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10100, guid: 0000000000000000e000000000000000, 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!102 &2171905566637076429
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3973637191948275635}
+ m_Text: "Hello \nWorld"
+ m_OffsetZ: 0
+ m_CharacterSize: 0.15
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 1
+ m_TabSize: 4
+ m_FontSize: 20
+ m_FontStyle: 1
+ m_RichText: 1
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!1 &7133739606324490315
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5551906405844277949}
+ - component: {fileID: 1792842414970541714}
+ - component: {fileID: 6744917009213370100}
+ - component: {fileID: 6571689152541036907}
+ m_Layer: 0
+ m_Name: PlayerBallChild3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5551906405844277949
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7133739606324490315}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 1}
+ m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 394823601370723229}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &1792842414970541714
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7133739606324490315}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &6744917009213370100
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7133739606324490315}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 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!114 &6571689152541036907
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7133739606324490315}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 792d7ce524eb358469373fe12babef88, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ AuthorityMode: 1
+ TickSyncChildren: 0
+ UseUnreliableDeltas: 0
+ 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
+ UseQuaternionSynchronization: 1
+ UseQuaternionCompression: 0
+ UseHalfFloatPrecision: 0
+ InLocalSpace: 1
+ SwitchTransformSpaceWhenParented: 0
+ Interpolate: 1
+ SlerpPosition: 1
+ ExpandPlayerBallMotion: 1
+ ExpandNetworkTransform: 1
+ RotationAxis: 1
+ RotationSpeed: 1.5
+--- !u!1 &7484009658662050968
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7136463849438099188}
+ - component: {fileID: 8767029715903736994}
+ - component: {fileID: 186997181429634371}
+ - component: {fileID: 4424954456620528769}
+ m_Layer: 0
+ m_Name: PlayerBallChild2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &7136463849438099188
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7484009658662050968}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -1, y: 0, z: 0}
+ m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 394823601370723229}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &8767029715903736994
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7484009658662050968}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &186997181429634371
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7484009658662050968}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 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!114 &4424954456620528769
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7484009658662050968}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 792d7ce524eb358469373fe12babef88, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ AuthorityMode: 1
+ TickSyncChildren: 0
+ UseUnreliableDeltas: 0
+ 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
+ UseQuaternionSynchronization: 1
+ UseQuaternionCompression: 0
+ UseHalfFloatPrecision: 0
+ InLocalSpace: 1
+ SwitchTransformSpaceWhenParented: 0
+ Interpolate: 1
+ SlerpPosition: 1
+ ExpandPlayerBallMotion: 0
+ ExpandNetworkTransform: 1
+ RotationAxis: 0
+ RotationSpeed: 1.5
+--- !u!1 &8837707216906300506
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3256164543801378073}
+ - component: {fileID: 5138046720836505354}
+ - component: {fileID: 1048758437790369019}
+ - component: {fileID: 3232232006964461868}
+ m_Layer: 0
+ m_Name: Direction
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3256164543801378073
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8837707216906300506}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.529, z: 0.36}
+ m_LocalScale: {x: 0.5, y: 0.35, z: 0.5}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 8921789205124766473}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5138046720836505354
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8837707216906300506}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &1048758437790369019
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8837707216906300506}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 5324c76c2bab7344badd5ea27a40bcb5, 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!65 &3232232006964461868
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8837707216906300506}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 0
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &8921789205124766477
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8921789205124766473}
+ - component: {fileID: 8921789205124766472}
+ - component: {fileID: 8921789205124766479}
+ - component: {fileID: 8921789205124766478}
+ - component: {fileID: 3121348088455848731}
+ - component: {fileID: 8921789205124766474}
+ - component: {fileID: 871737567343884637}
+ - component: {fileID: 571224925323069553}
+ - component: {fileID: 2509722539211228765}
+ m_Layer: 0
+ m_Name: PlayerNoRigidbody
+ m_TagString: Player
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8921789205124766473
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8921789205124766477}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 3256164543801378073}
+ - {fileID: 8797190989880117053}
+ - {fileID: 394823601370723229}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &8921789205124766472
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8921789205124766477}
+ m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &8921789205124766479
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8921789205124766477}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 44e292334941fe148b997ca2b01b5789, 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 &8921789205124766478
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8921789205124766477}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!143 &3121348088455848731
+CharacterController:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8921789205124766477}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Height: 2
+ m_Radius: 0.5
+ m_SlopeLimit: 45
+ m_StepOffset: 0.3
+ m_SkinWidth: 0.08
+ m_MinMoveDistance: 0.001
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &8921789205124766474
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8921789205124766477}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ GlobalObjectIdHash: 2508530451
+ InScenePlacedSourceGlobalObjectIdHash: 0
+ DeferredDespawnTick: 0
+ Ownership: 0
+ AlwaysReplicateAsRoot: 0
+ SynchronizeTransform: 1
+ ActiveSceneSynchronization: 0
+ SceneMigrationSynchronization: 1
+ SpawnWithObservers: 1
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+ SyncOwnerTransformWhenParented: 0
+ AllowOwnerToParent: 1
+--- !u!114 &871737567343884637
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8921789205124766477}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8e5128237997be649af0cc87dd0eb563, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ ApplyColorToChildren: 1
+ IgnoreChildren:
+ - {fileID: 8837707216906300506}
+--- !u!114 &571224925323069553
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8921789205124766477}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5ce25b0b3f15e6446a88a85787c2f94a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ AuthorityMode: 1
+ TickSyncChildren: 1
+ UseUnreliableDeltas: 0
+ SyncPositionX: 1
+ SyncPositionY: 1
+ SyncPositionZ: 1
+ SyncRotAngleX: 1
+ SyncRotAngleY: 1
+ SyncRotAngleZ: 1
+ SyncScaleX: 1
+ SyncScaleY: 1
+ SyncScaleZ: 1
+ PositionThreshold: 0.01
+ RotAngleThreshold: 0.01
+ ScaleThreshold: 0.1
+ UseQuaternionSynchronization: 1
+ UseQuaternionCompression: 0
+ UseHalfFloatPrecision: 0
+ InLocalSpace: 0
+ SwitchTransformSpaceWhenParented: 1
+ Interpolate: 1
+ SlerpPosition: 0
+ ExpandMoverScriptNoRigidbody: 0
+ ExpandNetworkTransform: 1
+ SpawnRadius: 10
+ Increment: 1
+ RotationSpeed: 1.26
+ MovementSpeed: 15
+ JumpSpeed: 10
+ AirSpeedFactor: 0.35
+ Gravity: -9.8
+--- !u!65 &2509722539211228765
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8921789205124766477}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1.4, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/PlayerNoRigidbody.prefab.meta b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/PlayerNoRigidbody.prefab.meta
new file mode 100644
index 0000000000..9199f72759
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/PlayerNoRigidbody.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8ae02ac62e2067144b8ff06d48aeb47a
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Ramp_Prefab.prefab b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Ramp_Prefab.prefab
new file mode 100644
index 0000000000..edcdf3071c
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Ramp_Prefab.prefab
@@ -0,0 +1,111 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8924170145835402666
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8111781018561290000}
+ - component: {fileID: 5133274882688487605}
+ - component: {fileID: 6978882906433643647}
+ - component: {fileID: 894093325933845257}
+ m_Layer: 0
+ m_Name: Ramp_Prefab
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &8111781018561290000
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8924170145835402666}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5133274882688487605
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8924170145835402666}
+ m_Mesh: {fileID: -6265776187016570482, guid: 4c31b0c9eb3dcdf4890cd904bf277cdf, type: 3}
+--- !u!23 &6978882906433643647
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8924170145835402666}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 2e2c886f4af8e304eb9a1e2e50d023b3, 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: 2
+ 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!64 &894093325933845257
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8924170145835402666}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 5
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: -8512782951310809723, guid: 426a2785f8a940049aac2c246661cf09, type: 3}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Ramp_Prefab.prefab.meta b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Ramp_Prefab.prefab.meta
new file mode 100644
index 0000000000..14e8009f6b
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Ramp_Prefab.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7ab2ae375810b5641a36d327b9f022cf
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.physicMaterial b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.physicMaterial
new file mode 100644
index 0000000000..f76e8e1f5a
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.physicMaterial
@@ -0,0 +1,15 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!134 &13400000
+PhysicsMaterial:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: RotatingBody
+ serializedVersion: 2
+ m_DynamicFriction: 2.5
+ m_StaticFriction: 2
+ m_Bounciness: 0
+ m_FrictionCombine: 3
+ m_BounceCombine: 2
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.physicMaterial.meta b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.physicMaterial.meta
new file mode 100644
index 0000000000..4650ebf5b0
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.physicMaterial.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c16e8d98094923449892b28a230ddb9c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 13400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.prefab b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.prefab
new file mode 100644
index 0000000000..73c04c02fa
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.prefab
@@ -0,0 +1,1138 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &755183729697733696
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 522841341294848418}
+ - component: {fileID: 6376943934387906635}
+ - component: {fileID: 4793038284696412839}
+ m_Layer: 0
+ m_Name: WallPusherA_Inner
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &522841341294848418
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 755183729697733696}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 4.05, y: 2.27, z: 0}
+ m_LocalScale: {x: 4, y: 2, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4291553105548296809}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &6376943934387906635
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 755183729697733696}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 1
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.2, y: 2.25, z: 6}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &4793038284696412839
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 755183729697733696}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2c40721ca0fd31645a742e5ad0e0cdc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ PushDirection: 1
+ ToCenterDirOrig: {x: 0, y: 0, z: 0}
+ ToCenterDirCalc: {x: 0, y: 0, z: 0}
+ ToCenterDirTrans: {x: 0, y: 0, z: 0}
+--- !u!1 &1070469363212057228
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4967607898511807569}
+ - component: {fileID: 4081511419635538304}
+ - component: {fileID: 3264090684553753291}
+ - component: {fileID: 2074962368930179783}
+ - component: {fileID: 2659845886479429441}
+ - component: {fileID: 365707591732078506}
+ m_Layer: 0
+ m_Name: Tunnel_Prefab (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &4967607898511807569
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1070469363212057228}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 5, z: 0}
+ m_LocalScale: {x: 4, y: 2, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4291553105548296809}
+ m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+--- !u!33 &4081511419635538304
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1070469363212057228}
+ m_Mesh: {fileID: 5060444177187149915, guid: 63fcabcd345d556498e09f748683088e, type: 3}
+--- !u!23 &3264090684553753291
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1070469363212057228}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 2e2c886f4af8e304eb9a1e2e50d023b3, 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: 2
+ 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 &2074962368930179783
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1070469363212057228}
+ m_Material: {fileID: 13400000, guid: c16e8d98094923449892b28a230ddb9c, type: 2}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 2.502674, y: 6.0000024, z: 0.25225586}
+ m_Center: {x: 0, y: -5.4553292e-15, z: 2.3838842}
+--- !u!65 &2659845886479429441
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1070469363212057228}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.19382703, y: 6.0000024, z: 2.2399507}
+ m_Center: {x: -1.1314733, y: -1.7786642e-15, z: 1.1251621}
+--- !u!65 &365707591732078506
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1070469363212057228}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.16720939, y: 6.0000024, z: 2.256102}
+ m_Center: {x: 1.1123942, y: -1.893427e-15, z: 1.1332378}
+--- !u!1 &1227036625448805321
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6179387521291227856}
+ - component: {fileID: 6043205804484853104}
+ - component: {fileID: 7583159525709273484}
+ - component: {fileID: 8095289646395249164}
+ m_Layer: 0
+ m_Name: Ramp_PrefabA
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &6179387521291227856
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1227036625448805321}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.25, z: 7.993}
+ m_LocalScale: {x: 8, y: 0.5, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 3394725634534525932}
+ m_Father: {fileID: 4291553105548296809}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &6043205804484853104
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1227036625448805321}
+ m_Mesh: {fileID: -6265776187016570482, guid: 4c31b0c9eb3dcdf4890cd904bf277cdf, type: 3}
+--- !u!23 &7583159525709273484
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1227036625448805321}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 2e2c886f4af8e304eb9a1e2e50d023b3, 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: 2
+ 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!64 &8095289646395249164
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1227036625448805321}
+ m_Material: {fileID: 13400000, guid: c16e8d98094923449892b28a230ddb9c, type: 2}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 5
+ m_Convex: 1
+ m_CookingOptions: 30
+ m_Mesh: {fileID: -6265776187016570482, guid: 4c31b0c9eb3dcdf4890cd904bf277cdf, type: 3}
+--- !u!1 &1451894099667441545
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3394725634534525932}
+ - component: {fileID: 2385627259374300527}
+ m_Layer: 0
+ m_Name: BridgeGap
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3394725634534525932
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1451894099667441545}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: 1, z: -0.000000021855694, w: 0}
+ m_LocalPosition: {x: 0, y: 0.14, z: -1.0100002}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 6179387521291227856}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!136 &2385627259374300527
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1451894099667441545}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.1
+ m_Height: 1.15
+ m_Direction: 0
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &2406660182425334495
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1877966211327071347}
+ - component: {fileID: 3334163744623252575}
+ - component: {fileID: 5776191766534439988}
+ - component: {fileID: 6535282611511474253}
+ - component: {fileID: 8963258823839906869}
+ - component: {fileID: 7304575238635320140}
+ m_Layer: 0
+ m_Name: Tunnel_Prefab
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &1877966211327071347
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2406660182425334495}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 4.96, z: 0}
+ m_LocalScale: {x: 4, y: 2, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4291553105548296809}
+ m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
+--- !u!33 &3334163744623252575
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2406660182425334495}
+ m_Mesh: {fileID: 5060444177187149915, guid: 63fcabcd345d556498e09f748683088e, type: 3}
+--- !u!23 &5776191766534439988
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2406660182425334495}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 2e2c886f4af8e304eb9a1e2e50d023b3, 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: 2
+ 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 &6535282611511474253
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2406660182425334495}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 2.502674, y: 6.0000024, z: 0.258326}
+ m_Center: {x: 0, y: 5.4121983e-15, z: 2.3808491}
+--- !u!65 &8963258823839906869
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2406660182425334495}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.2527809, y: 6.0000024, z: 2.2399507}
+ m_Center: {x: -1.1249466, y: 1.7786642e-15, z: 1.1251621}
+--- !u!65 &7304575238635320140
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2406660182425334495}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.26525307, y: 6.0000024, z: 2.256102}
+ m_Center: {x: 1.1187105, y: 1.893427e-15, z: 1.1332378}
+--- !u!1 &2492174073242389836
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6182591213277846585}
+ - component: {fileID: 3395949877673187758}
+ m_Layer: 0
+ m_Name: BridgeGap (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6182591213277846585
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2492174073242389836}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -1, z: 0.000000021855694, w: 0}
+ m_LocalPosition: {x: 0, y: 0.14, z: -1.01}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 7826839884382864090}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!136 &3395949877673187758
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2492174073242389836}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.1
+ m_Height: 1.15
+ m_Direction: 0
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &3038314618705458857
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3570252208687936609}
+ - component: {fileID: 4156819582579138816}
+ - component: {fileID: 2806575150631930745}
+ m_Layer: 0
+ m_Name: WallPusherB_Inner
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &3570252208687936609
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3038314618705458857}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -4.07, y: 2.27, z: 0}
+ m_LocalScale: {x: 4, y: 2, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4291553105548296809}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &4156819582579138816
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3038314618705458857}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 1
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.2, y: 2.25, z: 6}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &2806575150631930745
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3038314618705458857}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2c40721ca0fd31645a742e5ad0e0cdc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ PushDirection: 0
+ ToCenterDirOrig: {x: 0, y: 0, z: 0}
+ ToCenterDirCalc: {x: 0, y: 0, z: 0}
+ ToCenterDirTrans: {x: 0, y: 0, z: 0}
+--- !u!1 &4405129256840456534
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5628673131512617452}
+ - component: {fileID: 1065561891622964567}
+ - component: {fileID: 4468158207537748033}
+ m_Layer: 0
+ m_Name: WallPusherA_Outer
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &5628673131512617452
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4405129256840456534}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 4.89, y: 2.27, z: 0}
+ m_LocalScale: {x: 4, y: 2, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4291553105548296809}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &1065561891622964567
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4405129256840456534}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 1
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.2, y: 2.25, z: 6}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &4468158207537748033
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4405129256840456534}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2c40721ca0fd31645a742e5ad0e0cdc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ PushDirection: 0
+ ToCenterDirOrig: {x: 0, y: 0, z: 0}
+ ToCenterDirCalc: {x: 0, y: 0, z: 0}
+ ToCenterDirTrans: {x: 0, y: 0, z: 0}
+--- !u!1 &5415449980466536476
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4291553105548296809}
+ - component: {fileID: 8134939553748259768}
+ - component: {fileID: 3307166493715739449}
+ - component: {fileID: 850162744905636139}
+ m_Layer: 0
+ m_Name: RotatingBody
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4291553105548296809
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5415449980466536476}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1877966211327071347}
+ - {fileID: 4967607898511807569}
+ - {fileID: 522841341294848418}
+ - {fileID: 5628673131512617452}
+ - {fileID: 3570252208687936609}
+ - {fileID: 5389614242607036533}
+ - {fileID: 6179387521291227856}
+ - {fileID: 7826839884382864090}
+ - {fileID: 2053800158975384476}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &8134939553748259768
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5415449980466536476}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 1
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 8.023605, y: 8.144613, z: 20.106205}
+ m_Center: {x: -0.03800702, y: 4.1726913, z: -0.02903366}
+--- !u!114 &3307166493715739449
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5415449980466536476}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ GlobalObjectIdHash: 1921503253
+ InScenePlacedSourceGlobalObjectIdHash: 0
+ DeferredDespawnTick: 0
+ Ownership: 2
+ AlwaysReplicateAsRoot: 0
+ SynchronizeTransform: 1
+ ActiveSceneSynchronization: 0
+ SceneMigrationSynchronization: 1
+ SpawnWithObservers: 1
+ DontDestroyWithOwner: 1
+ AutoObjectParentSync: 1
+ SyncOwnerTransformWhenParented: 1
+--- !u!114 &850162744905636139
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5415449980466536476}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 374ac199eb18f0f468bc018a722775c2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ AuthorityMode: 1
+ TickSyncChildren: 1
+ UseUnreliableDeltas: 0
+ SyncPositionX: 1
+ SyncPositionY: 1
+ SyncPositionZ: 1
+ SyncRotAngleX: 1
+ SyncRotAngleY: 1
+ SyncRotAngleZ: 1
+ SyncScaleX: 1
+ SyncScaleY: 1
+ SyncScaleZ: 1
+ PositionThreshold: 0.1
+ RotAngleThreshold: 0.01
+ ScaleThreshold: 0.1
+ UseQuaternionSynchronization: 1
+ UseQuaternionCompression: 0
+ UseHalfFloatPrecision: 0
+ InLocalSpace: 0
+ SwitchTransformSpaceWhenParented: 0
+ Interpolate: 1
+ SlerpPosition: 0
+ RotationSpeed: 0.25
+ RotateDirection: 0
+ ZAxisMove: 0
+--- !u!1 &5463907175177238004
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2053800158975384476}
+ - component: {fileID: 2688281628964240045}
+ m_Layer: 0
+ m_Name: Point Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2053800158975384476
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5463907175177238004}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 6.54, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4291553105548296809}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!108 &2688281628964240045
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5463907175177238004}
+ m_Enabled: 1
+ serializedVersion: 11
+ m_Type: 2
+ m_Color: {r: 0.9622642, g: 0.9622642, b: 0.9622642, a: 1}
+ m_Intensity: 2
+ m_Range: 20
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ 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_ForceVisible: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+ m_LightUnit: 1
+ m_LuxAtDistance: 1
+ m_EnableSpotReflector: 1
+--- !u!1 &6529740436184164063
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7826839884382864090}
+ - component: {fileID: 2797882924116045225}
+ - component: {fileID: 1097787484049525257}
+ - component: {fileID: 570708159460268413}
+ m_Layer: 0
+ m_Name: Ramp_PrefabB
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &7826839884382864090
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6529740436184164063}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
+ m_LocalPosition: {x: 0, y: 0.25, z: -7.993}
+ m_LocalScale: {x: 8, y: 0.5, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 6182591213277846585}
+ m_Father: {fileID: 4291553105548296809}
+ m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
+--- !u!33 &2797882924116045225
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6529740436184164063}
+ m_Mesh: {fileID: -6265776187016570482, guid: 4c31b0c9eb3dcdf4890cd904bf277cdf, type: 3}
+--- !u!23 &1097787484049525257
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6529740436184164063}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 2e2c886f4af8e304eb9a1e2e50d023b3, 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: 2
+ 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!64 &570708159460268413
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6529740436184164063}
+ m_Material: {fileID: 13400000, guid: c16e8d98094923449892b28a230ddb9c, type: 2}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 5
+ m_Convex: 1
+ m_CookingOptions: 30
+ m_Mesh: {fileID: -6265776187016570482, guid: 4c31b0c9eb3dcdf4890cd904bf277cdf, type: 3}
+--- !u!1 &8002386465640125644
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5389614242607036533}
+ - component: {fileID: 4101224782146625552}
+ - component: {fileID: 6895917012766152111}
+ m_Layer: 0
+ m_Name: WallPusherB_Outer
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &5389614242607036533
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8002386465640125644}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -4.83, y: 2.27, z: 0}
+ m_LocalScale: {x: 4, y: 2, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4291553105548296809}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &4101224782146625552
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8002386465640125644}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 1
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.2, y: 2.25, z: 6}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &6895917012766152111
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8002386465640125644}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2c40721ca0fd31645a742e5ad0e0cdc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ PushDirection: 1
+ ToCenterDirOrig: {x: 0, y: 0, z: 0}
+ ToCenterDirCalc: {x: 0, y: 0, z: 0}
+ ToCenterDirTrans: {x: 0, y: 0, z: 0}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.prefab.meta b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.prefab.meta
new file mode 100644
index 0000000000..d22d47036e
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/RotatingBody.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0123d7125346c274da00b38e950a266b
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/SceneLevelGeometry.prefab b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/SceneLevelGeometry.prefab
new file mode 100644
index 0000000000..f636c60a54
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/SceneLevelGeometry.prefab
@@ -0,0 +1,794 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &910007655143077103
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6283120762215196916}
+ - component: {fileID: 3739510624437302406}
+ m_Layer: 0
+ m_Name: CornerBumper (1)
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6283120762215196916
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910007655143077103}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0.9244967, z: -0, w: -0.38119}
+ m_LocalPosition: {x: -29.72, y: 0.98, z: 29.82}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4012615692778511849}
+ m_LocalEulerAnglesHint: {x: 0, y: -224.815, z: 0}
+--- !u!65 &3739510624437302406
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 910007655143077103}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 4, y: 2, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &1854705290947220173
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2290144462706082272}
+ - component: {fileID: 4559046433245738380}
+ m_Layer: 0
+ m_Name: CornerBumper (2)
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2290144462706082272
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1854705290947220173}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0.3771283, z: -0, w: -0.92616105}
+ m_LocalPosition: {x: -29.53, y: 0.98, z: -29.71}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4012615692778511849}
+ m_LocalEulerAnglesHint: {x: 0, y: -315.688, z: 0}
+--- !u!65 &4559046433245738380
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1854705290947220173}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 4, y: 2, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &4012615691354089848
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4012615691354089844}
+ - component: {fileID: 4012615691354089845}
+ - component: {fileID: 4012615691354089850}
+ - component: {fileID: 4012615691354089851}
+ m_Layer: 0
+ m_Name: Floor
+ m_TagString: Floor
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4012615691354089844
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691354089848}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.50000006, z: 0}
+ m_LocalScale: {x: 60, y: 1, z: 60}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4012615692778511849}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4012615691354089845
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691354089848}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4012615691354089850
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691354089848}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 42c4a0ad1f9d67a45b12f68697321aad, 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!65 &4012615691354089851
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691354089848}
+ m_Material: {fileID: 13400000, guid: 2c574f6ade946d94f9ec0183e3bc4579, type: 2}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &4012615691503252843
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4012615691503252839}
+ - component: {fileID: 4012615691503252836}
+ - component: {fileID: 4012615691503252837}
+ - component: {fileID: 4012615691503252842}
+ m_Layer: 0
+ m_Name: Side
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4012615691503252839
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691503252843}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -30.5, y: 0.49999994, z: 0}
+ m_LocalScale: {x: 1, y: 3, z: 62}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4012615692778511849}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4012615691503252836
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691503252843}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4012615691503252837
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691503252843}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9c73b921ea39f4344a19c2d1c7d6b314, 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!65 &4012615691503252842
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691503252843}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 2, y: 1, z: 1}
+ m_Center: {x: -0.5, y: 0, z: 0}
+--- !u!1 &4012615691965054905
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4012615691965054901}
+ - component: {fileID: 4012615691965054906}
+ - component: {fileID: 4012615691965054907}
+ - component: {fileID: 4012615691965054904}
+ m_Layer: 0
+ m_Name: Side
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4012615691965054901
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691965054905}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.49999994, z: 30.5}
+ m_LocalScale: {x: 60, y: 3, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4012615692778511849}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4012615691965054906
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691965054905}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4012615691965054907
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691965054905}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9c73b921ea39f4344a19c2d1c7d6b314, 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!65 &4012615691965054904
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615691965054905}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 2}
+ m_Center: {x: 0, y: 0, z: 0.5}
+--- !u!1 &4012615692269653858
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4012615692269653854}
+ - component: {fileID: 4012615692269653855}
+ - component: {fileID: 4012615692269653852}
+ - component: {fileID: 4012615692269653853}
+ m_Layer: 0
+ m_Name: Side
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4012615692269653854
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615692269653858}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.49999994, z: -30.5}
+ m_LocalScale: {x: 60, y: 3, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4012615692778511849}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4012615692269653855
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615692269653858}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4012615692269653852
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615692269653858}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9c73b921ea39f4344a19c2d1c7d6b314, 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!65 &4012615692269653853
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615692269653858}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 2}
+ m_Center: {x: 0, y: 0, z: -0.5}
+--- !u!1 &4012615692778511854
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4012615692778511849}
+ m_Layer: 0
+ m_Name: SceneLevelGeometry
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4012615692778511849
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615692778511854}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.000000059604645, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 4012615691354089844}
+ - {fileID: 4012615691965054901}
+ - {fileID: 4012615692269653854}
+ - {fileID: 4012615691503252839}
+ - {fileID: 4012615692791378778}
+ - {fileID: 3910294717376836327}
+ - {fileID: 6283120762215196916}
+ - {fileID: 2290144462706082272}
+ - {fileID: 6959258897999621209}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &4012615692791378782
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4012615692791378778}
+ - component: {fileID: 4012615692791378779}
+ - component: {fileID: 4012615692791378776}
+ - component: {fileID: 4012615692791378777}
+ m_Layer: 0
+ m_Name: Side
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4012615692791378778
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615692791378782}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 30.5, y: 0.49999994, z: 0}
+ m_LocalScale: {x: 1, y: 3, z: 62}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4012615692778511849}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4012615692791378779
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615692791378782}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4012615692791378776
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615692791378782}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9c73b921ea39f4344a19c2d1c7d6b314, 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!65 &4012615692791378777
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4012615692791378782}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 2, y: 1, z: 1}
+ m_Center: {x: 0.5, y: 0, z: 0}
+--- !u!1 &4674276234353933548
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3910294717376836327}
+ - component: {fileID: 3136259738973340924}
+ m_Layer: 0
+ m_Name: CornerBumper
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3910294717376836327
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4674276234353933548}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: -0.38268343, z: 0, w: 0.92387956}
+ m_LocalPosition: {x: 29.7, y: 0.98, z: -29.61}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4012615692778511849}
+ m_LocalEulerAnglesHint: {x: 0, y: -45, z: 0}
+--- !u!65 &3136259738973340924
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4674276234353933548}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 4, y: 2, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &7080625901286762351
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6959258897999621209}
+ - component: {fileID: 7672408768716900064}
+ m_Layer: 0
+ m_Name: CornerBumper (3)
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6959258897999621209
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7080625901286762351}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: 0.93588465, z: -0, w: -0.35230666}
+ m_LocalPosition: {x: 29.26, y: 0.98, z: 29.45}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4012615692778511849}
+ m_LocalEulerAnglesHint: {x: 0, y: -498.74298, z: 0}
+--- !u!65 &7672408768716900064
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7080625901286762351}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 4, y: 2, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/SceneLevelGeometry.prefab.meta b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/SceneLevelGeometry.prefab.meta
new file mode 100644
index 0000000000..154fd718e7
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/SceneLevelGeometry.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3ec484313a7a6754dac871e620df8db2
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Tunnel_Prefab.prefab b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Tunnel_Prefab.prefab
new file mode 100644
index 0000000000..c596d7333d
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Tunnel_Prefab.prefab
@@ -0,0 +1,154 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1604908963751126680
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2093637950428003362}
+ - component: {fileID: 3071950872142852999}
+ - component: {fileID: 956227959320364877}
+ - component: {fileID: 4985949235297978144}
+ - component: {fileID: 8456313914433245678}
+ - component: {fileID: 1138964657491743937}
+ m_Layer: 0
+ m_Name: Tunnel_Prefab
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &2093637950428003362
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1604908963751126680}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: -90.00001, y: 0, z: 0}
+--- !u!33 &3071950872142852999
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1604908963751126680}
+ m_Mesh: {fileID: 5060444177187149915, guid: 63fcabcd345d556498e09f748683088e, type: 3}
+--- !u!23 &956227959320364877
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1604908963751126680}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 2e2c886f4af8e304eb9a1e2e50d023b3, 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: 2
+ 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 &4985949235297978144
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1604908963751126680}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 2.502674, y: 6.0000024, z: 0.258326}
+ m_Center: {x: 0, y: 5.4121983e-15, z: 2.3808491}
+--- !u!65 &8456313914433245678
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1604908963751126680}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.2527809, y: 6.0000024, z: 2.2399507}
+ m_Center: {x: -1.1249466, y: 1.7786642e-15, z: 1.1251621}
+--- !u!65 &1138964657491743937
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1604908963751126680}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.26525307, y: 6.0000024, z: 2.256102}
+ m_Center: {x: 1.1187105, y: 1.893427e-15, z: 1.1332378}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Tunnel_Prefab.prefab.meta b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Tunnel_Prefab.prefab.meta
new file mode 100644
index 0000000000..58def4a902
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Tunnel_Prefab.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4b50ff3d475fc3f4fa77ac6aa6e679f2
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Wall_Prefab.prefab b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Wall_Prefab.prefab
new file mode 100644
index 0000000000..f8dde4effc
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Wall_Prefab.prefab
@@ -0,0 +1,132 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &7993119983977949264
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7324705577624711914}
+ - component: {fileID: 5911343394670230863}
+ - component: {fileID: 8497650616581704069}
+ - component: {fileID: 9105854698657379725}
+ - component: {fileID: 1277700310800588604}
+ m_Layer: 0
+ m_Name: Wall_Prefab
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 73
+ m_IsActive: 1
+--- !u!4 &7324705577624711914
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7993119983977949264}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.000000021855694, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5911343394670230863
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7993119983977949264}
+ m_Mesh: {fileID: 6352809919239313146, guid: 34560503bf9d61046b252db98a8cf770, type: 3}
+--- !u!23 &8497650616581704069
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7993119983977949264}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 2e2c886f4af8e304eb9a1e2e50d023b3, 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: 2
+ 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 &9105854698657379725
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7993119983977949264}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.25, y: 1.0095696, z: 2.9958286}
+ m_Center: {x: 0, y: 0.5047848, z: 1.5020857}
+--- !u!65 &1277700310800588604
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7993119983977949264}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.25, y: 2.0055175, z: 3.000146}
+ m_Center: {x: 0, y: 1.0027587, z: -1.499927}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Wall_Prefab.prefab.meta b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Wall_Prefab.prefab.meta
new file mode 100644
index 0000000000..42ef5284f2
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Prefabs/Wall_Prefab.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3b9516be83427084ca3fffca42e7b6da
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Resources.meta b/Examples/CharacterControllerMovingBodies/Assets/Resources.meta
new file mode 100644
index 0000000000..edebf21a13
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Resources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6a51a9fbd254e544eb3e85853865f80d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Resources/BillingMode.json b/Examples/CharacterControllerMovingBodies/Assets/Resources/BillingMode.json
new file mode 100644
index 0000000000..6f4bfb7103
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Resources/BillingMode.json
@@ -0,0 +1 @@
+{"androidStore":"GooglePlay"}
\ No newline at end of file
diff --git a/com.unity.netcode.gameobjects/ValidationExceptions.json.meta b/Examples/CharacterControllerMovingBodies/Assets/Resources/BillingMode.json.meta
similarity index 75%
rename from com.unity.netcode.gameobjects/ValidationExceptions.json.meta
rename to Examples/CharacterControllerMovingBodies/Assets/Resources/BillingMode.json.meta
index 3316cf20bd..557e7d707c 100644
--- a/com.unity.netcode.gameobjects/ValidationExceptions.json.meta
+++ b/Examples/CharacterControllerMovingBodies/Assets/Resources/BillingMode.json.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 2a43005be301c9043aab7034757d4868
+guid: a1890189503409a4bb24dd4f0eab1f0a
TextScriptImporter:
externalObjects: {}
userData:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scenes.meta b/Examples/CharacterControllerMovingBodies/Assets/Scenes.meta
new file mode 100644
index 0000000000..b398c5b4ab
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9bb955f9d9ef9c34d897f353c8643a1d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scenes/Camera.preset b/Examples/CharacterControllerMovingBodies/Assets/Scenes/Camera.preset
new file mode 100644
index 0000000000..b8bbae0a72
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scenes/Camera.preset
@@ -0,0 +1,195 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!181963792 &2655988077585873504
+Preset:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Camera
+ m_TargetType:
+ m_NativeTypeID: 20
+ m_ManagedTypePPtr: {fileID: 0}
+ m_ManagedTypeFallback:
+ m_Properties:
+ - target: {fileID: 0}
+ propertyPath: m_Enabled
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_ClearFlags
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_BackGroundColor.r
+ value: 0.066037714
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_BackGroundColor.g
+ value: 0.066037714
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_BackGroundColor.b
+ value: 0.066037714
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_BackGroundColor.a
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_projectionMatrixMode
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_GateFitMode
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_FOVAxisMode
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_Iso
+ value: 200
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_ShutterSpeed
+ value: 0.005
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_Aperture
+ value: 16
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_FocusDistance
+ value: 10
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_FocalLength
+ value: 50
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_BladeCount
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_Curvature.x
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_Curvature.y
+ value: 11
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_BarrelClipping
+ value: 0.25
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_Anamorphism
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_SensorSize.x
+ value: 36
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_SensorSize.y
+ value: 24
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_LensShift.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_LensShift.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_NormalizedViewPortRect.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_NormalizedViewPortRect.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_NormalizedViewPortRect.width
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_NormalizedViewPortRect.height
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: near clip plane
+ value: 0.3
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: far clip plane
+ value: 1000
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: field of view
+ value: 60
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: orthographic
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: orthographic size
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_Depth
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_CullingMask.m_Bits
+ value: 4294967295
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_RenderingPath
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_TargetTexture
+ value:
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_TargetDisplay
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_TargetEye
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_HDR
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_AllowMSAA
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_AllowDynamicResolution
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_ForceIntoRT
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_OcclusionCulling
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_StereoConvergence
+ value: 10
+ objectReference: {fileID: 0}
+ - target: {fileID: 0}
+ propertyPath: m_StereoSeparation
+ value: 0.022
+ objectReference: {fileID: 0}
+ m_ExcludedProperties: []
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scenes/Camera.preset.meta b/Examples/CharacterControllerMovingBodies/Assets/Scenes/Camera.preset.meta
new file mode 100644
index 0000000000..3e327ecf36
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scenes/Camera.preset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1807b530602915743868e6c3bdc1a93c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2655988077585873504
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scenes/CharacterController.unity b/Examples/CharacterControllerMovingBodies/Assets/Scenes/CharacterController.unity
new file mode 100644
index 0000000000..cca8cabbeb
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scenes/CharacterController.unity
@@ -0,0 +1,1434 @@
+%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: 10
+ 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_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ 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_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: 3
+ 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
+ buildHeightMesh: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &28232985
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 28232986}
+ - component: {fileID: 28232988}
+ - component: {fileID: 28232987}
+ - component: {fileID: 28232989}
+ - component: {fileID: 28232990}
+ m_Layer: 5
+ m_Name: ServerHostClientDisplay
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &28232986
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 28232985}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 479361665}
+ 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: 40}
+ m_SizeDelta: {x: 180, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &28232987
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 28232985}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 23
+ m_FontStyle: 1
+ m_BestFit: 1
+ m_MinSize: 1
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!222 &28232988
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 28232985}
+ m_CullTransparentMesh: 1
+--- !u!114 &28232989
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 28232985}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ GlobalObjectIdHash: 536662705
+ InScenePlacedSourceGlobalObjectIdHash: 0
+ DeferredDespawnTick: 0
+ Ownership: 1
+ AlwaysReplicateAsRoot: 0
+ SynchronizeTransform: 1
+ ActiveSceneSynchronization: 0
+ SceneMigrationSynchronization: 1
+ SpawnWithObservers: 1
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+ SyncOwnerTransformWhenParented: 1
+ AllowOwnerToParent: 0
+--- !u!114 &28232990
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 28232985}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6637cd674efb56a48a3d4d545d23a8d3, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ ShowTopMostFoldoutHeaderGroup: 1
+--- !u!1001 &45185844
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: RotationSpeed
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: OnExitTransferParentOnStay
+ value:
+ objectReference: {fileID: 621748559}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: DontDeparentIfParentedByOtherBody
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 3246499739
+ objectReference: {fileID: 0}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 1084435762
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -60
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: -0.34
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -49.1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5415449980466536476, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Name
+ value: StationaryBody-B
+ objectReference: {fileID: 0}
+ - target: {fileID: 8134939553748259768, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Size.z
+ value: 19.891119
+ objectReference: {fileID: 0}
+ - target: {fileID: 8134939553748259768, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Center.x
+ value: -0.038006783
+ objectReference: {fileID: 0}
+ - target: {fileID: 8134939553748259768, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Center.z
+ value: -0.13657665
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+--- !u!1001 &66674670
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: RotationSpeed
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: OnExitTransferParentOnStay
+ value:
+ objectReference: {fileID: 520394643}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: DontDeparentIfParentedByOtherBody
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 4013775021
+ objectReference: {fileID: 0}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 1084435762
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -60
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: -0.34
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -33.32
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5415449980466536476, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Name
+ value: StationaryBody-A
+ objectReference: {fileID: 0}
+ - target: {fileID: 8134939553748259768, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Size.z
+ value: 19.906477
+ objectReference: {fileID: 0}
+ - target: {fileID: 8134939553748259768, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Center.x
+ value: -0.038006783
+ objectReference: {fileID: 0}
+ - target: {fileID: 8134939553748259768, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Center.z
+ value: 0.070830345
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+--- !u!1 &455857869
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 455857870}
+ - component: {fileID: 455857875}
+ - component: {fileID: 455857871}
+ m_Layer: 0
+ m_Name: ExtendedNetworkManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &455857870
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 455857869}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &455857871
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 455857869}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6960e84d07fb87f47956e7a81d71c4e6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ProtocolType: 0
+ m_UseWebSockets: 0
+ m_UseEncryption: 0
+ m_MaxPacketQueueSize: 128
+ m_MaxPayloadSize: 6144
+ m_HeartbeatTimeoutMS: 500
+ m_ConnectTimeoutMS: 1000
+ m_MaxConnectAttempts: 60
+ m_DisconnectTimeoutMS: 30000
+ ConnectionData:
+ Address: 127.0.0.1
+ Port: 7777
+ ServerListenAddress: 127.0.0.1
+ DebugSimulator:
+ PacketDelayMS: 0
+ PacketJitterMS: 0
+ PacketDropRate: 0
+--- !u!114 &455857875
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 455857869}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e4d8d44c602b97b47ba488a40c66267c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ NetworkManagerExpanded: 0
+ NetworkConfig:
+ ProtocolVersion: 0
+ NetworkTransport: {fileID: 455857871}
+ PlayerPrefab: {fileID: 8921789205124766477, guid: 8ae02ac62e2067144b8ff06d48aeb47a, type: 3}
+ Prefabs:
+ NetworkPrefabsLists:
+ - {fileID: 11400000, guid: aa82390bfdde2564f828b8e5be375282, type: 2}
+ 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: 10
+ EnableNetworkLogs: 1
+ NetworkTopology: 0
+ UseCMBService: 0
+ AutoSpawnPlayerPrefabClientSide: 1
+ NetworkProfilingMetrics: 1
+ OldPrefabList: []
+ RunInBackground: 1
+ LogLevel: 1
+ ExtendedNetworkManagerExpanded: 1
+ ConnectionType: 1
+ TargetFrameRate: 100
+ EnableVSync: 0
+ m_OriginalVSyncCount: 1
+--- !u!1 &479361661
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 479361665}
+ - component: {fileID: 479361664}
+ - component: {fileID: 479361663}
+ - component: {fileID: 479361662}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &479361662
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 479361661}
+ 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 &479361663
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 479361661}
+ 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: 1
+ m_PresetInfoIsWorld: 0
+--- !u!223 &479361664
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 479361661}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_UpdateRectTransformForStandalone: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &479361665
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 479361661}
+ 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_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 28232986}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
+--- !u!114 &520394643 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ m_PrefabInstance: {fileID: 45185844}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 374ac199eb18f0f468bc018a722775c2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1 &537610708
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 537610709}
+ m_Layer: 0
+ m_Name: PointA
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &537610709
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 537610708}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 10.9, y: -0.34, z: 70}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &621748559 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ m_PrefabInstance: {fileID: 66674670}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 374ac199eb18f0f468bc018a722775c2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !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: 11
+ m_Type: 1
+ 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_ForceVisible: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+ m_LightUnit: 1
+ m_LuxAtDistance: 1
+ m_EnableSpotReflector: 1
+--- !u!4 &705507995
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 705507993}
+ serializedVersion: 2
+ 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_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1001 &748186899
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: -0.25
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511849, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4012615692778511854, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+ propertyPath: m_Name
+ value: SceneLevelGeometry
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 3ec484313a7a6754dac871e620df8db2, type: 3}
+--- !u!1001 &857399335
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: RotationSpeed
+ value: 0.25
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: RotateDirection
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 1449196534
+ objectReference: {fileID: 0}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 1084435762
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -60.7
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: -0.34
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 56.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5415449980466536476, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Name
+ value: RotatingBody
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+--- !u!1 &946793187
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 946793188}
+ m_Layer: 0
+ m_Name: PointE
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &946793188
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 946793187}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 60.5, y: -0.34, z: 70}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &963194225
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 963194228}
+ - component: {fileID: 963194227}
+ - component: {fileID: 963194226}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &963194226
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ m_Enabled: 1
+--- !u!20 &963194227
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.066037714, g: 0.066037714, b: 0.066037714, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &963194228
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.15212336, y: 0, z: 0, w: 0.98836154}
+ m_LocalPosition: {x: 0, y: 4.5, z: -5.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 17.5, y: 0, z: 0}
+--- !u!1 &1049334975
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1049334976}
+ m_Layer: 0
+ m_Name: PointF
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1049334976
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1049334975}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 60.5, y: -0.34, z: -68.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1055951929
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1055951930}
+ m_Layer: 0
+ m_Name: PointD
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1055951930
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1055951929}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 10.9, y: -0.34, z: -70}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1184702125
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1184702128}
+ - component: {fileID: 1184702127}
+ - component: {fileID: 1184702126}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1184702126
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1184702125}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_SendPointerHoverToParent: 1
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &1184702127
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1184702125}
+ 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 &1184702128
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1184702125}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1281267714
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1281267715}
+ m_Layer: 0
+ m_Name: PointB
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1281267715
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1281267714}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 10.9, y: 40.6, z: 70}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1591298748
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: ZAxisMove
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: RotationSpeed
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: PathMovement.Array.size
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: 'PathMovement.Array.data[0]'
+ value:
+ objectReference: {fileID: 537610708}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: 'PathMovement.Array.data[1]'
+ value:
+ objectReference: {fileID: 1281267714}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: 'PathMovement.Array.data[2]'
+ value:
+ objectReference: {fileID: 1727671589}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: 'PathMovement.Array.data[3]'
+ value:
+ objectReference: {fileID: 1055951929}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 4258258070
+ objectReference: {fileID: 0}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 1084435762
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 10.9
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: -0.34
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 70
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5415449980466536476, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Name
+ value: 'ElevatorBody '
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+--- !u!1 &1727671589
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1727671590}
+ m_Layer: 0
+ m_Name: PointC
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1727671590
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1727671589}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 10.9, y: 40.6, z: -70}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1968567121
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: ZAxisMove
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: RotationSpeed
+ value: 0.3
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: PathMovement.Array.size
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: RotatingBodyLogicExpanded
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: 'PathMovement.Array.data[0]'
+ value:
+ objectReference: {fileID: 946793187}
+ - target: {fileID: 850162744905636139, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: 'PathMovement.Array.data[1]'
+ value:
+ objectReference: {fileID: 1049334975}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 1259759422
+ objectReference: {fileID: 0}
+ - target: {fileID: 3307166493715739449, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 1084435762
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 60
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: -0.34
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 70
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4291553105548296809, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5415449980466536476, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+ propertyPath: m_Name
+ value: MovingRotatingBody
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 0123d7125346c274da00b38e950a266b, type: 3}
+--- !u!1660057539 &9223372036854775807
+SceneRoots:
+ m_ObjectHideFlags: 0
+ m_Roots:
+ - {fileID: 963194228}
+ - {fileID: 705507995}
+ - {fileID: 455857870}
+ - {fileID: 479361665}
+ - {fileID: 1184702128}
+ - {fileID: 748186899}
+ - {fileID: 857399335}
+ - {fileID: 66674670}
+ - {fileID: 45185844}
+ - {fileID: 1968567121}
+ - {fileID: 1591298748}
+ - {fileID: 537610709}
+ - {fileID: 1281267715}
+ - {fileID: 1727671590}
+ - {fileID: 1055951930}
+ - {fileID: 946793188}
+ - {fileID: 1049334976}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scenes/CharacterController.unity.meta b/Examples/CharacterControllerMovingBodies/Assets/Scenes/CharacterController.unity.meta
new file mode 100644
index 0000000000..952bd1e9e1
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scenes/CharacterController.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 9fc0d4010bbf28b4594072e72b8655ab
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scenes/SampleScenePrefabs.asset b/Examples/CharacterControllerMovingBodies/Assets/Scenes/SampleScenePrefabs.asset
new file mode 100644
index 0000000000..26e47a6487
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scenes/SampleScenePrefabs.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: e651dbb3fbac04af2b8f5abf007ddc23, type: 3}
+ m_Name: SampleScenePrefabs
+ m_EditorClassIdentifier:
+ IsDefault: 0
+ List: []
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scenes/SampleScenePrefabs.asset.meta b/Examples/CharacterControllerMovingBodies/Assets/Scenes/SampleScenePrefabs.asset.meta
new file mode 100644
index 0000000000..402e4425d7
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scenes/SampleScenePrefabs.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3d25a2b1f6c12ee47bf7601c2edd7e70
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts.meta b/Examples/CharacterControllerMovingBodies/Assets/Scripts.meta
new file mode 100644
index 0000000000..528b6db2ae
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8f0135d923712c4438b2facb3ce21fb6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/ExtendedNetworkManager.cs b/Examples/CharacterControllerMovingBodies/Assets/Scripts/ExtendedNetworkManager.cs
new file mode 100644
index 0000000000..2c291bbe89
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/ExtendedNetworkManager.cs
@@ -0,0 +1,427 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Unity.Netcode;
+using Unity.Services.Authentication;
+using Unity.Services.Core;
+using Unity.Services.Multiplayer;
+using UnityEngine;
+using SessionState = Unity.Services.Multiplayer.SessionState;
+
+#if UNITY_EDITOR
+using Unity.Netcode.Editor;
+using UnityEditor;
+
+///
+/// The custom editor for the component.
+///
+[CustomEditor(typeof(ExtendedNetworkManager), true)]
+[CanEditMultipleObjects]
+public class ExtendedNetworkManagerEditor : NetworkManagerEditor
+{
+ private SerializedProperty m_ConnectionType;
+ private SerializedProperty m_TargetFrameRate;
+ private SerializedProperty m_EnableVSync;
+
+ public override void OnEnable()
+ {
+ m_ConnectionType = serializedObject.FindProperty(nameof(ExtendedNetworkManager.ConnectionType));
+ m_TargetFrameRate = serializedObject.FindProperty(nameof(ExtendedNetworkManager.TargetFrameRate));
+ m_EnableVSync = serializedObject.FindProperty(nameof(ExtendedNetworkManager.EnableVSync));
+ base.OnEnable();
+ }
+
+ private void DisplayExtendedNetworkManagerProperties()
+ {
+ EditorGUILayout.PropertyField(m_ConnectionType);
+ EditorGUILayout.PropertyField(m_TargetFrameRate);
+ EditorGUILayout.PropertyField(m_EnableVSync);
+ }
+
+ public override void OnInspectorGUI()
+ {
+ var extendedNetworkManager = target as ExtendedNetworkManager;
+ // Handle switching the appropriate connection type based on the network topology
+ // Host connectio type can be set for client-server and distributed authority
+ // Live Service can only be used with distributed authority
+ // Client-server can only be used with a host connection type
+ var connectionTypes = Enum.GetValues(typeof(ExtendedNetworkManager.ConnectionTypes));
+ var connectionType = ExtendedNetworkManager.ConnectionTypes.LiveService;
+ if (m_ConnectionType.enumValueIndex > 0 && m_ConnectionType.enumValueIndex < connectionTypes.Length)
+ {
+ connectionType = (ExtendedNetworkManager.ConnectionTypes)connectionTypes.GetValue(m_ConnectionType.enumValueIndex);
+ }
+ void SetExpanded(bool expanded) { extendedNetworkManager.ExtendedNetworkManagerExpanded = expanded; };
+ DrawFoldOutGroup(extendedNetworkManager.GetType(), DisplayExtendedNetworkManagerProperties, extendedNetworkManager.ExtendedNetworkManagerExpanded, SetExpanded);
+
+ var updatedConnectedType = (ExtendedNetworkManager.ConnectionTypes)connectionTypes.GetValue(m_ConnectionType.enumValueIndex);
+ if (connectionType == updatedConnectedType && updatedConnectedType == ExtendedNetworkManager.ConnectionTypes.LiveService && extendedNetworkManager.NetworkConfig.NetworkTopology == NetworkTopologyTypes.ClientServer)
+ {
+ extendedNetworkManager.ConnectionType = ExtendedNetworkManager.ConnectionTypes.Host;
+ }
+ else if (connectionType == ExtendedNetworkManager.ConnectionTypes.Host && updatedConnectedType == ExtendedNetworkManager.ConnectionTypes.LiveService && extendedNetworkManager.NetworkConfig.NetworkTopology == NetworkTopologyTypes.ClientServer)
+ {
+ extendedNetworkManager.NetworkConfig.NetworkTopology = NetworkTopologyTypes.DistributedAuthority;
+ }
+ base.OnInspectorGUI();
+ }
+}
+#endif
+
+
+
+public class ExtendedNetworkManager : NetworkManager
+{
+#if UNITY_EDITOR
+ // Inspector view expand/collapse settings for this derived child class
+ [HideInInspector]
+ public bool ExtendedNetworkManagerExpanded;
+#endif
+
+ public static ExtendedNetworkManager Instance;
+
+ public enum ConnectionTypes
+ {
+ LiveService,
+ Host,
+ }
+ public ConnectionTypes ConnectionType;
+
+ public int TargetFrameRate = 100;
+ public bool EnableVSync = false;
+
+ [HideInInspector]
+ [SerializeField]
+ private int m_OriginalVSyncCount;
+
+#if UNITY_EDITOR
+
+ protected override void OnValidateComponent()
+ {
+ m_OriginalVSyncCount = QualitySettings.vSyncCount;
+ base.OnValidateComponent();
+ }
+#endif
+
+ private ISession m_CurrentSession;
+
+ private string m_SessionName;
+ private string m_ProfileName;
+ private Task m_SessionTask;
+
+ private enum ConnectionStates
+ {
+ None,
+ Connecting,
+ Connected,
+ }
+
+ private ConnectionStates m_ConnectionState;
+
+ public static string GetRandomString(int length)
+ {
+ var r = new System.Random();
+ return new string(Enumerable.Range(0, length).Select(_ => (char)r.Next('a', 'z')).ToArray());
+ }
+
+ public void SetFrameRate(int targetFrameRate, bool enableVsync)
+ {
+ Application.targetFrameRate = targetFrameRate;
+ QualitySettings.vSyncCount = enableVsync ? m_OriginalVSyncCount : 0;
+ }
+
+ private void Awake()
+ {
+ Screen.SetResolution((int)(Screen.currentResolution.width * 0.40f), (int)(Screen.currentResolution.height * 0.40f), FullScreenMode.Windowed);
+ SetFrameRate(TargetFrameRate, EnableVSync);
+ SetSingleton();
+ }
+
+ private async void Start()
+ {
+ OnClientConnectedCallback += OnClientConnected;
+ OnClientDisconnectCallback += OnClientDisconnect;
+ OnConnectionEvent += OnClientConnectionEvent;
+ if (UnityServices.Instance != null && UnityServices.Instance.State != ServicesInitializationState.Initialized)
+ {
+ await UnityServices.InitializeAsync();
+ }
+ if (!AuthenticationService.Instance.IsSignedIn)
+ {
+ AuthenticationService.Instance.SignInFailed += SignInFailed;
+ AuthenticationService.Instance.SignedIn += SignedIn;
+ if (string.IsNullOrEmpty(m_ProfileName))
+ {
+ m_ProfileName = GetRandomString(5);
+ }
+ AuthenticationService.Instance.SwitchProfile(m_ProfileName);
+ await AuthenticationService.Instance.SignInAnonymouslyAsync();
+ }
+ }
+
+ private void OnDestroy()
+ {
+ OnClientConnectedCallback -= OnClientConnected;
+ OnClientDisconnectCallback -= OnClientDisconnect;
+ OnConnectionEvent -= OnClientConnectionEvent;
+ }
+
+ private void SignedIn()
+ {
+ AuthenticationService.Instance.SignedIn -= SignedIn;
+ Debug.Log($"Signed in anonymously with profile {m_ProfileName}");
+ }
+
+ private void SignInFailed(RequestFailedException error)
+ {
+ AuthenticationService.Instance.SignInFailed -= SignInFailed;
+ Debug.LogError($"Failed to sign in {m_ProfileName} anonymously: {error}");
+ }
+
+ private void OnDrawLiveServiceGUI()
+ {
+ m_SessionName = GUILayout.TextField(m_SessionName);
+
+ if (GUILayout.Button("Create or Connect To Session"))
+ {
+ NetworkConfig.UseCMBService = true;
+ OnClientStopped += ClientStopped;
+ OnClientStarted += ClientStarted;
+ m_SessionTask = ConnectThroughLiveService();
+ m_ConnectionState = ConnectionStates.Connecting;
+ LogMessage($"Connecting to session {m_SessionName}...");
+ }
+ }
+
+ private void OnDrawDAHostGUI()
+ {
+ if (GUILayout.Button("Start Host"))
+ {
+ OnClientStopped += ClientStopped;
+ OnClientStarted += ClientStarted;
+ StartHost();
+ }
+
+ if (GUILayout.Button("Start Client"))
+ {
+ OnClientStopped += ClientStopped;
+ OnClientStarted += ClientStarted;
+ StartClient();
+ }
+ }
+
+ private void OnUpdateGUIDisconnected()
+ {
+ GUILayout.BeginArea(new Rect(10, 10, 300, 800));
+
+ GUILayout.Label("Session Name", GUILayout.Width(100));
+
+ var connectionType = ConnectionType;
+ if (NetworkConfig.NetworkTopology == NetworkTopologyTypes.ClientServer && connectionType != ConnectionTypes.Host)
+ {
+ connectionType = ConnectionTypes.Host;
+ }
+
+ switch (connectionType)
+ {
+ case ConnectionTypes.LiveService:
+ {
+ OnDrawLiveServiceGUI();
+ break;
+ }
+ case ConnectionTypes.Host:
+ {
+ OnDrawDAHostGUI();
+ break;
+ }
+ }
+
+ GUILayout.EndArea();
+
+ GUILayout.BeginArea(new Rect(10, Display.main.renderingHeight - 40, Display.main.renderingWidth - 10, 30));
+ var scenesPreloaded = new System.Text.StringBuilder();
+ scenesPreloaded.Append("Scenes Preloaded: ");
+ for (int i = 0; i < UnityEngine.SceneManagement.SceneManager.sceneCount; i++)
+ {
+ var scene = UnityEngine.SceneManagement.SceneManager.GetSceneAt(i);
+ scenesPreloaded.Append($"[{scene.name}]");
+ }
+ GUILayout.Label(scenesPreloaded.ToString());
+ GUILayout.EndArea();
+ }
+
+ private void OnUpdateGUIConnected()
+ {
+ if (CMBServiceConnection)
+ {
+ GUILayout.BeginArea(new Rect(10, 10, 800, 800));
+ GUILayout.Label($"Session: {m_SessionName}");
+ GUILayout.EndArea();
+ }
+ else
+ {
+ GUILayout.BeginArea(new Rect(10, 10, 800, 800));
+ if (DistributedAuthorityMode)
+ {
+ GUILayout.Label($"DAHosted Session");
+ }
+ else
+ {
+ GUILayout.Label($"Client-Server Session");
+ }
+
+ GUILayout.EndArea();
+ }
+
+ GUILayout.BeginArea(new Rect(Display.main.renderingWidth - 160, 10, 150, 80));
+
+ if (GUILayout.Button("Disconnect"))
+ {
+ if (m_CurrentSession != null && m_CurrentSession.State == SessionState.Connected)
+ {
+ m_CurrentSession.LeaveAsync();
+ m_CurrentSession = null;
+ }
+ else
+ {
+ Shutdown();
+ }
+ }
+
+ GUILayout.EndArea();
+ }
+
+ private void OnGUI()
+ {
+ var yAxisOffset = 10;
+ switch (m_ConnectionState)
+ {
+ case ConnectionStates.None:
+ {
+ yAxisOffset = 80;
+ OnUpdateGUIDisconnected();
+ break;
+ }
+ case ConnectionStates.Connected:
+ {
+ yAxisOffset = 40;
+ OnUpdateGUIConnected();
+ break;
+ }
+ }
+
+ GUILayout.BeginArea(new Rect(10, yAxisOffset, 600, 800));
+ if (m_MessageLogs.Count > 0)
+ {
+ GUILayout.Label("-----------(Log)-----------");
+ // Display any messages logged to screen
+ foreach (var messageLog in m_MessageLogs)
+ {
+ GUILayout.Label(messageLog.Message);
+ }
+ GUILayout.Label("---------------------------");
+ }
+ GUILayout.EndArea();
+ }
+
+ private void ClientStarted()
+ {
+ OnClientStarted -= ClientStarted;
+ m_ConnectionState = ConnectionStates.Connected;
+ LogMessage($"Connected to session {m_SessionName}.");
+ }
+
+ private void ClientStopped(bool isHost)
+ {
+ OnClientStopped -= ClientStopped;
+ m_ConnectionState = ConnectionStates.None;
+ m_SessionTask = null;
+ m_CurrentSession = null;
+ }
+
+ private async Task ConnectThroughLiveService()
+ {
+ try
+ {
+ var options = new SessionOptions()
+ {
+ Name = m_SessionName,
+ MaxPlayers = 32
+ }.WithDistributedAuthorityNetwork();
+
+ m_CurrentSession = await MultiplayerService.Instance.CreateOrJoinSessionAsync(m_SessionName, options);
+ return m_CurrentSession;
+ }
+ catch (Exception e)
+ {
+ LogMessage($"{e.Message}");
+ Debug.LogException(e);
+ }
+ return null;
+ }
+
+ private void Update()
+ {
+ if (m_MessageLogs.Count == 0)
+ {
+ return;
+ }
+
+ for (int i = m_MessageLogs.Count - 1; i >= 0; i--)
+ {
+ if (m_MessageLogs[i].ExpirationTime < Time.realtimeSinceStartup)
+ {
+ m_MessageLogs.RemoveAt(i);
+ }
+ }
+ }
+
+ private void OnClientConnectionEvent(NetworkManager networkManager, ConnectionEventData eventData)
+ {
+ LogMessage($"[{Time.realtimeSinceStartup}] Connection event {eventData.EventType} for Client-{eventData.ClientId}.");
+ }
+
+ private void OnClientConnected(ulong clientId)
+ {
+ LogMessage($"[{Time.realtimeSinceStartup}] Connected event invoked for Client-{clientId}.");
+ }
+
+ private void OnClientDisconnect(ulong clientId)
+ {
+ LogMessage($"[{Time.realtimeSinceStartup}] Disconnected event invoked for Client-{clientId}.");
+ }
+
+ private List m_MessageLogs = new List();
+
+ private class MessageLog
+ {
+ public string Message { get; private set; }
+ public float ExpirationTime { get; private set; }
+
+ public MessageLog(string msg, float timeToLive)
+ {
+ Message = msg;
+ ExpirationTime = Time.realtimeSinceStartup + timeToLive;
+ }
+ }
+
+ public void LogMessage(string msg, float timeToLive = 10.0f)
+ {
+ if (m_MessageLogs.Count > 0)
+ {
+ m_MessageLogs.Insert(0, new MessageLog(msg, timeToLive));
+ }
+ else
+ {
+ m_MessageLogs.Add(new MessageLog(msg, timeToLive));
+ }
+
+ Debug.Log(msg);
+ }
+
+ public ExtendedNetworkManager()
+ {
+ Instance = this;
+ }
+}
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariableCollectionsTests.cs.meta b/Examples/CharacterControllerMovingBodies/Assets/Scripts/ExtendedNetworkManager.cs.meta
similarity index 83%
rename from com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariableCollectionsTests.cs.meta
rename to Examples/CharacterControllerMovingBodies/Assets/Scripts/ExtendedNetworkManager.cs.meta
index 8a0dfc0af6..6c3e265735 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariableCollectionsTests.cs.meta
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/ExtendedNetworkManager.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 939ac41f36685f84e94a4b66ebbb6d8c
+guid: e4d8d44c602b97b47ba488a40c66267c
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs b/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs
new file mode 100644
index 0000000000..555ed20113
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs
@@ -0,0 +1,363 @@
+using UnityEngine;
+using Unity.Netcode.Components;
+using Unity.Netcode;
+#if UNITY_EDITOR
+using Unity.Netcode.Editor;
+using UnityEditor;
+
+///
+/// The custom editor for the component.
+///
+[CustomEditor(typeof(MoverScriptNoRigidbody), true)]
+[CanEditMultipleObjects]
+public class MoverScriptNoRigidbodyEditor : NetworkTransformEditor
+{
+ private SerializedProperty m_Radius;
+ private SerializedProperty m_Increment;
+ private SerializedProperty m_RotateSpeed;
+ private SerializedProperty m_MovementSpeed;
+ private SerializedProperty m_AirSpeedFactor;
+ private SerializedProperty m_Gravity;
+ private SerializedProperty m_ContinualChildMotion;
+
+
+ public override void OnEnable()
+ {
+ m_Radius = serializedObject.FindProperty(nameof(MoverScriptNoRigidbody.SpawnRadius));
+ m_Increment = serializedObject.FindProperty(nameof(MoverScriptNoRigidbody.Increment));
+ m_RotateSpeed = serializedObject.FindProperty(nameof(MoverScriptNoRigidbody.RotationSpeed));
+ m_MovementSpeed = serializedObject.FindProperty(nameof(MoverScriptNoRigidbody.MovementSpeed));
+ m_AirSpeedFactor = serializedObject.FindProperty(nameof(MoverScriptNoRigidbody.AirSpeedFactor));
+ m_Gravity = serializedObject.FindProperty(nameof(MoverScriptNoRigidbody.Gravity));
+ m_ContinualChildMotion = serializedObject.FindProperty(nameof(MoverScriptNoRigidbody.ContinualChildMotion));
+
+ base.OnEnable();
+ }
+
+ private void DisplayerMoverScriptNoRigidbodyProperties()
+ {
+ EditorGUILayout.PropertyField(m_Radius);
+ EditorGUILayout.PropertyField(m_Increment);
+ EditorGUILayout.PropertyField(m_RotateSpeed);
+ EditorGUILayout.PropertyField(m_MovementSpeed);
+ EditorGUILayout.PropertyField(m_AirSpeedFactor);
+ EditorGUILayout.PropertyField(m_Gravity);
+ EditorGUILayout.PropertyField(m_ContinualChildMotion);
+ }
+
+ public override void OnInspectorGUI()
+ {
+ var moverScriptNoRigidbody = target as MoverScriptNoRigidbody;
+ void SetExpanded(bool expanded) { moverScriptNoRigidbody.MoverScriptNoRigidbodyExpanded = expanded; };
+ DrawFoldOutGroup(moverScriptNoRigidbody.GetType(), DisplayerMoverScriptNoRigidbodyProperties, moverScriptNoRigidbody.MoverScriptNoRigidbodyExpanded, SetExpanded);
+ base.OnInspectorGUI();
+ }
+}
+#endif
+
+///
+/// The player controller for the player prefab
+///
+public class MoverScriptNoRigidbody : NetworkTransform
+{
+#if UNITY_EDITOR
+ // Inspector view expand/collapse settings for this derived child class
+ [HideInInspector]
+ public bool MoverScriptNoRigidbodyExpanded;
+#endif
+
+ private static bool s_EnablePlayerParentingText = true;
+
+ [Tooltip("Radius range a player will spawn within.")]
+ [Range(1.0f, 40.0f)]
+ public float SpawnRadius = 10.0f;
+
+ [Range(0.001f, 10.0f)]
+ public float Increment = 1.0f;
+
+ [Tooltip("The rotation speed multiplier.")]
+ [Range(0.01f, 2.0f)]
+ public float RotationSpeed = 1.0f;
+
+ [Tooltip("The forward movement speed.")]
+ [Range(0.01f, 30.0f)]
+ public float MovementSpeed = 15.0f;
+
+ [Tooltip("The jump launching speed.")]
+ [Range(1.0f, 20f)]
+ public float JumpSpeed = 10.0f;
+
+ [Tooltip("Determines how much the player's motion is applied when in the air.")]
+ [Range(0.01f, 1.0f)]
+ public float AirSpeedFactor = 0.35f;
+
+ [Range(-20.0f, 20.0f)]
+ public float Gravity = -9.8f;
+
+ [Tooltip("When enabled, the child spheres will continually move. When disabled, the child spheres will only move when the player moves.")]
+ public bool ContinualChildMotion = true;
+
+
+ private TextMesh m_ParentedText;
+ private PlayerColor m_PlayerColor;
+ private float m_JumpDelay;
+ private Vector3 m_WorldMotion = Vector3.zero;
+ private Vector3 m_CameraOriginalPosition;
+ private Quaternion m_CameraOriginalRotation;
+ private CharacterController m_CharacterController;
+ private PlayerBallMotion m_PlayerBallMotion;
+
+ protected override void Awake()
+ {
+ m_ParentedText = GetComponentInChildren();
+ m_ParentedText?.gameObject.SetActive(false);
+ m_PlayerColor = GetComponent();
+ m_PlayerBallMotion = GetComponentInChildren();
+ base.Awake();
+ }
+
+ ///
+ /// Invoked after being instantiated, we can do other pre-spawn related
+ /// initilization tasks here.
+ ///
+ ///
+ /// This provides you with a reference to the current
+ /// since that is not set on the until it is spawned.
+ ///
+ ///
+ protected override void OnNetworkPreSpawn(ref NetworkManager networkManager)
+ {
+ m_CharacterController = GetComponent();
+ // By default, we always disable the CharacterController and only enable it on the
+ // owner/authority side.
+ m_CharacterController.enabled = false;
+ base.OnNetworkPreSpawn(ref networkManager);
+ }
+
+ ///
+ /// We are using post spawn to handle any final spawn initializations.
+ /// At this point we know all NetworkBehaviours on this instance has
+ /// been spawned.
+ ///
+ protected override void OnNetworkPostSpawn()
+ {
+ m_CharacterController.enabled = CanCommitToTransform;
+ if (CanCommitToTransform)
+ {
+ m_PlayerBallMotion.SetContinualMotion(ContinualChildMotion);
+ Random.InitState((int)System.DateTime.Now.Ticks);
+ transform.position += new Vector3(Random.Range(-SpawnRadius, SpawnRadius), 1.25f, Random.Range(0, SpawnRadius));
+ SetState(transform.position, null, null, false);
+ if (IsLocalPlayer)
+ {
+ NetworkObject.DontDestroyWithOwner = false;
+ m_CameraOriginalPosition = Camera.main.transform.position;
+ m_CameraOriginalRotation = Camera.main.transform.rotation;
+ Camera.main.transform.SetParent(transform, false);
+ }
+ }
+
+ if (NetworkObject.IsPlayerObject)
+ {
+ gameObject.name = $"Player-{OwnerClientId}";
+ }
+
+ m_ParentedText?.gameObject.SetActive(true);
+ UpdateParentedText();
+ base.OnNetworkPostSpawn();
+ }
+
+ public override void OnNetworkDespawn()
+ {
+ if (IsLocalPlayer)
+ {
+ m_CharacterController.enabled = false;
+ Camera.main.transform.SetParent(null, false);
+ Camera.main.transform.position = m_CameraOriginalPosition;
+ Camera.main.transform.rotation = m_CameraOriginalRotation;
+ }
+ base.OnNetworkDespawn();
+ }
+
+ ///
+ /// Bypass NetworkTransform's OnNetworkObjectParentChanged
+ ///
+ public override void OnNetworkObjectParentChanged(NetworkObject parentNetworkObject)
+ {
+ if (parentNetworkObject != null)
+ {
+ Debug.Log($"Parented under {parentNetworkObject.name}");
+ }
+ UpdateParentedText();
+ base.OnNetworkObjectParentChanged(parentNetworkObject);
+ }
+
+ ///
+ /// This method handles both client-server and distributed authority network topologies
+ /// client-server: If we are not the server, then we need to send an Rpc to the server to handle parenting since the Character controller is disabled on the server for all client CharacterControllers (i.e. won't trigger).
+ /// distributed authority: If we are the authority, then handle parenting locally.
+ ///
+ ///
+ public void SetParent(NetworkObject parent)
+ {
+ if ((!NetworkManager.DistributedAuthorityMode && (IsServer || (NetworkObject.AllowOwnerToParent && IsOwner))) || (NetworkManager.DistributedAuthorityMode && HasAuthority))
+ {
+ if (parent != null)
+ {
+ NetworkObject.TrySetParent(parent);
+ }
+ else
+ {
+ NetworkObject.TryRemoveParent();
+ }
+ }
+ else if (!NetworkManager.DistributedAuthorityMode && !IsServer)
+ {
+ SetParentRpc(new NetworkObjectReference(parent));
+ }
+ }
+
+ [Rpc(SendTo.Server)]
+ public void SetParentRpc(NetworkObjectReference parentReference, RpcParams rpcParams = default)
+ {
+ var parent = (NetworkObject)null;
+ parentReference.TryGet(out parent, NetworkManager);
+ if (parent != null)
+ {
+ NetworkObject.TrySetParent(parent);
+ }
+ else
+ {
+ NetworkObject.TryRemoveParent();
+ }
+ }
+
+
+ private void Update()
+ {
+ if (!IsSpawned || !CanCommitToTransform)
+ {
+ return;
+ }
+ ApplyInput();
+ }
+
+
+ private Vector3 m_PushMotion = Vector3.zero;
+ ///
+ /// Since has issues with collisions and rotating bodies,
+ /// we have to simulate the collision using triggers.
+ ///
+ ///
+ ///
+ ///
+ /// direction to push away from
+ public void PushAwayFrom(Vector3 normal)
+ {
+ m_PushMotion += normal * MovementSpeed * 0.10f * Time.deltaTime;
+ }
+
+ ///
+ /// Handles player input
+ ///
+ private void ApplyInput()
+ {
+ // Simple rotation:
+ // Since the forward vector is perpendicular to the right vector of the player, we can just
+ // apply the +/- value to our forward direction and lerp our right vector towards that direction
+ // in order to get a reasonably smooth rotation.
+ var rotation = transform.forward;
+ m_WorldMotion = Vector3.Lerp(m_WorldMotion, m_CharacterController.isGrounded ? Vector3.zero : Vector3.up * Gravity, Time.deltaTime * 2f);
+ var motion = m_WorldMotion * Time.deltaTime + m_PushMotion;
+ var moveMotion = 0.0f;
+
+ if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
+ {
+ motion += transform.forward * MovementSpeed * Time.deltaTime * (m_CharacterController.isGrounded ? 1.0f : AirSpeedFactor);
+ moveMotion = 1.0f;
+ m_CharacterController.Move(motion);
+ }
+ if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
+ {
+ motion += (transform.forward * -MovementSpeed) * Time.deltaTime * (m_CharacterController.isGrounded ? 1.0f : AirSpeedFactor);
+ moveMotion = -1.0f;
+ m_CharacterController.Move(motion);
+ }
+
+ if (!m_CharacterController.isGrounded || m_JumpDelay > Time.realtimeSinceStartup || m_PushMotion.magnitude > 0.01f)
+ {
+ m_CharacterController.Move(motion);
+ }
+
+ if (Input.GetKeyDown(KeyCode.Space) && m_CharacterController.isGrounded)
+ {
+ m_JumpDelay = Time.realtimeSinceStartup + 0.5f;
+ m_WorldMotion = motion + Vector3.up * JumpSpeed;
+ }
+
+ if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
+ {
+ transform.right = Vector3.Lerp(transform.right, rotation * RotationSpeed, Time.deltaTime).normalized;
+ }
+ if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
+ {
+ transform.right = Vector3.Lerp(transform.right, rotation * -RotationSpeed, Time.deltaTime).normalized;
+ }
+
+ // Enabled/Disable player name, transform space, and parent TextMesh
+ if (Input.GetKeyDown(KeyCode.P))
+ {
+ s_EnablePlayerParentingText = !s_EnablePlayerParentingText;
+ }
+
+ if (Input.GetKeyDown(KeyCode.C))
+ {
+ ContinualChildMotion = !ContinualChildMotion;
+ m_PlayerBallMotion.SetContinualMotion(ContinualChildMotion);
+ }
+
+ m_PushMotion = Vector3.Lerp(m_PushMotion, Vector3.zero, 0.35f);
+
+ m_PlayerBallMotion.HasMotion(moveMotion);
+ }
+
+ ///
+ /// Updates player TextMesh relative to each client's camera view
+ ///
+ private void OnGUI()
+ {
+ if (m_ParentedText != null)
+ {
+ if (m_ParentedText.gameObject.activeInHierarchy != s_EnablePlayerParentingText)
+ {
+ m_ParentedText.gameObject.SetActive(s_EnablePlayerParentingText);
+ }
+ if (s_EnablePlayerParentingText)
+ {
+ var position = Camera.main.transform.position;
+ position.y = m_ParentedText.transform.position.y;
+ m_ParentedText.transform.LookAt(position, transform.up);
+ m_ParentedText.transform.forward = -m_ParentedText.transform.forward;
+ }
+ }
+ }
+
+ ///
+ /// Updates the contents of the parented
+ ///
+ private void UpdateParentedText()
+ {
+ if (m_ParentedText)
+ {
+ m_ParentedText.color = m_PlayerColor.Color;
+ if (transform.parent)
+ {
+ m_ParentedText.text = $"{gameObject.name}\n Local Space\n Parent: {transform.parent.name}";
+ }
+ else
+ {
+ m_ParentedText.text = $"{gameObject.name}\n WorldSpace\n Parent: None";
+ }
+ }
+ }
+}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs.meta b/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs.meta
new file mode 100644
index 0000000000..d1b709a9fb
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/MoverScriptNoRigidbody.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 5ce25b0b3f15e6446a88a85787c2f94a
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerBallMotion.cs b/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerBallMotion.cs
new file mode 100644
index 0000000000..7e525d6c33
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerBallMotion.cs
@@ -0,0 +1,126 @@
+using System.Collections.Generic;
+using Unity.Netcode.Components;
+using UnityEngine;
+using System.Linq;
+
+
+#if UNITY_EDITOR
+using Unity.Netcode.Editor;
+using UnityEditor;
+
+///
+/// The custom editor for the component.
+///
+[CustomEditor(typeof(PlayerBallMotion), true)]
+[CanEditMultipleObjects]
+public class PlayerBallMotionEditor : NetworkTransformEditor
+{
+ private SerializedProperty m_RotationAxis;
+ private SerializedProperty m_RotationSpeed;
+
+
+ public override void OnEnable()
+ {
+ m_RotationAxis = serializedObject.FindProperty(nameof(PlayerBallMotion.RotationAxis));
+ m_RotationSpeed = serializedObject.FindProperty(nameof(PlayerBallMotion.RotationSpeed));
+ base.OnEnable();
+ }
+
+ private void DrawPlayerBallMotionProperties()
+ {
+ EditorGUILayout.PropertyField(m_RotationAxis);
+ EditorGUILayout.PropertyField(m_RotationSpeed);
+ }
+
+ public override void OnInspectorGUI()
+ {
+ var playerBallMotion = target as PlayerBallMotion;
+ void SetExpanded(bool expanded) { playerBallMotion.ExpandPlayerBallMotion = expanded; };
+ DrawFoldOutGroup< PlayerBallMotion>(playerBallMotion.GetType(), DrawPlayerBallMotionProperties, playerBallMotion.ExpandPlayerBallMotion, SetExpanded);
+ base.OnInspectorGUI();
+ }
+}
+#endif
+
+public class PlayerBallMotion : NetworkTransform
+{
+#if UNITY_EDITOR
+ public bool ExpandPlayerBallMotion;
+ public bool ExpandNetworkTransform;
+#endif
+ public enum RotateAroundAxis
+ {
+ Up,
+ Right,
+ Forward
+ }
+
+ public RotateAroundAxis RotationAxis;
+ public float RotationSpeed = 1.5f;
+
+ private Vector3 m_AxisRotation = Vector3.zero;
+ private List m_Children;
+
+ private bool m_ContinualMotion;
+ private float m_CurrentRotionMotion = 1.0f;
+ public void SetContinualMotion(bool continualMotion)
+ {
+ m_ContinualMotion = continualMotion;
+ foreach (var child in m_Children)
+ {
+ child.SetContinualMotion(continualMotion);
+ }
+ }
+
+ protected override void Awake()
+ {
+ m_Children = GetComponentsInChildren().Where((c)=> c != this).ToList();
+ base.Awake();
+ }
+
+ private void SetRotationAixs()
+ {
+ switch (RotationAxis)
+ {
+ case RotateAroundAxis.Up:
+ {
+ m_AxisRotation = transform.parent.up;
+ break;
+ }
+ case RotateAroundAxis.Right:
+ {
+ m_AxisRotation = transform.parent.right;
+ break;
+ }
+ case RotateAroundAxis.Forward:
+ {
+ m_AxisRotation = transform.parent.forward;
+ break;
+ }
+ }
+ }
+
+ public void HasMotion(float direction)
+ {
+ if (direction == 0.0f)
+ {
+ if(!m_ContinualMotion)
+ {
+ return;
+ }
+ }
+ else
+ {
+ m_CurrentRotionMotion = RotationSpeed * direction;
+ }
+
+
+ transform.LookAt(transform.parent);
+ SetRotationAixs();
+ transform.RotateAround(transform.parent.position, m_AxisRotation, m_CurrentRotionMotion);
+ foreach(var child in m_Children)
+ {
+ child.HasMotion(direction);
+ }
+ }
+}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerBallMotion.cs.meta b/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerBallMotion.cs.meta
new file mode 100644
index 0000000000..407e0adf7b
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerBallMotion.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 792d7ce524eb358469373fe12babef88
\ No newline at end of file
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerColor.cs b/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerColor.cs
new file mode 100644
index 0000000000..3e2fa5b00a
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerColor.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using Unity.Netcode;
+using UnityEngine;
+
+
+public class PlayerColor : NetworkBehaviour
+{
+ private static Color[] s_Colors = { Color.red, Color.green, Color.blue, Color.cyan, Color.magenta, Color.yellow};
+ public bool ApplyColorToChildren;
+ public Color Color { get; private set; }
+ public List IgnoreChildren;
+
+ public override void OnNetworkSpawn()
+ {
+ MeshRenderer meshRenderer = GetComponent();
+ ulong myId = GetComponent().OwnerClientId - (ulong)(NetworkManager.DistributedAuthorityMode && NetworkManager.CMBServiceConnection ? 1 : 0);
+ Color = s_Colors[myId % Convert.ToUInt64(s_Colors.Length)];
+ meshRenderer.material.color = Color;
+ if (ApplyColorToChildren)
+ {
+ var meshRenderers = GetComponentsInChildren();
+ foreach (var childMeshRenderer in meshRenderers)
+ {
+ if (IgnoreChildren != null && IgnoreChildren.Contains(childMeshRenderer.gameObject))
+ {
+ continue;
+ }
+ childMeshRenderer.material.color = Color;
+ }
+ }
+
+ if (IsLocalPlayer)
+ {
+ var gameObject = GameObject.Find("ServerHostClientDisplay");
+ if (gameObject != null)
+ {
+ var serverHost = gameObject.GetComponent();
+ serverHost?.SetColor(Color);
+ }
+ }
+ base.OnNetworkSpawn();
+ }
+}
diff --git a/com.unity.netcode.gameobjects/Components/AssemblyInfo.cs.meta b/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerColor.cs.meta
similarity index 83%
rename from com.unity.netcode.gameobjects/Components/AssemblyInfo.cs.meta
rename to Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerColor.cs.meta
index 36524ba59b..90b6ca4628 100644
--- a/com.unity.netcode.gameobjects/Components/AssemblyInfo.cs.meta
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/PlayerColor.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 5b8086dc75d86473f9e3c928dd773733
+guid: 8e5128237997be649af0cc87dd0eb563
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/RotatingBodyLogic.cs b/Examples/CharacterControllerMovingBodies/Assets/Scripts/RotatingBodyLogic.cs
new file mode 100644
index 0000000000..eaa32a77d6
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/RotatingBodyLogic.cs
@@ -0,0 +1,201 @@
+using System.Collections.Generic;
+using Unity.Netcode;
+using Unity.Netcode.Components;
+using UnityEngine;
+#if UNITY_EDITOR
+using Unity.Netcode.Editor;
+using UnityEditor;
+
+///
+/// The custom editor for the component.
+///
+[CustomEditor(typeof(RotatingBodyLogic), true)]
+[CanEditMultipleObjects]
+public class RotatingBodyLogicEditor : NetworkTransformEditor
+{
+ private SerializedProperty m_RotationSpeed;
+ private SerializedProperty m_RotateDirection;
+ private SerializedProperty m_OnExitTransferParentOnStay;
+ private SerializedProperty m_PathMotion;
+
+
+ public override void OnEnable()
+ {
+ m_RotationSpeed = serializedObject.FindProperty(nameof(RotatingBodyLogic.RotationSpeed));
+ m_RotateDirection = serializedObject.FindProperty(nameof(RotatingBodyLogic.RotateDirection));
+ m_OnExitTransferParentOnStay = serializedObject.FindProperty(nameof(RotatingBodyLogic.OnExitTransferParentOnStay));
+ m_PathMotion = serializedObject.FindProperty(nameof(RotatingBodyLogic.PathMovement));
+ base.OnEnable();
+ }
+
+ private void DisplayRotatingBodyLogicProperties()
+ {
+ EditorGUILayout.PropertyField(m_RotationSpeed);
+ EditorGUILayout.PropertyField(m_RotateDirection);
+ EditorGUILayout.PropertyField(m_OnExitTransferParentOnStay);
+ EditorGUILayout.PropertyField(m_PathMotion);
+ }
+
+ public override void OnInspectorGUI()
+ {
+ var rotatingBodyLogic = target as RotatingBodyLogic;
+ void SetExpanded(bool expanded) { rotatingBodyLogic.RotatingBodyLogicExpanded = expanded; };
+ DrawFoldOutGroup(rotatingBodyLogic.GetType(), DisplayRotatingBodyLogicProperties, rotatingBodyLogic.RotatingBodyLogicExpanded, SetExpanded);
+ base.OnInspectorGUI();
+ }
+}
+#endif
+
+///
+/// Handles rotating the large in-scene placed platform/tunnels and parenting/deparenting players
+///
+public class RotatingBodyLogic : NetworkTransform
+{
+#if UNITY_EDITOR
+ // Inspector view expand/collapse settings for this derived child class
+ [HideInInspector]
+ public bool RotatingBodyLogicExpanded;
+#endif
+
+ public enum RotationDirections
+ {
+ Clockwise,
+ CounterClockwise
+ }
+
+ [Range(0.0f, 2.0f)]
+ public float RotationSpeed = 1.0f;
+ public RotationDirections RotateDirection;
+ public RotatingBodyLogic OnExitTransferParentOnStay;
+ public List PathMovement;
+
+ private TagHandle m_TagHandle;
+ private float m_RotationDirection;
+
+ private int m_CurrentPathObject = -1;
+ private GameObject m_CurrentNavPoint;
+
+ protected override void OnNetworkPreSpawn(ref NetworkManager networkManager)
+ {
+ m_TagHandle = TagHandle.GetExistingTag("Player");
+ m_RotationDirection = RotateDirection == RotationDirections.Clockwise ? 1.0f : -1.0f;
+ SetNextPoint();
+ base.OnNetworkPreSpawn(ref networkManager);
+ }
+
+ private void SetNextPoint()
+ {
+ if (PathMovement == null || PathMovement.Count == 0)
+ {
+ return;
+ }
+ m_CurrentPathObject++;
+ m_CurrentPathObject %= PathMovement.Count;
+ m_CurrentNavPoint = PathMovement[m_CurrentPathObject];
+ }
+
+
+ ///
+ /// When triggered, the player is parented under the rotating body.
+ ///
+ ///
+ /// This is only triggered on the owner side since we disable the CharacterController
+ /// on all non-owner instances.
+ ///
+ private void OnTriggerEnter(Collider other)
+ {
+ if (!IsSpawned || !other.CompareTag(m_TagHandle))
+ {
+ return;
+ }
+ var nonRigidPlayerMover = other.GetComponent();
+ if (nonRigidPlayerMover != null)
+ {
+ nonRigidPlayerMover.SetParent(NetworkObject);
+ }
+ }
+
+ // This is used to handle NetworkObject to NetworkObject parenting detection
+ private List m_TriggerStayBodies = new List();
+
+ private void OnTriggerStay(Collider other)
+ {
+ if (!IsSpawned || !other.CompareTag(m_TagHandle))
+ {
+ return;
+ }
+ var nonRigidPlayerMover = other.GetComponent();
+ if (nonRigidPlayerMover != null)
+ {
+ if (!m_TriggerStayBodies.Contains(nonRigidPlayerMover))
+ {
+ m_TriggerStayBodies.Add(nonRigidPlayerMover);
+ }
+ }
+ }
+
+ internal bool HandleParentingForTriggerStayBodies(MoverScriptNoRigidbody moverScriptNoRigidbody)
+ {
+ if (m_TriggerStayBodies.Contains(moverScriptNoRigidbody))
+ {
+ moverScriptNoRigidbody.SetParent(NetworkObject);
+ return true;
+ }
+ return false;
+ }
+
+ ///
+ /// When triggered, the player is deparented from the rotating body.
+ ///
+ ///
+ /// This is only triggered on the owner side since we disable the CharacterController
+ /// on all non-owner instances.
+ ///
+ private void OnTriggerExit(Collider other)
+ {
+ if (!IsSpawned || !other.CompareTag(m_TagHandle))
+ {
+ return;
+ }
+
+ var nonRigidPlayerMover = other.GetComponent();
+ if (nonRigidPlayerMover != null)
+ {
+ m_TriggerStayBodies.Remove(nonRigidPlayerMover);
+ if (OnExitTransferParentOnStay && OnExitTransferParentOnStay.HandleParentingForTriggerStayBodies(nonRigidPlayerMover))
+ {
+ return;
+ }
+ // Otherwise, set parent back to root
+ nonRigidPlayerMover.SetParent(null);
+ }
+ }
+
+ ///
+ /// We rotate the body during late update to avoid fighting between the host/owner (depending upon network topology)
+ /// motion and the body's motion/rotation.
+ ///
+ private void LateUpdate()
+ {
+ if (!IsSpawned || !CanCommitToTransform)
+ {
+ return;
+ }
+
+ if (m_CurrentNavPoint != null)
+ {
+ if (Vector3.Distance(m_CurrentNavPoint.transform.position, transform.position) <= 0.05f)
+ {
+ SetNextPoint();
+ }
+
+ var direction = (m_CurrentNavPoint.transform.position - transform.position).normalized;
+ transform.position = Vector3.Lerp(transform.position, transform.position + direction * 10, Time.deltaTime);
+ }
+
+ if (RotationSpeed > 0.0f)
+ {
+ transform.right = Vector3.Lerp(transform.right, transform.forward * m_RotationDirection, Time.deltaTime * RotationSpeed);
+ }
+ }
+}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/RotatingBodyLogic.cs.meta b/Examples/CharacterControllerMovingBodies/Assets/Scripts/RotatingBodyLogic.cs.meta
new file mode 100644
index 0000000000..ce0ea09165
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/RotatingBodyLogic.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 374ac199eb18f0f468bc018a722775c2
\ No newline at end of file
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/ServerHostClientText.cs b/Examples/CharacterControllerMovingBodies/Assets/Scripts/ServerHostClientText.cs
new file mode 100644
index 0000000000..e2ff41dfa6
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/ServerHostClientText.cs
@@ -0,0 +1,79 @@
+using Unity.Netcode;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class ServerHostClientText : NetworkBehaviour
+{
+ private Text m_DisplayText;
+
+ private Color m_Color;
+ private Color m_ColorAlpha;
+ private Vector3 m_LocalPosition;
+
+ public void SetColor(Color color)
+ {
+ m_Color = color;
+ m_ColorAlpha = color;
+ m_ColorAlpha.a = 0.35f;
+ }
+
+ private void Awake()
+ {
+ m_LocalPosition = transform.localPosition;
+ m_DisplayText = GetComponent();
+ }
+
+ private void Start()
+ {
+ if (m_DisplayText != null)
+ {
+ m_DisplayText.text = string.Empty;
+ SetColor(m_DisplayText.color);
+ }
+ }
+
+ public override void OnNetworkSpawn()
+ {
+ if (m_DisplayText != null)
+ {
+ if (NetworkManager.IsServer)
+ {
+ m_DisplayText.text = NetworkManager.IsHost ? "Host" : "Server";
+ }
+ else if (NetworkManager.IsClient)
+ {
+ m_DisplayText.text = $"Client-{NetworkManager.LocalClientId}";
+ }
+ }
+ transform.localPosition = m_LocalPosition;
+ }
+
+ public override void OnNetworkDespawn()
+ {
+ if (m_DisplayText != null)
+ {
+ m_DisplayText.text = string.Empty;
+ }
+ base.OnNetworkDespawn();
+ }
+
+ private bool m_LastFocusedValue;
+ private void OnGUI()
+ {
+ if (!IsSpawned || m_LastFocusedValue == Application.isFocused)
+ {
+ return;
+ }
+
+ m_LastFocusedValue = Application.isFocused;
+
+ if (m_LastFocusedValue)
+ {
+ m_DisplayText.color = m_Color;
+ }
+ else
+ {
+ m_DisplayText.color = m_ColorAlpha;
+ }
+ }
+}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/ServerHostClientText.cs.meta b/Examples/CharacterControllerMovingBodies/Assets/Scripts/ServerHostClientText.cs.meta
new file mode 100644
index 0000000000..081f5a96a8
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/ServerHostClientText.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6637cd674efb56a48a3d4d545d23a8d3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/TriggerPush.cs b/Examples/CharacterControllerMovingBodies/Assets/Scripts/TriggerPush.cs
new file mode 100644
index 0000000000..ade22f3ed6
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/TriggerPush.cs
@@ -0,0 +1,63 @@
+using UnityEngine;
+
+///
+/// This helper class is used to push a player away from a rotating body.
+/// s without a don't
+/// handle collision with rotating bodies. This simulates a "collision".
+///
+public class TriggerPush : MonoBehaviour
+{
+ public enum RightOrLeft
+ {
+ Right,
+ Left
+ }
+
+ [Tooltip("Determines if this trigger will push the player to the left or right of the root transform")]
+ public RightOrLeft PushDirection;
+
+ private TagHandle m_TagHandle;
+
+ private void Awake()
+ {
+ m_TagHandle = TagHandle.GetExistingTag("Player");
+ }
+
+ private void PushObject(Collider other, bool isInside = false)
+ {
+ var nonRigidPlayerMover = other.GetComponent();
+ if (nonRigidPlayerMover != null && nonRigidPlayerMover.CanCommitToTransform)
+ {
+ // We determine the direction to push and if within a trigger we push a little more to prevent from
+ // completely clipping through the object.
+ var direction = (PushDirection == RightOrLeft.Right ? 1.0f : -1.0f) * (isInside ? 1.75f : 1.0f);
+ nonRigidPlayerMover.PushAwayFrom(transform.parent.right * direction);
+ }
+ }
+
+ ///
+ /// Pushes the player away from the object
+ ///
+ private void OnTriggerEnter(Collider other)
+ {
+ if (!other.CompareTag(m_TagHandle))
+ {
+ return;
+ }
+ PushObject(other);
+ }
+
+ ///
+ /// When the trigger is in a "stay" state, we need to signal that
+ /// the amount to "push away" should be increased.
+ ///
+ ///
+ private void OnTriggerStay(Collider other)
+ {
+ if (!other.CompareTag(m_TagHandle))
+ {
+ return;
+ }
+ PushObject(other, true);
+ }
+}
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Scripts/TriggerPush.cs.meta b/Examples/CharacterControllerMovingBodies/Assets/Scripts/TriggerPush.cs.meta
new file mode 100644
index 0000000000..7c07b1ebfc
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Scripts/TriggerPush.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 2c40721ca0fd31645a742e5ad0e0cdc5
\ No newline at end of file
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures.meta b/Examples/CharacterControllerMovingBodies/Assets/Textures.meta
new file mode 100644
index 0000000000..84caff0700
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Textures.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22c34a08d52a0644fae5e90dbcc0ba52
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/GridPattern.png b/Examples/CharacterControllerMovingBodies/Assets/Textures/GridPattern.png
new file mode 100644
index 0000000000..e2f648aacc
Binary files /dev/null and b/Examples/CharacterControllerMovingBodies/Assets/Textures/GridPattern.png differ
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/GridPattern.png.meta b/Examples/CharacterControllerMovingBodies/Assets/Textures/GridPattern.png.meta
new file mode 100644
index 0000000000..305bd2392c
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Textures/GridPattern.png.meta
@@ -0,0 +1,153 @@
+fileFormatVersion: 2
+guid: a092c5fa8c60ed04aa1d72555f1740bc
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Windows Store Apps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Server
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_BaseMap.png b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_BaseMap.png
new file mode 100644
index 0000000000..3f311d2225
Binary files /dev/null and b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_BaseMap.png differ
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_BaseMap.png.meta b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_BaseMap.png.meta
new file mode 100644
index 0000000000..3a05497054
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_BaseMap.png.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: e71f43865e91e6b418bd0d67be2445dc
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Emissive.png b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Emissive.png
new file mode 100644
index 0000000000..df81ac1268
Binary files /dev/null and b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Emissive.png differ
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Emissive.png.meta b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Emissive.png.meta
new file mode 100644
index 0000000000..bcfe13d8d7
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Emissive.png.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: 8bf2cf149563066489e749ea032dbca7
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Normal.png b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Normal.png
new file mode 100644
index 0000000000..1d060fba61
Binary files /dev/null and b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Normal.png differ
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Normal.png.meta b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Normal.png.meta
new file mode 100644
index 0000000000..4a5b2ad61c
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_01_Normal.png.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: b94463ba36040ec4082132c54dd1bbad
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ 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
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_02_BaseMap.png b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_02_BaseMap.png
new file mode 100644
index 0000000000..b3069b03d1
Binary files /dev/null and b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_02_BaseMap.png differ
diff --git a/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_02_BaseMap.png.meta b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_02_BaseMap.png.meta
new file mode 100644
index 0000000000..7fbedef673
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Assets/Textures/Grid_02_BaseMap.png.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: 844faea9c35b2464c8ecb09f66e2e2f8
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/CharacterControllerMovingBodies/Packages/manifest.json b/Examples/CharacterControllerMovingBodies/Packages/manifest.json
new file mode 100644
index 0000000000..de9d632e57
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Packages/manifest.json
@@ -0,0 +1,55 @@
+{
+ "dependencies": {
+ "com.unity.2d.sprite": "1.0.0",
+ "com.unity.2d.tilemap": "1.0.0",
+ "com.unity.ads": "4.4.2",
+ "com.unity.ai.navigation": "2.0.3",
+ "com.unity.analytics": "3.8.1",
+ "com.unity.collab-proxy": "2.4.4",
+ "com.unity.feature.development": "1.0.2",
+ "com.unity.ide.rider": "3.0.31",
+ "com.unity.ide.visualstudio": "2.0.22",
+ "com.unity.netcode.gameobjects": "https://github.com/Unity-Technologies/com.unity.netcode.gameobjects.git?path=com.unity.netcode.gameobjects#develop-2.0.0",
+ "com.unity.purchasing": "4.12.2",
+ "com.unity.services.multiplayer": "1.0.0-pre.1",
+ "com.unity.test-framework": "1.4.5",
+ "com.unity.timeline": "1.8.7",
+ "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.9",
+ "com.unity.transport": "2.3.0",
+ "com.unity.ugui": "2.0.0",
+ "com.unity.visualscripting": "1.9.4",
+ "com.unity.xr.legacyinputhelpers": "2.1.10",
+ "com.unity.modules.accessibility": "1.0.0",
+ "com.unity.modules.ai": "1.0.0",
+ "com.unity.modules.androidjni": "1.0.0",
+ "com.unity.modules.animation": "1.0.0",
+ "com.unity.modules.assetbundle": "1.0.0",
+ "com.unity.modules.audio": "1.0.0",
+ "com.unity.modules.cloth": "1.0.0",
+ "com.unity.modules.director": "1.0.0",
+ "com.unity.modules.imageconversion": "1.0.0",
+ "com.unity.modules.imgui": "1.0.0",
+ "com.unity.modules.jsonserialize": "1.0.0",
+ "com.unity.modules.particlesystem": "1.0.0",
+ "com.unity.modules.physics": "1.0.0",
+ "com.unity.modules.physics2d": "1.0.0",
+ "com.unity.modules.screencapture": "1.0.0",
+ "com.unity.modules.terrain": "1.0.0",
+ "com.unity.modules.terrainphysics": "1.0.0",
+ "com.unity.modules.tilemap": "1.0.0",
+ "com.unity.modules.ui": "1.0.0",
+ "com.unity.modules.uielements": "1.0.0",
+ "com.unity.modules.umbra": "1.0.0",
+ "com.unity.modules.unityanalytics": "1.0.0",
+ "com.unity.modules.unitywebrequest": "1.0.0",
+ "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
+ "com.unity.modules.unitywebrequestaudio": "1.0.0",
+ "com.unity.modules.unitywebrequesttexture": "1.0.0",
+ "com.unity.modules.unitywebrequestwww": "1.0.0",
+ "com.unity.modules.vehicles": "1.0.0",
+ "com.unity.modules.video": "1.0.0",
+ "com.unity.modules.vr": "1.0.0",
+ "com.unity.modules.wind": "1.0.0",
+ "com.unity.modules.xr": "1.0.0"
+ }
+}
diff --git a/Examples/CharacterControllerMovingBodies/ProjectSettings/EditorBuildSettings.asset b/Examples/CharacterControllerMovingBodies/ProjectSettings/EditorBuildSettings.asset
new file mode 100644
index 0000000000..a6cd971819
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/ProjectSettings/EditorBuildSettings.asset
@@ -0,0 +1,12 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1045 &1
+EditorBuildSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Scenes:
+ - enabled: 1
+ path: Assets/Scenes/CharacterController.unity
+ guid: 9fc0d4010bbf28b4594072e72b8655ab
+ m_configObjects: {}
+ m_UseUCBPForAssetBundles: 0
diff --git a/Examples/CharacterControllerMovingBodies/ProjectSettings/ProjectSettings.asset b/Examples/CharacterControllerMovingBodies/ProjectSettings/ProjectSettings.asset
new file mode 100644
index 0000000000..b12ab6ff29
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/ProjectSettings/ProjectSettings.asset
@@ -0,0 +1,687 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!129 &1
+PlayerSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 28
+ productGUID: 6859c206e4885eb4d9a885722be3daa1
+ AndroidProfiler: 0
+ AndroidFilterTouchesWhenObscured: 0
+ AndroidEnableSustainedPerformanceMode: 0
+ defaultScreenOrientation: 4
+ targetDevice: 2
+ useOnDemandResources: 0
+ accelerometerFrequency: 60
+ companyName: DefaultCompany
+ productName: CharacterControllerMovingBodies
+ defaultCursor: {fileID: 0}
+ cursorHotspot: {x: 0, y: 0}
+ m_SplashScreenBackgroundColor: {r: 0.12156863, g: 0.12156863, b: 0.1254902, a: 1}
+ m_ShowUnitySplashScreen: 1
+ m_ShowUnitySplashLogo: 1
+ m_SplashScreenOverlayOpacity: 1
+ m_SplashScreenAnimation: 1
+ m_SplashScreenLogoStyle: 1
+ m_SplashScreenDrawMode: 0
+ m_SplashScreenBackgroundAnimationZoom: 1
+ m_SplashScreenLogoAnimationZoom: 1
+ m_SplashScreenBackgroundLandscapeAspect: 1
+ m_SplashScreenBackgroundPortraitAspect: 1
+ m_SplashScreenBackgroundLandscapeUvs:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ m_SplashScreenBackgroundPortraitUvs:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ m_SplashScreenLogos: []
+ m_VirtualRealitySplashScreen: {fileID: 0}
+ m_HolographicTrackingLossScreen: {fileID: 0}
+ defaultScreenWidth: 1920
+ defaultScreenHeight: 1080
+ defaultScreenWidthWeb: 960
+ defaultScreenHeightWeb: 600
+ m_StereoRenderingPath: 0
+ m_ActiveColorSpace: 0
+ unsupportedMSAAFallback: 0
+ m_SpriteBatchVertexThreshold: 300
+ m_MTRendering: 1
+ mipStripping: 0
+ numberOfMipsStripped: 0
+ numberOfMipsStrippedPerMipmapLimitGroup: {}
+ m_StackTraceTypes: 010000000100000001000000010000000100000001000000
+ iosShowActivityIndicatorOnLoading: -1
+ androidShowActivityIndicatorOnLoading: -1
+ iosUseCustomAppBackgroundBehavior: 0
+ allowedAutorotateToPortrait: 1
+ allowedAutorotateToPortraitUpsideDown: 1
+ allowedAutorotateToLandscapeRight: 1
+ allowedAutorotateToLandscapeLeft: 1
+ useOSAutorotation: 1
+ use32BitDisplayBuffer: 1
+ preserveFramebufferAlpha: 0
+ disableDepthAndStencilBuffers: 0
+ androidStartInFullscreen: 1
+ androidRenderOutsideSafeArea: 1
+ androidUseSwappy: 1
+ androidBlitType: 0
+ androidResizeableActivity: 1
+ androidDefaultWindowWidth: 1920
+ androidDefaultWindowHeight: 1080
+ androidMinimumWindowWidth: 400
+ androidMinimumWindowHeight: 300
+ androidFullscreenMode: 1
+ androidAutoRotationBehavior: 1
+ androidPredictiveBackSupport: 0
+ androidApplicationEntry: 2
+ defaultIsNativeResolution: 1
+ macRetinaSupport: 1
+ runInBackground: 0
+ captureSingleScreen: 0
+ muteOtherAudioSources: 0
+ Prepare IOS For Recording: 0
+ Force IOS Speakers When Recording: 0
+ deferSystemGesturesMode: 0
+ hideHomeButton: 0
+ submitAnalytics: 1
+ usePlayerLog: 1
+ dedicatedServerOptimizations: 1
+ bakeCollisionMeshes: 0
+ forceSingleInstance: 0
+ useFlipModelSwapchain: 1
+ resizableWindow: 0
+ useMacAppStoreValidation: 0
+ macAppStoreCategory: public.app-category.games
+ gpuSkinning: 1
+ meshDeformation: 1
+ xboxPIXTextureCapture: 0
+ xboxEnableAvatar: 0
+ xboxEnableKinect: 0
+ xboxEnableKinectAutoTracking: 0
+ xboxEnableFitness: 0
+ visibleInBackground: 1
+ allowFullscreenSwitch: 1
+ fullscreenMode: 1
+ xboxSpeechDB: 0
+ xboxEnableHeadOrientation: 0
+ xboxEnableGuest: 0
+ xboxEnablePIXSampling: 0
+ metalFramebufferOnly: 0
+ xboxOneResolution: 0
+ xboxOneSResolution: 0
+ xboxOneXResolution: 3
+ xboxOneMonoLoggingLevel: 0
+ xboxOneLoggingLevel: 1
+ xboxOneDisableEsram: 0
+ xboxOneEnableTypeOptimization: 0
+ xboxOnePresentImmediateThreshold: 0
+ switchQueueCommandMemory: 1048576
+ switchQueueControlMemory: 16384
+ switchQueueComputeMemory: 262144
+ switchNVNShaderPoolsGranularity: 33554432
+ switchNVNDefaultPoolsGranularity: 16777216
+ switchNVNOtherPoolsGranularity: 16777216
+ switchGpuScratchPoolGranularity: 2097152
+ switchAllowGpuScratchShrinking: 0
+ switchNVNMaxPublicTextureIDCount: 0
+ switchNVNMaxPublicSamplerIDCount: 0
+ switchMaxWorkerMultiple: 8
+ switchNVNGraphicsFirmwareMemory: 32
+ vulkanNumSwapchainBuffers: 3
+ vulkanEnableSetSRGBWrite: 0
+ vulkanEnablePreTransform: 0
+ vulkanEnableLateAcquireNextImage: 0
+ vulkanEnableCommandBufferRecycling: 1
+ loadStoreDebugModeEnabled: 0
+ visionOSBundleVersion: 1.0
+ tvOSBundleVersion: 1.0
+ bundleVersion: 1.0
+ preloadedAssets: []
+ metroInputSource: 0
+ wsaTransparentSwapchain: 0
+ m_HolographicPauseOnTrackingLoss: 1
+ xboxOneDisableKinectGpuReservation: 1
+ xboxOneEnable7thCore: 1
+ vrSettings:
+ enable360StereoCapture: 0
+ isWsaHolographicRemotingEnabled: 0
+ enableFrameTimingStats: 0
+ enableOpenGLProfilerGPURecorders: 1
+ allowHDRDisplaySupport: 0
+ useHDRDisplay: 0
+ hdrBitDepth: 0
+ m_ColorGamuts: 00000000
+ targetPixelDensity: 30
+ resolutionScalingMode: 0
+ resetResolutionOnWindowResize: 0
+ androidSupportedAspectRatio: 1
+ androidMaxAspectRatio: 2.1
+ androidMinAspectRatio: 1
+ applicationIdentifier:
+ Standalone: com.DefaultCompany.CharacterControllerMovingBodies
+ buildNumber:
+ Standalone: 0
+ VisionOS: 0
+ iPhone: 0
+ tvOS: 0
+ overrideDefaultApplicationIdentifier: 0
+ AndroidBundleVersionCode: 1
+ AndroidMinSdkVersion: 23
+ AndroidTargetSdkVersion: 0
+ AndroidPreferredInstallLocation: 1
+ aotOptions:
+ stripEngineCode: 1
+ iPhoneStrippingLevel: 0
+ iPhoneScriptCallOptimization: 0
+ ForceInternetPermission: 0
+ ForceSDCardPermission: 0
+ CreateWallpaper: 0
+ androidSplitApplicationBinary: 0
+ keepLoadedShadersAlive: 0
+ StripUnusedMeshComponents: 0
+ strictShaderVariantMatching: 0
+ VertexChannelCompressionMask: 4054
+ iPhoneSdkVersion: 988
+ iOSSimulatorArchitecture: 0
+ iOSTargetOSVersionString: 13.0
+ tvOSSdkVersion: 0
+ tvOSSimulatorArchitecture: 0
+ tvOSRequireExtendedGameController: 0
+ tvOSTargetOSVersionString: 13.0
+ VisionOSSdkVersion: 0
+ VisionOSTargetOSVersionString: 1.0
+ uIPrerenderedIcon: 0
+ uIRequiresPersistentWiFi: 0
+ uIRequiresFullScreen: 1
+ uIStatusBarHidden: 1
+ uIExitOnSuspend: 0
+ uIStatusBarStyle: 0
+ appleTVSplashScreen: {fileID: 0}
+ appleTVSplashScreen2x: {fileID: 0}
+ tvOSSmallIconLayers: []
+ tvOSSmallIconLayers2x: []
+ tvOSLargeIconLayers: []
+ tvOSLargeIconLayers2x: []
+ tvOSTopShelfImageLayers: []
+ tvOSTopShelfImageLayers2x: []
+ tvOSTopShelfImageWideLayers: []
+ tvOSTopShelfImageWideLayers2x: []
+ iOSLaunchScreenType: 0
+ iOSLaunchScreenPortrait: {fileID: 0}
+ iOSLaunchScreenLandscape: {fileID: 0}
+ iOSLaunchScreenBackgroundColor:
+ serializedVersion: 2
+ rgba: 0
+ iOSLaunchScreenFillPct: 100
+ iOSLaunchScreenSize: 100
+ iOSLaunchScreeniPadType: 0
+ iOSLaunchScreeniPadImage: {fileID: 0}
+ iOSLaunchScreeniPadBackgroundColor:
+ serializedVersion: 2
+ rgba: 0
+ iOSLaunchScreeniPadFillPct: 100
+ iOSLaunchScreeniPadSize: 100
+ iOSLaunchScreenCustomStoryboardPath:
+ iOSLaunchScreeniPadCustomStoryboardPath:
+ iOSDeviceRequirements: []
+ iOSURLSchemes: []
+ macOSURLSchemes: []
+ iOSBackgroundModes: 0
+ iOSMetalForceHardShadows: 0
+ metalEditorSupport: 1
+ metalAPIValidation: 1
+ metalCompileShaderBinary: 0
+ iOSRenderExtraFrameOnPause: 0
+ iosCopyPluginsCodeInsteadOfSymlink: 0
+ appleDeveloperTeamID:
+ iOSManualSigningProvisioningProfileID:
+ tvOSManualSigningProvisioningProfileID:
+ VisionOSManualSigningProvisioningProfileID:
+ iOSManualSigningProvisioningProfileType: 0
+ tvOSManualSigningProvisioningProfileType: 0
+ VisionOSManualSigningProvisioningProfileType: 0
+ appleEnableAutomaticSigning: 0
+ iOSRequireARKit: 0
+ iOSAutomaticallyDetectAndAddCapabilities: 1
+ appleEnableProMotion: 0
+ shaderPrecisionModel: 0
+ clonedFromGUID: 00000000000000000000000000000000
+ templatePackageId:
+ templateDefaultScene:
+ useCustomMainManifest: 0
+ useCustomLauncherManifest: 0
+ useCustomMainGradleTemplate: 0
+ useCustomLauncherGradleManifest: 0
+ useCustomBaseGradleTemplate: 0
+ useCustomGradlePropertiesTemplate: 0
+ useCustomGradleSettingsTemplate: 0
+ useCustomProguardFile: 0
+ AndroidTargetArchitectures: 2
+ AndroidSplashScreenScale: 0
+ androidSplashScreen: {fileID: 0}
+ AndroidKeystoreName:
+ AndroidKeyaliasName:
+ AndroidEnableArmv9SecurityFeatures: 0
+ AndroidEnableArm64MTE: 0
+ AndroidBuildApkPerCpuArchitecture: 0
+ AndroidTVCompatibility: 0
+ AndroidIsGame: 1
+ AndroidEnableTango: 0
+ androidEnableBanner: 1
+ androidUseLowAccuracyLocation: 0
+ androidUseCustomKeystore: 0
+ m_AndroidBanners:
+ - width: 320
+ height: 180
+ banner: {fileID: 0}
+ androidGamepadSupportLevel: 0
+ AndroidMinifyRelease: 0
+ AndroidMinifyDebug: 0
+ AndroidValidateAppBundleSize: 1
+ AndroidAppBundleSizeToValidate: 200
+ AndroidReportGooglePlayAppDependencies: 1
+ androidSymbolsSizeThreshold: 800
+ m_BuildTargetIcons: []
+ m_BuildTargetPlatformIcons: []
+ m_BuildTargetBatching: []
+ m_BuildTargetShaderSettings: []
+ m_BuildTargetGraphicsJobs: []
+ m_BuildTargetGraphicsJobMode: []
+ m_BuildTargetGraphicsAPIs: []
+ m_BuildTargetVRSettings: []
+ m_DefaultShaderChunkSizeInMB: 16
+ m_DefaultShaderChunkCount: 0
+ openGLRequireES31: 0
+ openGLRequireES31AEP: 0
+ openGLRequireES32: 0
+ m_TemplateCustomTags: {}
+ mobileMTRendering:
+ Android: 1
+ VisionOS: 1
+ iPhone: 1
+ tvOS: 1
+ m_BuildTargetGroupLightmapEncodingQuality: []
+ m_BuildTargetGroupLightmapSettings: []
+ m_BuildTargetGroupLoadStoreDebugModeSettings: []
+ m_BuildTargetNormalMapEncoding: []
+ m_BuildTargetDefaultTextureCompressionFormat: []
+ playModeTestRunnerEnabled: 0
+ runPlayModeTestAsEditModeTest: 0
+ actionOnDotNetUnhandledException: 1
+ enableInternalProfiler: 0
+ logObjCUncaughtExceptions: 1
+ enableCrashReportAPI: 0
+ cameraUsageDescription:
+ locationUsageDescription:
+ microphoneUsageDescription:
+ bluetoothUsageDescription:
+ macOSTargetOSVersion: 11.0
+ switchNMETAOverride:
+ switchNetLibKey:
+ switchSocketMemoryPoolSize: 6144
+ switchSocketAllocatorPoolSize: 128
+ switchSocketConcurrencyLimit: 14
+ switchScreenResolutionBehavior: 2
+ switchUseCPUProfiler: 0
+ switchEnableFileSystemTrace: 0
+ switchLTOSetting: 0
+ switchApplicationID: 0x01004b9000490000
+ switchNSODependencies:
+ switchCompilerFlags:
+ switchTitleNames_0:
+ switchTitleNames_1:
+ switchTitleNames_2:
+ switchTitleNames_3:
+ switchTitleNames_4:
+ switchTitleNames_5:
+ switchTitleNames_6:
+ switchTitleNames_7:
+ switchTitleNames_8:
+ switchTitleNames_9:
+ switchTitleNames_10:
+ switchTitleNames_11:
+ switchTitleNames_12:
+ switchTitleNames_13:
+ switchTitleNames_14:
+ switchTitleNames_15:
+ switchPublisherNames_0:
+ switchPublisherNames_1:
+ switchPublisherNames_2:
+ switchPublisherNames_3:
+ switchPublisherNames_4:
+ switchPublisherNames_5:
+ switchPublisherNames_6:
+ switchPublisherNames_7:
+ switchPublisherNames_8:
+ switchPublisherNames_9:
+ switchPublisherNames_10:
+ switchPublisherNames_11:
+ switchPublisherNames_12:
+ switchPublisherNames_13:
+ switchPublisherNames_14:
+ switchPublisherNames_15:
+ switchIcons_0: {fileID: 0}
+ switchIcons_1: {fileID: 0}
+ switchIcons_2: {fileID: 0}
+ switchIcons_3: {fileID: 0}
+ switchIcons_4: {fileID: 0}
+ switchIcons_5: {fileID: 0}
+ switchIcons_6: {fileID: 0}
+ switchIcons_7: {fileID: 0}
+ switchIcons_8: {fileID: 0}
+ switchIcons_9: {fileID: 0}
+ switchIcons_10: {fileID: 0}
+ switchIcons_11: {fileID: 0}
+ switchIcons_12: {fileID: 0}
+ switchIcons_13: {fileID: 0}
+ switchIcons_14: {fileID: 0}
+ switchIcons_15: {fileID: 0}
+ switchSmallIcons_0: {fileID: 0}
+ switchSmallIcons_1: {fileID: 0}
+ switchSmallIcons_2: {fileID: 0}
+ switchSmallIcons_3: {fileID: 0}
+ switchSmallIcons_4: {fileID: 0}
+ switchSmallIcons_5: {fileID: 0}
+ switchSmallIcons_6: {fileID: 0}
+ switchSmallIcons_7: {fileID: 0}
+ switchSmallIcons_8: {fileID: 0}
+ switchSmallIcons_9: {fileID: 0}
+ switchSmallIcons_10: {fileID: 0}
+ switchSmallIcons_11: {fileID: 0}
+ switchSmallIcons_12: {fileID: 0}
+ switchSmallIcons_13: {fileID: 0}
+ switchSmallIcons_14: {fileID: 0}
+ switchSmallIcons_15: {fileID: 0}
+ switchManualHTML:
+ switchAccessibleURLs:
+ switchLegalInformation:
+ switchMainThreadStackSize: 1048576
+ switchPresenceGroupId:
+ switchLogoHandling: 0
+ switchReleaseVersion: 0
+ switchDisplayVersion: 1.0.0
+ switchStartupUserAccount: 0
+ switchSupportedLanguagesMask: 0
+ switchLogoType: 0
+ switchApplicationErrorCodeCategory:
+ switchUserAccountSaveDataSize: 0
+ switchUserAccountSaveDataJournalSize: 0
+ switchApplicationAttribute: 0
+ switchCardSpecSize: -1
+ switchCardSpecClock: -1
+ switchRatingsMask: 0
+ switchRatingsInt_0: 0
+ switchRatingsInt_1: 0
+ switchRatingsInt_2: 0
+ switchRatingsInt_3: 0
+ switchRatingsInt_4: 0
+ switchRatingsInt_5: 0
+ switchRatingsInt_6: 0
+ switchRatingsInt_7: 0
+ switchRatingsInt_8: 0
+ switchRatingsInt_9: 0
+ switchRatingsInt_10: 0
+ switchRatingsInt_11: 0
+ switchRatingsInt_12: 0
+ switchLocalCommunicationIds_0:
+ switchLocalCommunicationIds_1:
+ switchLocalCommunicationIds_2:
+ switchLocalCommunicationIds_3:
+ switchLocalCommunicationIds_4:
+ switchLocalCommunicationIds_5:
+ switchLocalCommunicationIds_6:
+ switchLocalCommunicationIds_7:
+ switchParentalControl: 0
+ switchAllowsScreenshot: 1
+ switchAllowsVideoCapturing: 1
+ switchAllowsRuntimeAddOnContentInstall: 0
+ switchDataLossConfirmation: 0
+ switchUserAccountLockEnabled: 0
+ switchSystemResourceMemory: 16777216
+ switchSupportedNpadStyles: 22
+ switchNativeFsCacheSize: 32
+ switchIsHoldTypeHorizontal: 1
+ switchSupportedNpadCount: 8
+ switchEnableTouchScreen: 1
+ switchSocketConfigEnabled: 0
+ switchTcpInitialSendBufferSize: 32
+ switchTcpInitialReceiveBufferSize: 64
+ switchTcpAutoSendBufferSizeMax: 256
+ switchTcpAutoReceiveBufferSizeMax: 256
+ switchUdpSendBufferSize: 9
+ switchUdpReceiveBufferSize: 42
+ switchSocketBufferEfficiency: 4
+ switchSocketInitializeEnabled: 1
+ switchNetworkInterfaceManagerInitializeEnabled: 1
+ switchDisableHTCSPlayerConnection: 0
+ switchUseNewStyleFilepaths: 1
+ switchUseLegacyFmodPriorities: 0
+ switchUseMicroSleepForYield: 1
+ switchEnableRamDiskSupport: 0
+ switchMicroSleepForYieldTime: 25
+ switchRamDiskSpaceSize: 12
+ switchUpgradedPlayerSettingsToNMETA: 0
+ ps4NPAgeRating: 12
+ ps4NPTitleSecret:
+ ps4NPTrophyPackPath:
+ ps4ParentalLevel: 11
+ ps4ContentID: ED1633-NPXX51362_00-0000000000000000
+ ps4Category: 0
+ ps4MasterVersion: 01.00
+ ps4AppVersion: 01.00
+ ps4AppType: 0
+ ps4ParamSfxPath:
+ ps4VideoOutPixelFormat: 0
+ ps4VideoOutInitialWidth: 1920
+ ps4VideoOutBaseModeInitialWidth: 1920
+ ps4VideoOutReprojectionRate: 60
+ ps4PronunciationXMLPath:
+ ps4PronunciationSIGPath:
+ ps4BackgroundImagePath:
+ ps4StartupImagePath:
+ ps4StartupImagesFolder:
+ ps4IconImagesFolder:
+ ps4SaveDataImagePath:
+ ps4SdkOverride:
+ ps4BGMPath:
+ ps4ShareFilePath:
+ ps4ShareOverlayImagePath:
+ ps4PrivacyGuardImagePath:
+ ps4ExtraSceSysFile:
+ ps4NPtitleDatPath:
+ ps4RemotePlayKeyAssignment: -1
+ ps4RemotePlayKeyMappingDir:
+ ps4PlayTogetherPlayerCount: 0
+ ps4EnterButtonAssignment: 2
+ ps4ApplicationParam1: 0
+ ps4ApplicationParam2: 0
+ ps4ApplicationParam3: 0
+ ps4ApplicationParam4: 0
+ ps4DownloadDataSize: 0
+ ps4GarlicHeapSize: 2048
+ ps4ProGarlicHeapSize: 2560
+ playerPrefsMaxSize: 32768
+ ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
+ ps4pnSessions: 1
+ ps4pnPresence: 1
+ ps4pnFriends: 1
+ ps4pnGameCustomData: 1
+ playerPrefsSupport: 0
+ enableApplicationExit: 0
+ resetTempFolder: 1
+ restrictedAudioUsageRights: 0
+ ps4UseResolutionFallback: 0
+ ps4ReprojectionSupport: 0
+ ps4UseAudio3dBackend: 0
+ ps4UseLowGarlicFragmentationMode: 1
+ ps4SocialScreenEnabled: 0
+ ps4ScriptOptimizationLevel: 2
+ ps4Audio3dVirtualSpeakerCount: 14
+ ps4attribCpuUsage: 0
+ ps4PatchPkgPath:
+ ps4PatchLatestPkgPath:
+ ps4PatchChangeinfoPath:
+ ps4PatchDayOne: 0
+ ps4attribUserManagement: 0
+ ps4attribMoveSupport: 0
+ ps4attrib3DSupport: 0
+ ps4attribShareSupport: 0
+ ps4attribExclusiveVR: 0
+ ps4disableAutoHideSplash: 0
+ ps4videoRecordingFeaturesUsed: 0
+ ps4contentSearchFeaturesUsed: 0
+ ps4CompatibilityPS5: 0
+ ps4AllowPS5Detection: 0
+ ps4GPU800MHz: 1
+ ps4attribEyeToEyeDistanceSettingVR: 0
+ ps4IncludedModules: []
+ ps4attribVROutputEnabled: 0
+ monoEnv:
+ splashScreenBackgroundSourceLandscape: {fileID: 0}
+ splashScreenBackgroundSourcePortrait: {fileID: 0}
+ blurSplashScreenBackground: 1
+ spritePackerPolicy:
+ webGLMemorySize: 32
+ webGLExceptionSupport: 1
+ webGLNameFilesAsHashes: 0
+ webGLShowDiagnostics: 0
+ webGLDataCaching: 1
+ webGLDebugSymbols: 0
+ webGLEmscriptenArgs:
+ webGLModulesDirectory:
+ webGLTemplate: APPLICATION:Default
+ webGLAnalyzeBuildSize: 0
+ webGLUseEmbeddedResources: 0
+ webGLCompressionFormat: 1
+ webGLWasmArithmeticExceptions: 0
+ webGLLinkerTarget: 1
+ webGLThreadsSupport: 0
+ webGLDecompressionFallback: 0
+ webGLInitialMemorySize: 32
+ webGLMaximumMemorySize: 2048
+ webGLMemoryGrowthMode: 2
+ webGLMemoryLinearGrowthStep: 16
+ webGLMemoryGeometricGrowthStep: 0.2
+ webGLMemoryGeometricGrowthCap: 96
+ webGLEnableWebGPU: 0
+ webGLPowerPreference: 2
+ webGLWebAssemblyTable: 0
+ webGLWebAssemblyBigInt: 0
+ webGLCloseOnQuit: 0
+ webWasm2023: 0
+ scriptingDefineSymbols: {}
+ additionalCompilerArguments: {}
+ platformArchitecture: {}
+ scriptingBackend: {}
+ il2cppCompilerConfiguration: {}
+ il2cppCodeGeneration: {}
+ il2cppStacktraceInformation: {}
+ managedStrippingLevel: {}
+ incrementalIl2cppBuild: {}
+ suppressCommonWarnings: 1
+ allowUnsafeCode: 0
+ useDeterministicCompilation: 1
+ additionalIl2CppArgs:
+ scriptingRuntimeVersion: 1
+ gcIncremental: 1
+ gcWBarrierValidation: 0
+ apiCompatibilityLevelPerPlatform: {}
+ editorAssembliesCompatibilityLevel: 1
+ m_RenderingPath: 1
+ m_MobileRenderingPath: 1
+ metroPackageName: CharacterControllerMovingBodies
+ metroPackageVersion: 1.0.0.0
+ metroCertificatePath:
+ metroCertificatePassword:
+ metroCertificateSubject:
+ metroCertificateIssuer:
+ metroCertificateNotAfter: 0000000000000000
+ metroApplicationDescription: CharacterControllerMovingBodies
+ wsaImages: {}
+ metroTileShortName: CharacterControllerMovingBodies
+ metroTileShowName: 0
+ metroMediumTileShowName: 0
+ metroLargeTileShowName: 0
+ metroWideTileShowName: 0
+ metroSupportStreamingInstall: 0
+ metroLastRequiredScene: 0
+ metroDefaultTileSize: 1
+ metroTileForegroundText: 2
+ metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
+ metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
+ metroSplashScreenUseBackgroundColor: 0
+ syncCapabilities: 0
+ platformCapabilities: {}
+ metroTargetDeviceFamilies: {}
+ metroFTAName:
+ metroFTAFileTypes: []
+ metroProtocolName:
+ vcxProjDefaultLanguage:
+ XboxOneProductId:
+ XboxOneUpdateKey:
+ XboxOneSandboxId:
+ XboxOneContentId:
+ XboxOneTitleId:
+ XboxOneSCId:
+ XboxOneGameOsOverridePath:
+ XboxOnePackagingOverridePath:
+ XboxOneAppManifestOverridePath:
+ XboxOneVersion: 1.0.0.0
+ XboxOnePackageEncryption: 0
+ XboxOnePackageUpdateGranularity: 2
+ XboxOneDescription:
+ XboxOneLanguage:
+ - enus
+ XboxOneCapability: []
+ XboxOneGameRating: {}
+ XboxOneIsContentPackage: 0
+ XboxOneEnhancedXboxCompatibilityMode: 0
+ XboxOneEnableGPUVariability: 1
+ XboxOneSockets: {}
+ XboxOneSplashScreen: {fileID: 0}
+ XboxOneAllowedProductIds: []
+ XboxOnePersistentLocalStorageSize: 0
+ XboxOneXTitleMemory: 8
+ XboxOneOverrideIdentityName:
+ XboxOneOverrideIdentityPublisher:
+ vrEditorSettings: {}
+ cloudServicesEnabled: {}
+ luminIcon:
+ m_Name:
+ m_ModelFolderPath:
+ m_PortalFolderPath:
+ luminCert:
+ m_CertPath:
+ m_SignPackage: 1
+ luminIsChannelApp: 0
+ luminVersion:
+ m_VersionCode: 1
+ m_VersionName:
+ hmiPlayerDataPath:
+ hmiForceSRGBBlit: 0
+ embeddedLinuxEnableGamepadInput: 0
+ hmiCpuConfiguration:
+ hmiLogStartupTiming: 0
+ qnxGraphicConfPath:
+ apiCompatibilityLevel: 6
+ captureStartupLogs: {}
+ activeInputHandler: 0
+ windowsGamepadBackendHint: 0
+ cloudProjectId:
+ framebufferDepthMemorylessMode: 0
+ qualitySettingsNames: []
+ projectName:
+ organizationId:
+ cloudEnabled: 0
+ legacyClampBlendShapeWeights: 0
+ hmiLoadingImage: {fileID: 0}
+ platformRequiresReadableAssets: 0
+ virtualTexturingSupportEnabled: 0
+ insecureHttpOption: 0
+ androidVulkanDenyFilterList: []
+ androidVulkanAllowFilterList: []
diff --git a/Examples/CharacterControllerMovingBodies/Readme.md b/Examples/CharacterControllerMovingBodies/Readme.md
new file mode 100644
index 0000000000..2403b27a35
--- /dev/null
+++ b/Examples/CharacterControllerMovingBodies/Readme.md
@@ -0,0 +1,27 @@
+# Netcode for GameObjects Smooth Transform Space Transitions
+## Non-Rigidbody CharacterController Parenting with Moving Bodies
+
+This example provides you with the fundamental building blocks for smooth synchronized transitions between two non-rigidbody based objects. This includes transitioning from world to local, local to world, and local to local transform spaces.
+
+### The `CharacterController`
+
+The `CharacterController` component is assigned to the `PlayerNoRigidbody` player prefab. It includes a `MoverScriptNoRigidbody` that handles all of the player's motion and includes some additional "non-rigidbody to non-rigidbody" collision handling logic that is applied when a player bumps into a rotation and/or moving body. The player prefab includes a child "PlayerBallPrime" that rotates around the player in local space (nested `NetworkTransform`), and the "PlayerBallPrime" has 3 children ("PlayerBallChild1-3") that each rotates around a different axis of the "PlayerBallPrime". While the end resulting effect is kind of cool looking, they provide a point of reference as to whether there is any deviation of each child's given axial path relative to each parent level. Additionally, it shows how tick synchronized nested `NetworkTransform` components keep synchronized with their parent and how that persists when the parent is parented or has its parent removed.
+
+### Rotating Bodies
+#### StationaryBodyA&B
+The stationary bodies are representative of changing the parenting of a `NetworkObject` between two `NetworkObject` instances while remaining in local space, interpolating, and smoothly transitioning between the two parents.
+
+
+#### RotatingBody
+The RotatingBody are just provide an example of a rotating non-Rigidbody object and one way to handle a rotation based collision. This also tests world to local and local to world transform space updates.
+
+
+#### MovingRotatingBody & ElevatorBody
+Both of these bodies use a simple path to follow.
+The MovingRotatingBody moves between two points on the world Z-axis and rotates while moving. The ElevatorBody moves between 4 points (forming a rectangular path) to show motion on more than one axis.
+
+
+
+### Example Limitations
+This example is primarily to provide a starting point for anyone interested in exploring a non-Rigidbody motion based project and is not to be considered a full working solution but more of a place to start. As an example. you might notice there is no consideration of Y-axis motion when on the elevator so it impacts the `MoverScriptNoRigidbody` jumping. This could be extended to take into consideration the bodies within the `RotatingBodyLogic` script that would increase the upward velocity amount when on a moving body that does move in the Y Axis. This could be further extended by adding a `MonoBehaviour` component to the path points that define its direction of movement or by a normalized direction vector between points to determine the movement of the body. These kind of details are left up to you to determine what style best fits your project.
+
diff --git a/Examples/PingTool/.gitignore b/Examples/PingTool/.gitignore
new file mode 100644
index 0000000000..2800399634
--- /dev/null
+++ b/Examples/PingTool/.gitignore
@@ -0,0 +1,83 @@
+# This .gitignore file should be placed at the root of your Unity project directory
+#
+# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
+#
+/[Ll]ibrary/
+/[Tt]emp/
+/[Oo]bj/
+/[Bb]uild/
+/[Bb]uilds/
+/[Ll]ogs/
+/[Uu]ser[Ss]ettings/
+
+# MemoryCaptures can get excessive in size.
+# They also could contain extremely sensitive data
+/[Mm]emoryCaptures/
+
+# Asset meta data should only be ignored when the corresponding asset is also ignored
+!/[Aa]ssets/**/*.meta
+
+# Uncomment this line if you wish to ignore the asset store tools plugin
+# /[Aa]ssets/AssetStoreTools*
+
+# Autogenerated Jetbrains Rider plugin
+/[Aa]ssets/Plugins/Editor/JetBrains*
+
+# Visual Studio cache directory
+.vs/
+
+# Gradle cache directory
+.gradle/
+
+# Autogenerated VS/MD/Consulo solution and project files
+ExportedObj/
+.consulo/
+*.csproj
+*.unityproj
+*.sln
+*.suo
+*.tmp
+*.user
+*.userprefs
+*.pidb
+*.booproj
+*.svd
+*.pdb
+*.mdb
+*.opendb
+*.VC.db
+
+# Unity3D generated meta files
+*.pidb.meta
+*.pdb.meta
+*.mdb.meta
+
+# Unity3D generated file on crash reports
+sysinfo.txt
+
+# Builds
+*.apk
+*.aab
+*.unitypackage
+
+# Crashlytics generated file
+crashlytics-build.properties
+
+# Packed Addressables
+/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
+
+# Temporary auto-generated Android Assets
+/[Aa]ssets/[Ss]treamingAssets/aa.meta
+/[Aa]ssets/[Ss]treamingAssets/aa/*
+/[Aa]ssets/[Ss]treamingAssets/BuildInfo.json
+/[Aa]ssets/[Ss]treamingAssets/BuildInfo.json.meta
+
+# Secrets
+*.pem
+*.pem.meta
+
+InitTestScene*
+
+boot.config
+SceneTemplateSettings.json
+*BurstAotSettings*.json
diff --git a/Examples/PingTool/Assets/DefaultNetworkPrefabs.asset b/Examples/PingTool/Assets/DefaultNetworkPrefabs.asset
new file mode 100644
index 0000000000..72cef84a6d
--- /dev/null
+++ b/Examples/PingTool/Assets/DefaultNetworkPrefabs.asset
@@ -0,0 +1,31 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e651dbb3fbac04af2b8f5abf007ddc23, type: 3}
+ m_Name: DefaultNetworkPrefabs
+ m_EditorClassIdentifier:
+ IsDefault: 1
+ List:
+ - Override: 0
+ Prefab: {fileID: 8921789205124766477, guid: 89b57e576a8d47643b2dbd45b1f8cab1, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
+ - Override: 0
+ Prefab: {fileID: 4874009706086500699, guid: 3f5e8ae5613c82a4f9f859c11a4f2e09, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
+ - Override: 0
+ Prefab: {fileID: 3439633038736912633, guid: 398aad09d8b2a47eba664a076763cdcc, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
diff --git a/Examples/PingTool/Assets/DefaultNetworkPrefabs.asset.meta b/Examples/PingTool/Assets/DefaultNetworkPrefabs.asset.meta
new file mode 100644
index 0000000000..fee27b3ade
--- /dev/null
+++ b/Examples/PingTool/Assets/DefaultNetworkPrefabs.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: aa82390bfdde2564f828b8e5be375282
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/Materials.meta b/Examples/PingTool/Assets/Materials.meta
new file mode 100644
index 0000000000..463de70d61
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d5b7ad71451c27e4291295cfffc10328
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/Materials/ChildLocal.mat b/Examples/PingTool/Assets/Materials/ChildLocal.mat
new file mode 100644
index 0000000000..b6fd2dd9a1
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/ChildLocal.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ChildLocal
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHAPREMULTIPLY_ON
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 3
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 0.8980392, g: 0.039215658, b: 0.7682729, a: 0.2509804}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/PingTool/Assets/Materials/ChildLocal.mat.meta b/Examples/PingTool/Assets/Materials/ChildLocal.mat.meta
new file mode 100644
index 0000000000..35e4d565be
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/ChildLocal.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 45fc555bc05bfee4ab8b0d536799ecee
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/Materials/ChildLocalNoParentSync.mat b/Examples/PingTool/Assets/Materials/ChildLocalNoParentSync.mat
new file mode 100644
index 0000000000..c44172e7a7
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/ChildLocalNoParentSync.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ChildLocalNoParentSync
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHAPREMULTIPLY_ON
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 3
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 0.039215658, g: 0.78592235, b: 0.8980392, a: 0.2509804}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/PingTool/Assets/Materials/ChildLocalNoParentSync.mat.meta b/Examples/PingTool/Assets/Materials/ChildLocalNoParentSync.mat.meta
new file mode 100644
index 0000000000..3a26e43d98
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/ChildLocalNoParentSync.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: affef70511a06dd46b8f52636020af4a
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/Materials/ChildWorld.mat b/Examples/PingTool/Assets/Materials/ChildWorld.mat
new file mode 100644
index 0000000000..0c2bf4b187
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/ChildWorld.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ChildWorld
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHAPREMULTIPLY_ON
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 3
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 0.3783494, g: 0.039215658, b: 0.8980392, a: 0.2509804}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/PingTool/Assets/Materials/ChildWorld.mat.meta b/Examples/PingTool/Assets/Materials/ChildWorld.mat.meta
new file mode 100644
index 0000000000..9a00ded8c6
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/ChildWorld.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 15d0bda12a233964086aee5c0c357e24
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/Materials/ChildWorldNoParentSync.mat b/Examples/PingTool/Assets/Materials/ChildWorldNoParentSync.mat
new file mode 100644
index 0000000000..86b27eb5c9
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/ChildWorldNoParentSync.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ChildWorldNoParentSync
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHAPREMULTIPLY_ON
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 3000
+ stringTagMap:
+ RenderType: Transparent
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 10
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 3
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 0.039215658, g: 0.8980392, b: 0.09095798, a: 0.2509804}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/PingTool/Assets/Materials/ChildWorldNoParentSync.mat.meta b/Examples/PingTool/Assets/Materials/ChildWorldNoParentSync.mat.meta
new file mode 100644
index 0000000000..5ab7ff2e72
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/ChildWorldNoParentSync.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a5e199307b2e0894294d9c8bee99a691
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/Materials/Direction.mat b/Examples/PingTool/Assets/Materials/Direction.mat
new file mode 100644
index 0000000000..ed5ed117c3
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/Direction.mat
@@ -0,0 +1,84 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Direction
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 0.8962264, g: 0.52830994, b: 0.038047332, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/PingTool/Assets/Materials/Direction.mat.meta b/Examples/PingTool/Assets/Materials/Direction.mat.meta
new file mode 100644
index 0000000000..c93791fac0
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/Direction.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5324c76c2bab7344badd5ea27a40bcb5
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/Materials/GridPattern.mat b/Examples/PingTool/Assets/Materials/GridPattern.mat
new file mode 100644
index 0000000000..f44981f387
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/GridPattern.mat
@@ -0,0 +1,85 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: GridPattern
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _GLOSSYREFLECTIONS_OFF
+ - _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 1
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ 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: 6, y: 6}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: a092c5fa8c60ed04aa1d72555f1740bc, type: 3}
+ m_Scale: {x: 6, y: 6}
+ 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_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0.785
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 1
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0.254717, g: 0.23188858, b: 0.23188858, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/PingTool/Assets/Materials/GridPattern.mat.meta b/Examples/PingTool/Assets/Materials/GridPattern.mat.meta
new file mode 100644
index 0000000000..cbca0f4485
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/GridPattern.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 42c4a0ad1f9d67a45b12f68697321aad
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/Materials/Ground.mat b/Examples/PingTool/Assets/Materials/Ground.mat
new file mode 100644
index 0000000000..252ea1a0ed
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/Ground.mat
@@ -0,0 +1,79 @@
+%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: Ground
+ m_Shader: {fileID: 7, 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_Ints: []
+ 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.14769986, g: 0.1509434, b: 0.1473834, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Examples/PingTool/Assets/Materials/Ground.mat.meta b/Examples/PingTool/Assets/Materials/Ground.mat.meta
new file mode 100644
index 0000000000..6dbcac16d3
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/Ground.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9c73b921ea39f4344a19c2d1c7d6b314
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/Materials/PlayerMaterial.mat b/Examples/PingTool/Assets/Materials/PlayerMaterial.mat
new file mode 100644
index 0000000000..e7f5729956
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/PlayerMaterial.mat
@@ -0,0 +1,80 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: PlayerMaterial
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ 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_Ints: []
+ 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/Examples/PingTool/Assets/Materials/PlayerMaterial.mat.meta b/Examples/PingTool/Assets/Materials/PlayerMaterial.mat.meta
new file mode 100644
index 0000000000..1ceca58536
--- /dev/null
+++ b/Examples/PingTool/Assets/Materials/PlayerMaterial.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 44e292334941fe148b997ca2b01b5789
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/PingTool.meta b/Examples/PingTool/Assets/PingTool.meta
new file mode 100644
index 0000000000..ba9359124c
--- /dev/null
+++ b/Examples/PingTool/Assets/PingTool.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ce8d435e959ea9a41b4c776fc31f9550
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/PingTool/Assets/PingTool/NetStateMonitorConfiguration.asset b/Examples/PingTool/Assets/PingTool/NetStateMonitorConfiguration.asset
new file mode 100644
index 0000000000..8748ea24db
--- /dev/null
+++ b/Examples/PingTool/Assets/PingTool/NetStateMonitorConfiguration.asset
@@ -0,0 +1,188 @@
+%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: f51159758cdc14734b2cb6ec1e40e18e, type: 3}
+ m_Name: NetStateMonitorConfiguration
+ m_EditorClassIdentifier:
+ k__BackingField:
+ - k__BackingField: 1
+ k__BackingField: 2
+