├── ProjectSettings
├── ProjectVersion.txt
├── CommonBurstAotSettings.json
├── ClusterInputManager.asset
├── XRSettings.asset
├── VersionControlSettings.asset
├── TimeManager.asset
├── EditorBuildSettings.asset
├── VFXManager.asset
├── URPProjectSettings.asset
├── BurstAotSettings_StandaloneWindows.json
├── AudioManager.asset
├── TagManager.asset
├── PresetManager.asset
├── UnityConnectSettings.asset
├── PackageManagerSettings.asset
├── DynamicsManager.asset
├── EditorSettings.asset
├── NavMeshAreas.asset
├── Physics2DSettings.asset
├── GraphicsSettings.asset
├── QualitySettings.asset
├── InputManager.asset
└── ProjectSettings.asset
├── .vsconfig
├── Assets
├── UnitTests
│ ├── ECSTestsFixture
│ │ ├── ECSTestsFixture.cs.meta
│ │ ├── ECSTestsFixture.asmdef.meta
│ │ ├── ECSTestsFixture.asmdef
│ │ └── ECSTestsFixture.cs
│ ├── Editor
│ │ ├── EditorTests.cs
│ │ ├── EditorTests.asmdef.meta
│ │ ├── EditorTests.cs.meta
│ │ └── EditorTests.asmdef
│ ├── Editor.meta
│ ├── Runtime.meta
│ ├── ECSTestsFixture.meta
│ └── Runtime
│ │ ├── RuntimeTests.asmdef.meta
│ │ ├── RuntimeTests.cs.meta
│ │ ├── RuntimeTests.asmdef
│ │ └── RuntimeTests.cs
├── StressTest
│ ├── Health.prefab.meta
│ ├── StressTest.unity.meta
│ ├── OOPTest
│ │ ├── OOPScene.unity.meta
│ │ ├── OOPDamager.prefab.meta
│ │ ├── OOPHealth.prefab.meta
│ │ ├── OOPDamagerManual.prefab.meta
│ │ ├── OOPHealthManual.prefab.meta
│ │ ├── TestHealth.cs
│ │ ├── TestHealth.cs.meta
│ │ ├── TestHealthManual.cs
│ │ ├── OOPTestSetup.cs.meta
│ │ ├── TestDamager.cs.meta
│ │ ├── ManualUpdateManager.cs.meta
│ │ ├── TestDamagerManual.cs.meta
│ │ ├── TestHealthManual.cs.meta
│ │ ├── TestDamager.cs
│ │ ├── TestDamagerManual.cs
│ │ ├── ManualUpdateManager.cs
│ │ ├── OOPHealth.prefab
│ │ ├── OOPHealthManual.prefab
│ │ ├── OOPDamager.prefab
│ │ ├── OOPDamagerManual.prefab
│ │ ├── OOPTestSetup.cs
│ │ └── OOPScene.unity
│ ├── EntityDamageEvent.prefab.meta
│ ├── OOPTest.meta
│ ├── StressTest.asmdef.meta
│ ├── StressTest.meta
│ ├── StressTest
│ │ ├── New Sub Scene.unity.meta
│ │ └── New Sub Scene.unity
│ ├── TestEvents.meta
│ ├── Health.cs
│ ├── TestEvents
│ │ ├── Jobs.meta
│ │ ├── Jobs
│ │ │ ├── CustomJobTypes.meta
│ │ │ ├── PollDamageEventListJob.cs.meta
│ │ │ ├── ClearDamageEventBuffersJob.cs.meta
│ │ │ ├── DamagersWriteToStreamJob.cs.meta
│ │ │ ├── PollDamageEventBuffersJob.cs.meta
│ │ │ ├── PollDamageEventHashMapJob.cs.meta
│ │ │ ├── WriteStreamEventsToListJob.cs.meta
│ │ │ ├── WriteStreamEventsToBuffersJob.cs.meta
│ │ │ ├── ParallelWriteStreamEventsToHashMapJob.cs.meta
│ │ │ ├── SingleApplyStreamEventsToEntitiesJob.cs.meta
│ │ │ ├── ParallelApplyStreamEventsToEntitiesJob.cs.meta
│ │ │ ├── CustomJobTypes
│ │ │ │ ├── IJobNativeMultiHashMapVisitKeyValue.cs.meta
│ │ │ │ └── IJobNativeMultiHashMapVisitKeyValue.cs
│ │ │ ├── WriteStreamEventsToListJob.cs
│ │ │ ├── ClearDamageEventBuffersJob.cs
│ │ │ ├── WriteStreamEventsToBuffersJob.cs
│ │ │ ├── SingleApplyStreamEventsToEntitiesJob.cs
│ │ │ ├── DamagersWriteToStreamJob.cs
│ │ │ ├── PollDamageEventListJob.cs
│ │ │ ├── PollDamageEventBuffersJob.cs
│ │ │ ├── ParallelApplyStreamEventsToEntitiesJob.cs
│ │ │ ├── PollDamageEventHashMapJob.cs
│ │ │ └── ParallelWriteStreamEventsToHashMapJob.cs
│ │ ├── SingleDirectModificationSystem.cs.meta
│ │ ├── G_ParallelWriteToStream_SinglelPollList_System.cs.meta
│ │ ├── A_ParallelWriteToStream_ParallelPollBuffers_System.cs.meta
│ │ ├── B_SingleWriteToBuffers_ParallelPollBuffers_System.cs.meta
│ │ ├── D_ParallelWriteToStream_SingleApplyToEntities_System.cs.meta
│ │ ├── H_ParallelWriteToStream_SinglePollHashMap_System.cs.meta
│ │ ├── I_ParallelWriteToStream_ParallelPollHashMap_System.cs.meta
│ │ ├── C_ParallelWriteToBuffersECB_ParallelPollBuffers_System.cs.meta
│ │ ├── E_ParallelWriteToStream_ParallelApplyToEntities_System.cs.meta
│ │ ├── F_ParallelCreateEventEntities_SingleApplyToEntities_System.cs.meta
│ │ ├── SingleDirectModificationSystem.cs
│ │ ├── D_ParallelWriteToStream_SingleApplyToEntities_System.cs
│ │ ├── E_ParallelWriteToStream_ParallelApplyToEntities_System.cs
│ │ ├── B_SingleWriteToBuffers_ParallelPollBuffers_System.cs
│ │ ├── C_ParallelWriteToBuffersECB_ParallelPollBuffers_System.cs
│ │ ├── A_ParallelWriteToStream_ParallelPollBuffers_System.cs
│ │ ├── F_ParallelCreateEventEntities_SingleApplyToEntities_System.cs
│ │ ├── G_ParallelWriteToStream_SinglelPollList_System.cs
│ │ ├── I_ParallelWriteToStream_ParallelPollHashMap_System.cs
│ │ └── H_ParallelWriteToStream_SinglePollHashMap_System.cs
│ ├── Damager.cs
│ ├── Damager.cs.meta
│ ├── Health.cs.meta
│ ├── DamageEvent.cs.meta
│ ├── EventStressTest.cs.meta
│ ├── HealthAuthoring.cs.meta
│ ├── EventStressTestSystem.cs.meta
│ ├── EntityDamageEventAuthoring.cs.meta
│ ├── DamageEvent.cs
│ ├── EntityDamageEventAuthoring.cs
│ ├── HealthAuthoring.cs
│ ├── StressTest.asmdef
│ ├── EventStressTest.cs
│ ├── EntityDamageEvent.prefab
│ ├── Health.prefab
│ ├── EventStressTestSystem.cs
│ └── StressTest.unity
├── StressTest.meta
├── UnitTests.meta
├── SceneDependencyCache
│ ├── f7e964973451e4aae2adb87e8857ddc4.sceneWithBuildSettings
│ └── f7e964973451e4aae2adb87e8857ddc4.sceneWithBuildSettings.meta
├── SceneDependencyCache.meta
├── GlobalEntitiesDependencies.meta
└── GlobalEntitiesDependencies
│ ├── GlobalEntitySceneDependency.asset.meta
│ └── GlobalEntitySceneDependency.asset
├── .gitignore
├── Packages
├── manifest.json
└── packages-lock.json
└── UserSettings
└── EditorUserSettings.asset
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2020.3.30f1
2 | m_EditorVersionWithRevision: 2020.3.30f1 (1fb1bf06830e)
3 |
--------------------------------------------------------------------------------
/.vsconfig:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.0",
3 | "components": [
4 | "Microsoft.VisualStudio.Workload.ManagedGame"
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/ProjectSettings/CommonBurstAotSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "DisabledWarnings": ""
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Assets/UnitTests/ECSTestsFixture/ECSTestsFixture.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7ebfb2db26ad481495ba77508c7c6333
3 | timeCreated: 1650983513
--------------------------------------------------------------------------------
/ProjectSettings/ClusterInputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!236 &1
4 | ClusterInputManager:
5 | m_ObjectHideFlags: 0
6 | m_Inputs: []
7 |
--------------------------------------------------------------------------------
/Assets/UnitTests/Editor/EditorTests.cs:
--------------------------------------------------------------------------------
1 | ///
2 | /// Fortunately we can simply use the runtime tests class as base for the editor tests.
3 | ///
4 | public class EditorTests : RuntimeTests {}
--------------------------------------------------------------------------------
/Assets/StressTest/Health.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: da10ed77b519af5498cd44dd278809ca
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/StressTest/StressTest.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fe5dc9b353b36e044acea3f2c8dc3542
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/StressTest.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 15547cd0ca2f93e4e81044507a4f047d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0ff704ff4f0a2d947a0b1eeaebd0239f
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UnitTests.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: da9ca624062b7434bb576f5777f2694f
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/SceneDependencyCache/f7e964973451e4aae2adb87e8857ddc4.sceneWithBuildSettings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PhilSA/DOTSEventsStressTest/HEAD/Assets/SceneDependencyCache/f7e964973451e4aae2adb87e8857ddc4.sceneWithBuildSettings
--------------------------------------------------------------------------------
/Assets/StressTest/EntityDamageEvent.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ac1a7129127d30f4eaf965f202b2bb89
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPDamager.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ecb147aadf73f994cb54a79a0f9e4618
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPHealth.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3f0fda8189b166c46a7d837a744245ec
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UnitTests/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 38a79c85bc65912489b6791525dd949a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UnitTests/Runtime.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1ac00822268a49a409d6b5e6b9cdb3b0
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/SceneDependencyCache.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d927f47fe3116f549a15997206749dcf
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e7477f5f5f813ed4b8990eafd83d2290
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPDamagerManual.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ea16f7152ad748a43b73661550d3c0bf
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPHealthManual.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9b5f20ac40c18994fab833397a42e96a
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/StressTest/StressTest.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9aaf45b89a54dbf4683eaed10640dd90
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/StressTest/StressTest.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d3186d83992973b4598889b767e96801
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/StressTest/StressTest/New Sub Scene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 59179b63308c588499e370d60c06bf6f
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f196f9ef59df333409e69ba1d0dc4614
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/ProjectSettings/XRSettings.asset:
--------------------------------------------------------------------------------
1 | {
2 | "m_SettingKeys": [
3 | "VR Device Disabled",
4 | "VR Device User Alert"
5 | ],
6 | "m_SettingValues": [
7 | "False",
8 | "False"
9 | ]
10 | }
--------------------------------------------------------------------------------
/Assets/GlobalEntitiesDependencies.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 41a0511ef6e9ae34f9ac6501244d6e8c
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/StressTest/Health.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Mathematics;
5 |
6 | [Serializable]
7 | public struct Health : IComponentData
8 | {
9 | public float Value;
10 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 15d405e88d436654586344182e9d5df5
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UnitTests/ECSTestsFixture.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1d1372a8319b3724f9777193dabd9421
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UnitTests/Editor/EditorTests.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 43a2dfd113f5a4742b8464fc0289823b
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UnitTests/Runtime/RuntimeTests.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e8fe2d1b09594544c81aec23cbb98aad
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/CustomJobTypes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f5576d4a9b9dda543a8bb6fad5d4c5e9
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UnitTests/ECSTestsFixture/ECSTestsFixture.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a32f52c020953c741a0c3dbc3123cc40
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/SceneDependencyCache/f7e964973451e4aae2adb87e8857ddc4.sceneWithBuildSettings.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f7e964973451e4aae2adb87e8857ddc4
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/ProjectSettings/VersionControlSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!890905787 &1
4 | VersionControlSettings:
5 | m_ObjectHideFlags: 0
6 | m_Mode: Visible Meta Files
7 | m_CollabEditorSettings:
8 | inProgressEnabled: 1
9 |
--------------------------------------------------------------------------------
/ProjectSettings/TimeManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!5 &1
4 | TimeManager:
5 | m_ObjectHideFlags: 0
6 | Fixed Timestep: 0.02
7 | Maximum Allowed Timestep: 0.1
8 | m_TimeScale: 1
9 | Maximum Particle Timestep: 0.03
10 |
--------------------------------------------------------------------------------
/Assets/StressTest/Damager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Mathematics;
5 |
6 | [Serializable]
7 | public struct Damager : IComponentData
8 | {
9 | public Entity Target;
10 | public float Damage;
11 | }
12 |
--------------------------------------------------------------------------------
/Assets/GlobalEntitiesDependencies/GlobalEntitySceneDependency.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7e69b8e1a649941419f4021c977e3250
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/StressTest/Damager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a0a0a273b28991140bc506f526e0d192
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/Health.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8e28c1746a5f45d418a3ef46d392647a
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/TestHealth.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class TestHealth : MonoBehaviour
6 | {
7 | public float Health;
8 |
9 | public void ApplyDamage(float dmg)
10 | {
11 | Health -= dmg;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Assets/StressTest/DamageEvent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bf4a2da9a4dea5442beaf1f665c2b5f3
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/EventStressTest.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e13d43e0338b52a49bcf69b46bbc3510
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/HealthAuthoring.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8c4320ad7b8dd2e40bd76347a52393a9
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/TestHealth.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 78e81e6942501a04e83f032e41ef3c63
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/TestHealthManual.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class TestHealthManual : MonoBehaviour
6 | {
7 | public float Health;
8 |
9 | public void ApplyDamage(float dmg)
10 | {
11 | Health -= dmg;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Assets/UnitTests/Editor/EditorTests.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2b421bad4d6c0c44c9f8f5dcf3357f28
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/EventStressTestSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4e8ffd4a5015db04aa29b91d6ae36da1
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPTestSetup.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e6fcc56fff249f440ade1c91d2365b29
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/TestDamager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2bb256b4790bccc488d6bac9f87efeb7
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UnitTests/Runtime/RuntimeTests.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e5abe1aa1c76445469027bdd8a6a7a64
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/EntityDamageEventAuthoring.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f491b5c539c8df245a1218b79ed9d157
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/ManualUpdateManager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3ce533911132fc14a947177ac3184317
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/TestDamagerManual.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 64188a05588e5954b8592cbd6098a7d0
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/TestHealthManual.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ea78c7d144c2e4d49bd39f0bbdcb83d7
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/TestDamager.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class TestDamager : MonoBehaviour
6 | {
7 | public TestHealth Target;
8 | public float Damage;
9 |
10 | void Update()
11 | {
12 | Target.ApplyDamage(Damage);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/PollDamageEventListJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2204c4872de2b484e8226f7f185296a5
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorBuildSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1045 &1
4 | EditorBuildSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Scenes:
8 | - enabled: 1
9 | path: Assets/StressTest/OOPTest/OOPScene.unity
10 | guid: 0ff704ff4f0a2d947a0b1eeaebd0239f
11 | m_configObjects: {}
12 |
--------------------------------------------------------------------------------
/ProjectSettings/VFXManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!937362698 &1
4 | VFXManager:
5 | m_ObjectHideFlags: 0
6 | m_IndirectShader: {fileID: 0}
7 | m_CopyBufferShader: {fileID: 0}
8 | m_SortShader: {fileID: 0}
9 | m_RenderPipeSettingsPath:
10 | m_FixedTimeStep: 0.016666668
11 | m_MaxDeltaTime: 0.05
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/ClearDamageEventBuffersJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1f8f8645fcdc9634bbbd9f4496232a97
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/DamagersWriteToStreamJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bd8593c2f54dec349b76100041ed9246
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/PollDamageEventBuffersJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7e84fca50faf0af43b3ea46202539f92
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/PollDamageEventHashMapJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ba81a0e085e39f34db3cbc9b86d40239
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/WriteStreamEventsToListJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5ac1f49c7366ab3498405d1081b816e8
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/SingleDirectModificationSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: eccaad5ec3a89214e9c35148a9d8f83e
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/WriteStreamEventsToBuffersJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2f4ec4fb8ca66234983578f771d24d2b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/ParallelWriteStreamEventsToHashMapJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 24d853dce517d384687c3580f07f76a6
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/SingleApplyStreamEventsToEntitiesJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c0b91647fff7da34ab3f5646da0a1946
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/G_ParallelWriteToStream_SinglelPollList_System.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 211959eb4cabe2c41b9267f60b63cd96
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/ParallelApplyStreamEventsToEntitiesJob.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0460aa56a53f7c142861ffef5aeaca35
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/A_ParallelWriteToStream_ParallelPollBuffers_System.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5234fd156e329b0419c5064b0b86d275
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/B_SingleWriteToBuffers_ParallelPollBuffers_System.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d89fb343045f7054983abc3be62aaaab
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/D_ParallelWriteToStream_SingleApplyToEntities_System.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0cde680f15b045e49bd72a3170a89ff6
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/H_ParallelWriteToStream_SinglePollHashMap_System.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 822c4acc542e2ae4e9d2356228fc6c01
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/I_ParallelWriteToStream_ParallelPollHashMap_System.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b9a9b8f6cbadb2645bd258447c457840
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/TestDamagerManual.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class TestDamagerManual : MonoBehaviour
6 | {
7 | public TestHealthManual Target;
8 | public float Damage;
9 |
10 | public void ManualUpdate()
11 | {
12 | Target.ApplyDamage(Damage);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/C_ParallelWriteToBuffersECB_ParallelPollBuffers_System.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4f13fe36560e44d49aebbed452b606b4
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/E_ParallelWriteToStream_ParallelApplyToEntities_System.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 13df002aa9366e34ea38af0ce22ef386
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/CustomJobTypes/IJobNativeMultiHashMapVisitKeyValue.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d9885ab823cff7142ad9d70b35712b93
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/F_ParallelCreateEventEntities_SingleApplyToEntities_System.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: acdd0b20d0cb6974889dd137e91cb278
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/StressTest/DamageEvent.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Mathematics;
5 |
6 | [Serializable]
7 | public struct DamageEvent : IBufferElementData
8 | {
9 | public Entity Source;
10 | public float Value;
11 | }
12 |
13 | public struct StreamDamageEvent : IBufferElementData
14 | {
15 | public Entity Target;
16 | public DamageEvent DamageEvent;
17 | }
18 |
--------------------------------------------------------------------------------
/Assets/StressTest/EntityDamageEventAuthoring.cs:
--------------------------------------------------------------------------------
1 | using Unity.Entities;
2 | using Unity.Mathematics;
3 | using UnityEngine;
4 |
5 | [DisallowMultipleComponent]
6 | public class EntityDamageEventAuthoring : MonoBehaviour, IConvertGameObjectToEntity
7 | {
8 | public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
9 | {
10 | dstManager.AddComponentData(entity, new DamageEventComp());
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/ManualUpdateManager.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class ManualUpdateManager : MonoBehaviour
6 | {
7 | public List ManualDamagers = new List();
8 |
9 | public void Update()
10 | {
11 | for (int i = 0; i < ManualDamagers.Count; i++)
12 | {
13 | ManualDamagers[i].ManualUpdate();
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/ProjectSettings/URPProjectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &1
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 61
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | m_LastMaterialVersion: 4
16 |
--------------------------------------------------------------------------------
/ProjectSettings/BurstAotSettings_StandaloneWindows.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "EnableBurstCompilation": true,
5 | "EnableOptimisations": true,
6 | "EnableSafetyChecks": false,
7 | "EnableDebugInAllBuilds": false,
8 | "UsePlatformSDKLinker": false,
9 | "CpuMinTargetX32": 0,
10 | "CpuMaxTargetX32": 0,
11 | "CpuMinTargetX64": 0,
12 | "CpuMaxTargetX64": 0,
13 | "CpuTargetsX32": 6,
14 | "CpuTargetsX64": 72,
15 | "OptimizeFor": 0
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ProjectSettings/AudioManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!11 &1
4 | AudioManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Volume: 1
8 | Rolloff Scale: 1
9 | Doppler Factor: 1
10 | Default Speaker Mode: 2
11 | m_SampleRate: 0
12 | m_DSPBufferSize: 1024
13 | m_VirtualVoiceCount: 512
14 | m_RealVoiceCount: 32
15 | m_SpatializerPlugin:
16 | m_AmbisonicDecoderPlugin:
17 | m_DisableAudio: 0
18 | m_VirtualizeEffects: 1
19 | m_RequestedDSPBufferSize: 0
20 |
--------------------------------------------------------------------------------
/Assets/StressTest/HealthAuthoring.cs:
--------------------------------------------------------------------------------
1 | using Unity.Entities;
2 | using Unity.Mathematics;
3 | using UnityEngine;
4 |
5 | [DisallowMultipleComponent]
6 | public class HealthAuthoring : MonoBehaviour, IConvertGameObjectToEntity
7 | {
8 | public float HealthValue = 10f;
9 |
10 | public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
11 | {
12 | dstManager.AddComponentData(entity, new Health { Value = HealthValue });
13 | dstManager.AddBuffer(entity);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | [Bb]uild/
2 | [Bb]uilds/
3 | [Ll]ibrary/
4 | [Ll]ogs/
5 | [Oo]bj/
6 | [Tt]emp/
7 | [Uu]nity/
8 |
9 | # Visual Studio cache directory
10 | .vs/
11 | .idea/
12 |
13 | # Autogenerated VS/MD/Consulo solution and project files
14 | ExportedObj/
15 | .consulo/
16 | *.csproj
17 | *.unityproj
18 | *.sln
19 | *.suo
20 | *.tmp
21 | *.user
22 | *.userprefs
23 | *.pidb
24 | *.booproj
25 | *.svd
26 | *.pdb
27 | *.opendb
28 |
29 | # Unity3D generated meta files
30 | *.pidb.meta
31 | *.pdb.meta
32 |
33 | # Unity3D Generated File On Crash Reports
34 | sysinfo.txt
35 |
36 | # Builds
37 | *.apk
38 |
--------------------------------------------------------------------------------
/ProjectSettings/TagManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!78 &1
4 | TagManager:
5 | serializedVersion: 2
6 | tags: []
7 | layers:
8 | - Default
9 | - TransparentFX
10 | - Ignore Raycast
11 | -
12 | - Water
13 | - UI
14 | -
15 | -
16 | -
17 | -
18 | -
19 | -
20 | -
21 | -
22 | -
23 | -
24 | -
25 | -
26 | -
27 | -
28 | -
29 | -
30 | -
31 | -
32 | -
33 | -
34 | -
35 | -
36 | -
37 | -
38 | -
39 | -
40 | m_SortingLayers:
41 | - name: Default
42 | uniqueID: 0
43 | locked: 0
44 |
--------------------------------------------------------------------------------
/Assets/GlobalEntitiesDependencies/GlobalEntitySceneDependency.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: 83423c6821253f946aa2dd9db23584ed, type: 3}
13 | m_Name: GlobalEntitySceneDependency
14 | m_EditorClassIdentifier:
15 | cacheGUID:
16 | Value:
17 | x: 3616018598
18 | y: 1261661968
19 | z: 3075379086
20 | w: 2246194955
21 |
--------------------------------------------------------------------------------
/Assets/UnitTests/Runtime/RuntimeTests.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "RuntimeTests",
3 | "rootNamespace": "",
4 | "references": [
5 | "UnityEngine.TestRunner",
6 | "UnityEditor.TestRunner",
7 | "Unity.PerformanceTesting",
8 | "Unity.Entities",
9 | "StressTest",
10 | "Unity.Collections",
11 | "Unity.Transforms",
12 | "ECSTestsFixture"
13 | ],
14 | "includePlatforms": [],
15 | "excludePlatforms": [],
16 | "allowUnsafeCode": false,
17 | "overrideReferences": true,
18 | "precompiledReferences": [
19 | "nunit.framework.dll"
20 | ],
21 | "autoReferenced": false,
22 | "defineConstraints": [
23 | "UNITY_INCLUDE_TESTS"
24 | ],
25 | "versionDefines": [],
26 | "noEngineReferences": false
27 | }
--------------------------------------------------------------------------------
/Assets/UnitTests/Editor/EditorTests.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "EditorTests",
3 | "rootNamespace": "",
4 | "references": [
5 | "UnityEngine.TestRunner",
6 | "UnityEditor.TestRunner",
7 | "Unity.PerformanceTesting",
8 | "Unity.Entities",
9 | "TestHelper",
10 | "StressTest",
11 | "Unity.Collections",
12 | "Unity.Transforms",
13 | "RuntimeTests",
14 | "ECSTestsFixture"
15 | ],
16 | "includePlatforms": [
17 | "Editor"
18 | ],
19 | "excludePlatforms": [],
20 | "allowUnsafeCode": false,
21 | "overrideReferences": true,
22 | "precompiledReferences": [
23 | "nunit.framework.dll"
24 | ],
25 | "autoReferenced": false,
26 | "defineConstraints": [
27 | "UNITY_INCLUDE_TESTS"
28 | ],
29 | "versionDefines": [],
30 | "noEngineReferences": false
31 | }
--------------------------------------------------------------------------------
/Assets/UnitTests/ECSTestsFixture/ECSTestsFixture.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ECSTestsFixture",
3 | "rootNamespace": "",
4 | "references": [
5 | "Unity.Entities",
6 | "Unity.Collections",
7 | "Unity.Jobs",
8 | "Unity.Burst",
9 | "Unity.Mathematics",
10 | "Unity.Transforms",
11 | "Unity.Collections.BurstCompatibilityGen",
12 | "UnityEngine.TestRunner",
13 | "UnityEditor.TestRunner"
14 | ],
15 | "includePlatforms": [
16 | "Editor"
17 | ],
18 | "excludePlatforms": [],
19 | "allowUnsafeCode": true,
20 | "overrideReferences": true,
21 | "precompiledReferences": [
22 | "nunit.framework.dll"
23 | ],
24 | "autoReferenced": false,
25 | "defineConstraints": [
26 | "UNITY_INCLUDE_TESTS"
27 | ],
28 | "versionDefines": [],
29 | "noEngineReferences": false
30 | }
--------------------------------------------------------------------------------
/ProjectSettings/PresetManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1386491679 &1
4 | PresetManager:
5 | m_ObjectHideFlags: 0
6 | m_DefaultList:
7 | - type:
8 | m_NativeTypeID: 108
9 | m_ManagedTypePPtr: {fileID: 0}
10 | m_ManagedTypeFallback:
11 | defaultPresets:
12 | - m_Preset: {fileID: 2655988077585873504, guid: 463065d4f17d1d94d848aa127b94dd43,
13 | type: 2}
14 | - type:
15 | m_NativeTypeID: 1020
16 | m_ManagedTypePPtr: {fileID: 0}
17 | m_ManagedTypeFallback:
18 | defaultPresets:
19 | - m_Preset: {fileID: 2655988077585873504, guid: e7689051185d12f4298e1ebb2693a29f,
20 | type: 2}
21 | - type:
22 | m_NativeTypeID: 1006
23 | m_ManagedTypePPtr: {fileID: 0}
24 | m_ManagedTypeFallback:
25 | defaultPresets:
26 | - m_Preset: {fileID: 2655988077585873504, guid: e8537455c6c08bd4e8bf0be3707da685,
27 | type: 2}
28 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/SingleDirectModificationSystem.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public partial class SingleDirectModificationSystem : SystemBase
9 | {
10 | protected override void OnUpdate()
11 | {
12 | if (!HasSingleton())
13 | return;
14 |
15 | if (GetSingleton().EventType != EventType.J_SingleDirectModification)
16 | return;
17 |
18 | Entities.ForEach((in Damager damager) =>
19 | {
20 | if (HasComponent(damager.Target))
21 | {
22 | Health health = GetComponent(damager.Target);
23 | health.Value -= damager.Damage;
24 | SetComponent(damager.Target, health);
25 | }
26 | }).Schedule();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Assets/StressTest/StressTest.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "StressTest",
3 | "rootNamespace": "",
4 | "references": [
5 | "Unity.Burst",
6 | "Unity.Collections",
7 | "Unity.Entities",
8 | "Unity.Jobs",
9 | "Unity.Mathematics",
10 | "Unity.Mathematics.Extensions",
11 | "Unity.Build",
12 | "Unity.Build.Classic",
13 | "Unity.Properties",
14 | "Unity.Properties.Editor",
15 | "Unity.Scenes",
16 | "Unity.Entities.Hybrid.HybridComponents",
17 | "Unity.Entities.Hybrid",
18 | "Unity.Transforms",
19 | "Unity.Transforms.Hybrid"
20 | ],
21 | "includePlatforms": [],
22 | "excludePlatforms": [],
23 | "allowUnsafeCode": true,
24 | "overrideReferences": false,
25 | "precompiledReferences": [],
26 | "autoReferenced": true,
27 | "defineConstraints": [],
28 | "versionDefines": [],
29 | "noEngineReferences": false
30 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/WriteStreamEventsToListJob.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 |
9 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
10 | public struct WriteStreamEventsToListJob : IJob
11 | {
12 | public NativeStream.Reader StreamDamageEvents;
13 | public NativeList DamageEventsList;
14 |
15 | public void Execute()
16 | {
17 | for (int i = 0; i < StreamDamageEvents.ForEachCount; i++)
18 | {
19 | StreamDamageEvents.BeginForEachIndex(i);
20 | while (StreamDamageEvents.RemainingItemCount > 0)
21 | {
22 | StreamDamageEvent damageEvent = StreamDamageEvents.Read();
23 | DamageEventsList.Add(damageEvent);
24 | }
25 | StreamDamageEvents.EndForEachIndex();
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/ClearDamageEventBuffersJob.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
9 | public struct ClearDamageEventBuffersJob : IJobEntityBatch
10 | {
11 | public BufferTypeHandle DamageEventBufferType;
12 |
13 | public uint LastSystemVersion;
14 |
15 | public void Execute(ArchetypeChunk batchInChunk, int batchIndex)
16 | {
17 | if (batchInChunk.DidChange(DamageEventBufferType, LastSystemVersion))
18 | {
19 | BufferAccessor chunkDamageEventBuffer = batchInChunk.GetBufferAccessor(DamageEventBufferType);
20 |
21 | for (int i = 0; i < batchInChunk.Count; i++)
22 | {
23 | DynamicBuffer damageEventBuffer = chunkDamageEventBuffer[i];
24 | damageEventBuffer.Clear();
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/ProjectSettings/UnityConnectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!310 &1
4 | UnityConnectSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 1
7 | m_Enabled: 0
8 | m_TestMode: 0
9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com
12 | m_DashboardUrl: https://dashboard.unity3d.com
13 | m_TestInitMode: 0
14 | CrashReportingSettings:
15 | m_EventUrl: https://perf-events.cloud.unity3d.com
16 | m_Enabled: 0
17 | m_LogBufferSize: 10
18 | m_CaptureEditorExceptions: 1
19 | UnityPurchasingSettings:
20 | m_Enabled: 0
21 | m_TestMode: 0
22 | UnityAnalyticsSettings:
23 | m_Enabled: 0
24 | m_TestMode: 0
25 | m_InitializeOnStartup: 1
26 | UnityAdsSettings:
27 | m_Enabled: 0
28 | m_InitializeOnStartup: 1
29 | m_TestMode: 0
30 | m_IosGameId:
31 | m_AndroidGameId:
32 | m_GameIds: {}
33 | m_GameId:
34 | PerformanceReportingSettings:
35 | m_Enabled: 0
36 |
--------------------------------------------------------------------------------
/Assets/StressTest/EventStressTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Mathematics;
5 |
6 | public enum EventType
7 | {
8 | None,
9 |
10 | A_ParallelWriteToStream_ParallelPollBuffers,
11 | B_SingleWriteToBuffers_ParallelPollBuffers,
12 | C_ParallelWriteToBuffersECB_ParallelPollBuffers,
13 |
14 | D_ParallelWriteToStream_SingleApplyToEntities,
15 | E_ParallelWriteToStream_ParallelApplyToEntities,
16 |
17 | F_ParallelCreateEventEntities_SingleApplyToEntities,
18 |
19 | G_ParallelWriteToStream_SinglePollList,
20 |
21 | H_ParallelWriteToStream_SinglePollHashMap,
22 | I_ParallelWriteToStream_ParallelPollHashMap,
23 |
24 | J_SingleDirectModification,
25 | }
26 |
27 | [Serializable]
28 | [GenerateAuthoringComponent]
29 | public struct EventStressTest : IComponentData
30 | {
31 | public EventType EventType;
32 | public Entity HealthPrefab;
33 | public int HealthEntityCount;
34 | public float Spacing;
35 |
36 | public int DamagersPerHealths;
37 | }
38 |
39 |
40 | [Serializable]
41 | public struct IsInitialized : IComponentData
42 | {
43 | }
44 |
--------------------------------------------------------------------------------
/ProjectSettings/PackageManagerSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &1
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 61
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | m_EnablePreviewPackages: 0
16 | m_EnablePackageDependencies: 0
17 | m_AdvancedSettingsExpanded: 1
18 | m_ScopedRegistriesSettingsExpanded: 1
19 | oneTimeWarningShown: 0
20 | m_Registries:
21 | - m_Id: main
22 | m_Name:
23 | m_Url: https://packages.unity.com
24 | m_Scopes: []
25 | m_IsDefault: 1
26 | m_Capabilities: 7
27 | m_UserSelectedRegistryName:
28 | m_UserAddingNewScopedRegistry: 0
29 | m_RegistryInfoDraft:
30 | m_ErrorMessage:
31 | m_Original:
32 | m_Id:
33 | m_Name:
34 | m_Url:
35 | m_Scopes: []
36 | m_IsDefault: 0
37 | m_Capabilities: 0
38 | m_Modified: 0
39 | m_Name:
40 | m_Url:
41 | m_Scopes:
42 | -
43 | m_SelectedScopeIndex: 0
44 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/WriteStreamEventsToBuffersJob.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 |
9 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
10 | public struct WriteStreamEventsToBuffersJob : IJob
11 | {
12 | public NativeStream.Reader StreamDamageEvents;
13 | public BufferFromEntity DamageEventBufferFromEntity;
14 |
15 | public void Execute()
16 | {
17 | for (int i = 0; i < StreamDamageEvents.ForEachCount; i++)
18 | {
19 | StreamDamageEvents.BeginForEachIndex(i);
20 | while (StreamDamageEvents.RemainingItemCount > 0)
21 | {
22 | StreamDamageEvent damageEvent = StreamDamageEvents.Read();
23 | if (DamageEventBufferFromEntity.HasComponent(damageEvent.Target))
24 | {
25 | DynamicBuffer damageEventBuffer = DamageEventBufferFromEntity[damageEvent.Target];
26 | damageEventBuffer.Add(damageEvent.DamageEvent);
27 | }
28 | }
29 | StreamDamageEvents.EndForEachIndex();
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/SingleApplyStreamEventsToEntitiesJob.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
9 | public struct SingleApplyStreamEventsToEntitiesJob : IJob
10 | {
11 | public NativeStream.Reader StreamDamageEvents;
12 | public ComponentDataFromEntity HealthFromEntity;
13 |
14 | public void Execute()
15 | {
16 | for (int i = 0; i < StreamDamageEvents.ForEachCount; i++)
17 | {
18 | StreamDamageEvents.BeginForEachIndex(i);
19 | while (StreamDamageEvents.RemainingItemCount > 0)
20 | {
21 | StreamDamageEvent damageEvent = StreamDamageEvents.Read();
22 | if (HealthFromEntity.HasComponent(damageEvent.Target))
23 | {
24 | Health health = HealthFromEntity[damageEvent.Target];
25 | health.Value -= damageEvent.DamageEvent.Value;
26 | HealthFromEntity[damageEvent.Target] = health;
27 | }
28 | }
29 | StreamDamageEvents.EndForEachIndex();
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/DamagersWriteToStreamJob.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Unity.Burst;
3 | using Unity.Collections;
4 | using Unity.Entities;
5 | using Unity.Mathematics;
6 |
7 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
8 | public struct DamagersWriteToStreamJob : IJobEntityBatch
9 | {
10 | [ReadOnly]
11 | public EntityTypeHandle EntityType;
12 | [ReadOnly]
13 | public ComponentTypeHandle DamagerType;
14 | [NativeDisableParallelForRestriction]
15 | public NativeStream.Writer StreamDamageEvents;
16 |
17 | public void Execute(ArchetypeChunk batchInChunk, int batchIndex)
18 | {
19 | NativeArray chunkEntity = batchInChunk.GetNativeArray(EntityType);
20 | NativeArray chunkDamager = batchInChunk.GetNativeArray(DamagerType);
21 |
22 | StreamDamageEvents.BeginForEachIndex(batchIndex);
23 |
24 | for (int i = 0; i < batchInChunk.Count; i++)
25 | {
26 | Entity entity = chunkEntity[i];
27 | Damager damager = chunkDamager[i];
28 | StreamDamageEvents.Write(new StreamDamageEvent { Target = damager.Target, DamageEvent = new DamageEvent { Source = entity, Value = damager.Damage } });
29 | }
30 |
31 | StreamDamageEvents.EndForEachIndex();
32 | }
33 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/PollDamageEventListJob.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
9 | public struct SinglePollDamageEventListJob : IJob
10 | {
11 | [ReadOnly]
12 | public EntityTypeHandle EntityType;
13 | [ReadOnly]
14 | public NativeList DamageEventsList;
15 | public ComponentDataFromEntity HealthFromEntity;
16 |
17 | public void Execute()
18 | {
19 | for (int i = 0; i < DamageEventsList.Length; i++)
20 | {
21 | StreamDamageEvent sde = DamageEventsList[i];
22 | if (HealthFromEntity.HasComponent(sde.Target))
23 | {
24 | Health health = HealthFromEntity[sde.Target];
25 | health.Value -= sde.DamageEvent.Value;
26 | HealthFromEntity[sde.Target] = health;
27 | }
28 | }
29 | }
30 | }
31 |
32 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
33 | public struct ClearDamageEventListJob : IJob
34 | {
35 | public NativeList DamageEventsList;
36 |
37 | public void Execute()
38 | {
39 | DamageEventsList.Clear();
40 | }
41 | }
--------------------------------------------------------------------------------
/ProjectSettings/DynamicsManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!55 &1
4 | PhysicsManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 13
7 | m_Gravity: {x: 0, y: -9.81, z: 0}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_BounceThreshold: 2
10 | m_SleepThreshold: 0.005
11 | m_DefaultContactOffset: 0.01
12 | m_DefaultSolverIterations: 6
13 | m_DefaultSolverVelocityIterations: 1
14 | m_QueriesHitBackfaces: 0
15 | m_QueriesHitTriggers: 1
16 | m_EnableAdaptiveForce: 0
17 | m_ClothInterCollisionDistance: 0.1
18 | m_ClothInterCollisionStiffness: 0.2
19 | m_ContactsGeneration: 1
20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 | m_AutoSimulation: 1
22 | m_AutoSyncTransforms: 0
23 | m_ReuseCollisionCallbacks: 1
24 | m_ClothInterCollisionSettingsToggle: 0
25 | m_ClothGravity: {x: 0, y: -9.81, z: 0}
26 | m_ContactPairsMode: 0
27 | m_BroadphaseType: 0
28 | m_WorldBounds:
29 | m_Center: {x: 0, y: 0, z: 0}
30 | m_Extent: {x: 250, y: 250, z: 250}
31 | m_WorldSubdivisions: 8
32 | m_FrictionType: 0
33 | m_EnableEnhancedDeterminism: 0
34 | m_EnableUnifiedHeightmaps: 1
35 | m_SolverType: 0
36 | m_DefaultMaxAngularSpeed: 7
37 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!159 &1
4 | EditorSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 11
7 | m_SerializationMode: 2
8 | m_LineEndingsForNewScripts: 0
9 | m_DefaultBehaviorMode: 0
10 | m_PrefabRegularEnvironment: {fileID: 0}
11 | m_PrefabUIEnvironment: {fileID: 0}
12 | m_SpritePackerMode: 0
13 | m_SpritePackerPaddingPower: 1
14 | m_EtcTextureCompressorBehavior: 1
15 | m_EtcTextureFastCompressor: 1
16 | m_EtcTextureNormalCompressor: 2
17 | m_EtcTextureBestCompressor: 4
18 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp
19 | m_ProjectGenerationRootNamespace:
20 | m_EnableTextureStreamingInEditMode: 1
21 | m_EnableTextureStreamingInPlayMode: 1
22 | m_AsyncShaderCompilation: 1
23 | m_CachingShaderPreprocessor: 1
24 | m_PrefabModeAllowAutoSave: 1
25 | m_EnterPlayModeOptionsEnabled: 1
26 | m_EnterPlayModeOptions: 3
27 | m_GameObjectNamingDigits: 1
28 | m_GameObjectNamingScheme: 0
29 | m_AssetNamingUsesSpace: 1
30 | m_UseLegacyProbeSampleCount: 0
31 | m_SerializeInlineMappingsOnOneLine: 1
32 | m_DisableCookiesInLightmapper: 1
33 | m_AssetPipelineMode: 1
34 | m_CacheServerMode: 0
35 | m_CacheServerEndpoint:
36 | m_CacheServerNamespacePrefix: default
37 | m_CacheServerEnableDownload: 1
38 | m_CacheServerEnableUpload: 1
39 | m_CacheServerEnableAuth: 0
40 | m_CacheServerEnableTls: 0
41 |
--------------------------------------------------------------------------------
/Assets/StressTest/EntityDamageEvent.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &8241510397362580459
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 8241510397362580457}
12 | - component: {fileID: 8241510397362580458}
13 | m_Layer: 0
14 | m_Name: EntityDamageEvent
15 | m_TagString: Untagged
16 | m_Icon: {fileID: 0}
17 | m_NavMeshLayer: 0
18 | m_StaticEditorFlags: 0
19 | m_IsActive: 1
20 | --- !u!4 &8241510397362580457
21 | Transform:
22 | m_ObjectHideFlags: 0
23 | m_CorrespondingSourceObject: {fileID: 0}
24 | m_PrefabInstance: {fileID: 0}
25 | m_PrefabAsset: {fileID: 0}
26 | m_GameObject: {fileID: 8241510397362580459}
27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28 | m_LocalPosition: {x: 0, y: 0, z: 0}
29 | m_LocalScale: {x: 1, y: 1, z: 1}
30 | m_Children: []
31 | m_Father: {fileID: 0}
32 | m_RootOrder: 0
33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
34 | --- !u!114 &8241510397362580458
35 | MonoBehaviour:
36 | m_ObjectHideFlags: 0
37 | m_CorrespondingSourceObject: {fileID: 0}
38 | m_PrefabInstance: {fileID: 0}
39 | m_PrefabAsset: {fileID: 0}
40 | m_GameObject: {fileID: 8241510397362580459}
41 | m_Enabled: 1
42 | m_EditorHideFlags: 0
43 | m_Script: {fileID: 11500000, guid: f491b5c539c8df245a1218b79ed9d157, type: 3}
44 | m_Name:
45 | m_EditorClassIdentifier:
46 |
--------------------------------------------------------------------------------
/Assets/StressTest/Health.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &1426645702674376967
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 1426645702674376966}
12 | - component: {fileID: 1426645702674376965}
13 | m_Layer: 0
14 | m_Name: Health
15 | m_TagString: Untagged
16 | m_Icon: {fileID: 0}
17 | m_NavMeshLayer: 0
18 | m_StaticEditorFlags: 0
19 | m_IsActive: 1
20 | --- !u!4 &1426645702674376966
21 | Transform:
22 | m_ObjectHideFlags: 0
23 | m_CorrespondingSourceObject: {fileID: 0}
24 | m_PrefabInstance: {fileID: 0}
25 | m_PrefabAsset: {fileID: 0}
26 | m_GameObject: {fileID: 1426645702674376967}
27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28 | m_LocalPosition: {x: 0, y: 0, z: 0}
29 | m_LocalScale: {x: 1, y: 1, z: 1}
30 | m_Children: []
31 | m_Father: {fileID: 0}
32 | m_RootOrder: 0
33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
34 | --- !u!114 &1426645702674376965
35 | MonoBehaviour:
36 | m_ObjectHideFlags: 0
37 | m_CorrespondingSourceObject: {fileID: 0}
38 | m_PrefabInstance: {fileID: 0}
39 | m_PrefabAsset: {fileID: 0}
40 | m_GameObject: {fileID: 1426645702674376967}
41 | m_Enabled: 1
42 | m_EditorHideFlags: 0
43 | m_Script: {fileID: 11500000, guid: 8c4320ad7b8dd2e40bd76347a52393a9, type: 3}
44 | m_Name:
45 | m_EditorClassIdentifier:
46 | HealthValue: 1000
47 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPHealth.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &6667722409156007695
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 6667722409156007689}
12 | - component: {fileID: 6667722409156007688}
13 | m_Layer: 0
14 | m_Name: OOPHealth
15 | m_TagString: Untagged
16 | m_Icon: {fileID: 0}
17 | m_NavMeshLayer: 0
18 | m_StaticEditorFlags: 0
19 | m_IsActive: 1
20 | --- !u!4 &6667722409156007689
21 | Transform:
22 | m_ObjectHideFlags: 0
23 | m_CorrespondingSourceObject: {fileID: 0}
24 | m_PrefabInstance: {fileID: 0}
25 | m_PrefabAsset: {fileID: 0}
26 | m_GameObject: {fileID: 6667722409156007695}
27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28 | m_LocalPosition: {x: 0, y: 0, z: 0}
29 | m_LocalScale: {x: 1, y: 1, z: 1}
30 | m_Children: []
31 | m_Father: {fileID: 0}
32 | m_RootOrder: 0
33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
34 | --- !u!114 &6667722409156007688
35 | MonoBehaviour:
36 | m_ObjectHideFlags: 0
37 | m_CorrespondingSourceObject: {fileID: 0}
38 | m_PrefabInstance: {fileID: 0}
39 | m_PrefabAsset: {fileID: 0}
40 | m_GameObject: {fileID: 6667722409156007695}
41 | m_Enabled: 1
42 | m_EditorHideFlags: 0
43 | m_Script: {fileID: 11500000, guid: 78e81e6942501a04e83f032e41ef3c63, type: 3}
44 | m_Name:
45 | m_EditorClassIdentifier:
46 | Health: 1000
47 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPHealthManual.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &6667722409156007695
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 6667722409156007689}
12 | - component: {fileID: 1754362308683286306}
13 | m_Layer: 0
14 | m_Name: OOPHealthManual
15 | m_TagString: Untagged
16 | m_Icon: {fileID: 0}
17 | m_NavMeshLayer: 0
18 | m_StaticEditorFlags: 0
19 | m_IsActive: 1
20 | --- !u!4 &6667722409156007689
21 | Transform:
22 | m_ObjectHideFlags: 0
23 | m_CorrespondingSourceObject: {fileID: 0}
24 | m_PrefabInstance: {fileID: 0}
25 | m_PrefabAsset: {fileID: 0}
26 | m_GameObject: {fileID: 6667722409156007695}
27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28 | m_LocalPosition: {x: 0, y: 0, z: 0}
29 | m_LocalScale: {x: 1, y: 1, z: 1}
30 | m_Children: []
31 | m_Father: {fileID: 0}
32 | m_RootOrder: 0
33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
34 | --- !u!114 &1754362308683286306
35 | MonoBehaviour:
36 | m_ObjectHideFlags: 0
37 | m_CorrespondingSourceObject: {fileID: 0}
38 | m_PrefabInstance: {fileID: 0}
39 | m_PrefabAsset: {fileID: 0}
40 | m_GameObject: {fileID: 6667722409156007695}
41 | m_Enabled: 1
42 | m_EditorHideFlags: 0
43 | m_Script: {fileID: 11500000, guid: ea78c7d144c2e4d49bd39f0bbdcb83d7, type: 3}
44 | m_Name:
45 | m_EditorClassIdentifier:
46 | Health: 100
47 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPDamager.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &9147403129590496361
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 9147403129590496363}
12 | - component: {fileID: 9147403129590496362}
13 | m_Layer: 0
14 | m_Name: OOPDamager
15 | m_TagString: Untagged
16 | m_Icon: {fileID: 0}
17 | m_NavMeshLayer: 0
18 | m_StaticEditorFlags: 0
19 | m_IsActive: 1
20 | --- !u!4 &9147403129590496363
21 | Transform:
22 | m_ObjectHideFlags: 0
23 | m_CorrespondingSourceObject: {fileID: 0}
24 | m_PrefabInstance: {fileID: 0}
25 | m_PrefabAsset: {fileID: 0}
26 | m_GameObject: {fileID: 9147403129590496361}
27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28 | m_LocalPosition: {x: 0, y: 0, z: 0}
29 | m_LocalScale: {x: 1, y: 1, z: 1}
30 | m_Children: []
31 | m_Father: {fileID: 0}
32 | m_RootOrder: 0
33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
34 | --- !u!114 &9147403129590496362
35 | MonoBehaviour:
36 | m_ObjectHideFlags: 0
37 | m_CorrespondingSourceObject: {fileID: 0}
38 | m_PrefabInstance: {fileID: 0}
39 | m_PrefabAsset: {fileID: 0}
40 | m_GameObject: {fileID: 9147403129590496361}
41 | m_Enabled: 1
42 | m_EditorHideFlags: 0
43 | m_Script: {fileID: 11500000, guid: 2bb256b4790bccc488d6bac9f87efeb7, type: 3}
44 | m_Name:
45 | m_EditorClassIdentifier:
46 | Target: {fileID: 0}
47 | Damage: 0.1
48 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPDamagerManual.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &9147403129590496361
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 9147403129590496363}
12 | - component: {fileID: -1193630558707623380}
13 | m_Layer: 0
14 | m_Name: OOPDamagerManual
15 | m_TagString: Untagged
16 | m_Icon: {fileID: 0}
17 | m_NavMeshLayer: 0
18 | m_StaticEditorFlags: 0
19 | m_IsActive: 1
20 | --- !u!4 &9147403129590496363
21 | Transform:
22 | m_ObjectHideFlags: 0
23 | m_CorrespondingSourceObject: {fileID: 0}
24 | m_PrefabInstance: {fileID: 0}
25 | m_PrefabAsset: {fileID: 0}
26 | m_GameObject: {fileID: 9147403129590496361}
27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28 | m_LocalPosition: {x: 0, y: 0, z: 0}
29 | m_LocalScale: {x: 1, y: 1, z: 1}
30 | m_Children: []
31 | m_Father: {fileID: 0}
32 | m_RootOrder: 0
33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
34 | --- !u!114 &-1193630558707623380
35 | MonoBehaviour:
36 | m_ObjectHideFlags: 0
37 | m_CorrespondingSourceObject: {fileID: 0}
38 | m_PrefabInstance: {fileID: 0}
39 | m_PrefabAsset: {fileID: 0}
40 | m_GameObject: {fileID: 9147403129590496361}
41 | m_Enabled: 1
42 | m_EditorHideFlags: 0
43 | m_Script: {fileID: 11500000, guid: 64188a05588e5954b8592cbd6098a7d0, type: 3}
44 | m_Name:
45 | m_EditorClassIdentifier:
46 | Target: {fileID: 0}
47 | Damage: 0.1
48 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/PollDamageEventBuffersJob.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
9 | public struct PollDamageEventBuffersJob : IJobEntityBatch
10 | {
11 | [ReadOnly]
12 | public EntityTypeHandle EntityType;
13 | public ComponentTypeHandle HealthType;
14 | [ReadOnly]
15 | public BufferTypeHandle DamageEventBufferType;
16 |
17 | public uint LastSystemVersion;
18 |
19 | public void Execute(ArchetypeChunk batchInChunk, int batchIndex)
20 | {
21 | if (batchInChunk.DidChange(DamageEventBufferType, LastSystemVersion))
22 | {
23 | NativeArray chunkEntity = batchInChunk.GetNativeArray(EntityType);
24 | NativeArray chunkHealth = batchInChunk.GetNativeArray(HealthType);
25 | BufferAccessor chunkDamageEventBuffer = batchInChunk.GetBufferAccessor(DamageEventBufferType);
26 |
27 | for (int i = 0; i < batchInChunk.Count; i++)
28 | {
29 | Entity entity = chunkEntity[i];
30 | Health health = chunkHealth[i];
31 | DynamicBuffer damageEventBuffer = chunkDamageEventBuffer[i];
32 |
33 | for (int d = 0; d < damageEventBuffer.Length; d++)
34 | {
35 | health.Value -= damageEventBuffer[d].Value;
36 | }
37 |
38 | chunkHealth[i] = health;
39 | }
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/ParallelApplyStreamEventsToEntitiesJob.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 | using System.Threading;
4 | using Unity.Burst;
5 | using Unity.Collections;
6 | using Unity.Collections.LowLevel.Unsafe;
7 | using Unity.Entities;
8 | using Unity.Jobs;
9 | using Unity.Mathematics;
10 | using Unity.Transforms;
11 |
12 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
13 | public unsafe struct ParallelApplyStreamEventsToEntitiesJob : IJobParallelFor
14 | {
15 | public NativeStream.Reader StreamDamageEvents;
16 | public StorageInfoFromEntity StorageInfoFromEntity;
17 | public ComponentTypeHandle HealthType;
18 |
19 | public unsafe void Execute(int index)
20 | {
21 | StreamDamageEvents.BeginForEachIndex(index);
22 | while (StreamDamageEvents.RemainingItemCount > 0)
23 | {
24 | StreamDamageEvent damageEvent = StreamDamageEvents.Read();
25 | if (StorageInfoFromEntity.Exists(damageEvent.Target))
26 | {
27 | EntityStorageInfo storageInfo = StorageInfoFromEntity[damageEvent.Target];
28 | ArchetypeChunk chunk = storageInfo.Chunk;
29 | if (chunk.Has(HealthType))
30 | {
31 | NativeArray chunkHealth = chunk.GetNativeArray(HealthType);
32 | int* healthIntPtr = (int*)chunkHealth.GetUnsafePtr();
33 | healthIntPtr += storageInfo.IndexInChunk;
34 | Interlocked.Add(ref UnsafeUtility.AsRef(healthIntPtr), -1);
35 | }
36 | }
37 | }
38 | StreamDamageEvents.EndForEachIndex();
39 | }
40 | }
--------------------------------------------------------------------------------
/ProjectSettings/NavMeshAreas.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!126 &1
4 | NavMeshProjectSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | areas:
8 | - name: Walkable
9 | cost: 1
10 | - name: Not Walkable
11 | cost: 1
12 | - name: Jump
13 | cost: 2
14 | - name:
15 | cost: 1
16 | - name:
17 | cost: 1
18 | - name:
19 | cost: 1
20 | - name:
21 | cost: 1
22 | - name:
23 | cost: 1
24 | - name:
25 | cost: 1
26 | - name:
27 | cost: 1
28 | - name:
29 | cost: 1
30 | - name:
31 | cost: 1
32 | - name:
33 | cost: 1
34 | - name:
35 | cost: 1
36 | - name:
37 | cost: 1
38 | - name:
39 | cost: 1
40 | - name:
41 | cost: 1
42 | - name:
43 | cost: 1
44 | - name:
45 | cost: 1
46 | - name:
47 | cost: 1
48 | - name:
49 | cost: 1
50 | - name:
51 | cost: 1
52 | - name:
53 | cost: 1
54 | - name:
55 | cost: 1
56 | - name:
57 | cost: 1
58 | - name:
59 | cost: 1
60 | - name:
61 | cost: 1
62 | - name:
63 | cost: 1
64 | - name:
65 | cost: 1
66 | - name:
67 | cost: 1
68 | - name:
69 | cost: 1
70 | - name:
71 | cost: 1
72 | m_LastAgentTypeID: -887442657
73 | m_Settings:
74 | - serializedVersion: 2
75 | agentTypeID: 0
76 | agentRadius: 0.5
77 | agentHeight: 2
78 | agentSlope: 45
79 | agentClimb: 0.75
80 | ledgeDropHeight: 0
81 | maxJumpAcrossDistance: 0
82 | minRegionArea: 2
83 | manualCellSize: 0
84 | cellSize: 0.16666667
85 | manualTileSize: 0
86 | tileSize: 256
87 | accuratePlacement: 0
88 | debug:
89 | m_Flags: 0
90 | m_SettingNames:
91 | - Humanoid
92 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/D_ParallelWriteToStream_SingleApplyToEntities_System.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public partial class D_ParallelWriteToStream_SingleApplyToEntities_System : SystemBase
9 | {
10 | public NativeStream PendingStream;
11 |
12 | protected override void OnDestroy()
13 | {
14 | base.OnDestroy();
15 | if (PendingStream.IsCreated)
16 | {
17 | PendingStream.Dispose();
18 | }
19 | }
20 |
21 | protected override void OnUpdate()
22 | {
23 | if (!HasSingleton())
24 | return;
25 |
26 | if (GetSingleton().EventType != EventType.D_ParallelWriteToStream_SingleApplyToEntities)
27 | return;
28 |
29 | EntityQuery damagersQuery = GetEntityQuery(typeof(Damager));
30 |
31 | if (PendingStream.IsCreated)
32 | {
33 | PendingStream.Dispose();
34 | }
35 | PendingStream = new NativeStream(damagersQuery.CalculateChunkCount(), Allocator.TempJob);
36 |
37 | Dependency = new DamagersWriteToStreamJob
38 | {
39 | EntityType = GetEntityTypeHandle(),
40 | DamagerType = GetComponentTypeHandle(true),
41 | StreamDamageEvents = PendingStream.AsWriter(),
42 | }.ScheduleParallel(damagersQuery, Dependency);
43 |
44 | Dependency = new SingleApplyStreamEventsToEntitiesJob
45 | {
46 | StreamDamageEvents = PendingStream.AsReader(),
47 | HealthFromEntity = GetComponentDataFromEntity(false),
48 | }.Schedule(Dependency);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/E_ParallelWriteToStream_ParallelApplyToEntities_System.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public partial class E_ParallelWriteToStream_ParallelApplyToEntities_System : SystemBase
9 | {
10 | public NativeStream PendingStream;
11 |
12 | protected override void OnDestroy()
13 | {
14 | base.OnDestroy();
15 | if (PendingStream.IsCreated)
16 | {
17 | PendingStream.Dispose();
18 | }
19 | }
20 |
21 | protected override void OnUpdate()
22 | {
23 | if (!HasSingleton())
24 | return;
25 |
26 | if (GetSingleton().EventType != EventType.E_ParallelWriteToStream_ParallelApplyToEntities)
27 | return;
28 |
29 | EntityQuery damagersQuery = GetEntityQuery(typeof(Damager));
30 |
31 | if (PendingStream.IsCreated)
32 | {
33 | PendingStream.Dispose();
34 | }
35 | PendingStream = new NativeStream(damagersQuery.CalculateChunkCount(), Allocator.TempJob);
36 |
37 | Dependency = new DamagersWriteToStreamJob
38 | {
39 | EntityType = GetEntityTypeHandle(),
40 | DamagerType = GetComponentTypeHandle(true),
41 | StreamDamageEvents = PendingStream.AsWriter(),
42 | }.ScheduleParallel(damagersQuery, Dependency);
43 |
44 | Dependency = new ParallelApplyStreamEventsToEntitiesJob
45 | {
46 | StreamDamageEvents = PendingStream.AsReader(),
47 | StorageInfoFromEntity = GetStorageInfoFromEntity(),
48 | HealthType = GetComponentTypeHandle(false),
49 | }.Schedule(damagersQuery.CalculateChunkCount(), 1, Dependency);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/B_SingleWriteToBuffers_ParallelPollBuffers_System.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public partial class B_SingleWriteToBuffers_ParallelPollBuffers_System : SystemBase
9 | {
10 | protected override void OnUpdate()
11 | {
12 | if (!HasSingleton())
13 | return;
14 |
15 | if (GetSingleton().EventType != EventType.B_SingleWriteToBuffers_ParallelPollBuffers)
16 | return;
17 |
18 | EntityQuery healthsQuery = GetEntityQuery(typeof(Health), typeof(DamageEvent));
19 | EntityQuery damageBuffersQuery = GetEntityQuery(typeof(DamageEvent));
20 |
21 | BufferFromEntity damageEventFromEntity = GetBufferFromEntity();
22 |
23 | Dependency = Entities.ForEach((Entity entity, in Damager damager) =>
24 | {
25 | if(damageEventFromEntity.HasComponent(damager.Target))
26 | {
27 | DynamicBuffer damageEventBuffer = damageEventFromEntity[damager.Target];
28 | damageEventBuffer.Add(new DamageEvent { Source = entity, Value = damager.Damage });
29 | }
30 | }).Schedule(Dependency);
31 |
32 | Dependency = new PollDamageEventBuffersJob
33 | {
34 | EntityType = GetEntityTypeHandle(),
35 | HealthType = GetComponentTypeHandle(false),
36 | DamageEventBufferType = GetBufferTypeHandle(true),
37 | LastSystemVersion = this.LastSystemVersion,
38 | }.ScheduleParallel(healthsQuery, Dependency);
39 |
40 | Dependency = new ClearDamageEventBuffersJob
41 | {
42 | DamageEventBufferType = GetBufferTypeHandle(false),
43 | LastSystemVersion = this.LastSystemVersion,
44 | }.ScheduleParallel(damageBuffersQuery, Dependency);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/C_ParallelWriteToBuffersECB_ParallelPollBuffers_System.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public partial class C_ParallelWriteToBuffersECB_ParallelPollBuffers_System : SystemBase
9 | {
10 | protected override void OnUpdate()
11 | {
12 | if (!HasSingleton())
13 | return;
14 |
15 | if (GetSingleton().EventType != EventType.C_ParallelWriteToBuffersECB_ParallelPollBuffers)
16 | return;
17 |
18 | EntityQuery healthsQuery = GetEntityQuery(typeof(Health), typeof(DamageEvent));
19 | EntityQuery damageBuffersQuery = GetEntityQuery(typeof(DamageEvent));
20 |
21 | EndSimulationEntityCommandBufferSystem ecbSystem = World.GetOrCreateSystem();
22 | EntityCommandBuffer.ParallelWriter ecb = ecbSystem.CreateCommandBuffer().AsParallelWriter();
23 |
24 | Dependency = Entities.ForEach((Entity entity, int entityInQueryIndex, in Damager damager) =>
25 | {
26 | ecb.AppendToBuffer(entityInQueryIndex, damager.Target, new DamageEvent { Source = entity, Value = damager.Damage });
27 | }).ScheduleParallel(Dependency);
28 |
29 | Dependency = new PollDamageEventBuffersJob
30 | {
31 | EntityType = GetEntityTypeHandle(),
32 | HealthType = GetComponentTypeHandle(false),
33 | DamageEventBufferType = GetBufferTypeHandle(true),
34 | LastSystemVersion = this.LastSystemVersion,
35 | }.ScheduleParallel(healthsQuery, Dependency);
36 |
37 | Dependency = new ClearDamageEventBuffersJob
38 | {
39 | DamageEventBufferType = GetBufferTypeHandle(false),
40 | LastSystemVersion = this.LastSystemVersion,
41 | }.ScheduleParallel(damageBuffersQuery, Dependency);
42 |
43 | ecbSystem.AddJobHandleForProducer(Dependency);
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.collab-proxy": "1.15.12",
4 | "com.unity.entities": "0.50.0-preview.24",
5 | "com.unity.ide.rider": "3.0.14",
6 | "com.unity.ide.visualstudio": "2.0.14",
7 | "com.unity.ide.vscode": "1.2.4",
8 | "com.unity.performance.profile-analyzer": "1.1.1",
9 | "com.unity.platforms": "0.50.0-preview.4",
10 | "com.unity.render-pipelines.universal": "10.8.1",
11 | "com.unity.rendering.hybrid": "0.50.0-preview.24",
12 | "com.unity.test-framework": "1.1.29",
13 | "com.unity.test-framework.performance": "2.8.0-preview",
14 | "com.unity.textmeshpro": "3.0.6",
15 | "com.unity.timeline": "1.4.8",
16 | "com.unity.ugui": "1.0.0",
17 | "com.unity.modules.ai": "1.0.0",
18 | "com.unity.modules.androidjni": "1.0.0",
19 | "com.unity.modules.animation": "1.0.0",
20 | "com.unity.modules.assetbundle": "1.0.0",
21 | "com.unity.modules.audio": "1.0.0",
22 | "com.unity.modules.cloth": "1.0.0",
23 | "com.unity.modules.director": "1.0.0",
24 | "com.unity.modules.imageconversion": "1.0.0",
25 | "com.unity.modules.imgui": "1.0.0",
26 | "com.unity.modules.jsonserialize": "1.0.0",
27 | "com.unity.modules.particlesystem": "1.0.0",
28 | "com.unity.modules.physics": "1.0.0",
29 | "com.unity.modules.physics2d": "1.0.0",
30 | "com.unity.modules.screencapture": "1.0.0",
31 | "com.unity.modules.terrain": "1.0.0",
32 | "com.unity.modules.terrainphysics": "1.0.0",
33 | "com.unity.modules.tilemap": "1.0.0",
34 | "com.unity.modules.ui": "1.0.0",
35 | "com.unity.modules.uielements": "1.0.0",
36 | "com.unity.modules.umbra": "1.0.0",
37 | "com.unity.modules.unityanalytics": "1.0.0",
38 | "com.unity.modules.unitywebrequest": "1.0.0",
39 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
40 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
41 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
42 | "com.unity.modules.unitywebrequestwww": "1.0.0",
43 | "com.unity.modules.vehicles": "1.0.0",
44 | "com.unity.modules.video": "1.0.0",
45 | "com.unity.modules.vr": "1.0.0",
46 | "com.unity.modules.wind": "1.0.0",
47 | "com.unity.modules.xr": "1.0.0"
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/ProjectSettings/Physics2DSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!19 &1
4 | Physics2DSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 4
7 | m_Gravity: {x: 0, y: -9.81}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_VelocityIterations: 8
10 | m_PositionIterations: 3
11 | m_VelocityThreshold: 1
12 | m_MaxLinearCorrection: 0.2
13 | m_MaxAngularCorrection: 8
14 | m_MaxTranslationSpeed: 100
15 | m_MaxRotationSpeed: 360
16 | m_BaumgarteScale: 0.2
17 | m_BaumgarteTimeOfImpactScale: 0.75
18 | m_TimeToSleep: 0.5
19 | m_LinearSleepTolerance: 0.01
20 | m_AngularSleepTolerance: 2
21 | m_DefaultContactOffset: 0.01
22 | m_JobOptions:
23 | serializedVersion: 2
24 | useMultithreading: 0
25 | useConsistencySorting: 0
26 | m_InterpolationPosesPerJob: 100
27 | m_NewContactsPerJob: 30
28 | m_CollideContactsPerJob: 100
29 | m_ClearFlagsPerJob: 200
30 | m_ClearBodyForcesPerJob: 200
31 | m_SyncDiscreteFixturesPerJob: 50
32 | m_SyncContinuousFixturesPerJob: 50
33 | m_FindNearestContactsPerJob: 100
34 | m_UpdateTriggerContactsPerJob: 100
35 | m_IslandSolverCostThreshold: 100
36 | m_IslandSolverBodyCostScale: 1
37 | m_IslandSolverContactCostScale: 10
38 | m_IslandSolverJointCostScale: 10
39 | m_IslandSolverBodiesPerJob: 50
40 | m_IslandSolverContactsPerJob: 50
41 | m_AutoSimulation: 1
42 | m_QueriesHitTriggers: 1
43 | m_QueriesStartInColliders: 1
44 | m_CallbacksOnDisable: 1
45 | m_ReuseCollisionCallbacks: 1
46 | m_AutoSyncTransforms: 0
47 | m_AlwaysShowColliders: 0
48 | m_ShowColliderSleep: 1
49 | m_ShowColliderContacts: 0
50 | m_ShowColliderAABB: 0
51 | m_ContactArrowScale: 0.2
52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
57 |
--------------------------------------------------------------------------------
/Assets/StressTest/EventStressTestSystem.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | [AlwaysUpdateSystem]
9 | [AlwaysSynchronizeSystem]
10 | [UpdateInGroup(typeof(SimulationSystemGroup), OrderLast = true)]
11 | public partial class EventStressTestSystem : SystemBase
12 | {
13 | protected override void OnUpdate()
14 | {
15 | EntityManager.CompleteAllJobs();
16 |
17 | EntityCommandBuffer ecb = new EntityCommandBuffer(Allocator.Temp);
18 |
19 | Entities
20 | .WithNone()
21 | .ForEach((Entity entity, ref EventStressTest spawner) =>
22 | {
23 | Random random = Random.CreateFromIndex(1);
24 | int spawnResolution = (int)math.ceil(math.sqrt(spawner.HealthEntityCount));
25 |
26 | int spawnCounter = 0;
27 | for (int x = 0; x < spawnResolution; x++)
28 | {
29 | for (int y = 0; y < spawnResolution; y++)
30 | {
31 | Entity spawnedPrefab = ecb.Instantiate(spawner.HealthPrefab);
32 | ecb.SetComponent(spawnedPrefab, new Translation { Value = new float3(x * spawner.Spacing, 0f, y * spawner.Spacing) });
33 |
34 | for (int d = 0; d < spawner.DamagersPerHealths; d++)
35 | {
36 | Entity damagerEntity = ecb.CreateEntity();
37 | ecb.AddComponent(damagerEntity, new Damager { Target = spawnedPrefab, Damage = 0.1f });
38 | }
39 |
40 | spawnCounter++;
41 | if (spawnCounter >= spawner.HealthEntityCount)
42 | {
43 | break;
44 | }
45 | }
46 |
47 | if (spawnCounter >= spawner.HealthEntityCount)
48 | {
49 | break;
50 | }
51 | }
52 |
53 | ecb.AddComponent(entity, new IsInitialized());
54 | }).Run();
55 |
56 | ecb.Playback(EntityManager);
57 | ecb.Dispose();
58 |
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/PollDamageEventHashMapJob.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Collections.LowLevel.Unsafe;
4 | using Unity.Entities;
5 | using Unity.Jobs;
6 | using Unity.Jobs.LowLevel.Unsafe;
7 | using Unity.Mathematics;
8 | using Unity.Transforms;
9 |
10 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
11 | public struct SinglePollDamageEventHashMapJob : IJob
12 | {
13 | [ReadOnly]
14 | public EntityTypeHandle EntityType;
15 | [ReadOnly]
16 | public NativeMultiHashMap DamageEventsMap;
17 | [NativeDisableParallelForRestriction]
18 | public ComponentDataFromEntity HealthFromEntity;
19 |
20 | public void Execute()
21 | {
22 | if (DamageEventsMap.Count() > 0)
23 | {
24 | var enumerator = DamageEventsMap.GetEnumerator();
25 | while (enumerator.MoveNext())
26 | {
27 | Entity targetEntity = enumerator.Current.Key;
28 | DamageEvent damageEvent = enumerator.Current.Value;
29 | if (HealthFromEntity.HasComponent(targetEntity))
30 | {
31 | Health health = HealthFromEntity[targetEntity];
32 | health.Value -= damageEvent.Value;
33 | HealthFromEntity[targetEntity] = health;
34 | }
35 | }
36 | }
37 | }
38 | }
39 |
40 |
41 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
42 | public struct ParallelPollDamageEventHashMapJob : IJobNativeMultiHashMapVisitKeyValue
43 | {
44 | [NativeDisableParallelForRestriction]
45 | public ComponentDataFromEntity HealthFromEntity;
46 |
47 | public void ExecuteNext(Entity targetEntity, DamageEvent damageEvent)
48 | {
49 | if (HealthFromEntity.HasComponent(targetEntity))
50 | {
51 | Health health = HealthFromEntity[targetEntity];
52 | health.Value -= damageEvent.Value;
53 | HealthFromEntity[targetEntity] = health;
54 | }
55 | }
56 | }
57 |
58 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
59 | public struct ClearDamageEventHashMapJob : IJob
60 | {
61 | public NativeMultiHashMap DamageEventsMap;
62 |
63 | public void Execute()
64 | {
65 | if (DamageEventsMap.Count() > 0)
66 | {
67 | DamageEventsMap.Clear();
68 | }
69 | }
70 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/ParallelWriteStreamEventsToHashMapJob.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 |
9 |
10 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
11 | public struct EnsureHashMapCapacityJob : IJob
12 | {
13 | public NativeStream.Reader StreamDamageEvents;
14 | public NativeMultiHashMap DamageEventsMap;
15 |
16 | public void Execute()
17 | {
18 | int totalCount = 0;
19 | for (int i = 0; i < StreamDamageEvents.ForEachCount; i++)
20 | {
21 | StreamDamageEvents.BeginForEachIndex(i);
22 | totalCount += StreamDamageEvents.RemainingItemCount;
23 | }
24 |
25 | if (totalCount > DamageEventsMap.Capacity)
26 | {
27 | DamageEventsMap.Capacity = totalCount;
28 | }
29 | }
30 | }
31 |
32 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
33 | public struct SingleWriteStreamEventsToHashMapJob : IJob
34 | {
35 | public NativeStream.Reader StreamDamageEvents;
36 | public NativeMultiHashMap DamageEventsMap;
37 |
38 | public void Execute()
39 | {
40 | for (int i = 0; i < StreamDamageEvents.ForEachCount; i++)
41 | {
42 | StreamDamageEvents.BeginForEachIndex(i);
43 | while (StreamDamageEvents.RemainingItemCount > 0)
44 | {
45 | StreamDamageEvent damageEvent = StreamDamageEvents.Read();
46 | DamageEventsMap.Add(damageEvent.Target, damageEvent.DamageEvent);
47 | }
48 | StreamDamageEvents.EndForEachIndex();
49 | }
50 | }
51 | }
52 |
53 | [BurstCompile(OptimizeFor = OptimizeFor.Performance)]
54 | public struct ParallelWriteStreamEventsToHashMapJob : IJobParallelFor
55 | {
56 | public NativeStream.Reader StreamDamageEvents;
57 | public NativeMultiHashMap.ParallelWriter DamageEventsMap;
58 |
59 | public void Execute(int index)
60 | {
61 | StreamDamageEvents.BeginForEachIndex(index);
62 | while (StreamDamageEvents.RemainingItemCount > 0)
63 | {
64 | StreamDamageEvent damageEvent = StreamDamageEvents.Read();
65 | DamageEventsMap.Add(damageEvent.Target, damageEvent.DamageEvent);
66 | }
67 | StreamDamageEvents.EndForEachIndex();
68 | }
69 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/A_ParallelWriteToStream_ParallelPollBuffers_System.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public partial class A_ParallelWriteToStream_ParallelPollBuffers_System : SystemBase
9 | {
10 | public NativeStream PendingStream;
11 |
12 | protected override void OnDestroy()
13 | {
14 | base.OnDestroy();
15 | if (PendingStream.IsCreated)
16 | {
17 | PendingStream.Dispose();
18 | }
19 | }
20 |
21 | protected override void OnUpdate()
22 | {
23 | if (!HasSingleton())
24 | return;
25 |
26 | if (GetSingleton().EventType != EventType.A_ParallelWriteToStream_ParallelPollBuffers)
27 | return;
28 |
29 | EntityQuery damagersQuery = GetEntityQuery(typeof(Damager));
30 | EntityQuery healthsQuery = GetEntityQuery(typeof(Health), typeof(DamageEvent));
31 | EntityQuery damageBuffersQuery = GetEntityQuery(typeof(DamageEvent));
32 |
33 | if (PendingStream.IsCreated)
34 | {
35 | PendingStream.Dispose();
36 | }
37 | PendingStream = new NativeStream(damagersQuery.CalculateChunkCount(), Allocator.TempJob);
38 |
39 | Dependency = new DamagersWriteToStreamJob
40 | {
41 | EntityType = GetEntityTypeHandle(),
42 | DamagerType = GetComponentTypeHandle(true),
43 | StreamDamageEvents = PendingStream.AsWriter(),
44 | }.ScheduleParallel(damagersQuery, Dependency);
45 |
46 | Dependency = new WriteStreamEventsToBuffersJob
47 | {
48 | StreamDamageEvents = PendingStream.AsReader(),
49 | DamageEventBufferFromEntity = GetBufferFromEntity(false),
50 | }.Schedule(Dependency);
51 |
52 | Dependency = new PollDamageEventBuffersJob
53 | {
54 | EntityType = GetEntityTypeHandle(),
55 | HealthType = GetComponentTypeHandle(false),
56 | DamageEventBufferType = GetBufferTypeHandle(true),
57 | LastSystemVersion = this.LastSystemVersion,
58 | }.ScheduleParallel(healthsQuery, Dependency);
59 |
60 | Dependency = new ClearDamageEventBuffersJob
61 | {
62 | DamageEventBufferType = GetBufferTypeHandle(false),
63 | LastSystemVersion = this.LastSystemVersion,
64 | }.ScheduleParallel(damageBuffersQuery, Dependency);
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/F_ParallelCreateEventEntities_SingleApplyToEntities_System.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public struct DamageEventComp : IComponentData
9 | {
10 | public Entity Source;
11 | public Entity Target;
12 | public float Damage;
13 | }
14 |
15 | public partial class F_ParallelCreateEventEntities_SingleApplyToEntities_System : SystemBase
16 | {
17 | protected override void OnUpdate()
18 | {
19 | if (!HasSingleton())
20 | return;
21 |
22 | if (GetSingleton().EventType != EventType.F_ParallelCreateEventEntities_SingleApplyToEntities)
23 | return;
24 |
25 | EntityArchetype eventArchetype = EntityManager.CreateArchetype(typeof(DamageEventComp));
26 | EndSimulationEntityCommandBufferSystem ecbSystem = World.GetOrCreateSystem();
27 |
28 | EntityCommandBuffer.ParallelWriter createEventsECB = ecbSystem.CreateCommandBuffer().AsParallelWriter();
29 |
30 | Dependency = Entities.ForEach((Entity entity, int entityInQueryIndex, in Damager damager) =>
31 | {
32 | Entity damageEventEntity = createEventsECB.CreateEntity(entityInQueryIndex, eventArchetype);
33 | createEventsECB.SetComponent(entityInQueryIndex, damageEventEntity, new DamageEventComp { Source = entity, Target = damager.Target, Damage = damager.Damage });
34 | }).ScheduleParallel(Dependency);
35 |
36 | Dependency = Entities.ForEach((Entity entity, in DamageEventComp damageEvent) =>
37 | {
38 | if(HasComponent(damageEvent.Target))
39 | {
40 | Health health = GetComponent(damageEvent.Target);
41 | health.Value -= damageEvent.Damage;
42 | SetComponent(damageEvent.Target, health);
43 | }
44 | }).Schedule(Dependency);
45 |
46 | ecbSystem.AddJobHandleForProducer(Dependency);
47 | }
48 | }
49 |
50 | [UpdateInGroup(typeof(SimulationSystemGroup), OrderLast = true)]
51 | [UpdateAfter(typeof(EndSimulationEntityCommandBufferSystem))]
52 | public struct DestroyEventEntitiesSystem : ISystem
53 | {
54 | public void OnCreate(ref SystemState state)
55 | {
56 | }
57 |
58 | public void OnDestroy(ref SystemState state)
59 | {
60 | }
61 |
62 | public void OnUpdate(ref SystemState state)
63 | {
64 | EntityQuery eventsQuery = state.GetEntityQuery(typeof(DamageEventComp));
65 | state.EntityManager.DestroyEntity(eventsQuery);
66 | }
67 | }
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/G_ParallelWriteToStream_SinglelPollList_System.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public partial class G_ParallelWriteToStream_SinglelPollList_System : SystemBase
9 | {
10 | public NativeStream PendingStream;
11 | public NativeList DamageEventsList;
12 |
13 | protected override void OnCreate()
14 | {
15 | base.OnCreate();
16 | DamageEventsList = new NativeList(500000, Allocator.Persistent);
17 | }
18 |
19 | protected override void OnDestroy()
20 | {
21 | base.OnDestroy();
22 | if (PendingStream.IsCreated)
23 | {
24 | PendingStream.Dispose();
25 | }
26 | if (DamageEventsList.IsCreated)
27 | {
28 | DamageEventsList.Dispose();
29 | }
30 | }
31 |
32 | protected override void OnUpdate()
33 | {
34 | if (!HasSingleton())
35 | return;
36 |
37 | if (GetSingleton().EventType != EventType.G_ParallelWriteToStream_SinglePollList)
38 | return;
39 |
40 | EntityQuery damagersQuery = GetEntityQuery(typeof(Damager));
41 | EntityQuery healthsQuery = GetEntityQuery(typeof(Health), typeof(DamageEvent));
42 | EntityQuery damageBuffersQuery = GetEntityQuery(typeof(DamageEvent));
43 |
44 | if (PendingStream.IsCreated)
45 | {
46 | PendingStream.Dispose();
47 | }
48 | PendingStream = new NativeStream(damagersQuery.CalculateChunkCount(), Allocator.TempJob);
49 |
50 | Dependency = new DamagersWriteToStreamJob
51 | {
52 | EntityType = GetEntityTypeHandle(),
53 | DamagerType = GetComponentTypeHandle(true),
54 | StreamDamageEvents = PendingStream.AsWriter(),
55 | }.ScheduleParallel(damagersQuery, Dependency);
56 |
57 | Dependency = new WriteStreamEventsToListJob
58 | {
59 | StreamDamageEvents = PendingStream.AsReader(),
60 | DamageEventsList = DamageEventsList,
61 | }.Schedule(Dependency);
62 |
63 | Dependency = new SinglePollDamageEventListJob
64 | {
65 | EntityType = GetEntityTypeHandle(),
66 | DamageEventsList = DamageEventsList,
67 | HealthFromEntity = GetComponentDataFromEntity(false),
68 | }.Schedule(Dependency);
69 |
70 | Dependency = new ClearDamageEventListJob
71 | {
72 | DamageEventsList = DamageEventsList,
73 | }.Schedule(Dependency);
74 | }
75 | }
76 |
77 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPTestSetup.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using Unity.Mathematics;
5 |
6 | public class OOPTestSetup : MonoBehaviour
7 | {
8 | public bool UseMonobehaviourUpdate = true;
9 |
10 | public GameObject HealthPrefabRegular;
11 | public GameObject DamagerPrefabRegular;
12 | public GameObject HealthPrefabManual;
13 | public GameObject DamagerPrefabManual;
14 |
15 | public int HealthEntityCount = 500000;
16 | public float Spacing = 1f;
17 | public int DamagersPerHealths = 1;
18 |
19 | private void Start()
20 | {
21 | int spawnResolution = (int)math.ceil(math.sqrt(HealthEntityCount));
22 |
23 | GameObject usedHealthPrefab = null;
24 | GameObject usedDamagerPrefab = null;
25 | if(UseMonobehaviourUpdate)
26 | {
27 | usedHealthPrefab = HealthPrefabRegular;
28 | usedDamagerPrefab = DamagerPrefabRegular;
29 | }
30 | else
31 | {
32 | usedHealthPrefab = HealthPrefabManual;
33 | usedDamagerPrefab = DamagerPrefabManual;
34 | }
35 |
36 |
37 | GameObject updateManagerGO = new GameObject("UpdateManager");
38 | ManualUpdateManager updateManager = updateManagerGO.AddComponent();
39 |
40 | int spawnCounter = 0;
41 | for (int x = 0; x < spawnResolution; x++)
42 | {
43 | for (int y = 0; y < spawnResolution; y++)
44 | {
45 | GameObject spawnedHealth = Instantiate(usedHealthPrefab);
46 | spawnedHealth.transform.position = new float3(x * Spacing, 0f, y * Spacing);
47 |
48 | for (int d = 0; d < DamagersPerHealths; d++)
49 | {
50 | GameObject spawnedDamager = Instantiate(usedDamagerPrefab);
51 | if(UseMonobehaviourUpdate)
52 | {
53 | spawnedDamager.GetComponent().Target = spawnedHealth.GetComponent();
54 | }
55 | else
56 | {
57 | spawnedDamager.GetComponent().Target = spawnedHealth.GetComponent();
58 | updateManager.ManualDamagers.Add(spawnedDamager.GetComponent());
59 | }
60 | }
61 |
62 | spawnCounter++;
63 | if (spawnCounter >= HealthEntityCount)
64 | {
65 | break;
66 | }
67 | }
68 |
69 | if (spawnCounter >= HealthEntityCount)
70 | {
71 | break;
72 | }
73 | }
74 |
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/ProjectSettings/GraphicsSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!30 &1
4 | GraphicsSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 13
7 | m_Deferred:
8 | m_Mode: 1
9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
10 | m_DeferredReflections:
11 | m_Mode: 1
12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
13 | m_ScreenSpaceShadows:
14 | m_Mode: 1
15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
16 | m_LegacyDeferred:
17 | m_Mode: 1
18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
19 | m_DepthNormals:
20 | m_Mode: 1
21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
22 | m_MotionVectors:
23 | m_Mode: 1
24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
25 | m_LightHalo:
26 | m_Mode: 1
27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
28 | m_LensFlare:
29 | m_Mode: 1
30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
31 | m_AlwaysIncludedShaders:
32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
39 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
40 | - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}
41 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
42 | m_PreloadedShaders: []
43 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
44 | type: 0}
45 | m_CustomRenderPipeline: {fileID: 11400000, guid: 19ba41d7c0026c3459d37c2fe90c55a0,
46 | type: 2}
47 | m_TransparencySortMode: 0
48 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
49 | m_DefaultRenderingPath: 1
50 | m_DefaultMobileRenderingPath: 1
51 | m_TierSettings: []
52 | m_LightmapStripping: 0
53 | m_FogStripping: 0
54 | m_InstancingStripping: 0
55 | m_LightmapKeepPlain: 1
56 | m_LightmapKeepDirCombined: 1
57 | m_LightmapKeepDynamicPlain: 1
58 | m_LightmapKeepDynamicDirCombined: 1
59 | m_LightmapKeepShadowMask: 1
60 | m_LightmapKeepSubtractive: 1
61 | m_FogKeepLinear: 1
62 | m_FogKeepExp: 1
63 | m_FogKeepExp2: 1
64 | m_AlbedoSwatchInfos: []
65 | m_LightsUseLinearIntensity: 1
66 | m_LightsUseColorTemperature: 0
67 | m_LogWhenShaderIsCompiled: 0
68 | m_AllowEnlightenSupportForUpgradedProject: 1
69 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/I_ParallelWriteToStream_ParallelPollHashMap_System.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public partial class I_ParallelWriteToStream_ParallelPollHashMap_System : SystemBase
9 | {
10 | public NativeStream PendingStream;
11 | public NativeMultiHashMap DamageEventsMap;
12 |
13 | protected override void OnCreate()
14 | {
15 | base.OnCreate();
16 | DamageEventsMap = new NativeMultiHashMap(500000, Allocator.Persistent);
17 | }
18 |
19 | protected override void OnDestroy()
20 | {
21 | base.OnDestroy();
22 | if (PendingStream.IsCreated)
23 | {
24 | PendingStream.Dispose();
25 | }
26 | if (DamageEventsMap.IsCreated)
27 | {
28 | DamageEventsMap.Dispose();
29 | }
30 | }
31 |
32 | protected override void OnUpdate()
33 | {
34 | if (!HasSingleton())
35 | return;
36 |
37 | if (GetSingleton().EventType != EventType.I_ParallelWriteToStream_ParallelPollHashMap)
38 | return;
39 |
40 | EntityQuery damagersQuery = GetEntityQuery(typeof(Damager));
41 |
42 | if (PendingStream.IsCreated)
43 | {
44 | PendingStream.Dispose();
45 | }
46 | PendingStream = new NativeStream(damagersQuery.CalculateChunkCount(), Allocator.TempJob);
47 |
48 | Dependency = new DamagersWriteToStreamJob
49 | {
50 | EntityType = GetEntityTypeHandle(),
51 | DamagerType = GetComponentTypeHandle(true),
52 | StreamDamageEvents = PendingStream.AsWriter(),
53 | }.ScheduleParallel(damagersQuery, Dependency);
54 |
55 |
56 |
57 | Dependency = new SingleWriteStreamEventsToHashMapJob
58 | {
59 | StreamDamageEvents = PendingStream.AsReader(),
60 | DamageEventsMap = DamageEventsMap,
61 | }.Schedule(Dependency);
62 |
63 | //Dependency = new EnsureHashMapCapacityJob
64 | //{
65 | // StreamDamageEvents = PendingStream.AsReader(),
66 | // DamageEventsMap = DamageEventsMap,
67 | //}.Schedule(Dependency);
68 |
69 | //Dependency = new ParallelWriteStreamEventsToHashMapJob
70 | //{
71 | // StreamDamageEvents = PendingStream.AsReader(),
72 | // DamageEventsMap = DamageEventsMap.AsParallelWriter(),
73 | //}.Schedule(damagersQuery.CalculateChunkCount(), 1, Dependency);
74 |
75 | Dependency = new ParallelPollDamageEventHashMapJob
76 | {
77 | HealthFromEntity = GetComponentDataFromEntity(false),
78 | }.ScheduleParallel(DamageEventsMap, 1000, Dependency);
79 |
80 | Dependency = new ClearDamageEventHashMapJob
81 | {
82 | DamageEventsMap = DamageEventsMap,
83 | }.Schedule(Dependency);
84 | }
85 | }
86 |
87 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/H_ParallelWriteToStream_SinglePollHashMap_System.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Collections;
3 | using Unity.Entities;
4 | using Unity.Jobs;
5 | using Unity.Mathematics;
6 | using Unity.Transforms;
7 |
8 | public partial class H_ParallelWriteToStream_SinglePollHashMap_System : SystemBase
9 | {
10 | public NativeStream PendingStream;
11 | public NativeMultiHashMap DamageEventsMap;
12 |
13 | protected override void OnCreate()
14 | {
15 | base.OnCreate();
16 | DamageEventsMap = new NativeMultiHashMap(500000, Allocator.Persistent);
17 | }
18 |
19 | protected override void OnDestroy()
20 | {
21 | base.OnDestroy();
22 | if (PendingStream.IsCreated)
23 | {
24 | PendingStream.Dispose();
25 | }
26 | if (DamageEventsMap.IsCreated)
27 | {
28 | DamageEventsMap.Dispose();
29 | }
30 | }
31 |
32 | protected override void OnUpdate()
33 | {
34 | if (!HasSingleton())
35 | return;
36 |
37 | if (GetSingleton().EventType != EventType.H_ParallelWriteToStream_SinglePollHashMap)
38 | return;
39 |
40 | EntityQuery damagersQuery = GetEntityQuery(typeof(Damager));
41 |
42 | if (PendingStream.IsCreated)
43 | {
44 | PendingStream.Dispose();
45 | }
46 | PendingStream = new NativeStream(damagersQuery.CalculateChunkCount(), Allocator.TempJob);
47 |
48 | Dependency = new DamagersWriteToStreamJob
49 | {
50 | EntityType = GetEntityTypeHandle(),
51 | DamagerType = GetComponentTypeHandle(true),
52 | StreamDamageEvents = PendingStream.AsWriter(),
53 | }.ScheduleParallel(damagersQuery, Dependency);
54 |
55 | Dependency = new SingleWriteStreamEventsToHashMapJob
56 | {
57 | StreamDamageEvents = PendingStream.AsReader(),
58 | DamageEventsMap = DamageEventsMap,
59 | }.Schedule(Dependency);
60 |
61 | //Dependency = new EnsureHashMapCapacityJob
62 | //{
63 | // StreamDamageEvents = PendingStream.AsReader(),
64 | // DamageEventsMap = DamageEventsMap,
65 | //}.Schedule(Dependency);
66 |
67 | //Dependency = new ParallelWriteStreamEventsToHashMapJob
68 | //{
69 | // StreamDamageEvents = PendingStream.AsReader(),
70 | // DamageEventsMap = DamageEventsMap.AsParallelWriter(),
71 | //}.Schedule(damagersQuery.CalculateChunkCount(), 1, Dependency);
72 |
73 | Dependency = new SinglePollDamageEventHashMapJob
74 | {
75 | EntityType = GetEntityTypeHandle(),
76 | DamageEventsMap = DamageEventsMap,
77 | HealthFromEntity = GetComponentDataFromEntity(false),
78 | }.Schedule(Dependency);
79 |
80 | Dependency = new ClearDamageEventHashMapJob
81 | {
82 | DamageEventsMap = DamageEventsMap,
83 | }.Schedule(Dependency);
84 | }
85 | }
86 |
87 |
--------------------------------------------------------------------------------
/ProjectSettings/QualitySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!47 &1
4 | QualitySettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 5
7 | m_CurrentQuality: 2
8 | m_QualitySettings:
9 | - serializedVersion: 2
10 | name: Low
11 | pixelLightCount: 0
12 | shadows: 0
13 | shadowResolution: 0
14 | shadowProjection: 1
15 | shadowCascades: 1
16 | shadowDistance: 20
17 | shadowNearPlaneOffset: 3
18 | shadowCascade2Split: 0.33333334
19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
20 | shadowmaskMode: 0
21 | skinWeights: 2
22 | textureQuality: 0
23 | anisotropicTextures: 0
24 | antiAliasing: 0
25 | softParticles: 0
26 | softVegetation: 0
27 | realtimeReflectionProbes: 0
28 | billboardsFaceCameraPosition: 0
29 | vSyncCount: 0
30 | lodBias: 0.4
31 | maximumLODLevel: 0
32 | streamingMipmapsActive: 0
33 | streamingMipmapsAddAllCameras: 1
34 | streamingMipmapsMemoryBudget: 512
35 | streamingMipmapsRenderersPerFrame: 512
36 | streamingMipmapsMaxLevelReduction: 2
37 | streamingMipmapsMaxFileIORequests: 1024
38 | particleRaycastBudget: 16
39 | asyncUploadTimeSlice: 2
40 | asyncUploadBufferSize: 16
41 | asyncUploadPersistentBuffer: 1
42 | resolutionScalingFixedDPIFactor: 1
43 | customRenderPipeline: {fileID: 11400000, guid: a31e9f9f9c9d4b9429ed0d1234e22103, type: 2}
44 | excludedTargetPlatforms: []
45 | - serializedVersion: 2
46 | name: Medium
47 | pixelLightCount: 1
48 | shadows: 1
49 | shadowResolution: 0
50 | shadowProjection: 1
51 | shadowCascades: 1
52 | shadowDistance: 20
53 | shadowNearPlaneOffset: 3
54 | shadowCascade2Split: 0.33333334
55 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
56 | shadowmaskMode: 0
57 | skinWeights: 2
58 | textureQuality: 0
59 | anisotropicTextures: 1
60 | antiAliasing: 0
61 | softParticles: 0
62 | softVegetation: 0
63 | realtimeReflectionProbes: 0
64 | billboardsFaceCameraPosition: 0
65 | vSyncCount: 1
66 | lodBias: 0.7
67 | maximumLODLevel: 0
68 | streamingMipmapsActive: 0
69 | streamingMipmapsAddAllCameras: 1
70 | streamingMipmapsMemoryBudget: 512
71 | streamingMipmapsRenderersPerFrame: 512
72 | streamingMipmapsMaxLevelReduction: 2
73 | streamingMipmapsMaxFileIORequests: 1024
74 | particleRaycastBudget: 64
75 | asyncUploadTimeSlice: 2
76 | asyncUploadBufferSize: 16
77 | asyncUploadPersistentBuffer: 1
78 | resolutionScalingFixedDPIFactor: 1
79 | customRenderPipeline: {fileID: 11400000, guid: d847b876476d3d6468f5dfcd34266f96, type: 2}
80 | excludedTargetPlatforms: []
81 | - serializedVersion: 2
82 | name: High
83 | pixelLightCount: 2
84 | shadows: 2
85 | shadowResolution: 1
86 | shadowProjection: 1
87 | shadowCascades: 2
88 | shadowDistance: 40
89 | shadowNearPlaneOffset: 3
90 | shadowCascade2Split: 0.33333334
91 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
92 | shadowmaskMode: 1
93 | skinWeights: 2
94 | textureQuality: 0
95 | anisotropicTextures: 1
96 | antiAliasing: 2
97 | softParticles: 0
98 | softVegetation: 1
99 | realtimeReflectionProbes: 1
100 | billboardsFaceCameraPosition: 1
101 | vSyncCount: 0
102 | lodBias: 1
103 | maximumLODLevel: 0
104 | streamingMipmapsActive: 0
105 | streamingMipmapsAddAllCameras: 1
106 | streamingMipmapsMemoryBudget: 512
107 | streamingMipmapsRenderersPerFrame: 512
108 | streamingMipmapsMaxLevelReduction: 2
109 | streamingMipmapsMaxFileIORequests: 1024
110 | particleRaycastBudget: 256
111 | asyncUploadTimeSlice: 2
112 | asyncUploadBufferSize: 16
113 | asyncUploadPersistentBuffer: 1
114 | resolutionScalingFixedDPIFactor: 1
115 | customRenderPipeline: {fileID: 11400000, guid: 19ba41d7c0026c3459d37c2fe90c55a0, type: 2}
116 | excludedTargetPlatforms: []
117 | m_PerPlatformDefaultQuality:
118 | Android: 1
119 | Lumin: 2
120 | Nintendo Switch: 2
121 | PS4: 2
122 | Stadia: 2
123 | Standalone: 2
124 | WebGL: 1
125 | Windows Store Apps: 2
126 | XboxOne: 2
127 | iPhone: 1
128 | tvOS: 1
129 |
--------------------------------------------------------------------------------
/Assets/StressTest/TestEvents/Jobs/CustomJobTypes/IJobNativeMultiHashMapVisitKeyValue.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics.CodeAnalysis;
3 | using Unity.Collections;
4 | using Unity.Collections.LowLevel.Unsafe;
5 | using Unity.Jobs;
6 | using Unity.Jobs.LowLevel.Unsafe;
7 |
8 | [JobProducerType(typeof(JobNativeMultiHashMapVisitKeyValue.JobNativeMultiHashMapVisitKeyValueProducer<,,>))]
9 | public interface IJobNativeMultiHashMapVisitKeyValue
10 | where TKey : struct, IEquatable
11 | where TValue : struct
12 | {
13 | void ExecuteNext(TKey key, TValue value);
14 | }
15 |
16 | public static class JobNativeMultiHashMapVisitKeyValue
17 | {
18 | public static unsafe JobHandle ScheduleParallel(
19 | this TJob jobData,
20 | NativeMultiHashMap hashMap,
21 | int minIndicesPerJobCount,
22 | JobHandle dependsOn = default)
23 | where TJob : struct, IJobNativeMultiHashMapVisitKeyValue
24 | where TKey : struct, IEquatable
25 | where TValue : struct
26 | {
27 | var jobProducer = new JobNativeMultiHashMapVisitKeyValueProducer
28 | {
29 | HashMap = hashMap,
30 | JobData = jobData,
31 | };
32 |
33 | var scheduleParams = new JobsUtility.JobScheduleParameters(
34 | UnsafeUtility.AddressOf(ref jobProducer),
35 | JobNativeMultiHashMapVisitKeyValueProducer.Initialize(),
36 | dependsOn,
37 | ScheduleMode.Parallel);
38 |
39 | return JobsUtility.ScheduleParallelFor(ref scheduleParams, hashMap.GetUnsafeBucketData().bucketCapacityMask + 1, minIndicesPerJobCount);
40 | }
41 |
42 | internal struct JobNativeMultiHashMapVisitKeyValueProducer
43 | where TJob : struct, IJobNativeMultiHashMapVisitKeyValue
44 | where TKey : struct, IEquatable
45 | where TValue : struct
46 | {
47 | [ReadOnly]
48 | public NativeMultiHashMap HashMap;
49 |
50 | internal TJob JobData;
51 |
52 | private static IntPtr jobReflectionData;
53 |
54 | private delegate void ExecuteJobFunction(
55 | ref JobNativeMultiHashMapVisitKeyValueProducer producer,
56 | IntPtr additionalPtr,
57 | IntPtr bufferRangePatchData,
58 | ref JobRanges ranges,
59 | int jobIndex);
60 |
61 | internal static IntPtr Initialize()
62 | {
63 | if (jobReflectionData == IntPtr.Zero)
64 | {
65 | jobReflectionData = JobsUtility.CreateJobReflectionData(
66 | typeof(JobNativeMultiHashMapVisitKeyValueProducer),
67 | typeof(TJob),
68 | (ExecuteJobFunction)Execute);
69 | }
70 |
71 | return jobReflectionData;
72 | }
73 |
74 | internal static unsafe void Execute(
75 | ref JobNativeMultiHashMapVisitKeyValueProducer fullData,
76 | IntPtr additionalPtr,
77 | IntPtr bufferRangePatchData,
78 | ref JobRanges ranges,
79 | int jobIndex)
80 | {
81 | while (true)
82 | {
83 | if (!JobsUtility.GetWorkStealingRange(ref ranges, jobIndex, out var begin, out var end))
84 | {
85 | return;
86 | }
87 |
88 | UnsafeHashMapBucketData bucketData = fullData.HashMap.GetUnsafeBucketData();
89 | int* buckets = (int*)bucketData.buckets;
90 | int* nextPtrs = (int*)bucketData.next;
91 | byte* keys = bucketData.keys;
92 | byte* values = bucketData.values;
93 |
94 | for (int i = begin; i < end; i++)
95 | {
96 | int entryIndex = buckets[i];
97 |
98 | while (entryIndex != -1)
99 | {
100 | TKey key = UnsafeUtility.ReadArrayElement(keys, entryIndex);
101 | TValue value = UnsafeUtility.ReadArrayElement(values, entryIndex);
102 |
103 | fullData.JobData.ExecuteNext(key, value);
104 |
105 | entryIndex = nextPtrs[entryIndex];
106 | }
107 | }
108 | }
109 | }
110 | }
111 | }
--------------------------------------------------------------------------------
/Assets/UnitTests/ECSTestsFixture/ECSTestsFixture.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using System.Reflection;
3 | using Unity.Collections;
4 | using Unity.Entities;
5 | using Unity.Jobs.LowLevel.Unsafe;
6 | #if !UNITY_DOTSRUNTIME
7 | using UnityEngine.LowLevel;
8 | #endif
9 |
10 | #if NET_DOTS
11 | public class EmptySystem : ComponentSystem
12 | {
13 | protected override void OnUpdate()
14 | {
15 | }
16 |
17 | public new EntityQuery GetEntityQuery(params EntityQueryDesc[] queriesDesc)
18 | {
19 | return base.GetEntityQuery(queriesDesc);
20 | }
21 |
22 | public new EntityQuery GetEntityQuery(params ComponentType[] componentTypes)
23 | {
24 | return base.GetEntityQuery(componentTypes);
25 | }
26 |
27 | public new EntityQuery GetEntityQuery(NativeArray componentTypes)
28 | {
29 | return base.GetEntityQuery(componentTypes);
30 | }
31 |
32 | public unsafe new BufferFromEntity GetBufferFromEntity(bool isReadOnly = false) where T : struct, IBufferElementData
33 | {
34 | CheckedState()->AddReaderWriter(isReadOnly ? ComponentType.ReadOnly() : ComponentType.ReadWrite());
35 | return EntityManager.GetBufferFromEntity(isReadOnly);
36 | }
37 | }
38 | #else
39 | public partial class EmptySystem : SystemBase
40 | {
41 | protected override void OnUpdate() {}
42 |
43 | public new EntityQuery GetEntityQuery(params EntityQueryDesc[] queriesDesc) => base.GetEntityQuery(queriesDesc);
44 |
45 | public new EntityQuery GetEntityQuery(params ComponentType[] componentTypes) => base.GetEntityQuery(componentTypes);
46 |
47 | public new EntityQuery GetEntityQuery(NativeArray componentTypes) => base.GetEntityQuery(componentTypes);
48 | }
49 |
50 | #endif
51 |
52 | public class ECSTestsCommonBase
53 | {
54 | [SetUp]
55 | public virtual void Setup()
56 | {
57 | #if UNITY_DOTSRUNTIME
58 | Unity.Runtime.TempMemoryScope.EnterScope();
59 | #endif
60 | }
61 |
62 | [TearDown]
63 | public virtual void TearDown()
64 | {
65 | #if UNITY_DOTSRUNTIME
66 | Unity.Runtime.TempMemoryScope.ExitScope();
67 | #endif
68 | }
69 | }
70 |
71 | ///
72 | /// Copied from the Entities package and slightly modified to enable default world creation and fixing a call to an internal method via reflection.
73 | ///
74 | public abstract class ECSTestsFixture : ECSTestsCommonBase
75 | {
76 | protected World m_PreviousWorld;
77 | protected World m_World;
78 | #if !UNITY_DOTSRUNTIME
79 | protected PlayerLoopSystem m_PreviousPlayerLoop;
80 | #endif
81 | protected EntityManager m_Manager;
82 | protected EntityManager.EntityManagerDebug m_ManagerDebug;
83 |
84 | protected int StressTestEntityCount = 1000;
85 | protected bool CreateDefaultWorld = false;
86 | private bool JobsDebuggerWasEnabled;
87 |
88 | [SetUp]
89 | public override void Setup()
90 | {
91 | base.Setup();
92 |
93 | #if !UNITY_DOTSRUNTIME
94 | // unit tests preserve the current player loop to restore later, and start from a blank slate.
95 | m_PreviousPlayerLoop = PlayerLoop.GetCurrentPlayerLoop();
96 | PlayerLoop.SetPlayerLoop(PlayerLoop.GetDefaultPlayerLoop());
97 | #endif
98 |
99 | m_PreviousWorld = m_World;
100 | m_World = World.DefaultGameObjectInjectionWorld =
101 | CreateDefaultWorld ? DefaultWorldInitialization.Initialize("Default Test World") : new World("Empty Test World");
102 | m_Manager = m_World.EntityManager;
103 | m_ManagerDebug = new EntityManager.EntityManagerDebug(m_Manager);
104 |
105 | // Many ECS tests will only pass if the Jobs Debugger enabled;
106 | // force it enabled for all tests, and restore the original value at teardown.
107 | JobsDebuggerWasEnabled = JobsUtility.JobDebuggerEnabled;
108 | JobsUtility.JobDebuggerEnabled = true;
109 | #if !UNITY_DOTSRUNTIME
110 | //JobsUtility.ClearSystemIds();
111 | JobUtility_ClearSystemIds();
112 | #endif
113 | }
114 |
115 | [TearDown]
116 | public override void TearDown()
117 | {
118 | if (m_World != null && m_World.IsCreated)
119 | {
120 | // Clean up systems before calling CheckInternalConsistency because we might have filters etc
121 | // holding on SharedComponentData making checks fail
122 | while (m_World.Systems.Count > 0)
123 | m_World.DestroySystem(m_World.Systems[0]);
124 |
125 | m_ManagerDebug.CheckInternalConsistency();
126 |
127 | m_World.Dispose();
128 | m_World = null;
129 |
130 | m_World = m_PreviousWorld;
131 | m_PreviousWorld = null;
132 | m_Manager = default;
133 | }
134 |
135 | JobsUtility.JobDebuggerEnabled = JobsDebuggerWasEnabled;
136 | #if !UNITY_DOTSRUNTIME
137 | //JobsUtility.ClearSystemIds();
138 | JobUtility_ClearSystemIds();
139 | #endif
140 |
141 | #if !UNITY_DOTSRUNTIME
142 | PlayerLoop.SetPlayerLoop(m_PreviousPlayerLoop);
143 | #endif
144 |
145 | base.TearDown();
146 | }
147 |
148 | // calls JobUtility.ClearSystemIds() (internal method)
149 | private void JobUtility_ClearSystemIds() =>
150 | typeof(JobsUtility).GetMethod("ClearSystemIds", BindingFlags.Static | BindingFlags.NonPublic).Invoke(null, null);
151 | }
--------------------------------------------------------------------------------
/Assets/UnitTests/Runtime/RuntimeTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using Unity.Entities;
3 | using Unity.PerformanceTesting;
4 | using Unity.Transforms;
5 |
6 | ///
7 | /// To run performance measurements:
8 | /// - open StressTest scene
9 | /// - open: Window => Analysis => Performance Test Report (and enable "Auto Refresh")
10 | /// - open: Window => General => Test Runner
11 | /// Run tests in Test Runner. Then check Performance Test Report window or the saved TestResults.xml (see Console).
12 | ///
13 | /// Observations:
14 | /// - With Burst compilation disabled, performance (and testing time) is 10 times slower! (12-core CPU)
15 | /// - Jobs => Burst => Safety Checks => Off ... affects some tests more than others! This should be considered in summary.
16 | /// - Jobs => Jobs Debugger ... has practically no effect on measurements
17 | /// - Jobs => Use Job Threads ... as expected: hardly affects "Single" tests, if "off" makes companion Single/Parallel tests perform about the same
18 | /// - [BurstCompile(OptimizeFor = OptimizeFor.Performance)] ... some tests benefit from this, between 0.5-1.0 ms faster (A, D, G, H, I)
19 | ///
20 | public class RuntimeTests : ECSTestsFixture
21 | {
22 | // TODO: move these into a ScriptableObject for easier/faster value tweaking
23 | private readonly int _entityCount = 500000;
24 | private readonly float _spacing = 1f;
25 | private readonly int _damagers = 1;
26 | private readonly float _healthValue = 1000f;
27 |
28 | private void MeasureWorldUpdate(EventType eventType)
29 | {
30 | // create the HealthPrefab entity
31 | // NOTE: I found it difficult to verify whether this is 100% identical to the scene's Health prefab entity after conversion.
32 | // I add the systems from the Archetypes listed for HealthPrefab in play mode as well as the conversion code.
33 | // Should be identical but it's kind of hard to use the DOTS windows while tests are running whereas with breakpoints the UI is frozen.
34 | var healthPrefab = m_Manager.CreateEntity(typeof(LocalToWorld), typeof(Translation), typeof(Rotation), typeof(Health), typeof(Prefab));
35 | m_Manager.AddComponentData(healthPrefab, new Health { Value = _healthValue });
36 | m_Manager.AddBuffer(healthPrefab);
37 |
38 | // we need this to spawn all the entities during the first world update
39 | var spawner = m_Manager.CreateEntity(typeof(EventStressTest));
40 | m_Manager.SetComponentData(spawner, CreateEventStressTest(eventType, healthPrefab));
41 |
42 | Measure.Method(() =>
43 | {
44 | // update the world once, running all systems once
45 | m_World.Update();
46 |
47 | // this did not seem to affect measurements (by much) but it's better to be safe,
48 | // we don't want any jobs to continue running past the measurement cycle
49 | m_Manager.CompleteAllJobs();
50 | })
51 | // First update creates gazillion entities, don't measure this... (actually: could call Update outside Measure once)
52 | // Second update seems generally unstable, skip that too ...
53 | // From third run onwards measurements are stable ...
54 | .WarmupCount(2)
55 | // 10 seems enough to get a decently low deviation
56 | .MeasurementCount(10)
57 | // only measure once to keep numbers comparable to original forum post
58 | .IterationsPerMeasurement(1)
59 | .Run();
60 | }
61 |
62 | private EventStressTest CreateEventStressTest(EventType eventType, Entity prefab) => new EventStressTest
63 | {
64 | EventType = eventType,
65 | HealthPrefab = prefab,
66 | HealthEntityCount = _entityCount,
67 | Spacing = _spacing,
68 | DamagersPerHealths = _damagers,
69 | };
70 |
71 | [Test, Performance]
72 | public void A_ParallelWriteToStream_ParallelPollBuffers() => MeasureWorldUpdate(EventType.A_ParallelWriteToStream_ParallelPollBuffers);
73 |
74 | [Test, Performance]
75 | public void B_SingleWriteToBuffers_ParallelPollBuffers() => MeasureWorldUpdate(EventType.B_SingleWriteToBuffers_ParallelPollBuffers);
76 |
77 | [Test, Performance]
78 | public void C_ParallelWriteToBuffersECB_ParallelPollBuffers() => MeasureWorldUpdate(EventType.C_ParallelWriteToBuffersECB_ParallelPollBuffers);
79 |
80 | [Test, Performance]
81 | public void D_ParallelWriteToStream_SingleApplyToEntities() => MeasureWorldUpdate(EventType.D_ParallelWriteToStream_SingleApplyToEntities);
82 |
83 | [Test, Performance]
84 | public void E_ParallelWriteToStream_ParallelApplyToEntities() => MeasureWorldUpdate(EventType.E_ParallelWriteToStream_ParallelApplyToEntities);
85 |
86 | [Test, Performance]
87 | public void F_ParallelCreateEventEntities_SingleApplyToEntities() => MeasureWorldUpdate(EventType.F_ParallelCreateEventEntities_SingleApplyToEntities);
88 |
89 | [Test, Performance]
90 | public void G_ParallelWriteToStream_SinglePollList() => MeasureWorldUpdate(EventType.G_ParallelWriteToStream_SinglePollList);
91 |
92 | [Test, Performance]
93 | public void H_ParallelWriteToStream_SinglePollHashMap() => MeasureWorldUpdate(EventType.H_ParallelWriteToStream_SinglePollHashMap);
94 |
95 | [Test, Performance]
96 | public void I_ParallelWriteToStream_ParallelPollHashMap() => MeasureWorldUpdate(EventType.I_ParallelWriteToStream_ParallelPollHashMap);
97 |
98 | [Test, Performance]
99 | public void J_SingleDirectModification() => MeasureWorldUpdate(EventType.J_SingleDirectModification);
100 |
101 | public override void Setup()
102 | {
103 | // custom flag in ECSTestsFixture that allows creating the default world, rather than an empty (no systems) world
104 | // must be set before base.Setup() !
105 | CreateDefaultWorld = true;
106 |
107 | // setup the Entities world
108 | base.Setup();
109 | }
110 | }
--------------------------------------------------------------------------------
/Assets/StressTest/StressTest/New Sub Scene.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 9
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 0}
41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 12
47 | m_GIWorkflowMode: 1
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 1
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 512
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 256
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 1
83 | m_PVRDenoiserTypeDirect: 1
84 | m_PVRDenoiserTypeIndirect: 1
85 | m_PVRDenoiserTypeAO: 1
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 1
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_LightingSettings: {fileID: 0}
102 | --- !u!196 &4
103 | NavMeshSettings:
104 | serializedVersion: 2
105 | m_ObjectHideFlags: 0
106 | m_BuildSettings:
107 | serializedVersion: 2
108 | agentTypeID: 0
109 | agentRadius: 0.5
110 | agentHeight: 2
111 | agentSlope: 45
112 | agentClimb: 0.4
113 | ledgeDropHeight: 0
114 | maxJumpAcrossDistance: 0
115 | minRegionArea: 2
116 | manualCellSize: 0
117 | cellSize: 0.16666667
118 | manualTileSize: 0
119 | tileSize: 256
120 | accuratePlacement: 0
121 | maxJobWorkers: 0
122 | preserveTilesOutsideBounds: 0
123 | debug:
124 | m_Flags: 0
125 | m_NavMeshData: {fileID: 0}
126 | --- !u!1 &531615835
127 | GameObject:
128 | m_ObjectHideFlags: 0
129 | m_CorrespondingSourceObject: {fileID: 0}
130 | m_PrefabInstance: {fileID: 0}
131 | m_PrefabAsset: {fileID: 0}
132 | serializedVersion: 6
133 | m_Component:
134 | - component: {fileID: 531615837}
135 | - component: {fileID: 531615836}
136 | m_Layer: 0
137 | m_Name: StressTest
138 | m_TagString: Untagged
139 | m_Icon: {fileID: 0}
140 | m_NavMeshLayer: 0
141 | m_StaticEditorFlags: 0
142 | m_IsActive: 1
143 | --- !u!114 &531615836
144 | MonoBehaviour:
145 | m_ObjectHideFlags: 0
146 | m_CorrespondingSourceObject: {fileID: 0}
147 | m_PrefabInstance: {fileID: 0}
148 | m_PrefabAsset: {fileID: 0}
149 | m_GameObject: {fileID: 531615835}
150 | m_Enabled: 1
151 | m_EditorHideFlags: 0
152 | m_Script: {fileID: 11500000, guid: e13d43e0338b52a49bcf69b46bbc3510, type: 3}
153 | m_Name:
154 | m_EditorClassIdentifier:
155 | EventType: 9
156 | HealthPrefab: {fileID: 1426645702674376967, guid: da10ed77b519af5498cd44dd278809ca, type: 3}
157 | HealthEntityCount: 500000
158 | Spacing: 1
159 | DamagersPerHealths: 1
160 | --- !u!4 &531615837
161 | Transform:
162 | m_ObjectHideFlags: 0
163 | m_CorrespondingSourceObject: {fileID: 0}
164 | m_PrefabInstance: {fileID: 0}
165 | m_PrefabAsset: {fileID: 0}
166 | m_GameObject: {fileID: 531615835}
167 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
168 | m_LocalPosition: {x: 0, y: 0, z: 0}
169 | m_LocalScale: {x: 1, y: 1, z: 1}
170 | m_Children: []
171 | m_Father: {fileID: 0}
172 | m_RootOrder: 0
173 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
174 |
--------------------------------------------------------------------------------
/UserSettings/EditorUserSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!162 &1
4 | EditorUserSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 4
7 | m_ConfigSettings:
8 | Advanced Settings:
9 | value: 183b144645154b6805011b0314355e1e15121c1d233a2a343e6b4773e4e1382be78d2b
10 | flags: 0
11 | Entities Journaling:
12 | value: 184c
13 | flags: 0
14 | Entity Hierarchy Settings:
15 | value: 183b144645154b7802000a2b17364d11021e17246e72662b47695d73a2a07478a2a503f9e33b2b39140deb394664416ebe60494bb64b4a4b514ebf2318f1191e04c835cc16c4160fce1a13c0c90ef3e6c1c1d1efd6c3eeddccdeb2f1fce9dbe8f1f0b1fe89b1ffccafbcbcebef939188ab8af7848c868987fa90fcd2a6dadfc6d4fb8cdad58ecbdeda82ae89b1a0a2b6b6a5ad829ab7acbb999f88b722e9ef31302b02fafcf8f6c0fdf92dc1577e9081666ea57176848889a09c6b89939c909b4b9597b9478f99935297579b23152032310538053a14052c1b292c1e1d2d6131003e34753a6f5e25233a2443464c7b6a445536430931565578650e506f02070401166d141c1619174a6261612b3b212f3c221013271929262c191e1236e52412ec2307e3e427ea33afb4ac04f10f2cf59cb7b84a4c156c0d
16 | flags: 0
17 | Entity Inspector Settings:
18 | value: 183b144645154b790c0d07271e271d4a564654406c6866706f0d1420f2ec3521c1e83bf9e8343a322d36f62c017c5b7ff40b0518f36117
19 | flags: 0
20 | RecentlyUsedScenePath-0:
21 | value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d
22 | flags: 0
23 | RecentlyUsedScenePath-1:
24 | value: 22424703114646643d1c032815204b5f25141d24293b6904283a0900e1e53a3dacf238e0f323
25 | flags: 0
26 | RecentlyUsedScenePath-2:
27 | value: 224247031146467f223a3f1607265a1e59231d3938671227282c1300e1e53a3dacf238e0f323
28 | flags: 0
29 | RecentlyUsedScenePath-3:
30 | value: 2242470311464668191c093103175a03025837051c1c23233966321cd2d3373dece278fce9332b25
31 | flags: 0
32 | RecentlyUsedScenePath-4:
33 | value: 2242470311464668191c093103175a0302582b3e3e2d3523192c0e27acf53a31f6fe
34 | flags: 0
35 | Systems Window Settings:
36 | value: 183b144645154b7802000a2b17364d11021e17246e72662b47695d73a2a07478a2a505e1e82d6f2f100cca3210371526d1051c05e22a040f2507f00b32f01c061ccb5a9f5ace1e10d81c50a48d5d91a3959694aa9ad8efd7c9f2afe0f1c0fcfdf6f8b6f2a5a6dacfb89debbfa1cbc9c3f5c3bac18e9c89c1bbdec2d6f2b992939996c59699c79ae8d182b7baad82aba0b0aea88398abdbf1dd8a8ea765ffc520262728fafcf8f6c28eb162945c71898d6167877a72a980809c9f71cecece859d579fd5f106dbdadb21de0dde237c686c76706641634c764f547c624a7e622d6628286620686f653d2b635a0204003e0805017509093043470e3643041c5d5b415c54450e1c424b420f6e4b634e636263696655641a1f273c0f083c1102ec362de62318e9ea25ab61ade8ed0ee30655b0b6b7b8176615
37 | flags: 0
38 | unity-properties__ui-persistent-state:
39 | value: 183b144645154b7d0202082d05376c0417031d6876681d5a6d695d73a2a07478f98d76a9a77a7f7c7942af7c447e4314f7134b51b65a5c5b415eab5646a9485f7b8558855a885f5c8b595c8e8d5fe7e2d9c3d1a882abf3cacbdacab2b4b0aeb8b5b1e5e6e6c2bc80eaefbef1ef82dcae818af7848c868987fa929193fcf8d7ca9b8cc59b8ed2898e8adef7ddf1dccde4d3e1e4d6d5e5d9ebdddedcf056b2a375632532faa8aaa385d7f92dc33230c4c8326aca1337cacfccc9d23fcc8fe4d1cf02dad9db06dbdadb21de0fb56456223921183906380d3934023f350b110761336566643a683b37686e6f7274454c6b4d071b755f282d493a7a7f0e417f1217144c166d141c1619174a62613864636263696655666957686b695f1b182ba26d74ae6661b7b066bd6abdbea068b0437fb0b6b7b84a4c4846504f3ffc1fd7c5564282d304dcc2705f5c59a28f5ca45efc53b8aaa9ab96abaaabb1f5b7aeb19fb0b3b1e5b8e5bae8bfbe80fce5ecf7bdfc94e0e7e199ec9f9eeff2d5c09294908e989591c59bcac89e968b83cb94cdf8e7b0b3bf92ceece6e9e7daf2f1f383ffd8f3f9f625f6f927f8a0d32dc02dc230c7c433c1c43635c7528e643c26d20dc2dc12131018c8ccc8c42cf7d90d2312102428121726191728596d65675a2e2e2e657d377f133b663b3a3b013e6d630d450003017508750a7854267b090c7e7d0d41134546441a4a7052114c55506f75730c7d727041784a41605a5a5f6ea15f727774717aa7747e00383bff074359ae1710160c6cb54649b7484b49bd0db17880575483515486850ea35b8d8e8ca290a35f90969798a8c7edffb2b7a98cabf0f3a7a0f0f1a2f1eb90bfbcb982efbc84be81bff28a8bfdb7c7dfce9394fddac3aad5b991c598c59ac89f9c9695b6cecd9dd1e3d5d6d4b1f2ebe7d8dedf20f2f4f0eef8f5f34ebe732ae6c0273aec293dd3dedcd3d93beeccc6c9c73ad2d1d33ed3d2d3dba0449a8c42dac1d9597258673a27241321241615254427371e1c3260332f60663c423a3c3836003d396d037270040a19325f7b6d0a02191b0a6d1e041800184e30191b461b1a1b611e4d1e614f621520193d1068426f38093c29745d6da173a5a6a47af5775da8aeafb04244407e136f41b54bbab84c50babf4e81bf503c1108589d5451434b4f98b0b1b19cb3ae89a9a695a6a997a8aba99db09db096f6f8b6f4b6fce5e1bbeea8c4ec82f083bff0f6f7a586a68886908d89fd93c29bbe98c2c796c9c79a9f9c99e2cf9e8fdbb89dc8eaf1fbc5fcfbfbe1fac5e2dbdff0f3f125f825fa28fffc2bfb8a6f61a874c12f3660986d8eed383e3f00d2d4d0ce85d9fb05db0a08dc200a0f853b0f222724212a17242c2629271859746a1c29323e28237121217e2a2f2b7e0c4702700704730104767505790b7f083d5e15560d5a46131a4f593216601d194d635250396478576659576a6f6c6929756c746e716fa27a797ba67b7a792a3bf47c5baf4d5254ad5da45baa5c59a34566bebd4d81538586845a885b578af8cedcf7e1a244a8f1f3c0eeb098acb09a9faee19fefbb9eb1bae7b4bcb6b9b7b1a88183ee8382838986f58689f78ae0cca492e792cd868dd78183d2dc80dc8cc1e4cce2d0e39fd0d6d7d8eaece8e486aca588b6203af4ac7072b30327fafffcf9c22ffc99f2ebff32cac9cb36cbca90fbce3dced13fd0d3d105d805da0ab49952dbc60e1cc5093b000f0c3a00270d181e1f603234302e38353165391c2970552f6d24713b5052412b0a77040c0609077a4f1d397e13121319164516426d181b194d604d625067645361663d103c5b715d4c4d61b2617db4b0b4bb76567876407d79ad43b2b04448b2b530f8fb1f0a4e5352eb1e010b7b4f825a595b865b5a068b5e8d5ea1f2ac89a195a895a8e8eeebd2e7edcad4e2afc0b1a7b0ffeaa1b79393c5ad
40 | flags: 0
41 | vcSharedLogLevel:
42 | value: 0d5e400f0650
43 | flags: 0
44 | m_VCAutomaticAdd: 1
45 | m_VCDebugCom: 0
46 | m_VCDebugCmd: 0
47 | m_VCDebugOut: 0
48 | m_SemanticMergeMode: 2
49 | m_VCShowFailedCheckout: 1
50 | m_VCOverwriteFailedCheckoutAssets: 1
51 | m_VCProjectOverlayIcons: 1
52 | m_VCHierarchyOverlayIcons: 1
53 | m_VCOtherOverlayIcons: 1
54 | m_VCAllowAsyncUpdate: 1
55 |
--------------------------------------------------------------------------------
/Assets/StressTest/StressTest.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 9
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 0}
41 | m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 12
47 | m_GIWorkflowMode: 1
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 1
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 512
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 256
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 1
83 | m_PVRDenoiserTypeDirect: 1
84 | m_PVRDenoiserTypeIndirect: 1
85 | m_PVRDenoiserTypeAO: 1
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 1
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_LightingSettings: {fileID: 0}
102 | --- !u!196 &4
103 | NavMeshSettings:
104 | serializedVersion: 2
105 | m_ObjectHideFlags: 0
106 | m_BuildSettings:
107 | serializedVersion: 2
108 | agentTypeID: 0
109 | agentRadius: 0.5
110 | agentHeight: 2
111 | agentSlope: 45
112 | agentClimb: 0.4
113 | ledgeDropHeight: 0
114 | maxJumpAcrossDistance: 0
115 | minRegionArea: 2
116 | manualCellSize: 0
117 | cellSize: 0.16666667
118 | manualTileSize: 0
119 | tileSize: 256
120 | accuratePlacement: 0
121 | maxJobWorkers: 0
122 | preserveTilesOutsideBounds: 0
123 | debug:
124 | m_Flags: 0
125 | m_NavMeshData: {fileID: 0}
126 | --- !u!1 &511248962
127 | GameObject:
128 | m_ObjectHideFlags: 0
129 | m_CorrespondingSourceObject: {fileID: 0}
130 | m_PrefabInstance: {fileID: 0}
131 | m_PrefabAsset: {fileID: 0}
132 | serializedVersion: 6
133 | m_Component:
134 | - component: {fileID: 511248965}
135 | - component: {fileID: 511248964}
136 | - component: {fileID: 511248963}
137 | m_Layer: 0
138 | m_Name: Main Camera
139 | m_TagString: MainCamera
140 | m_Icon: {fileID: 0}
141 | m_NavMeshLayer: 0
142 | m_StaticEditorFlags: 0
143 | m_IsActive: 1
144 | --- !u!81 &511248963
145 | AudioListener:
146 | m_ObjectHideFlags: 0
147 | m_CorrespondingSourceObject: {fileID: 0}
148 | m_PrefabInstance: {fileID: 0}
149 | m_PrefabAsset: {fileID: 0}
150 | m_GameObject: {fileID: 511248962}
151 | m_Enabled: 1
152 | --- !u!20 &511248964
153 | Camera:
154 | m_ObjectHideFlags: 0
155 | m_CorrespondingSourceObject: {fileID: 0}
156 | m_PrefabInstance: {fileID: 0}
157 | m_PrefabAsset: {fileID: 0}
158 | m_GameObject: {fileID: 511248962}
159 | m_Enabled: 1
160 | serializedVersion: 2
161 | m_ClearFlags: 1
162 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
163 | m_projectionMatrixMode: 1
164 | m_GateFitMode: 2
165 | m_FOVAxisMode: 0
166 | m_SensorSize: {x: 36, y: 24}
167 | m_LensShift: {x: 0, y: 0}
168 | m_FocalLength: 50
169 | m_NormalizedViewPortRect:
170 | serializedVersion: 2
171 | x: 0
172 | y: 0
173 | width: 1
174 | height: 1
175 | near clip plane: 0.3
176 | far clip plane: 1000
177 | field of view: 60
178 | orthographic: 0
179 | orthographic size: 5
180 | m_Depth: -1
181 | m_CullingMask:
182 | serializedVersion: 2
183 | m_Bits: 4294967295
184 | m_RenderingPath: -1
185 | m_TargetTexture: {fileID: 0}
186 | m_TargetDisplay: 0
187 | m_TargetEye: 3
188 | m_HDR: 1
189 | m_AllowMSAA: 1
190 | m_AllowDynamicResolution: 0
191 | m_ForceIntoRT: 0
192 | m_OcclusionCulling: 1
193 | m_StereoConvergence: 10
194 | m_StereoSeparation: 0.022
195 | --- !u!4 &511248965
196 | Transform:
197 | m_ObjectHideFlags: 0
198 | m_CorrespondingSourceObject: {fileID: 0}
199 | m_PrefabInstance: {fileID: 0}
200 | m_PrefabAsset: {fileID: 0}
201 | m_GameObject: {fileID: 511248962}
202 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
203 | m_LocalPosition: {x: 0, y: 1, z: -10}
204 | m_LocalScale: {x: 1, y: 1, z: 1}
205 | m_Children: []
206 | m_Father: {fileID: 0}
207 | m_RootOrder: 0
208 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
209 | --- !u!1 &531615835
210 | GameObject:
211 | m_ObjectHideFlags: 0
212 | m_CorrespondingSourceObject: {fileID: 0}
213 | m_PrefabInstance: {fileID: 0}
214 | m_PrefabAsset: {fileID: 0}
215 | serializedVersion: 6
216 | m_Component:
217 | - component: {fileID: 531615837}
218 | - component: {fileID: 531615836}
219 | m_Layer: 0
220 | m_Name: New Sub Scene
221 | m_TagString: Untagged
222 | m_Icon: {fileID: 0}
223 | m_NavMeshLayer: 0
224 | m_StaticEditorFlags: 0
225 | m_IsActive: 1
226 | --- !u!114 &531615836
227 | MonoBehaviour:
228 | m_ObjectHideFlags: 0
229 | m_CorrespondingSourceObject: {fileID: 0}
230 | m_PrefabInstance: {fileID: 0}
231 | m_PrefabAsset: {fileID: 0}
232 | m_GameObject: {fileID: 531615835}
233 | m_Enabled: 1
234 | m_EditorHideFlags: 0
235 | m_Script: {fileID: 11500000, guid: 45a335734b1572644a6a5d09d87adc65, type: 3}
236 | m_Name:
237 | m_EditorClassIdentifier:
238 | _SceneAsset: {fileID: 102900000, guid: 59179b63308c588499e370d60c06bf6f, type: 3}
239 | _HierarchyColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
240 | AutoLoadScene: 1
241 | _SceneGUID:
242 | Value:
243 | x: 918122901
244 | y: 1216727043
245 | z: 1829191321
246 | w: 4143669440
247 | --- !u!4 &531615837
248 | Transform:
249 | m_ObjectHideFlags: 0
250 | m_CorrespondingSourceObject: {fileID: 0}
251 | m_PrefabInstance: {fileID: 0}
252 | m_PrefabAsset: {fileID: 0}
253 | m_GameObject: {fileID: 531615835}
254 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
255 | m_LocalPosition: {x: 0, y: 0, z: 0}
256 | m_LocalScale: {x: 1, y: 1, z: 1}
257 | m_Children: []
258 | m_Father: {fileID: 0}
259 | m_RootOrder: 2
260 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
261 | --- !u!1 &2038511623
262 | GameObject:
263 | m_ObjectHideFlags: 0
264 | m_CorrespondingSourceObject: {fileID: 0}
265 | m_PrefabInstance: {fileID: 0}
266 | m_PrefabAsset: {fileID: 0}
267 | serializedVersion: 6
268 | m_Component:
269 | - component: {fileID: 2038511625}
270 | - component: {fileID: 2038511624}
271 | m_Layer: 0
272 | m_Name: Directional Light
273 | m_TagString: Untagged
274 | m_Icon: {fileID: 0}
275 | m_NavMeshLayer: 0
276 | m_StaticEditorFlags: 0
277 | m_IsActive: 1
278 | --- !u!108 &2038511624
279 | Light:
280 | m_ObjectHideFlags: 0
281 | m_CorrespondingSourceObject: {fileID: 0}
282 | m_PrefabInstance: {fileID: 0}
283 | m_PrefabAsset: {fileID: 0}
284 | m_GameObject: {fileID: 2038511623}
285 | m_Enabled: 1
286 | serializedVersion: 10
287 | m_Type: 1
288 | m_Shape: 0
289 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
290 | m_Intensity: 1
291 | m_Range: 10
292 | m_SpotAngle: 30
293 | m_InnerSpotAngle: 21.80208
294 | m_CookieSize: 10
295 | m_Shadows:
296 | m_Type: 2
297 | m_Resolution: -1
298 | m_CustomResolution: -1
299 | m_Strength: 1
300 | m_Bias: 0.05
301 | m_NormalBias: 0.4
302 | m_NearPlane: 0.2
303 | m_CullingMatrixOverride:
304 | e00: 1
305 | e01: 0
306 | e02: 0
307 | e03: 0
308 | e10: 0
309 | e11: 1
310 | e12: 0
311 | e13: 0
312 | e20: 0
313 | e21: 0
314 | e22: 1
315 | e23: 0
316 | e30: 0
317 | e31: 0
318 | e32: 0
319 | e33: 1
320 | m_UseCullingMatrixOverride: 0
321 | m_Cookie: {fileID: 0}
322 | m_DrawHalo: 0
323 | m_Flare: {fileID: 0}
324 | m_RenderMode: 0
325 | m_CullingMask:
326 | serializedVersion: 2
327 | m_Bits: 4294967295
328 | m_RenderingLayerMask: 1
329 | m_Lightmapping: 4
330 | m_LightShadowCasterMode: 0
331 | m_AreaSize: {x: 1, y: 1}
332 | m_BounceIntensity: 1
333 | m_ColorTemperature: 6570
334 | m_UseColorTemperature: 0
335 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
336 | m_UseBoundingSphereOverride: 0
337 | m_UseViewFrustumForShadowCasterCull: 1
338 | m_ShadowRadius: 0
339 | m_ShadowAngle: 0
340 | --- !u!4 &2038511625
341 | Transform:
342 | m_ObjectHideFlags: 0
343 | m_CorrespondingSourceObject: {fileID: 0}
344 | m_PrefabInstance: {fileID: 0}
345 | m_PrefabAsset: {fileID: 0}
346 | m_GameObject: {fileID: 2038511623}
347 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
348 | m_LocalPosition: {x: 0, y: 3, z: 0}
349 | m_LocalScale: {x: 1, y: 1, z: 1}
350 | m_Children: []
351 | m_Father: {fileID: 0}
352 | m_RootOrder: 1
353 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
354 |
--------------------------------------------------------------------------------
/Assets/StressTest/OOPTest/OOPScene.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 9
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 0}
41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 12
47 | m_GIWorkflowMode: 1
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 1
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 512
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 256
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 1
83 | m_PVRDenoiserTypeDirect: 1
84 | m_PVRDenoiserTypeIndirect: 1
85 | m_PVRDenoiserTypeAO: 1
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 1
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_LightingSettings: {fileID: 0}
102 | --- !u!196 &4
103 | NavMeshSettings:
104 | serializedVersion: 2
105 | m_ObjectHideFlags: 0
106 | m_BuildSettings:
107 | serializedVersion: 2
108 | agentTypeID: 0
109 | agentRadius: 0.5
110 | agentHeight: 2
111 | agentSlope: 45
112 | agentClimb: 0.4
113 | ledgeDropHeight: 0
114 | maxJumpAcrossDistance: 0
115 | minRegionArea: 2
116 | manualCellSize: 0
117 | cellSize: 0.16666667
118 | manualTileSize: 0
119 | tileSize: 256
120 | accuratePlacement: 0
121 | maxJobWorkers: 0
122 | preserveTilesOutsideBounds: 0
123 | debug:
124 | m_Flags: 0
125 | m_NavMeshData: {fileID: 0}
126 | --- !u!1 &176997305
127 | GameObject:
128 | m_ObjectHideFlags: 0
129 | m_CorrespondingSourceObject: {fileID: 0}
130 | m_PrefabInstance: {fileID: 0}
131 | m_PrefabAsset: {fileID: 0}
132 | serializedVersion: 6
133 | m_Component:
134 | - component: {fileID: 176997308}
135 | - component: {fileID: 176997307}
136 | - component: {fileID: 176997306}
137 | m_Layer: 0
138 | m_Name: Main Camera
139 | m_TagString: MainCamera
140 | m_Icon: {fileID: 0}
141 | m_NavMeshLayer: 0
142 | m_StaticEditorFlags: 0
143 | m_IsActive: 1
144 | --- !u!81 &176997306
145 | AudioListener:
146 | m_ObjectHideFlags: 0
147 | m_CorrespondingSourceObject: {fileID: 0}
148 | m_PrefabInstance: {fileID: 0}
149 | m_PrefabAsset: {fileID: 0}
150 | m_GameObject: {fileID: 176997305}
151 | m_Enabled: 1
152 | --- !u!20 &176997307
153 | Camera:
154 | m_ObjectHideFlags: 0
155 | m_CorrespondingSourceObject: {fileID: 0}
156 | m_PrefabInstance: {fileID: 0}
157 | m_PrefabAsset: {fileID: 0}
158 | m_GameObject: {fileID: 176997305}
159 | m_Enabled: 1
160 | serializedVersion: 2
161 | m_ClearFlags: 1
162 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
163 | m_projectionMatrixMode: 1
164 | m_GateFitMode: 2
165 | m_FOVAxisMode: 0
166 | m_SensorSize: {x: 36, y: 24}
167 | m_LensShift: {x: 0, y: 0}
168 | m_FocalLength: 50
169 | m_NormalizedViewPortRect:
170 | serializedVersion: 2
171 | x: 0
172 | y: 0
173 | width: 1
174 | height: 1
175 | near clip plane: 0.3
176 | far clip plane: 1000
177 | field of view: 60
178 | orthographic: 0
179 | orthographic size: 5
180 | m_Depth: -1
181 | m_CullingMask:
182 | serializedVersion: 2
183 | m_Bits: 4294967295
184 | m_RenderingPath: -1
185 | m_TargetTexture: {fileID: 0}
186 | m_TargetDisplay: 0
187 | m_TargetEye: 3
188 | m_HDR: 1
189 | m_AllowMSAA: 1
190 | m_AllowDynamicResolution: 0
191 | m_ForceIntoRT: 0
192 | m_OcclusionCulling: 1
193 | m_StereoConvergence: 10
194 | m_StereoSeparation: 0.022
195 | --- !u!4 &176997308
196 | Transform:
197 | m_ObjectHideFlags: 0
198 | m_CorrespondingSourceObject: {fileID: 0}
199 | m_PrefabInstance: {fileID: 0}
200 | m_PrefabAsset: {fileID: 0}
201 | m_GameObject: {fileID: 176997305}
202 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
203 | m_LocalPosition: {x: 0, y: 1, z: -10}
204 | m_LocalScale: {x: 1, y: 1, z: 1}
205 | m_Children: []
206 | m_Father: {fileID: 0}
207 | m_RootOrder: 0
208 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
209 | --- !u!1 &634040922
210 | GameObject:
211 | m_ObjectHideFlags: 0
212 | m_CorrespondingSourceObject: {fileID: 0}
213 | m_PrefabInstance: {fileID: 0}
214 | m_PrefabAsset: {fileID: 0}
215 | serializedVersion: 6
216 | m_Component:
217 | - component: {fileID: 634040924}
218 | - component: {fileID: 634040923}
219 | m_Layer: 0
220 | m_Name: OOPTest
221 | m_TagString: Untagged
222 | m_Icon: {fileID: 0}
223 | m_NavMeshLayer: 0
224 | m_StaticEditorFlags: 0
225 | m_IsActive: 1
226 | --- !u!114 &634040923
227 | MonoBehaviour:
228 | m_ObjectHideFlags: 0
229 | m_CorrespondingSourceObject: {fileID: 0}
230 | m_PrefabInstance: {fileID: 0}
231 | m_PrefabAsset: {fileID: 0}
232 | m_GameObject: {fileID: 634040922}
233 | m_Enabled: 1
234 | m_EditorHideFlags: 0
235 | m_Script: {fileID: 11500000, guid: e6fcc56fff249f440ade1c91d2365b29, type: 3}
236 | m_Name:
237 | m_EditorClassIdentifier:
238 | UseMonobehaviourUpdate: 0
239 | HealthPrefabRegular: {fileID: 6667722409156007695, guid: 3f0fda8189b166c46a7d837a744245ec, type: 3}
240 | DamagerPrefabRegular: {fileID: 9147403129590496361, guid: ecb147aadf73f994cb54a79a0f9e4618, type: 3}
241 | HealthPrefabManual: {fileID: 6667722409156007695, guid: 9b5f20ac40c18994fab833397a42e96a, type: 3}
242 | DamagerPrefabManual: {fileID: 9147403129590496361, guid: ea16f7152ad748a43b73661550d3c0bf, type: 3}
243 | HealthEntityCount: 500000
244 | Spacing: 1
245 | DamagersPerHealths: 1
246 | --- !u!4 &634040924
247 | Transform:
248 | m_ObjectHideFlags: 0
249 | m_CorrespondingSourceObject: {fileID: 0}
250 | m_PrefabInstance: {fileID: 0}
251 | m_PrefabAsset: {fileID: 0}
252 | m_GameObject: {fileID: 634040922}
253 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
254 | m_LocalPosition: {x: 0, y: 0, z: 0}
255 | m_LocalScale: {x: 1, y: 1, z: 1}
256 | m_Children: []
257 | m_Father: {fileID: 0}
258 | m_RootOrder: 2
259 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
260 | --- !u!1 &639443025
261 | GameObject:
262 | m_ObjectHideFlags: 0
263 | m_CorrespondingSourceObject: {fileID: 0}
264 | m_PrefabInstance: {fileID: 0}
265 | m_PrefabAsset: {fileID: 0}
266 | serializedVersion: 6
267 | m_Component:
268 | - component: {fileID: 639443027}
269 | - component: {fileID: 639443026}
270 | m_Layer: 0
271 | m_Name: Directional Light
272 | m_TagString: Untagged
273 | m_Icon: {fileID: 0}
274 | m_NavMeshLayer: 0
275 | m_StaticEditorFlags: 0
276 | m_IsActive: 1
277 | --- !u!108 &639443026
278 | Light:
279 | m_ObjectHideFlags: 0
280 | m_CorrespondingSourceObject: {fileID: 0}
281 | m_PrefabInstance: {fileID: 0}
282 | m_PrefabAsset: {fileID: 0}
283 | m_GameObject: {fileID: 639443025}
284 | m_Enabled: 1
285 | serializedVersion: 10
286 | m_Type: 1
287 | m_Shape: 0
288 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
289 | m_Intensity: 1
290 | m_Range: 10
291 | m_SpotAngle: 30
292 | m_InnerSpotAngle: 21.80208
293 | m_CookieSize: 10
294 | m_Shadows:
295 | m_Type: 2
296 | m_Resolution: -1
297 | m_CustomResolution: -1
298 | m_Strength: 1
299 | m_Bias: 0.05
300 | m_NormalBias: 0.4
301 | m_NearPlane: 0.2
302 | m_CullingMatrixOverride:
303 | e00: 1
304 | e01: 0
305 | e02: 0
306 | e03: 0
307 | e10: 0
308 | e11: 1
309 | e12: 0
310 | e13: 0
311 | e20: 0
312 | e21: 0
313 | e22: 1
314 | e23: 0
315 | e30: 0
316 | e31: 0
317 | e32: 0
318 | e33: 1
319 | m_UseCullingMatrixOverride: 0
320 | m_Cookie: {fileID: 0}
321 | m_DrawHalo: 0
322 | m_Flare: {fileID: 0}
323 | m_RenderMode: 0
324 | m_CullingMask:
325 | serializedVersion: 2
326 | m_Bits: 4294967295
327 | m_RenderingLayerMask: 1
328 | m_Lightmapping: 4
329 | m_LightShadowCasterMode: 0
330 | m_AreaSize: {x: 1, y: 1}
331 | m_BounceIntensity: 1
332 | m_ColorTemperature: 6570
333 | m_UseColorTemperature: 0
334 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
335 | m_UseBoundingSphereOverride: 0
336 | m_UseViewFrustumForShadowCasterCull: 1
337 | m_ShadowRadius: 0
338 | m_ShadowAngle: 0
339 | --- !u!4 &639443027
340 | Transform:
341 | m_ObjectHideFlags: 0
342 | m_CorrespondingSourceObject: {fileID: 0}
343 | m_PrefabInstance: {fileID: 0}
344 | m_PrefabAsset: {fileID: 0}
345 | m_GameObject: {fileID: 639443025}
346 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
347 | m_LocalPosition: {x: 0, y: 3, z: 0}
348 | m_LocalScale: {x: 1, y: 1, z: 1}
349 | m_Children: []
350 | m_Father: {fileID: 0}
351 | m_RootOrder: 1
352 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
353 |
--------------------------------------------------------------------------------
/ProjectSettings/InputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!13 &1
4 | InputManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Axes:
8 | - serializedVersion: 3
9 | m_Name: Horizontal
10 | descriptiveName:
11 | descriptiveNegativeName:
12 | negativeButton: left
13 | positiveButton: right
14 | altNegativeButton: a
15 | altPositiveButton: d
16 | gravity: 3
17 | dead: 0.001
18 | sensitivity: 3
19 | snap: 1
20 | invert: 0
21 | type: 0
22 | axis: 0
23 | joyNum: 0
24 | - serializedVersion: 3
25 | m_Name: Vertical
26 | descriptiveName:
27 | descriptiveNegativeName:
28 | negativeButton: down
29 | positiveButton: up
30 | altNegativeButton: s
31 | altPositiveButton: w
32 | gravity: 3
33 | dead: 0.001
34 | sensitivity: 3
35 | snap: 1
36 | invert: 0
37 | type: 0
38 | axis: 0
39 | joyNum: 0
40 | - serializedVersion: 3
41 | m_Name: Fire1
42 | descriptiveName:
43 | descriptiveNegativeName:
44 | negativeButton:
45 | positiveButton: left ctrl
46 | altNegativeButton:
47 | altPositiveButton: mouse 0
48 | gravity: 1000
49 | dead: 0.001
50 | sensitivity: 1000
51 | snap: 0
52 | invert: 0
53 | type: 0
54 | axis: 0
55 | joyNum: 0
56 | - serializedVersion: 3
57 | m_Name: Fire2
58 | descriptiveName:
59 | descriptiveNegativeName:
60 | negativeButton:
61 | positiveButton: left alt
62 | altNegativeButton:
63 | altPositiveButton: mouse 1
64 | gravity: 1000
65 | dead: 0.001
66 | sensitivity: 1000
67 | snap: 0
68 | invert: 0
69 | type: 0
70 | axis: 0
71 | joyNum: 0
72 | - serializedVersion: 3
73 | m_Name: Fire3
74 | descriptiveName:
75 | descriptiveNegativeName:
76 | negativeButton:
77 | positiveButton: left shift
78 | altNegativeButton:
79 | altPositiveButton: mouse 2
80 | gravity: 1000
81 | dead: 0.001
82 | sensitivity: 1000
83 | snap: 0
84 | invert: 0
85 | type: 0
86 | axis: 0
87 | joyNum: 0
88 | - serializedVersion: 3
89 | m_Name: Jump
90 | descriptiveName:
91 | descriptiveNegativeName:
92 | negativeButton:
93 | positiveButton: space
94 | altNegativeButton:
95 | altPositiveButton:
96 | gravity: 1000
97 | dead: 0.001
98 | sensitivity: 1000
99 | snap: 0
100 | invert: 0
101 | type: 0
102 | axis: 0
103 | joyNum: 0
104 | - serializedVersion: 3
105 | m_Name: Mouse X
106 | descriptiveName:
107 | descriptiveNegativeName:
108 | negativeButton:
109 | positiveButton:
110 | altNegativeButton:
111 | altPositiveButton:
112 | gravity: 0
113 | dead: 0
114 | sensitivity: 0.1
115 | snap: 0
116 | invert: 0
117 | type: 1
118 | axis: 0
119 | joyNum: 0
120 | - serializedVersion: 3
121 | m_Name: Mouse Y
122 | descriptiveName:
123 | descriptiveNegativeName:
124 | negativeButton:
125 | positiveButton:
126 | altNegativeButton:
127 | altPositiveButton:
128 | gravity: 0
129 | dead: 0
130 | sensitivity: 0.1
131 | snap: 0
132 | invert: 0
133 | type: 1
134 | axis: 1
135 | joyNum: 0
136 | - serializedVersion: 3
137 | m_Name: Mouse ScrollWheel
138 | descriptiveName:
139 | descriptiveNegativeName:
140 | negativeButton:
141 | positiveButton:
142 | altNegativeButton:
143 | altPositiveButton:
144 | gravity: 0
145 | dead: 0
146 | sensitivity: 0.1
147 | snap: 0
148 | invert: 0
149 | type: 1
150 | axis: 2
151 | joyNum: 0
152 | - serializedVersion: 3
153 | m_Name: Horizontal
154 | descriptiveName:
155 | descriptiveNegativeName:
156 | negativeButton:
157 | positiveButton:
158 | altNegativeButton:
159 | altPositiveButton:
160 | gravity: 0
161 | dead: 0.19
162 | sensitivity: 1
163 | snap: 0
164 | invert: 0
165 | type: 2
166 | axis: 0
167 | joyNum: 0
168 | - serializedVersion: 3
169 | m_Name: Vertical
170 | descriptiveName:
171 | descriptiveNegativeName:
172 | negativeButton:
173 | positiveButton:
174 | altNegativeButton:
175 | altPositiveButton:
176 | gravity: 0
177 | dead: 0.19
178 | sensitivity: 1
179 | snap: 0
180 | invert: 1
181 | type: 2
182 | axis: 1
183 | joyNum: 0
184 | - serializedVersion: 3
185 | m_Name: Fire1
186 | descriptiveName:
187 | descriptiveNegativeName:
188 | negativeButton:
189 | positiveButton: joystick button 0
190 | altNegativeButton:
191 | altPositiveButton:
192 | gravity: 1000
193 | dead: 0.001
194 | sensitivity: 1000
195 | snap: 0
196 | invert: 0
197 | type: 0
198 | axis: 0
199 | joyNum: 0
200 | - serializedVersion: 3
201 | m_Name: Fire2
202 | descriptiveName:
203 | descriptiveNegativeName:
204 | negativeButton:
205 | positiveButton: joystick button 1
206 | altNegativeButton:
207 | altPositiveButton:
208 | gravity: 1000
209 | dead: 0.001
210 | sensitivity: 1000
211 | snap: 0
212 | invert: 0
213 | type: 0
214 | axis: 0
215 | joyNum: 0
216 | - serializedVersion: 3
217 | m_Name: Fire3
218 | descriptiveName:
219 | descriptiveNegativeName:
220 | negativeButton:
221 | positiveButton: joystick button 2
222 | altNegativeButton:
223 | altPositiveButton:
224 | gravity: 1000
225 | dead: 0.001
226 | sensitivity: 1000
227 | snap: 0
228 | invert: 0
229 | type: 0
230 | axis: 0
231 | joyNum: 0
232 | - serializedVersion: 3
233 | m_Name: Jump
234 | descriptiveName:
235 | descriptiveNegativeName:
236 | negativeButton:
237 | positiveButton: joystick button 3
238 | altNegativeButton:
239 | altPositiveButton:
240 | gravity: 1000
241 | dead: 0.001
242 | sensitivity: 1000
243 | snap: 0
244 | invert: 0
245 | type: 0
246 | axis: 0
247 | joyNum: 0
248 | - serializedVersion: 3
249 | m_Name: Submit
250 | descriptiveName:
251 | descriptiveNegativeName:
252 | negativeButton:
253 | positiveButton: return
254 | altNegativeButton:
255 | altPositiveButton: joystick button 0
256 | gravity: 1000
257 | dead: 0.001
258 | sensitivity: 1000
259 | snap: 0
260 | invert: 0
261 | type: 0
262 | axis: 0
263 | joyNum: 0
264 | - serializedVersion: 3
265 | m_Name: Submit
266 | descriptiveName:
267 | descriptiveNegativeName:
268 | negativeButton:
269 | positiveButton: enter
270 | altNegativeButton:
271 | altPositiveButton: space
272 | gravity: 1000
273 | dead: 0.001
274 | sensitivity: 1000
275 | snap: 0
276 | invert: 0
277 | type: 0
278 | axis: 0
279 | joyNum: 0
280 | - serializedVersion: 3
281 | m_Name: Cancel
282 | descriptiveName:
283 | descriptiveNegativeName:
284 | negativeButton:
285 | positiveButton: escape
286 | altNegativeButton:
287 | altPositiveButton: joystick button 1
288 | gravity: 1000
289 | dead: 0.001
290 | sensitivity: 1000
291 | snap: 0
292 | invert: 0
293 | type: 0
294 | axis: 0
295 | joyNum: 0
296 | - serializedVersion: 3
297 | m_Name: Enable Debug Button 1
298 | descriptiveName:
299 | descriptiveNegativeName:
300 | negativeButton:
301 | positiveButton: left ctrl
302 | altNegativeButton:
303 | altPositiveButton: joystick button 8
304 | gravity: 0
305 | dead: 0
306 | sensitivity: 0
307 | snap: 0
308 | invert: 0
309 | type: 0
310 | axis: 0
311 | joyNum: 0
312 | - serializedVersion: 3
313 | m_Name: Enable Debug Button 2
314 | descriptiveName:
315 | descriptiveNegativeName:
316 | negativeButton:
317 | positiveButton: backspace
318 | altNegativeButton:
319 | altPositiveButton: joystick button 9
320 | gravity: 0
321 | dead: 0
322 | sensitivity: 0
323 | snap: 0
324 | invert: 0
325 | type: 0
326 | axis: 0
327 | joyNum: 0
328 | - serializedVersion: 3
329 | m_Name: Debug Reset
330 | descriptiveName:
331 | descriptiveNegativeName:
332 | negativeButton:
333 | positiveButton: left alt
334 | altNegativeButton:
335 | altPositiveButton: joystick button 1
336 | gravity: 0
337 | dead: 0
338 | sensitivity: 0
339 | snap: 0
340 | invert: 0
341 | type: 0
342 | axis: 0
343 | joyNum: 0
344 | - serializedVersion: 3
345 | m_Name: Debug Next
346 | descriptiveName:
347 | descriptiveNegativeName:
348 | negativeButton:
349 | positiveButton: page down
350 | altNegativeButton:
351 | altPositiveButton: joystick button 5
352 | gravity: 0
353 | dead: 0
354 | sensitivity: 0
355 | snap: 0
356 | invert: 0
357 | type: 0
358 | axis: 0
359 | joyNum: 0
360 | - serializedVersion: 3
361 | m_Name: Debug Previous
362 | descriptiveName:
363 | descriptiveNegativeName:
364 | negativeButton:
365 | positiveButton: page up
366 | altNegativeButton:
367 | altPositiveButton: joystick button 4
368 | gravity: 0
369 | dead: 0
370 | sensitivity: 0
371 | snap: 0
372 | invert: 0
373 | type: 0
374 | axis: 0
375 | joyNum: 0
376 | - serializedVersion: 3
377 | m_Name: Debug Validate
378 | descriptiveName:
379 | descriptiveNegativeName:
380 | negativeButton:
381 | positiveButton: return
382 | altNegativeButton:
383 | altPositiveButton: joystick button 0
384 | gravity: 0
385 | dead: 0
386 | sensitivity: 0
387 | snap: 0
388 | invert: 0
389 | type: 0
390 | axis: 0
391 | joyNum: 0
392 | - serializedVersion: 3
393 | m_Name: Debug Persistent
394 | descriptiveName:
395 | descriptiveNegativeName:
396 | negativeButton:
397 | positiveButton: right shift
398 | altNegativeButton:
399 | altPositiveButton: joystick button 2
400 | gravity: 0
401 | dead: 0
402 | sensitivity: 0
403 | snap: 0
404 | invert: 0
405 | type: 0
406 | axis: 0
407 | joyNum: 0
408 | - serializedVersion: 3
409 | m_Name: Debug Multiplier
410 | descriptiveName:
411 | descriptiveNegativeName:
412 | negativeButton:
413 | positiveButton: left shift
414 | altNegativeButton:
415 | altPositiveButton: joystick button 3
416 | gravity: 0
417 | dead: 0
418 | sensitivity: 0
419 | snap: 0
420 | invert: 0
421 | type: 0
422 | axis: 0
423 | joyNum: 0
424 | - serializedVersion: 3
425 | m_Name: Debug Horizontal
426 | descriptiveName:
427 | descriptiveNegativeName:
428 | negativeButton: left
429 | positiveButton: right
430 | altNegativeButton:
431 | altPositiveButton:
432 | gravity: 1000
433 | dead: 0.001
434 | sensitivity: 1000
435 | snap: 0
436 | invert: 0
437 | type: 0
438 | axis: 0
439 | joyNum: 0
440 | - serializedVersion: 3
441 | m_Name: Debug Vertical
442 | descriptiveName:
443 | descriptiveNegativeName:
444 | negativeButton: down
445 | positiveButton: up
446 | altNegativeButton:
447 | altPositiveButton:
448 | gravity: 1000
449 | dead: 0.001
450 | sensitivity: 1000
451 | snap: 0
452 | invert: 0
453 | type: 0
454 | axis: 0
455 | joyNum: 0
456 | - serializedVersion: 3
457 | m_Name: Debug Vertical
458 | descriptiveName:
459 | descriptiveNegativeName:
460 | negativeButton: down
461 | positiveButton: up
462 | altNegativeButton:
463 | altPositiveButton:
464 | gravity: 1000
465 | dead: 0.001
466 | sensitivity: 1000
467 | snap: 0
468 | invert: 0
469 | type: 2
470 | axis: 6
471 | joyNum: 0
472 | - serializedVersion: 3
473 | m_Name: Debug Horizontal
474 | descriptiveName:
475 | descriptiveNegativeName:
476 | negativeButton: left
477 | positiveButton: right
478 | altNegativeButton:
479 | altPositiveButton:
480 | gravity: 1000
481 | dead: 0.001
482 | sensitivity: 1000
483 | snap: 0
484 | invert: 0
485 | type: 2
486 | axis: 5
487 | joyNum: 0
488 |
--------------------------------------------------------------------------------
/Packages/packages-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.burst": {
4 | "version": "1.6.4",
5 | "depth": 1,
6 | "source": "registry",
7 | "dependencies": {
8 | "com.unity.mathematics": "1.2.1"
9 | },
10 | "url": "https://packages.unity.com"
11 | },
12 | "com.unity.collab-proxy": {
13 | "version": "1.15.12",
14 | "depth": 0,
15 | "source": "registry",
16 | "dependencies": {
17 | "com.unity.services.core": "1.0.1"
18 | },
19 | "url": "https://packages.unity.com"
20 | },
21 | "com.unity.collections": {
22 | "version": "1.2.3-pre.1",
23 | "depth": 1,
24 | "source": "registry",
25 | "dependencies": {
26 | "com.unity.burst": "1.6.4",
27 | "com.unity.test-framework": "1.1.31"
28 | },
29 | "url": "https://packages.unity.com"
30 | },
31 | "com.unity.entities": {
32 | "version": "0.50.0-preview.24",
33 | "depth": 0,
34 | "source": "registry",
35 | "dependencies": {
36 | "com.unity.burst": "1.6.4",
37 | "com.unity.properties": "1.7.0-preview",
38 | "com.unity.properties.ui": "1.7.0-preview",
39 | "com.unity.serialization": "1.7.0-preview.1",
40 | "com.unity.collections": "1.2.3-pre.1",
41 | "com.unity.mathematics": "1.2.5",
42 | "com.unity.modules.assetbundle": "1.0.0",
43 | "com.unity.modules.unitywebrequest": "1.0.0",
44 | "com.unity.test-framework.performance": "2.3.1-preview",
45 | "com.unity.nuget.mono-cecil": "1.10.1",
46 | "com.unity.jobs": "0.50.0-preview.8",
47 | "com.unity.scriptablebuildpipeline": "1.19.2",
48 | "com.unity.platforms": "0.50.0-preview.4",
49 | "com.unity.roslyn": "0.2.1-preview",
50 | "com.unity.profiling.core": "1.0.0"
51 | },
52 | "url": "https://packages.unity.com"
53 | },
54 | "com.unity.ext.nunit": {
55 | "version": "1.0.6",
56 | "depth": 1,
57 | "source": "registry",
58 | "dependencies": {},
59 | "url": "https://packages.unity.com"
60 | },
61 | "com.unity.ide.rider": {
62 | "version": "3.0.14",
63 | "depth": 0,
64 | "source": "registry",
65 | "dependencies": {
66 | "com.unity.ext.nunit": "1.0.6"
67 | },
68 | "url": "https://packages.unity.com"
69 | },
70 | "com.unity.ide.visualstudio": {
71 | "version": "2.0.14",
72 | "depth": 0,
73 | "source": "registry",
74 | "dependencies": {
75 | "com.unity.test-framework": "1.1.9"
76 | },
77 | "url": "https://packages.unity.com"
78 | },
79 | "com.unity.ide.vscode": {
80 | "version": "1.2.4",
81 | "depth": 0,
82 | "source": "registry",
83 | "dependencies": {},
84 | "url": "https://packages.unity.com"
85 | },
86 | "com.unity.jobs": {
87 | "version": "0.50.0-preview.8",
88 | "depth": 1,
89 | "source": "registry",
90 | "dependencies": {
91 | "com.unity.burst": "1.6.4",
92 | "com.unity.collections": "1.2.3-pre.1",
93 | "com.unity.mathematics": "1.2.1",
94 | "com.unity.nuget.mono-cecil": "1.10.1"
95 | },
96 | "url": "https://packages.unity.com"
97 | },
98 | "com.unity.mathematics": {
99 | "version": "1.2.5",
100 | "depth": 1,
101 | "source": "registry",
102 | "dependencies": {},
103 | "url": "https://packages.unity.com"
104 | },
105 | "com.unity.nuget.mono-cecil": {
106 | "version": "1.10.1",
107 | "depth": 1,
108 | "source": "registry",
109 | "dependencies": {},
110 | "url": "https://packages.unity.com"
111 | },
112 | "com.unity.performance.profile-analyzer": {
113 | "version": "1.1.1",
114 | "depth": 0,
115 | "source": "registry",
116 | "dependencies": {},
117 | "url": "https://packages.unity.com"
118 | },
119 | "com.unity.platforms": {
120 | "version": "0.50.0-preview.4",
121 | "depth": 0,
122 | "source": "registry",
123 | "dependencies": {
124 | "com.unity.properties": "1.7.0-preview",
125 | "com.unity.properties.ui": "1.7.0-preview",
126 | "com.unity.scriptablebuildpipeline": "1.19.2",
127 | "com.unity.serialization": "1.7.0-preview.1"
128 | },
129 | "url": "https://packages.unity.com"
130 | },
131 | "com.unity.profiling.core": {
132 | "version": "1.0.0",
133 | "depth": 1,
134 | "source": "registry",
135 | "dependencies": {},
136 | "url": "https://packages.unity.com"
137 | },
138 | "com.unity.properties": {
139 | "version": "1.7.0-preview",
140 | "depth": 1,
141 | "source": "registry",
142 | "dependencies": {
143 | "com.unity.nuget.mono-cecil": "0.1.6-preview.2",
144 | "com.unity.test-framework.performance": "2.3.1-preview"
145 | },
146 | "url": "https://packages.unity.com"
147 | },
148 | "com.unity.properties.ui": {
149 | "version": "1.7.0-preview",
150 | "depth": 1,
151 | "source": "registry",
152 | "dependencies": {
153 | "com.unity.properties": "1.7.0-preview",
154 | "com.unity.serialization": "1.7.0-preview.1",
155 | "com.unity.modules.uielements": "1.0.0",
156 | "com.unity.test-framework.performance": "2.3.1-preview"
157 | },
158 | "url": "https://packages.unity.com"
159 | },
160 | "com.unity.render-pipelines.core": {
161 | "version": "10.8.1",
162 | "depth": 1,
163 | "source": "registry",
164 | "dependencies": {
165 | "com.unity.ugui": "1.0.0",
166 | "com.unity.modules.physics": "1.0.0",
167 | "com.unity.modules.jsonserialize": "1.0.0"
168 | },
169 | "url": "https://packages.unity.com"
170 | },
171 | "com.unity.render-pipelines.universal": {
172 | "version": "10.8.1",
173 | "depth": 0,
174 | "source": "registry",
175 | "dependencies": {
176 | "com.unity.mathematics": "1.1.0",
177 | "com.unity.render-pipelines.core": "10.8.1",
178 | "com.unity.shadergraph": "10.8.1"
179 | },
180 | "url": "https://packages.unity.com"
181 | },
182 | "com.unity.rendering.hybrid": {
183 | "version": "0.50.0-preview.24",
184 | "depth": 0,
185 | "source": "registry",
186 | "dependencies": {
187 | "com.unity.entities": "0.50.0-preview.24"
188 | },
189 | "url": "https://packages.unity.com"
190 | },
191 | "com.unity.roslyn": {
192 | "version": "0.2.1-preview",
193 | "depth": 1,
194 | "source": "registry",
195 | "dependencies": {},
196 | "url": "https://packages.unity.com"
197 | },
198 | "com.unity.scriptablebuildpipeline": {
199 | "version": "1.19.2",
200 | "depth": 1,
201 | "source": "registry",
202 | "dependencies": {},
203 | "url": "https://packages.unity.com"
204 | },
205 | "com.unity.searcher": {
206 | "version": "4.3.2",
207 | "depth": 2,
208 | "source": "registry",
209 | "dependencies": {},
210 | "url": "https://packages.unity.com"
211 | },
212 | "com.unity.serialization": {
213 | "version": "1.7.0-preview.1",
214 | "depth": 1,
215 | "source": "registry",
216 | "dependencies": {
217 | "com.unity.collections": "0.12.0-preview.13",
218 | "com.unity.burst": "1.3.5",
219 | "com.unity.jobs": "0.5.0-preview.14",
220 | "com.unity.properties": "1.7.0-preview",
221 | "com.unity.test-framework.performance": "2.3.1-preview"
222 | },
223 | "url": "https://packages.unity.com"
224 | },
225 | "com.unity.services.core": {
226 | "version": "1.0.1",
227 | "depth": 1,
228 | "source": "registry",
229 | "dependencies": {
230 | "com.unity.modules.unitywebrequest": "1.0.0"
231 | },
232 | "url": "https://packages.unity.com"
233 | },
234 | "com.unity.shadergraph": {
235 | "version": "10.8.1",
236 | "depth": 1,
237 | "source": "registry",
238 | "dependencies": {
239 | "com.unity.render-pipelines.core": "10.8.1",
240 | "com.unity.searcher": "4.3.2"
241 | },
242 | "url": "https://packages.unity.com"
243 | },
244 | "com.unity.test-framework": {
245 | "version": "1.1.31",
246 | "depth": 2,
247 | "source": "registry",
248 | "dependencies": {
249 | "com.unity.ext.nunit": "1.0.6",
250 | "com.unity.modules.imgui": "1.0.0",
251 | "com.unity.modules.jsonserialize": "1.0.0"
252 | },
253 | "url": "https://packages.unity.com"
254 | },
255 | "com.unity.test-framework.performance": {
256 | "version": "2.8.0-preview",
257 | "depth": 0,
258 | "source": "registry",
259 | "dependencies": {
260 | "com.unity.test-framework": "1.1.0",
261 | "com.unity.modules.jsonserialize": "1.0.0"
262 | },
263 | "url": "https://packages.unity.com"
264 | },
265 | "com.unity.textmeshpro": {
266 | "version": "3.0.6",
267 | "depth": 0,
268 | "source": "registry",
269 | "dependencies": {
270 | "com.unity.ugui": "1.0.0"
271 | },
272 | "url": "https://packages.unity.com"
273 | },
274 | "com.unity.timeline": {
275 | "version": "1.4.8",
276 | "depth": 0,
277 | "source": "registry",
278 | "dependencies": {
279 | "com.unity.modules.director": "1.0.0",
280 | "com.unity.modules.animation": "1.0.0",
281 | "com.unity.modules.audio": "1.0.0",
282 | "com.unity.modules.particlesystem": "1.0.0"
283 | },
284 | "url": "https://packages.unity.com"
285 | },
286 | "com.unity.ugui": {
287 | "version": "1.0.0",
288 | "depth": 0,
289 | "source": "builtin",
290 | "dependencies": {
291 | "com.unity.modules.ui": "1.0.0",
292 | "com.unity.modules.imgui": "1.0.0"
293 | }
294 | },
295 | "com.unity.modules.ai": {
296 | "version": "1.0.0",
297 | "depth": 0,
298 | "source": "builtin",
299 | "dependencies": {}
300 | },
301 | "com.unity.modules.androidjni": {
302 | "version": "1.0.0",
303 | "depth": 0,
304 | "source": "builtin",
305 | "dependencies": {}
306 | },
307 | "com.unity.modules.animation": {
308 | "version": "1.0.0",
309 | "depth": 0,
310 | "source": "builtin",
311 | "dependencies": {}
312 | },
313 | "com.unity.modules.assetbundle": {
314 | "version": "1.0.0",
315 | "depth": 0,
316 | "source": "builtin",
317 | "dependencies": {}
318 | },
319 | "com.unity.modules.audio": {
320 | "version": "1.0.0",
321 | "depth": 0,
322 | "source": "builtin",
323 | "dependencies": {}
324 | },
325 | "com.unity.modules.cloth": {
326 | "version": "1.0.0",
327 | "depth": 0,
328 | "source": "builtin",
329 | "dependencies": {
330 | "com.unity.modules.physics": "1.0.0"
331 | }
332 | },
333 | "com.unity.modules.director": {
334 | "version": "1.0.0",
335 | "depth": 0,
336 | "source": "builtin",
337 | "dependencies": {
338 | "com.unity.modules.audio": "1.0.0",
339 | "com.unity.modules.animation": "1.0.0"
340 | }
341 | },
342 | "com.unity.modules.imageconversion": {
343 | "version": "1.0.0",
344 | "depth": 0,
345 | "source": "builtin",
346 | "dependencies": {}
347 | },
348 | "com.unity.modules.imgui": {
349 | "version": "1.0.0",
350 | "depth": 0,
351 | "source": "builtin",
352 | "dependencies": {}
353 | },
354 | "com.unity.modules.jsonserialize": {
355 | "version": "1.0.0",
356 | "depth": 0,
357 | "source": "builtin",
358 | "dependencies": {}
359 | },
360 | "com.unity.modules.particlesystem": {
361 | "version": "1.0.0",
362 | "depth": 0,
363 | "source": "builtin",
364 | "dependencies": {}
365 | },
366 | "com.unity.modules.physics": {
367 | "version": "1.0.0",
368 | "depth": 0,
369 | "source": "builtin",
370 | "dependencies": {}
371 | },
372 | "com.unity.modules.physics2d": {
373 | "version": "1.0.0",
374 | "depth": 0,
375 | "source": "builtin",
376 | "dependencies": {}
377 | },
378 | "com.unity.modules.screencapture": {
379 | "version": "1.0.0",
380 | "depth": 0,
381 | "source": "builtin",
382 | "dependencies": {
383 | "com.unity.modules.imageconversion": "1.0.0"
384 | }
385 | },
386 | "com.unity.modules.subsystems": {
387 | "version": "1.0.0",
388 | "depth": 1,
389 | "source": "builtin",
390 | "dependencies": {
391 | "com.unity.modules.jsonserialize": "1.0.0"
392 | }
393 | },
394 | "com.unity.modules.terrain": {
395 | "version": "1.0.0",
396 | "depth": 0,
397 | "source": "builtin",
398 | "dependencies": {}
399 | },
400 | "com.unity.modules.terrainphysics": {
401 | "version": "1.0.0",
402 | "depth": 0,
403 | "source": "builtin",
404 | "dependencies": {
405 | "com.unity.modules.physics": "1.0.0",
406 | "com.unity.modules.terrain": "1.0.0"
407 | }
408 | },
409 | "com.unity.modules.tilemap": {
410 | "version": "1.0.0",
411 | "depth": 0,
412 | "source": "builtin",
413 | "dependencies": {
414 | "com.unity.modules.physics2d": "1.0.0"
415 | }
416 | },
417 | "com.unity.modules.ui": {
418 | "version": "1.0.0",
419 | "depth": 0,
420 | "source": "builtin",
421 | "dependencies": {}
422 | },
423 | "com.unity.modules.uielements": {
424 | "version": "1.0.0",
425 | "depth": 0,
426 | "source": "builtin",
427 | "dependencies": {
428 | "com.unity.modules.ui": "1.0.0",
429 | "com.unity.modules.imgui": "1.0.0",
430 | "com.unity.modules.jsonserialize": "1.0.0",
431 | "com.unity.modules.uielementsnative": "1.0.0"
432 | }
433 | },
434 | "com.unity.modules.uielementsnative": {
435 | "version": "1.0.0",
436 | "depth": 1,
437 | "source": "builtin",
438 | "dependencies": {
439 | "com.unity.modules.ui": "1.0.0",
440 | "com.unity.modules.imgui": "1.0.0",
441 | "com.unity.modules.jsonserialize": "1.0.0"
442 | }
443 | },
444 | "com.unity.modules.umbra": {
445 | "version": "1.0.0",
446 | "depth": 0,
447 | "source": "builtin",
448 | "dependencies": {}
449 | },
450 | "com.unity.modules.unityanalytics": {
451 | "version": "1.0.0",
452 | "depth": 0,
453 | "source": "builtin",
454 | "dependencies": {
455 | "com.unity.modules.unitywebrequest": "1.0.0",
456 | "com.unity.modules.jsonserialize": "1.0.0"
457 | }
458 | },
459 | "com.unity.modules.unitywebrequest": {
460 | "version": "1.0.0",
461 | "depth": 0,
462 | "source": "builtin",
463 | "dependencies": {}
464 | },
465 | "com.unity.modules.unitywebrequestassetbundle": {
466 | "version": "1.0.0",
467 | "depth": 0,
468 | "source": "builtin",
469 | "dependencies": {
470 | "com.unity.modules.assetbundle": "1.0.0",
471 | "com.unity.modules.unitywebrequest": "1.0.0"
472 | }
473 | },
474 | "com.unity.modules.unitywebrequestaudio": {
475 | "version": "1.0.0",
476 | "depth": 0,
477 | "source": "builtin",
478 | "dependencies": {
479 | "com.unity.modules.unitywebrequest": "1.0.0",
480 | "com.unity.modules.audio": "1.0.0"
481 | }
482 | },
483 | "com.unity.modules.unitywebrequesttexture": {
484 | "version": "1.0.0",
485 | "depth": 0,
486 | "source": "builtin",
487 | "dependencies": {
488 | "com.unity.modules.unitywebrequest": "1.0.0",
489 | "com.unity.modules.imageconversion": "1.0.0"
490 | }
491 | },
492 | "com.unity.modules.unitywebrequestwww": {
493 | "version": "1.0.0",
494 | "depth": 0,
495 | "source": "builtin",
496 | "dependencies": {
497 | "com.unity.modules.unitywebrequest": "1.0.0",
498 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
499 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
500 | "com.unity.modules.audio": "1.0.0",
501 | "com.unity.modules.assetbundle": "1.0.0",
502 | "com.unity.modules.imageconversion": "1.0.0"
503 | }
504 | },
505 | "com.unity.modules.vehicles": {
506 | "version": "1.0.0",
507 | "depth": 0,
508 | "source": "builtin",
509 | "dependencies": {
510 | "com.unity.modules.physics": "1.0.0"
511 | }
512 | },
513 | "com.unity.modules.video": {
514 | "version": "1.0.0",
515 | "depth": 0,
516 | "source": "builtin",
517 | "dependencies": {
518 | "com.unity.modules.audio": "1.0.0",
519 | "com.unity.modules.ui": "1.0.0",
520 | "com.unity.modules.unitywebrequest": "1.0.0"
521 | }
522 | },
523 | "com.unity.modules.vr": {
524 | "version": "1.0.0",
525 | "depth": 0,
526 | "source": "builtin",
527 | "dependencies": {
528 | "com.unity.modules.jsonserialize": "1.0.0",
529 | "com.unity.modules.physics": "1.0.0",
530 | "com.unity.modules.xr": "1.0.0"
531 | }
532 | },
533 | "com.unity.modules.wind": {
534 | "version": "1.0.0",
535 | "depth": 0,
536 | "source": "builtin",
537 | "dependencies": {}
538 | },
539 | "com.unity.modules.xr": {
540 | "version": "1.0.0",
541 | "depth": 0,
542 | "source": "builtin",
543 | "dependencies": {
544 | "com.unity.modules.physics": "1.0.0",
545 | "com.unity.modules.jsonserialize": "1.0.0",
546 | "com.unity.modules.subsystems": "1.0.0"
547 | }
548 | }
549 | }
550 | }
551 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!129 &1
4 | PlayerSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 22
7 | productGUID: 28d7103bc6c913c44a3026be16c699af
8 | AndroidProfiler: 0
9 | AndroidFilterTouchesWhenObscured: 0
10 | AndroidEnableSustainedPerformanceMode: 0
11 | defaultScreenOrientation: 4
12 | targetDevice: 2
13 | useOnDemandResources: 0
14 | accelerometerFrequency: 60
15 | companyName: DefaultCompany
16 | productName: PolymorphicStructs
17 | defaultCursor: {fileID: 0}
18 | cursorHotspot: {x: 0, y: 0}
19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
20 | m_ShowUnitySplashScreen: 1
21 | m_ShowUnitySplashLogo: 1
22 | m_SplashScreenOverlayOpacity: 1
23 | m_SplashScreenAnimation: 1
24 | m_SplashScreenLogoStyle: 1
25 | m_SplashScreenDrawMode: 0
26 | m_SplashScreenBackgroundAnimationZoom: 1
27 | m_SplashScreenLogoAnimationZoom: 1
28 | m_SplashScreenBackgroundLandscapeAspect: 1
29 | m_SplashScreenBackgroundPortraitAspect: 1
30 | m_SplashScreenBackgroundLandscapeUvs:
31 | serializedVersion: 2
32 | x: 0
33 | y: 0
34 | width: 1
35 | height: 1
36 | m_SplashScreenBackgroundPortraitUvs:
37 | serializedVersion: 2
38 | x: 0
39 | y: 0
40 | width: 1
41 | height: 1
42 | m_SplashScreenLogos: []
43 | m_VirtualRealitySplashScreen: {fileID: 0}
44 | m_HolographicTrackingLossScreen: {fileID: 0}
45 | defaultScreenWidth: 1920
46 | defaultScreenHeight: 1080
47 | defaultScreenWidthWeb: 960
48 | defaultScreenHeightWeb: 600
49 | m_StereoRenderingPath: 0
50 | m_ActiveColorSpace: 1
51 | m_MTRendering: 1
52 | mipStripping: 0
53 | numberOfMipsStripped: 0
54 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
55 | iosShowActivityIndicatorOnLoading: -1
56 | androidShowActivityIndicatorOnLoading: -1
57 | iosUseCustomAppBackgroundBehavior: 0
58 | iosAllowHTTPDownload: 1
59 | allowedAutorotateToPortrait: 1
60 | allowedAutorotateToPortraitUpsideDown: 1
61 | allowedAutorotateToLandscapeRight: 1
62 | allowedAutorotateToLandscapeLeft: 1
63 | useOSAutorotation: 1
64 | use32BitDisplayBuffer: 1
65 | preserveFramebufferAlpha: 0
66 | disableDepthAndStencilBuffers: 0
67 | androidStartInFullscreen: 1
68 | androidRenderOutsideSafeArea: 0
69 | androidUseSwappy: 1
70 | androidBlitType: 1
71 | androidResizableWindow: 0
72 | androidDefaultWindowWidth: 1920
73 | androidDefaultWindowHeight: 1080
74 | androidMinimumWindowWidth: 400
75 | androidMinimumWindowHeight: 300
76 | androidFullscreenMode: 1
77 | defaultIsNativeResolution: 1
78 | macRetinaSupport: 1
79 | runInBackground: 1
80 | captureSingleScreen: 0
81 | muteOtherAudioSources: 0
82 | Prepare IOS For Recording: 0
83 | Force IOS Speakers When Recording: 0
84 | deferSystemGesturesMode: 0
85 | hideHomeButton: 0
86 | submitAnalytics: 1
87 | usePlayerLog: 1
88 | bakeCollisionMeshes: 0
89 | forceSingleInstance: 0
90 | useFlipModelSwapchain: 1
91 | resizableWindow: 0
92 | useMacAppStoreValidation: 0
93 | macAppStoreCategory: public.app-category.games
94 | gpuSkinning: 1
95 | xboxPIXTextureCapture: 0
96 | xboxEnableAvatar: 0
97 | xboxEnableKinect: 0
98 | xboxEnableKinectAutoTracking: 0
99 | xboxEnableFitness: 0
100 | visibleInBackground: 1
101 | allowFullscreenSwitch: 1
102 | fullscreenMode: 1
103 | xboxSpeechDB: 0
104 | xboxEnableHeadOrientation: 0
105 | xboxEnableGuest: 0
106 | xboxEnablePIXSampling: 0
107 | metalFramebufferOnly: 0
108 | xboxOneResolution: 0
109 | xboxOneSResolution: 0
110 | xboxOneXResolution: 3
111 | xboxOneMonoLoggingLevel: 0
112 | xboxOneLoggingLevel: 1
113 | xboxOneDisableEsram: 0
114 | xboxOneEnableTypeOptimization: 0
115 | xboxOnePresentImmediateThreshold: 0
116 | switchQueueCommandMemory: 0
117 | switchQueueControlMemory: 0
118 | switchQueueComputeMemory: 262144
119 | switchNVNShaderPoolsGranularity: 33554432
120 | switchNVNDefaultPoolsGranularity: 16777216
121 | switchNVNOtherPoolsGranularity: 16777216
122 | switchNVNMaxPublicTextureIDCount: 0
123 | switchNVNMaxPublicSamplerIDCount: 0
124 | stadiaPresentMode: 0
125 | stadiaTargetFramerate: 0
126 | vulkanNumSwapchainBuffers: 3
127 | vulkanEnableSetSRGBWrite: 0
128 | vulkanEnablePreTransform: 0
129 | vulkanEnableLateAcquireNextImage: 0
130 | vulkanEnableCommandBufferRecycling: 1
131 | m_SupportedAspectRatios:
132 | 4:3: 1
133 | 5:4: 1
134 | 16:10: 1
135 | 16:9: 1
136 | Others: 1
137 | bundleVersion: 0.1
138 | preloadedAssets: []
139 | metroInputSource: 0
140 | wsaTransparentSwapchain: 0
141 | m_HolographicPauseOnTrackingLoss: 1
142 | xboxOneDisableKinectGpuReservation: 1
143 | xboxOneEnable7thCore: 1
144 | vrSettings:
145 | enable360StereoCapture: 0
146 | isWsaHolographicRemotingEnabled: 0
147 | enableFrameTimingStats: 0
148 | useHDRDisplay: 0
149 | D3DHDRBitDepth: 0
150 | m_ColorGamuts: 0000000003000000
151 | targetPixelDensity: 30
152 | resolutionScalingMode: 0
153 | androidSupportedAspectRatio: 1
154 | androidMaxAspectRatio: 2.1
155 | applicationIdentifier:
156 | Standalone: com.DefaultCompany.PolymorphicStructs
157 | buildNumber:
158 | Standalone: 0
159 | iPhone: 0
160 | tvOS: 0
161 | overrideDefaultApplicationIdentifier: 0
162 | AndroidBundleVersionCode: 1
163 | AndroidMinSdkVersion: 19
164 | AndroidTargetSdkVersion: 0
165 | AndroidPreferredInstallLocation: 1
166 | aotOptions:
167 | stripEngineCode: 1
168 | iPhoneStrippingLevel: 0
169 | iPhoneScriptCallOptimization: 0
170 | ForceInternetPermission: 0
171 | ForceSDCardPermission: 0
172 | CreateWallpaper: 0
173 | APKExpansionFiles: 0
174 | keepLoadedShadersAlive: 0
175 | StripUnusedMeshComponents: 0
176 | VertexChannelCompressionMask: 4054
177 | iPhoneSdkVersion: 988
178 | iOSTargetOSVersionString: 11.0
179 | tvOSSdkVersion: 0
180 | tvOSRequireExtendedGameController: 0
181 | tvOSTargetOSVersionString: 11.0
182 | uIPrerenderedIcon: 0
183 | uIRequiresPersistentWiFi: 0
184 | uIRequiresFullScreen: 1
185 | uIStatusBarHidden: 1
186 | uIExitOnSuspend: 0
187 | uIStatusBarStyle: 0
188 | appleTVSplashScreen: {fileID: 0}
189 | appleTVSplashScreen2x: {fileID: 0}
190 | tvOSSmallIconLayers: []
191 | tvOSSmallIconLayers2x: []
192 | tvOSLargeIconLayers: []
193 | tvOSLargeIconLayers2x: []
194 | tvOSTopShelfImageLayers: []
195 | tvOSTopShelfImageLayers2x: []
196 | tvOSTopShelfImageWideLayers: []
197 | tvOSTopShelfImageWideLayers2x: []
198 | iOSLaunchScreenType: 0
199 | iOSLaunchScreenPortrait: {fileID: 0}
200 | iOSLaunchScreenLandscape: {fileID: 0}
201 | iOSLaunchScreenBackgroundColor:
202 | serializedVersion: 2
203 | rgba: 0
204 | iOSLaunchScreenFillPct: 100
205 | iOSLaunchScreenSize: 100
206 | iOSLaunchScreenCustomXibPath:
207 | iOSLaunchScreeniPadType: 0
208 | iOSLaunchScreeniPadImage: {fileID: 0}
209 | iOSLaunchScreeniPadBackgroundColor:
210 | serializedVersion: 2
211 | rgba: 0
212 | iOSLaunchScreeniPadFillPct: 100
213 | iOSLaunchScreeniPadSize: 100
214 | iOSLaunchScreeniPadCustomXibPath:
215 | iOSLaunchScreenCustomStoryboardPath:
216 | iOSLaunchScreeniPadCustomStoryboardPath:
217 | iOSDeviceRequirements: []
218 | iOSURLSchemes: []
219 | iOSBackgroundModes: 0
220 | iOSMetalForceHardShadows: 0
221 | metalEditorSupport: 1
222 | metalAPIValidation: 1
223 | iOSRenderExtraFrameOnPause: 0
224 | iosCopyPluginsCodeInsteadOfSymlink: 0
225 | appleDeveloperTeamID:
226 | iOSManualSigningProvisioningProfileID:
227 | tvOSManualSigningProvisioningProfileID:
228 | iOSManualSigningProvisioningProfileType: 0
229 | tvOSManualSigningProvisioningProfileType: 0
230 | appleEnableAutomaticSigning: 0
231 | iOSRequireARKit: 0
232 | iOSAutomaticallyDetectAndAddCapabilities: 1
233 | appleEnableProMotion: 0
234 | shaderPrecisionModel: 0
235 | clonedFromGUID: 9870af204204ab84596f8a656f2f2ce6
236 | templatePackageId: com.unity.template.universal@10.8.0
237 | templateDefaultScene: Assets/Scenes/SampleScene.unity
238 | useCustomMainManifest: 0
239 | useCustomLauncherManifest: 0
240 | useCustomMainGradleTemplate: 0
241 | useCustomLauncherGradleManifest: 0
242 | useCustomBaseGradleTemplate: 0
243 | useCustomGradlePropertiesTemplate: 0
244 | useCustomProguardFile: 0
245 | AndroidTargetArchitectures: 1
246 | AndroidTargetDevices: 0
247 | AndroidSplashScreenScale: 0
248 | androidSplashScreen: {fileID: 0}
249 | AndroidKeystoreName:
250 | AndroidKeyaliasName:
251 | AndroidBuildApkPerCpuArchitecture: 0
252 | AndroidTVCompatibility: 0
253 | AndroidIsGame: 1
254 | AndroidEnableTango: 0
255 | androidEnableBanner: 1
256 | androidUseLowAccuracyLocation: 0
257 | androidUseCustomKeystore: 0
258 | m_AndroidBanners:
259 | - width: 320
260 | height: 180
261 | banner: {fileID: 0}
262 | androidGamepadSupportLevel: 0
263 | chromeosInputEmulation: 1
264 | AndroidMinifyWithR8: 0
265 | AndroidMinifyRelease: 0
266 | AndroidMinifyDebug: 0
267 | AndroidValidateAppBundleSize: 1
268 | AndroidAppBundleSizeToValidate: 100
269 | m_BuildTargetIcons: []
270 | m_BuildTargetPlatformIcons: []
271 | m_BuildTargetBatching:
272 | - m_BuildTarget: Standalone
273 | m_StaticBatching: 1
274 | m_DynamicBatching: 0
275 | - m_BuildTarget: tvOS
276 | m_StaticBatching: 1
277 | m_DynamicBatching: 0
278 | - m_BuildTarget: iPhone
279 | m_StaticBatching: 1
280 | m_DynamicBatching: 0
281 | - m_BuildTarget: Android
282 | m_StaticBatching: 1
283 | m_DynamicBatching: 0
284 | - m_BuildTarget: WebGL
285 | m_StaticBatching: 0
286 | m_DynamicBatching: 0
287 | m_BuildTargetGraphicsJobs:
288 | - m_BuildTarget: MacStandaloneSupport
289 | m_GraphicsJobs: 0
290 | - m_BuildTarget: Switch
291 | m_GraphicsJobs: 1
292 | - m_BuildTarget: MetroSupport
293 | m_GraphicsJobs: 1
294 | - m_BuildTarget: AppleTVSupport
295 | m_GraphicsJobs: 0
296 | - m_BuildTarget: BJMSupport
297 | m_GraphicsJobs: 1
298 | - m_BuildTarget: LinuxStandaloneSupport
299 | m_GraphicsJobs: 1
300 | - m_BuildTarget: PS4Player
301 | m_GraphicsJobs: 1
302 | - m_BuildTarget: iOSSupport
303 | m_GraphicsJobs: 0
304 | - m_BuildTarget: WindowsStandaloneSupport
305 | m_GraphicsJobs: 1
306 | - m_BuildTarget: XboxOnePlayer
307 | m_GraphicsJobs: 1
308 | - m_BuildTarget: LuminSupport
309 | m_GraphicsJobs: 0
310 | - m_BuildTarget: AndroidPlayer
311 | m_GraphicsJobs: 0
312 | - m_BuildTarget: WebGLSupport
313 | m_GraphicsJobs: 0
314 | m_BuildTargetGraphicsJobMode:
315 | - m_BuildTarget: PS4Player
316 | m_GraphicsJobMode: 0
317 | - m_BuildTarget: XboxOnePlayer
318 | m_GraphicsJobMode: 0
319 | m_BuildTargetGraphicsAPIs:
320 | - m_BuildTarget: iOSSupport
321 | m_APIs: 10000000
322 | m_Automatic: 1
323 | - m_BuildTarget: AppleTVSupport
324 | m_APIs: 10000000
325 | m_Automatic: 1
326 | - m_BuildTarget: AndroidPlayer
327 | m_APIs: 150000000b000000
328 | m_Automatic: 0
329 | - m_BuildTarget: WebGLSupport
330 | m_APIs: 0b000000
331 | m_Automatic: 0
332 | m_BuildTargetVRSettings: []
333 | openGLRequireES31: 0
334 | openGLRequireES31AEP: 0
335 | openGLRequireES32: 0
336 | m_TemplateCustomTags: {}
337 | mobileMTRendering:
338 | Android: 1
339 | iPhone: 1
340 | tvOS: 1
341 | m_BuildTargetGroupLightmapEncodingQuality:
342 | - m_BuildTarget: Standalone
343 | m_EncodingQuality: 1
344 | m_BuildTargetGroupLightmapSettings: []
345 | m_BuildTargetNormalMapEncoding: []
346 | playModeTestRunnerEnabled: 0
347 | runPlayModeTestAsEditModeTest: 0
348 | actionOnDotNetUnhandledException: 1
349 | enableInternalProfiler: 0
350 | logObjCUncaughtExceptions: 1
351 | enableCrashReportAPI: 0
352 | cameraUsageDescription:
353 | locationUsageDescription:
354 | microphoneUsageDescription:
355 | bluetoothUsageDescription:
356 | switchNMETAOverride:
357 | switchNetLibKey:
358 | switchSocketMemoryPoolSize: 6144
359 | switchSocketAllocatorPoolSize: 128
360 | switchSocketConcurrencyLimit: 14
361 | switchScreenResolutionBehavior: 2
362 | switchUseCPUProfiler: 0
363 | switchUseGOLDLinker: 0
364 | switchApplicationID: 0x01004b9000490000
365 | switchNSODependencies:
366 | switchTitleNames_0:
367 | switchTitleNames_1:
368 | switchTitleNames_2:
369 | switchTitleNames_3:
370 | switchTitleNames_4:
371 | switchTitleNames_5:
372 | switchTitleNames_6:
373 | switchTitleNames_7:
374 | switchTitleNames_8:
375 | switchTitleNames_9:
376 | switchTitleNames_10:
377 | switchTitleNames_11:
378 | switchTitleNames_12:
379 | switchTitleNames_13:
380 | switchTitleNames_14:
381 | switchTitleNames_15:
382 | switchPublisherNames_0:
383 | switchPublisherNames_1:
384 | switchPublisherNames_2:
385 | switchPublisherNames_3:
386 | switchPublisherNames_4:
387 | switchPublisherNames_5:
388 | switchPublisherNames_6:
389 | switchPublisherNames_7:
390 | switchPublisherNames_8:
391 | switchPublisherNames_9:
392 | switchPublisherNames_10:
393 | switchPublisherNames_11:
394 | switchPublisherNames_12:
395 | switchPublisherNames_13:
396 | switchPublisherNames_14:
397 | switchPublisherNames_15:
398 | switchIcons_0: {fileID: 0}
399 | switchIcons_1: {fileID: 0}
400 | switchIcons_2: {fileID: 0}
401 | switchIcons_3: {fileID: 0}
402 | switchIcons_4: {fileID: 0}
403 | switchIcons_5: {fileID: 0}
404 | switchIcons_6: {fileID: 0}
405 | switchIcons_7: {fileID: 0}
406 | switchIcons_8: {fileID: 0}
407 | switchIcons_9: {fileID: 0}
408 | switchIcons_10: {fileID: 0}
409 | switchIcons_11: {fileID: 0}
410 | switchIcons_12: {fileID: 0}
411 | switchIcons_13: {fileID: 0}
412 | switchIcons_14: {fileID: 0}
413 | switchIcons_15: {fileID: 0}
414 | switchSmallIcons_0: {fileID: 0}
415 | switchSmallIcons_1: {fileID: 0}
416 | switchSmallIcons_2: {fileID: 0}
417 | switchSmallIcons_3: {fileID: 0}
418 | switchSmallIcons_4: {fileID: 0}
419 | switchSmallIcons_5: {fileID: 0}
420 | switchSmallIcons_6: {fileID: 0}
421 | switchSmallIcons_7: {fileID: 0}
422 | switchSmallIcons_8: {fileID: 0}
423 | switchSmallIcons_9: {fileID: 0}
424 | switchSmallIcons_10: {fileID: 0}
425 | switchSmallIcons_11: {fileID: 0}
426 | switchSmallIcons_12: {fileID: 0}
427 | switchSmallIcons_13: {fileID: 0}
428 | switchSmallIcons_14: {fileID: 0}
429 | switchSmallIcons_15: {fileID: 0}
430 | switchManualHTML:
431 | switchAccessibleURLs:
432 | switchLegalInformation:
433 | switchMainThreadStackSize: 1048576
434 | switchPresenceGroupId:
435 | switchLogoHandling: 0
436 | switchReleaseVersion: 0
437 | switchDisplayVersion: 1.0.0
438 | switchStartupUserAccount: 0
439 | switchTouchScreenUsage: 0
440 | switchSupportedLanguagesMask: 0
441 | switchLogoType: 0
442 | switchApplicationErrorCodeCategory:
443 | switchUserAccountSaveDataSize: 0
444 | switchUserAccountSaveDataJournalSize: 0
445 | switchApplicationAttribute: 0
446 | switchCardSpecSize: -1
447 | switchCardSpecClock: -1
448 | switchRatingsMask: 0
449 | switchRatingsInt_0: 0
450 | switchRatingsInt_1: 0
451 | switchRatingsInt_2: 0
452 | switchRatingsInt_3: 0
453 | switchRatingsInt_4: 0
454 | switchRatingsInt_5: 0
455 | switchRatingsInt_6: 0
456 | switchRatingsInt_7: 0
457 | switchRatingsInt_8: 0
458 | switchRatingsInt_9: 0
459 | switchRatingsInt_10: 0
460 | switchRatingsInt_11: 0
461 | switchRatingsInt_12: 0
462 | switchLocalCommunicationIds_0:
463 | switchLocalCommunicationIds_1:
464 | switchLocalCommunicationIds_2:
465 | switchLocalCommunicationIds_3:
466 | switchLocalCommunicationIds_4:
467 | switchLocalCommunicationIds_5:
468 | switchLocalCommunicationIds_6:
469 | switchLocalCommunicationIds_7:
470 | switchParentalControl: 0
471 | switchAllowsScreenshot: 1
472 | switchAllowsVideoCapturing: 1
473 | switchAllowsRuntimeAddOnContentInstall: 0
474 | switchDataLossConfirmation: 0
475 | switchUserAccountLockEnabled: 0
476 | switchSystemResourceMemory: 16777216
477 | switchSupportedNpadStyles: 22
478 | switchNativeFsCacheSize: 32
479 | switchIsHoldTypeHorizontal: 0
480 | switchSupportedNpadCount: 8
481 | switchSocketConfigEnabled: 0
482 | switchTcpInitialSendBufferSize: 32
483 | switchTcpInitialReceiveBufferSize: 64
484 | switchTcpAutoSendBufferSizeMax: 256
485 | switchTcpAutoReceiveBufferSizeMax: 256
486 | switchUdpSendBufferSize: 9
487 | switchUdpReceiveBufferSize: 42
488 | switchSocketBufferEfficiency: 4
489 | switchSocketInitializeEnabled: 1
490 | switchNetworkInterfaceManagerInitializeEnabled: 1
491 | switchPlayerConnectionEnabled: 1
492 | switchUseNewStyleFilepaths: 0
493 | switchUseMicroSleepForYield: 1
494 | switchEnableRamDiskSupport: 0
495 | switchMicroSleepForYieldTime: 25
496 | switchRamDiskSpaceSize: 12
497 | ps4NPAgeRating: 12
498 | ps4NPTitleSecret:
499 | ps4NPTrophyPackPath:
500 | ps4ParentalLevel: 11
501 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
502 | ps4Category: 0
503 | ps4MasterVersion: 01.00
504 | ps4AppVersion: 01.00
505 | ps4AppType: 0
506 | ps4ParamSfxPath:
507 | ps4VideoOutPixelFormat: 0
508 | ps4VideoOutInitialWidth: 1920
509 | ps4VideoOutBaseModeInitialWidth: 1920
510 | ps4VideoOutReprojectionRate: 60
511 | ps4PronunciationXMLPath:
512 | ps4PronunciationSIGPath:
513 | ps4BackgroundImagePath:
514 | ps4StartupImagePath:
515 | ps4StartupImagesFolder:
516 | ps4IconImagesFolder:
517 | ps4SaveDataImagePath:
518 | ps4SdkOverride:
519 | ps4BGMPath:
520 | ps4ShareFilePath:
521 | ps4ShareOverlayImagePath:
522 | ps4PrivacyGuardImagePath:
523 | ps4ExtraSceSysFile:
524 | ps4NPtitleDatPath:
525 | ps4RemotePlayKeyAssignment: -1
526 | ps4RemotePlayKeyMappingDir:
527 | ps4PlayTogetherPlayerCount: 0
528 | ps4EnterButtonAssignment: 1
529 | ps4ApplicationParam1: 0
530 | ps4ApplicationParam2: 0
531 | ps4ApplicationParam3: 0
532 | ps4ApplicationParam4: 0
533 | ps4DownloadDataSize: 0
534 | ps4GarlicHeapSize: 2048
535 | ps4ProGarlicHeapSize: 2560
536 | playerPrefsMaxSize: 32768
537 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
538 | ps4pnSessions: 1
539 | ps4pnPresence: 1
540 | ps4pnFriends: 1
541 | ps4pnGameCustomData: 1
542 | playerPrefsSupport: 0
543 | enableApplicationExit: 0
544 | resetTempFolder: 1
545 | restrictedAudioUsageRights: 0
546 | ps4UseResolutionFallback: 0
547 | ps4ReprojectionSupport: 0
548 | ps4UseAudio3dBackend: 0
549 | ps4UseLowGarlicFragmentationMode: 1
550 | ps4SocialScreenEnabled: 0
551 | ps4ScriptOptimizationLevel: 0
552 | ps4Audio3dVirtualSpeakerCount: 14
553 | ps4attribCpuUsage: 0
554 | ps4PatchPkgPath:
555 | ps4PatchLatestPkgPath:
556 | ps4PatchChangeinfoPath:
557 | ps4PatchDayOne: 0
558 | ps4attribUserManagement: 0
559 | ps4attribMoveSupport: 0
560 | ps4attrib3DSupport: 0
561 | ps4attribShareSupport: 0
562 | ps4attribExclusiveVR: 0
563 | ps4disableAutoHideSplash: 0
564 | ps4videoRecordingFeaturesUsed: 0
565 | ps4contentSearchFeaturesUsed: 0
566 | ps4CompatibilityPS5: 0
567 | ps4AllowPS5Detection: 0
568 | ps4GPU800MHz: 1
569 | ps4attribEyeToEyeDistanceSettingVR: 0
570 | ps4IncludedModules:
571 | - libc.prx
572 | - libSceAudioLatencyEstimation.prx
573 | - libSceFace.prx
574 | - libSceFaceTracker.prx
575 | - libSceFios2.prx
576 | - libSceHand.prx
577 | - libSceHandTracker.prx
578 | - libSceHeadTracker.prx
579 | - libSceJobManager.prx
580 | - libSceNpToolkit2.prx
581 | - libSceS3DConversion.prx
582 | ps4attribVROutputEnabled: 0
583 | monoEnv:
584 | splashScreenBackgroundSourceLandscape: {fileID: 0}
585 | splashScreenBackgroundSourcePortrait: {fileID: 0}
586 | blurSplashScreenBackground: 1
587 | spritePackerPolicy:
588 | webGLMemorySize: 16
589 | webGLExceptionSupport: 1
590 | webGLNameFilesAsHashes: 0
591 | webGLDataCaching: 1
592 | webGLDebugSymbols: 0
593 | webGLEmscriptenArgs:
594 | webGLModulesDirectory:
595 | webGLTemplate: APPLICATION:Default
596 | webGLAnalyzeBuildSize: 0
597 | webGLUseEmbeddedResources: 0
598 | webGLCompressionFormat: 1
599 | webGLWasmArithmeticExceptions: 0
600 | webGLLinkerTarget: 1
601 | webGLThreadsSupport: 0
602 | webGLDecompressionFallback: 0
603 | scriptingDefineSymbols:
604 | 1: DOTS_ADD_PARTIAL_KEYWORD
605 | additionalCompilerArguments: {}
606 | platformArchitecture: {}
607 | scriptingBackend:
608 | Standalone: 0
609 | il2cppCompilerConfiguration: {}
610 | managedStrippingLevel: {}
611 | incrementalIl2cppBuild: {}
612 | suppressCommonWarnings: 1
613 | allowUnsafeCode: 1
614 | useDeterministicCompilation: 1
615 | useReferenceAssemblies: 1
616 | enableRoslynAnalyzers: 1
617 | additionalIl2CppArgs:
618 | scriptingRuntimeVersion: 1
619 | gcIncremental: 1
620 | assemblyVersionValidation: 1
621 | gcWBarrierValidation: 0
622 | apiCompatibilityLevelPerPlatform:
623 | Standalone: 3
624 | m_RenderingPath: 1
625 | m_MobileRenderingPath: 1
626 | metroPackageName: Template_Lightweight
627 | metroPackageVersion:
628 | metroCertificatePath:
629 | metroCertificatePassword:
630 | metroCertificateSubject:
631 | metroCertificateIssuer:
632 | metroCertificateNotAfter: 0000000000000000
633 | metroApplicationDescription: Template_Lightweight
634 | wsaImages: {}
635 | metroTileShortName:
636 | metroTileShowName: 0
637 | metroMediumTileShowName: 0
638 | metroLargeTileShowName: 0
639 | metroWideTileShowName: 0
640 | metroSupportStreamingInstall: 0
641 | metroLastRequiredScene: 0
642 | metroDefaultTileSize: 1
643 | metroTileForegroundText: 2
644 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
645 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
646 | metroSplashScreenUseBackgroundColor: 0
647 | platformCapabilities: {}
648 | metroTargetDeviceFamilies: {}
649 | metroFTAName:
650 | metroFTAFileTypes: []
651 | metroProtocolName:
652 | XboxOneProductId:
653 | XboxOneUpdateKey:
654 | XboxOneSandboxId:
655 | XboxOneContentId:
656 | XboxOneTitleId:
657 | XboxOneSCId:
658 | XboxOneGameOsOverridePath:
659 | XboxOnePackagingOverridePath:
660 | XboxOneAppManifestOverridePath:
661 | XboxOneVersion: 1.0.0.0
662 | XboxOnePackageEncryption: 0
663 | XboxOnePackageUpdateGranularity: 2
664 | XboxOneDescription:
665 | XboxOneLanguage:
666 | - enus
667 | XboxOneCapability: []
668 | XboxOneGameRating: {}
669 | XboxOneIsContentPackage: 0
670 | XboxOneEnhancedXboxCompatibilityMode: 0
671 | XboxOneEnableGPUVariability: 1
672 | XboxOneSockets: {}
673 | XboxOneSplashScreen: {fileID: 0}
674 | XboxOneAllowedProductIds: []
675 | XboxOnePersistentLocalStorageSize: 0
676 | XboxOneXTitleMemory: 8
677 | XboxOneOverrideIdentityName:
678 | XboxOneOverrideIdentityPublisher:
679 | vrEditorSettings: {}
680 | cloudServicesEnabled:
681 | UNet: 1
682 | luminIcon:
683 | m_Name:
684 | m_ModelFolderPath:
685 | m_PortalFolderPath:
686 | luminCert:
687 | m_CertPath:
688 | m_SignPackage: 1
689 | luminIsChannelApp: 0
690 | luminVersion:
691 | m_VersionCode: 1
692 | m_VersionName:
693 | apiCompatibilityLevel: 6
694 | activeInputHandler: 0
695 | cloudProjectId:
696 | framebufferDepthMemorylessMode: 0
697 | qualitySettingsNames: []
698 | projectName:
699 | organizationId:
700 | cloudEnabled: 0
701 | legacyClampBlendShapeWeights: 0
702 | virtualTexturingSupportEnabled: 0
703 |
--------------------------------------------------------------------------------