├── .gitattributes
├── ProjectSettings
├── ProjectVersion.txt
├── CommonBurstAotSettings.json
├── ClusterInputManager.asset
├── PresetManager.asset
├── NetworkManager.asset
├── XRSettings.asset
├── VersionControlSettings.asset
├── TimeManager.asset
├── EditorBuildSettings.asset
├── VFXManager.asset
├── BurstAotSettings_WebGL.json
├── BurstAotSettings_iOS.json
├── URPProjectSettings.asset
├── BurstAotSettings_Android.json
├── AudioManager.asset
├── BurstAotSettings_StandaloneOSX.json
├── EntitiesClientSettings.asset
├── ShaderGraphSettings.asset
├── TagManager.asset
├── UnityConnectSettings.asset
├── PackageManagerSettings.asset
├── MemorySettings.asset
├── DynamicsManager.asset
├── EditorSettings.asset
├── NavMeshAreas.asset
├── Physics2DSettings.asset
├── GraphicsSettings.asset
├── SceneTemplateSettings.json
├── QualitySettings.asset
├── InputManager.asset
└── ProjectSettings.asset
├── Assets
├── UnityPhysics2DPlugin
│ ├── Documentation~
│ │ └── img1.png
│ ├── package.json.meta
│ ├── Runtime.meta
│ ├── Runtime
│ │ ├── Baking.meta
│ │ ├── UnityPhysics2D.cs
│ │ ├── UnityPhysics2DPlugin.asmdef.meta
│ │ ├── MathHelper.cs.meta
│ │ ├── UnityPhysics2D.cs.meta
│ │ ├── ColliderBakingHelper.cs.meta
│ │ ├── Physics2DComponents.cs.meta
│ │ ├── Physics2DSystemGroup.cs.meta
│ │ ├── Physics2DSystems.cs.meta
│ │ ├── Baking
│ │ │ ├── Collider2DBaker.cs.meta
│ │ │ ├── Rigidbody2DBaker.cs.meta
│ │ │ ├── Collider2DBaker.cs
│ │ │ └── Rigidbody2DBaker.cs
│ │ ├── Physics2DComponents.cs
│ │ ├── Physics2DSystemGroup.cs
│ │ ├── UnityPhysics2DPlugin.asmdef
│ │ ├── Physics2DSystems.cs
│ │ ├── MathHelper.cs
│ │ └── ColliderBakingHelper.cs
│ └── package.json
└── UnityPhysics2DPlugin.meta
├── LICENSE
├── .gitignore
├── Packages
├── manifest.json
└── packages-lock.json
├── README_JP.md
└── README.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2022.3.7f1
2 | m_EditorVersionWithRevision: 2022.3.7f1 (b16b3b16c7a0)
3 |
--------------------------------------------------------------------------------
/ProjectSettings/CommonBurstAotSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "DisabledWarnings": ""
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Documentation~/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/annulusgames/UnityPhysics2DPlugin/HEAD/Assets/UnityPhysics2DPlugin/Documentation~/img1.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | serializedVersion: 2
7 | m_DefaultPresets: {}
8 |
--------------------------------------------------------------------------------
/ProjectSettings/NetworkManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!149 &1
4 | NetworkManager:
5 | m_ObjectHideFlags: 0
6 | m_DebugLevel: 0
7 | m_Sendrate: 15
8 | m_AssetToPrefab: {}
9 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3125c4f09ceb74365b1293072f137f3a
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 24f2c457e332347e599becf6cef5d8ae
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/UnityPhysics2DPlugin/Runtime.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: baa3cfba9c9b34383b53317ba3507d5a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Baking.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b33c90dd0b4174f229a770a75bf92f4a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/UnityPhysics2D.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace UnityPhysics2DPlugin
4 | {
5 | public static class UnityPhysics2D
6 | {
7 | public const int PhysicsWorldIndex = 10;
8 | }
9 |
10 | }
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/UnityPhysics2DPlugin.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 81332e9e6cb53467ab8ef4469b44adc0
3 | AssemblyDefinitionImporter:
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.33333334
8 | m_TimeScale: 1
9 | Maximum Particle Timestep: 0.03
10 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/MathHelper.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 70d6e7fd196c54fb9b8fdb1237355f23
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/UnityPhysics2D.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b7efc929283fc41e6bbcdb2b59aaa010
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/Scenes/SampleScene.unity
10 | guid: 8c9cfa26abfee488c85f1582747f6a02
11 | m_configObjects: {}
12 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/ColliderBakingHelper.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7775d9b433d9e4dad88bae8d75021191
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Physics2DComponents.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dc0cd2fc4b19f4054877f0317c13040c
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Physics2DSystemGroup.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 62c7abf1212d740a3b54705423133060
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Physics2DSystems.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 61c532ad1e93846e6889b9a5c0675a65
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Baking/Collider2DBaker.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 93fb0a7fe0b384ee79205a2fc0c89e48
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Baking/Rigidbody2DBaker.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 474b7eaab5789497fa5f57aa8c681f4d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Physics2DComponents.cs:
--------------------------------------------------------------------------------
1 | using Unity.Entities;
2 | using Unity.Mathematics;
3 |
4 | namespace UnityPhysics2DPlugin
5 | {
6 | public struct Physics2DTag : IComponentData { }
7 |
8 | internal struct Physics2DTempData : IComponentData
9 | {
10 | public float PositionZ;
11 | public quaternion Rotation;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/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_StripUpdateShader: {fileID: 0}
10 | m_RenderPipeSettingsPath:
11 | m_FixedTimeStep: 0.016666668
12 | m_MaxDeltaTime: 0.05
13 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.annulusgames.unity-physics-2d-plugin",
3 | "version": "0.1.0",
4 | "displayName": "Unity Physics 2D Plugin",
5 | "description": "Unity Physics extension for adding pseudo 2D physics functionality",
6 | "unity": "2022.4",
7 | "author": {
8 | "name": "Annulus Games",
9 | "url": "https://annulusgames.com"
10 | }
11 | }
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Physics2DSystemGroup.cs:
--------------------------------------------------------------------------------
1 | using Unity.Entities;
2 | using Unity.Physics.Systems;
3 |
4 | namespace UnityPhysics2DPlugin
5 | {
6 | [UpdateInGroup(typeof(FixedStepSimulationSystemGroup))]
7 | public partial class Physics2DSystemGroup : CustomPhysicsSystemGroup
8 | {
9 | public Physics2DSystemGroup() : base(UnityPhysics2D.PhysicsWorldIndex, true) { }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/ProjectSettings/BurstAotSettings_WebGL.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "EnableBurstCompilation": true,
5 | "EnableOptimisations": true,
6 | "EnableSafetyChecks": false,
7 | "EnableDebugInAllBuilds": false,
8 | "DebugDataKind": 1,
9 | "EnableArmv9SecurityFeatures": false,
10 | "CpuMinTargetX32": 0,
11 | "CpuMaxTargetX32": 0,
12 | "CpuMinTargetX64": 0,
13 | "CpuMaxTargetX64": 0,
14 | "OptimizeFor": 0
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/ProjectSettings/BurstAotSettings_iOS.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "EnableBurstCompilation": true,
5 | "EnableOptimisations": true,
6 | "EnableSafetyChecks": false,
7 | "EnableDebugInAllBuilds": false,
8 | "DebugDataKind": 1,
9 | "EnableArmv9SecurityFeatures": false,
10 | "CpuMinTargetX32": 0,
11 | "CpuMaxTargetX32": 0,
12 | "CpuMinTargetX64": 0,
13 | "CpuMaxTargetX64": 0,
14 | "OptimizeFor": 0
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: 7
16 |
--------------------------------------------------------------------------------
/ProjectSettings/BurstAotSettings_Android.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "EnableBurstCompilation": true,
5 | "EnableOptimisations": true,
6 | "EnableSafetyChecks": false,
7 | "EnableDebugInAllBuilds": false,
8 | "DebugDataKind": 1,
9 | "EnableArmv9SecurityFeatures": false,
10 | "CpuMinTargetX32": 0,
11 | "CpuMaxTargetX32": 0,
12 | "CpuMinTargetX64": 0,
13 | "CpuMaxTargetX64": 0,
14 | "CpuTargetsArm64": 512,
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 |
--------------------------------------------------------------------------------
/ProjectSettings/BurstAotSettings_StandaloneOSX.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "EnableBurstCompilation": true,
5 | "EnableOptimisations": true,
6 | "EnableSafetyChecks": false,
7 | "EnableDebugInAllBuilds": false,
8 | "DebugDataKind": 1,
9 | "EnableArmv9SecurityFeatures": false,
10 | "CpuMinTargetX32": 0,
11 | "CpuMaxTargetX32": 0,
12 | "CpuMinTargetX64": 0,
13 | "CpuMaxTargetX64": 0,
14 | "CpuTargetsX64": 72,
15 | "OptimizeFor": 0
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ProjectSettings/EntitiesClientSettings.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: e2ea235c1fcfe29488ed97c467a0da53, type: 3}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | FilterSettings:
16 | ExcludedBakingSystemAssemblies: []
17 |
--------------------------------------------------------------------------------
/ProjectSettings/ShaderGraphSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &1
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 53
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: de02f9e1d18f588468e474319d09a723, type: 3}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | customInterpolatorErrorThreshold: 32
16 | customInterpolatorWarningThreshold: 16
17 |
--------------------------------------------------------------------------------
/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/UnityPhysics2DPlugin/Runtime/UnityPhysics2DPlugin.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "UnityPhysics2DPlugin",
3 | "rootNamespace": "",
4 | "references": [
5 | "GUID:734d92eba21c94caba915361bd5ac177",
6 | "GUID:8819f35a0fc84499b990e90a4ca1911f",
7 | "GUID:63afb046c8423dd448ae7aba042ea63d",
8 | "GUID:e00140a815de944528348782854abe39",
9 | "GUID:a5baed0c9693541a5bd947d336ec7659",
10 | "GUID:d8b63aba1907145bea998dd612889d6b",
11 | "GUID:e0cd26848372d4e5c891c569017e11f1",
12 | "GUID:2665a8d13d1b3f18800f46e256720795"
13 | ],
14 | "includePlatforms": [],
15 | "excludePlatforms": [],
16 | "allowUnsafeCode": true,
17 | "overrideReferences": false,
18 | "precompiledReferences": [],
19 | "autoReferenced": true,
20 | "defineConstraints": [],
21 | "versionDefines": [],
22 | "noEngineReferences": false
23 | }
--------------------------------------------------------------------------------
/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 | m_PackageRequiringCoreStatsPresent: 0
27 | UnityAdsSettings:
28 | m_Enabled: 0
29 | m_InitializeOnStartup: 1
30 | m_TestMode: 0
31 | m_IosGameId:
32 | m_AndroidGameId:
33 | m_GameIds: {}
34 | m_GameId:
35 | PerformanceReportingSettings:
36 | m_Enabled: 0
37 |
--------------------------------------------------------------------------------
/ProjectSettings/PackageManagerSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &1
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 53
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_EnablePreReleasePackages: 0
16 | m_AdvancedSettingsExpanded: 1
17 | m_ScopedRegistriesSettingsExpanded: 1
18 | m_SeeAllPackageVersions: 0
19 | m_DismissPreviewPackagesInUse: 0
20 | oneTimeWarningShown: 0
21 | m_Registries:
22 | - m_Id: main
23 | m_Name:
24 | m_Url: https://packages.unity.com
25 | m_Scopes: []
26 | m_IsDefault: 1
27 | m_Capabilities: 7
28 | m_ConfigSource: 0
29 | m_UserSelectedRegistryName:
30 | m_UserAddingNewScopedRegistry: 0
31 | m_RegistryInfoDraft:
32 | m_Modified: 0
33 | m_ErrorMessage:
34 | m_UserModificationsInstanceId: -842
35 | m_OriginalInstanceId: -844
36 | m_LoadAssets: 0
37 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 AnnulusGames
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/ProjectSettings/MemorySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!387306366 &1
4 | MemorySettings:
5 | m_ObjectHideFlags: 0
6 | m_EditorMemorySettings:
7 | m_MainAllocatorBlockSize: -1
8 | m_ThreadAllocatorBlockSize: -1
9 | m_MainGfxBlockSize: -1
10 | m_ThreadGfxBlockSize: -1
11 | m_CacheBlockSize: -1
12 | m_TypetreeBlockSize: -1
13 | m_ProfilerBlockSize: -1
14 | m_ProfilerEditorBlockSize: -1
15 | m_BucketAllocatorGranularity: -1
16 | m_BucketAllocatorBucketsCount: -1
17 | m_BucketAllocatorBlockSize: -1
18 | m_BucketAllocatorBlockCount: -1
19 | m_ProfilerBucketAllocatorGranularity: -1
20 | m_ProfilerBucketAllocatorBucketsCount: -1
21 | m_ProfilerBucketAllocatorBlockSize: -1
22 | m_ProfilerBucketAllocatorBlockCount: -1
23 | m_TempAllocatorSizeMain: -1
24 | m_JobTempAllocatorBlockSize: -1
25 | m_BackgroundJobTempAllocatorBlockSize: -1
26 | m_JobTempAllocatorReducedBlockSize: -1
27 | m_TempAllocatorSizeGIBakingWorker: -1
28 | m_TempAllocatorSizeNavMeshWorker: -1
29 | m_TempAllocatorSizeAudioWorker: -1
30 | m_TempAllocatorSizeCloudWorker: -1
31 | m_TempAllocatorSizeGfx: -1
32 | m_TempAllocatorSizeJobWorker: -1
33 | m_TempAllocatorSizeBackgroundWorker: -1
34 | m_TempAllocatorSizePreloadManager: -1
35 | m_PlatformMemorySettings: {}
36 |
--------------------------------------------------------------------------------
/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: 50
37 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # This .gitignore file should be placed at the root of your Unity project directory
2 | #
3 | # Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
4 | #
5 | /[Ll]ibrary/
6 | /[Tt]emp/
7 | /[Oo]bj/
8 | /[Bb]uild/
9 | /[Bb]uilds/
10 | /[Ll]ogs/
11 | /[Uu]ser[Ss]ettings/
12 |
13 | # MemoryCaptures can get excessive in size.
14 | # They also could contain extremely sensitive data
15 | /[Mm]emoryCaptures/
16 |
17 | # Recordings can get excessive in size
18 | /[Rr]ecordings/
19 |
20 | # Uncomment this line if you wish to ignore the asset store tools plugin
21 | # /[Aa]ssets/AssetStoreTools*
22 |
23 | # Autogenerated Jetbrains Rider plugin
24 | /[Aa]ssets/Plugins/Editor/JetBrains*
25 |
26 | # Visual Studio cache directory
27 | .vs/
28 |
29 | # Gradle cache directory
30 | .gradle/
31 |
32 | # Autogenerated VS/MD/Consulo solution and project files
33 | ExportedObj/
34 | .consulo/
35 | *.csproj
36 | *.unityproj
37 | *.sln
38 | *.suo
39 | *.tmp
40 | *.user
41 | *.userprefs
42 | *.pidb
43 | *.booproj
44 | *.svd
45 | *.pdb
46 | *.mdb
47 | *.opendb
48 | *.VC.db
49 |
50 | # Unity3D generated meta files
51 | *.pidb.meta
52 | *.pdb.meta
53 | *.mdb.meta
54 |
55 | # Unity3D generated file on crash reports
56 | sysinfo.txt
57 |
58 | # Builds
59 | *.apk
60 | *.aab
61 | *.unitypackage
62 | *.app
63 |
64 | # Crashlytics generated file
65 | crashlytics-build.properties
66 |
67 | # Packed Addressables
68 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
69 |
70 | # Temporary auto-generated Android Assets
71 | /[Aa]ssets/[Ss]treamingAssets/aa.meta
72 | /[Aa]ssets/[Ss]treamingAssets/aa/*
73 |
74 | # Visual Studio Code cache directory
75 | .vscode/
76 |
77 | # DS_Store
78 | *.DS_Store
79 |
--------------------------------------------------------------------------------
/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: 12
7 | m_SerializationMode: 2
8 | m_LineEndingsForNewScripts: 0
9 | m_DefaultBehaviorMode: 1
10 | m_PrefabRegularEnvironment: {fileID: 0}
11 | m_PrefabUIEnvironment: {fileID: 0}
12 | m_SpritePackerMode: 5
13 | m_SpritePackerCacheSize: 10
14 | m_SpritePackerPaddingPower: 1
15 | m_Bc7TextureCompressor: 0
16 | m_EtcTextureCompressorBehavior: 1
17 | m_EtcTextureFastCompressor: 1
18 | m_EtcTextureNormalCompressor: 2
19 | m_EtcTextureBestCompressor: 4
20 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp
21 | m_ProjectGenerationRootNamespace: UnityPhysics2DPlugin
22 | m_EnableTextureStreamingInEditMode: 1
23 | m_EnableTextureStreamingInPlayMode: 1
24 | m_EnableEditorAsyncCPUTextureLoading: 0
25 | m_AsyncShaderCompilation: 1
26 | m_PrefabModeAllowAutoSave: 1
27 | m_EnterPlayModeOptionsEnabled: 1
28 | m_EnterPlayModeOptions: 1
29 | m_GameObjectNamingDigits: 1
30 | m_GameObjectNamingScheme: 0
31 | m_AssetNamingUsesSpace: 1
32 | m_InspectorUseIMGUIDefaultInspector: 0
33 | m_UseLegacyProbeSampleCount: 0
34 | m_SerializeInlineMappingsOnOneLine: 1
35 | m_DisableCookiesInLightmapper: 1
36 | m_AssetPipelineMode: 1
37 | m_RefreshImportMode: 0
38 | m_CacheServerMode: 0
39 | m_CacheServerEndpoint:
40 | m_CacheServerNamespacePrefix: default
41 | m_CacheServerEnableDownload: 1
42 | m_CacheServerEnableUpload: 1
43 | m_CacheServerEnableAuth: 0
44 | m_CacheServerEnableTls: 0
45 | m_CacheServerValidationMode: 2
46 | m_CacheServerDownloadBatchSize: 128
47 | m_EnableEnlightenBakedGI: 0
48 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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: 6
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_SimulationMode: 0
42 | m_QueriesHitTriggers: 1
43 | m_QueriesStartInColliders: 1
44 | m_CallbacksOnDisable: 1
45 | m_ReuseCollisionCallbacks: 1
46 | m_AutoSyncTransforms: 0
47 | m_GizmoOptions: 10
48 | m_LayerCollisionMatrix: fffefffffffefffffffefffffffffffffffefffffffeffffffffffffffffffffc8feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
49 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.collab-proxy": "2.0.5",
4 | "com.unity.entities.graphics": "1.0.16",
5 | "com.unity.feature.2d": "2.0.0",
6 | "com.unity.ide.rider": "3.0.24",
7 | "com.unity.ide.visualstudio": "2.0.22",
8 | "com.unity.physics": "1.0.16",
9 | "com.unity.render-pipelines.universal": "14.0.8",
10 | "com.unity.test-framework": "1.1.33",
11 | "com.unity.textmeshpro": "3.0.6",
12 | "com.unity.timeline": "1.7.5",
13 | "com.unity.toolchain.macos-arm64-linux-x86_64": "2.0.0",
14 | "com.unity.ugui": "1.0.0",
15 | "com.unity.visualscripting": "1.8.0",
16 | "com.unity.modules.ai": "1.0.0",
17 | "com.unity.modules.androidjni": "1.0.0",
18 | "com.unity.modules.animation": "1.0.0",
19 | "com.unity.modules.assetbundle": "1.0.0",
20 | "com.unity.modules.audio": "1.0.0",
21 | "com.unity.modules.cloth": "1.0.0",
22 | "com.unity.modules.director": "1.0.0",
23 | "com.unity.modules.imageconversion": "1.0.0",
24 | "com.unity.modules.imgui": "1.0.0",
25 | "com.unity.modules.jsonserialize": "1.0.0",
26 | "com.unity.modules.particlesystem": "1.0.0",
27 | "com.unity.modules.physics": "1.0.0",
28 | "com.unity.modules.physics2d": "1.0.0",
29 | "com.unity.modules.screencapture": "1.0.0",
30 | "com.unity.modules.terrain": "1.0.0",
31 | "com.unity.modules.terrainphysics": "1.0.0",
32 | "com.unity.modules.tilemap": "1.0.0",
33 | "com.unity.modules.ui": "1.0.0",
34 | "com.unity.modules.uielements": "1.0.0",
35 | "com.unity.modules.umbra": "1.0.0",
36 | "com.unity.modules.unityanalytics": "1.0.0",
37 | "com.unity.modules.unitywebrequest": "1.0.0",
38 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
39 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
40 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
41 | "com.unity.modules.unitywebrequestwww": "1.0.0",
42 | "com.unity.modules.vehicles": "1.0.0",
43 | "com.unity.modules.video": "1.0.0",
44 | "com.unity.modules.vr": "1.0.0",
45 | "com.unity.modules.wind": "1.0.0",
46 | "com.unity.modules.xr": "1.0.0"
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/README_JP.md:
--------------------------------------------------------------------------------
1 | # Unity Physics 2D Plugin
2 | Unity Physics extension for adding pseudo 2D physics functionality
3 |
4 | [](LICENSE)
5 |
6 | [English README is here](README.md)
7 |
8 | ## 概要
9 | Unity Physics 2D PluginはUnity Physicsを用いた擬似的な2Dの物理挙動を実装するライブラリです。
10 |
11 | 現在Unity Physicsは2Dをサポートしておらず、2Dのプロジェクトでこれを用いたい場合には3D向けのRigidbodyを使用する必要があります。
12 |
13 | Unity Physics 2D PluginはZ軸を固定した3Dコライダを用いて2D向けの物理挙動を擬似的に再現します。`Rigidbody2D`および幾つかの2Dコライダのオーサリングをサポートし、SubScene内に配置された`Rigidbody2D`と`Collider2D`をUnity Physics用のコンポーネント群に変換します。
14 |
15 | ### 要件
16 |
17 | * Unity 2022.3 以上
18 | * Entities 1.0.0 以上
19 | * Unity Physics 1.0.0以上
20 |
21 | ### インストール
22 |
23 | 1. Window > Package ManagerからPackage Managerを開く
24 | 2. 「+」ボタン > Add package from git URL
25 | 3. 以下のURLを入力する
26 |
27 | ```
28 | https://github.com/AnnulusGames/UnityPhysics2DPlugin.git?path=Assets/UnityPhysics2DPlugin
29 | ```
30 |
31 | あるいはPackages/manifest.jsonを開き、dependenciesブロックに以下を追記
32 |
33 | ```json
34 | {
35 | "dependencies": {
36 | "com.annulusgames.unity-physics-2d-plugin": "https://github.com/AnnulusGames/UnityPhysics2DPlugin.git?path=Assets/UnityPhysics2DPlugin"
37 | }
38 | }
39 | ```
40 |
41 | ## 基本的な使い方
42 |
43 | Unity Physics 2D Pluginを導入することで、SubScene内の`Rigidbody2D`、およびサポートされている`Collider2D`が対応するコンポーネント群に変換されるようになります。
44 |
45 |
46 |
47 | friction(摩擦係数)やbounciness(反発係数)はRigidbody2Dやコライダに割り当てられている`PhysicsMaterial2D`アセットの値が反映されます。また、CollisionFilterに関してはPhysics2Dの`Layer Collision Matrix`の設定が適用されます。
48 |
49 | ## 利用可能なCollider
50 |
51 | Unity Physics 2D Pluginは現在`BoxCollider2D`、`CircleCollider2D`、`CapsuleCollider2D`に対応しています。複雑な形状のコライダを作成したい場合は、これらを組み合わせた複合コライダを作成できます。
52 |
53 | ## Physics2DTag
54 |
55 | 2D用に作成されたEntityには`Physics2DTag`コンポーネントが付与されます。これによってクエリの際に2D用のPhysics Bodyと3D用のPhysics Bodyを区別することが可能です。
56 |
57 | ## メカニズム
58 |
59 | Unity Physics 2D Pluginで作成されたPhysics Bodyは通常のものとは独立した`Physics2DSystemGroup`によって動作します。Entityの`PhysicsWorldIndex`の値は10に設定されているため、デフォルトのコライダとは干渉しません。
60 |
61 | Physics2DSystemGroupでは通常のUnity PhysicsのSystem群に加え、前後に独自のSystemを追加します。これらのSystemは、物理挙動のシミュレーションが行われる間だけLocalTransformのZ軸の位置およびX/Y軸の回転を一時的に0に設定します。また、重心の位置やZ軸方向の速度、X/Y軸方向の回転速度は全て0に設定されます。
62 |
63 | ## 制限事項
64 |
65 | * 2D用の衝突クエリ(Raycast、Overlap等)はサポートされていません (ただし実際のコライダは3Dで作成されているため、3D用の通常の衝突クエリを使用できます)
66 | * 独自のSystemによる処理を追加するため、Unity Physics 2D Pluginのシミュレーションは決定論的でない可能性があります
67 |
68 | ## ライセンス
69 |
70 | [MIT License](LICENSE)
71 |
--------------------------------------------------------------------------------
/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: 15
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_DepthNormals:
17 | m_Mode: 1
18 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
19 | m_MotionVectors:
20 | m_Mode: 1
21 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
22 | m_LightHalo:
23 | m_Mode: 1
24 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
25 | m_LensFlare:
26 | m_Mode: 1
27 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
28 | m_VideoShadersIncludeMode: 2
29 | m_AlwaysIncludedShaders:
30 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
31 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
32 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
33 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
34 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
35 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
36 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
37 | m_PreloadedShaders: []
38 | m_PreloadShadersBatchTimeLimit: -1
39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
40 | m_CustomRenderPipeline: {fileID: 11400000, guid: 681886c5eb7344803b6206f758bf0b1c, type: 2}
41 | m_TransparencySortMode: 0
42 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
43 | m_DefaultRenderingPath: 1
44 | m_DefaultMobileRenderingPath: 1
45 | m_TierSettings: []
46 | m_LightmapStripping: 0
47 | m_FogStripping: 0
48 | m_InstancingStripping: 0
49 | m_BrgStripping: 0
50 | m_LightmapKeepPlain: 1
51 | m_LightmapKeepDirCombined: 1
52 | m_LightmapKeepDynamicPlain: 1
53 | m_LightmapKeepDynamicDirCombined: 1
54 | m_LightmapKeepShadowMask: 1
55 | m_LightmapKeepSubtractive: 1
56 | m_FogKeepLinear: 1
57 | m_FogKeepExp: 1
58 | m_FogKeepExp2: 1
59 | m_AlbedoSwatchInfos: []
60 | m_LightsUseLinearIntensity: 1
61 | m_LightsUseColorTemperature: 1
62 | m_DefaultRenderingLayerMask: 1
63 | m_LogWhenShaderIsCompiled: 0
64 | m_SRPDefaultSettings:
65 | UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 93b439a37f63240aca3dd4e01d978a9f, type: 2}
66 | m_LightProbeOutsideHullStrategy: 0
67 | m_CameraRelativeLightCulling: 0
68 | m_CameraRelativeShadowCulling: 0
69 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Baking/Collider2DBaker.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 | using Unity.Collections;
4 | using Unity.Entities;
5 | using Unity.Physics;
6 | using UnityEngine;
7 |
8 | namespace UnityPhysics2DPlugin.Baking
9 | {
10 | public abstract class Collider2DBakerBase : Baker where TCollider : Collider2D
11 | {
12 | static readonly List colliderComponents = new();
13 |
14 | public override void Bake(TCollider authoring)
15 | {
16 | if (authoring.attachedRigidbody != null) return;
17 |
18 | GetComponentsInParent(colliderComponents);
19 | if (colliderComponents.Where(x => x.gameObject != authoring.gameObject).Count() > 0) return;
20 |
21 | var entity = GetEntity(TransformUsageFlags.Dynamic);
22 |
23 | AddComponent(entity);
24 | AddComponent(entity);
25 |
26 | AddColliders(entity, authoring);
27 | if (authoring.sharedMaterial != null) DependsOn(authoring.sharedMaterial);
28 |
29 | AddSharedComponent(entity, new PhysicsWorldIndex(UnityPhysics2D.PhysicsWorldIndex));
30 | }
31 |
32 | void AddColliders(Entity entity, TCollider authoring)
33 | {
34 | GetComponentsInChildren(colliderComponents);
35 |
36 | if (colliderComponents.Count == 0 && colliderComponents[0].gameObject == authoring.gameObject)
37 | {
38 | if (!colliderComponents[0].enabled) return;
39 |
40 | if (ColliderBakingHelper.TryCreateCollider(colliderComponents[0], ColliderScalingMode.Local, 0f, out var physicsCollider))
41 | {
42 | AddComponent(entity, new PhysicsCollider() { Value = physicsCollider });
43 | }
44 | return;
45 | }
46 |
47 | var childColliders = new NativeList(colliderComponents.Count, Allocator.Temp);
48 | foreach (var childCollider in colliderComponents)
49 | {
50 | if (!childCollider.enabled) continue;
51 |
52 | if (ColliderBakingHelper.TryCreateCollider(childCollider, ColliderScalingMode.Global, authoring.transform.position.z - childCollider.transform.position.z, out var physicsCollider))
53 | {
54 | var childEntity = GetEntity(childCollider.gameObject, TransformUsageFlags.Dynamic);
55 |
56 | childColliders.Add(new CompoundCollider.ColliderBlobInstance()
57 | {
58 | Collider = physicsCollider,
59 | CompoundFromChild = ColliderBakingHelper.GetCompoundFromChild(childCollider.transform, authoring.transform),
60 | Entity = childEntity
61 | });
62 | }
63 | }
64 |
65 | if (childColliders.Length > 0)
66 | {
67 | var compoundCollider = CompoundCollider.Create(childColliders.ToArray(Allocator.Temp));
68 | AddComponent(entity, new PhysicsCollider() { Value = compoundCollider });
69 | }
70 | }
71 | }
72 |
73 | public class BoxCollider2DBaker : Collider2DBakerBase { }
74 | public class CircleCollider2DBaker : Collider2DBakerBase { }
75 | public class CapsuleCollider2DBaker : Collider2DBakerBase { }
76 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Unity Physics 2D Plugin
2 | Unity Physics extension for adding pseudo 2D physics functionality
3 |
4 | [](LICENSE)
5 |
6 | [日本語版READMEはこちら](README_JP.md)
7 |
8 | ## Overview
9 |
10 | The Unity Physics 2D Plugin is a library for implementing pseudo 2D physics behavior using Unity Physics.
11 |
12 | Currently, Unity Physics does not support 2D, and if you want to use it in a 2D project, you need to use 3D Rigidbody component.
13 |
14 | The Unity Physics 2D Plugin simulates 2D physics behavior using 3D colliders with the Z-axis fixed, providing support for `Rigidbody2D` and several 2D colliders. It converts `Rigidbody2D` and `Collider2D` components placed within a SubScene into components compatible with Unity Physics.
15 |
16 | ### Requirements
17 |
18 | * Unity 2022.3 or higher
19 | * Entities 1.0.0 or higher
20 | * Unity Physics 1.0.0 or higher
21 |
22 | ### Installation
23 |
24 | 1. Open the Package Manager from Window > Package Manager.
25 | 2. Click the "+" button > Add package from git URL.
26 | 3. Enter the following URL:
27 |
28 | ```
29 | https://github.com/AnnulusGames/UnityPhysics2DPlugin.git?path=Assets/UnityPhysics2DPlugin
30 | ```
31 |
32 | Alternatively, open Packages/manifest.json and add the following to the dependencies block:
33 |
34 | ```json
35 | {
36 | "dependencies": {
37 | "com.annulusgames.unity-physics-2d-plugin": "https://github.com/AnnulusGames/UnityPhysics2DPlugin.git?path=Assets/UnityPhysics2DPlugin"
38 | }
39 | }
40 | ```
41 |
42 | ## Basic Usage
43 |
44 | By installing the Unity Physics 2D Plugin, `Rigidbody2D` and supported `Collider2D` components within a SubScene are converted into a set of compatible components.
45 |
46 |
47 |
48 | Friction and bounciness values assigned to `Rigidbody2D` and colliders are reflected from the associated `PhysicsMaterial2D` assets. Regarding the CollisionFilter, it applies the settings of Physics2D's `Layer Collision Matrix`.
49 |
50 | ## Available Colliders
51 |
52 | The Unity Physics 2D Plugin currently supports `BoxCollider2D`, `CircleCollider2D`, and `CapsuleCollider2D`. If you want to create complex-shaped colliders, you can combine these to create compound colliders.
53 |
54 | ## Physics2DTag
55 |
56 | Entities created for 2D have a `Physics2DTag` component added. This allows you to distinguish between 2D and 3D physics bodies when querying.
57 |
58 | ## Mechanism
59 |
60 | Physics bodies created with the Unity Physics 2D Plugin operate independently in a separate `Physics2DSystemGroup` from the regular ones. The `PhysicsWorldIndex` value of the Entity is set to 10, ensuring no interference with default colliders.
61 |
62 | The Physics2DSystemGroup adds its custom systems before and after the regular Unity Physics systems. These systems temporarily set the Z-axis position and X/Y-axis rotation of the LocalTransform to 0 only during the simulation of physical behavior. Additionally, the center of mass position, Z-axis velocity, and X/Y-axis rotational velocity are all set to 0.
63 |
64 | ## Limitations
65 |
66 | * 2D collision queries (e.g., Raycast, Overlap) are not supported (though you can use standard 3D collision queries since the actual colliders are created in 3D).
67 | * Due to the addition of custom systems, the simulation of the Unity Physics 2D Plugin may not be deterministic.
68 |
69 | ## License
70 |
71 | [MIT License](LICENSE)
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Physics2DSystems.cs:
--------------------------------------------------------------------------------
1 | using Unity.Burst;
2 | using Unity.Entities;
3 | using Unity.Mathematics;
4 | using Unity.Physics;
5 | using Unity.Transforms;
6 |
7 | namespace UnityPhysics2DPlugin
8 | {
9 | [BurstCompile]
10 | [UpdateInGroup(typeof(Physics2DSystemGroup), OrderFirst = true)]
11 | internal partial struct BeginPhysics2DSimulationSystem : ISystem
12 | {
13 | [BurstCompile]
14 | public void OnUpdate(ref SystemState state)
15 | {
16 | var job1 = new AdjustTransformJob();
17 | var job2 = new AdjustMassJob();
18 | var job3 = new AdjustVelocityJob();
19 | job1.ScheduleParallel();
20 | job2.ScheduleParallel();
21 | job3.ScheduleParallel();
22 | state.CompleteDependency();
23 | }
24 |
25 | [BurstCompile]
26 | partial struct AdjustTransformJob : IJobEntity
27 | {
28 | public void Execute(in Physics2DTag tag, ref LocalTransform transform, ref Physics2DTempData temp)
29 | {
30 | temp.PositionZ = transform.Position.z;
31 | temp.Rotation = transform.Rotation;
32 | transform.Position = new float3(transform.Position.x, transform.Position.y, 0f);
33 | transform.Rotation = MathHelper.ToQuaternion(new float3(0f, 0f, MathHelper.ToEulerAngles(transform.Rotation).z));
34 | }
35 | }
36 |
37 | [BurstCompile]
38 | partial struct AdjustMassJob : IJobEntity
39 | {
40 | public void Execute(in Physics2DTag tag, ref PhysicsMass mass)
41 | {
42 | mass.Transform.pos.z = 0f;
43 | mass.Transform.rot = MathHelper.ToQuaternion(new float3(0f, 0f, MathHelper.ToEulerAngles(mass.Transform.rot).z));
44 | }
45 | }
46 |
47 | [BurstCompile]
48 | partial struct AdjustVelocityJob : IJobEntity
49 | {
50 | public void Execute(in Physics2DTag tag, ref PhysicsVelocity velocity)
51 | {
52 | velocity.Linear.z = 0f;
53 | velocity.Angular.x = 0f;
54 | velocity.Angular.y = 0f;
55 | }
56 | }
57 | }
58 |
59 | [BurstCompile]
60 | [UpdateInGroup(typeof(Physics2DSystemGroup), OrderLast = true)]
61 | internal partial struct EndPhysics2DSimulationSystem : ISystem
62 | {
63 | [BurstCompile]
64 | public void OnUpdate(ref SystemState state)
65 | {
66 | var job1 = new AdjustTransformJob();
67 | var job2 = new AdjustVelocityJob();
68 | job1.ScheduleParallel();
69 | job2.ScheduleParallel();
70 | state.CompleteDependency();
71 | }
72 |
73 | [BurstCompile]
74 | partial struct AdjustTransformJob : IJobEntity
75 | {
76 | public void Execute(in Physics2DTag tag, ref LocalTransform transform, ref Physics2DTempData temp)
77 | {
78 | transform.Position = new float3(transform.Position.x, transform.Position.y, temp.PositionZ);
79 |
80 | var eulerAngles = MathHelper.ToEulerAngles(temp.Rotation);
81 | eulerAngles.z = MathHelper.ToEulerAngles(transform.Rotation).z;
82 | transform.Rotation = MathHelper.ToQuaternion(eulerAngles);
83 | }
84 | }
85 |
86 | [BurstCompile]
87 | partial struct AdjustVelocityJob : IJobEntity
88 | {
89 | public void Execute(in Physics2DTag tag, ref PhysicsVelocity velocity)
90 | {
91 | velocity.Linear.z = 0f;
92 | velocity.Angular.x = 0f;
93 | velocity.Angular.y = 0f;
94 | }
95 | }
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/MathHelper.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using Unity.Burst;
3 | using Unity.Mathematics;
4 |
5 | namespace UnityPhysics2DPlugin
6 | {
7 | [BurstCompile]
8 | internal static class MathHelper
9 | {
10 | public static quaternion ToQuaternion(float3 v)
11 | {
12 | ToQuaternionCore(v.y, v.x, v.z, out var result);
13 | return result;
14 | }
15 |
16 | public static float3 ToEulerAngles(quaternion quaternion)
17 | {
18 | ToEulerAnglesCore(ref quaternion, out var result);
19 | return result;
20 | }
21 |
22 | [BurstCompile]
23 | static void ToQuaternionCore(float yaw, float pitch, float roll, out quaternion result)
24 | {
25 | yaw *= Mathf.Deg2Rad;
26 | pitch *= Mathf.Deg2Rad;
27 | roll *= Mathf.Deg2Rad;
28 | float rollOver2 = roll * 0.5f;
29 | float sinRollOver2 = math.sin(rollOver2);
30 | float cosRollOver2 = math.cos(rollOver2);
31 | float pitchOver2 = pitch * 0.5f;
32 | float sinPitchOver2 = math.sin(pitchOver2);
33 | float cosPitchOver2 = math.cos(pitchOver2);
34 | float yawOver2 = yaw * 0.5f;
35 | float sinYawOver2 = math.sin(yawOver2);
36 | float cosYawOver2 = math.cos(yawOver2);
37 | float4 f4 = default;
38 | f4.w = cosYawOver2 * cosPitchOver2 * cosRollOver2 + sinYawOver2 * sinPitchOver2 * sinRollOver2;
39 | f4.x = cosYawOver2 * sinPitchOver2 * cosRollOver2 + sinYawOver2 * cosPitchOver2 * sinRollOver2;
40 | f4.y = sinYawOver2 * cosPitchOver2 * cosRollOver2 - cosYawOver2 * sinPitchOver2 * sinRollOver2;
41 | f4.z = cosYawOver2 * cosPitchOver2 * sinRollOver2 - sinYawOver2 * sinPitchOver2 * cosRollOver2;
42 |
43 | result = new quaternion(f4);
44 | }
45 |
46 | [BurstCompile]
47 | static void ToEulerAnglesCore(ref quaternion quaternion, out float3 result)
48 | {
49 | float4 q1 = quaternion.value;
50 | float sqw = q1.w * q1.w;
51 | float sqx = q1.x * q1.x;
52 | float sqy = q1.y * q1.y;
53 | float sqz = q1.z * q1.z;
54 | float unit = sqx + sqy + sqz + sqw;
55 | float test = q1.x * q1.w - q1.y * q1.z;
56 | float3 v;
57 |
58 | if (test > 0.4995f * unit)
59 | {
60 | v.y = 2f * math.atan2(q1.y, q1.x);
61 | v.x = math.PI / 2;
62 | v.z = 0;
63 | NormalizeAngles(v * Mathf.Rad2Deg, out result);
64 | return;
65 | }
66 | if (test < -0.4995f * unit)
67 | {
68 | v.y = -2f * math.atan2(q1.y, q1.x);
69 | v.x = -math.PI / 2;
70 | v.z = 0;
71 | NormalizeAngles(v * Mathf.Rad2Deg, out result);
72 | return;
73 | }
74 | float4 q = new float4(q1.w, q1.z, q1.x, q1.y);
75 | v.y = math.atan2(2f * q.x * q.w + 2f * q.y * q.z, 1 - 2f * (q.z * q.z + q.w * q.w));
76 | v.x = math.asin(2f * (q.x * q.z - q.w * q.y));
77 | v.z = math.atan2(2f * q.x * q.y + 2f * q.z * q.w, 1 - 2f * (q.y * q.y + q.z * q.z));
78 | NormalizeAngles(v * Mathf.Rad2Deg, out result);
79 | }
80 |
81 | static void NormalizeAngles(float3 angles, out float3 result)
82 | {
83 | angles.x = NormalizeAngle(angles.x);
84 | angles.y = NormalizeAngle(angles.y);
85 | angles.z = NormalizeAngle(angles.z);
86 | result = angles;
87 | }
88 |
89 | [BurstCompile]
90 | static float NormalizeAngle(float angle)
91 | {
92 | while (angle > 360) angle -= 360;
93 | while (angle < 0) angle += 360;
94 | return angle;
95 | }
96 | }
97 | }
--------------------------------------------------------------------------------
/ProjectSettings/SceneTemplateSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "templatePinStates": [],
3 | "dependencyTypeInfos": [
4 | {
5 | "userAdded": false,
6 | "type": "UnityEngine.AnimationClip",
7 | "defaultInstantiationMode": 0
8 | },
9 | {
10 | "userAdded": false,
11 | "type": "UnityEditor.Animations.AnimatorController",
12 | "defaultInstantiationMode": 0
13 | },
14 | {
15 | "userAdded": false,
16 | "type": "UnityEngine.AnimatorOverrideController",
17 | "defaultInstantiationMode": 0
18 | },
19 | {
20 | "userAdded": false,
21 | "type": "UnityEditor.Audio.AudioMixerController",
22 | "defaultInstantiationMode": 0
23 | },
24 | {
25 | "userAdded": false,
26 | "type": "UnityEngine.ComputeShader",
27 | "defaultInstantiationMode": 1
28 | },
29 | {
30 | "userAdded": false,
31 | "type": "UnityEngine.Cubemap",
32 | "defaultInstantiationMode": 0
33 | },
34 | {
35 | "userAdded": false,
36 | "type": "UnityEngine.GameObject",
37 | "defaultInstantiationMode": 0
38 | },
39 | {
40 | "userAdded": false,
41 | "type": "UnityEditor.LightingDataAsset",
42 | "defaultInstantiationMode": 0
43 | },
44 | {
45 | "userAdded": false,
46 | "type": "UnityEngine.LightingSettings",
47 | "defaultInstantiationMode": 0
48 | },
49 | {
50 | "userAdded": false,
51 | "type": "UnityEngine.Material",
52 | "defaultInstantiationMode": 0
53 | },
54 | {
55 | "userAdded": false,
56 | "type": "UnityEditor.MonoScript",
57 | "defaultInstantiationMode": 1
58 | },
59 | {
60 | "userAdded": false,
61 | "type": "UnityEngine.PhysicMaterial",
62 | "defaultInstantiationMode": 0
63 | },
64 | {
65 | "userAdded": false,
66 | "type": "UnityEngine.PhysicsMaterial2D",
67 | "defaultInstantiationMode": 0
68 | },
69 | {
70 | "userAdded": false,
71 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
72 | "defaultInstantiationMode": 0
73 | },
74 | {
75 | "userAdded": false,
76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
77 | "defaultInstantiationMode": 0
78 | },
79 | {
80 | "userAdded": false,
81 | "type": "UnityEngine.Rendering.VolumeProfile",
82 | "defaultInstantiationMode": 0
83 | },
84 | {
85 | "userAdded": false,
86 | "type": "UnityEditor.SceneAsset",
87 | "defaultInstantiationMode": 1
88 | },
89 | {
90 | "userAdded": false,
91 | "type": "UnityEngine.Shader",
92 | "defaultInstantiationMode": 1
93 | },
94 | {
95 | "userAdded": false,
96 | "type": "UnityEngine.ShaderVariantCollection",
97 | "defaultInstantiationMode": 1
98 | },
99 | {
100 | "userAdded": false,
101 | "type": "UnityEngine.Texture",
102 | "defaultInstantiationMode": 0
103 | },
104 | {
105 | "userAdded": false,
106 | "type": "UnityEngine.Texture2D",
107 | "defaultInstantiationMode": 0
108 | },
109 | {
110 | "userAdded": false,
111 | "type": "UnityEngine.Timeline.TimelineAsset",
112 | "defaultInstantiationMode": 0
113 | }
114 | ],
115 | "defaultDependencyTypeInfo": {
116 | "userAdded": false,
117 | "type": "",
118 | "defaultInstantiationMode": 1
119 | },
120 | "newSceneOverride": 0
121 | }
--------------------------------------------------------------------------------
/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: 5
8 | m_QualitySettings:
9 | - serializedVersion: 2
10 | name: Very Low
11 | pixelLightCount: 0
12 | shadows: 0
13 | shadowResolution: 0
14 | shadowProjection: 1
15 | shadowCascades: 1
16 | shadowDistance: 15
17 | shadowNearPlaneOffset: 3
18 | shadowCascade2Split: 0.33333334
19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
20 | shadowmaskMode: 0
21 | skinWeights: 1
22 | textureQuality: 1
23 | anisotropicTextures: 0
24 | antiAliasing: 0
25 | softParticles: 0
26 | softVegetation: 0
27 | realtimeReflectionProbes: 0
28 | billboardsFaceCameraPosition: 0
29 | vSyncCount: 0
30 | lodBias: 0.3
31 | maximumLODLevel: 0
32 | streamingMipmapsActive: 0
33 | streamingMipmapsAddAllCameras: 1
34 | streamingMipmapsMemoryBudget: 512
35 | streamingMipmapsRenderersPerFrame: 512
36 | streamingMipmapsMaxLevelReduction: 2
37 | streamingMipmapsMaxFileIORequests: 1024
38 | particleRaycastBudget: 4
39 | asyncUploadTimeSlice: 2
40 | asyncUploadBufferSize: 16
41 | asyncUploadPersistentBuffer: 1
42 | resolutionScalingFixedDPIFactor: 1
43 | customRenderPipeline: {fileID: 0}
44 | excludedTargetPlatforms: []
45 | - serializedVersion: 2
46 | name: Low
47 | pixelLightCount: 0
48 | shadows: 0
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: 0
60 | antiAliasing: 0
61 | softParticles: 0
62 | softVegetation: 0
63 | realtimeReflectionProbes: 0
64 | billboardsFaceCameraPosition: 0
65 | vSyncCount: 0
66 | lodBias: 0.4
67 | maximumLODLevel: 0
68 | streamingMipmapsActive: 0
69 | streamingMipmapsAddAllCameras: 1
70 | streamingMipmapsMemoryBudget: 512
71 | streamingMipmapsRenderersPerFrame: 512
72 | streamingMipmapsMaxLevelReduction: 2
73 | streamingMipmapsMaxFileIORequests: 1024
74 | particleRaycastBudget: 16
75 | asyncUploadTimeSlice: 2
76 | asyncUploadBufferSize: 16
77 | asyncUploadPersistentBuffer: 1
78 | resolutionScalingFixedDPIFactor: 1
79 | customRenderPipeline: {fileID: 0}
80 | excludedTargetPlatforms: []
81 | - serializedVersion: 2
82 | name: Medium
83 | pixelLightCount: 1
84 | shadows: 1
85 | shadowResolution: 0
86 | shadowProjection: 1
87 | shadowCascades: 1
88 | shadowDistance: 20
89 | shadowNearPlaneOffset: 3
90 | shadowCascade2Split: 0.33333334
91 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
92 | shadowmaskMode: 0
93 | skinWeights: 2
94 | textureQuality: 0
95 | anisotropicTextures: 1
96 | antiAliasing: 0
97 | softParticles: 0
98 | softVegetation: 0
99 | realtimeReflectionProbes: 0
100 | billboardsFaceCameraPosition: 0
101 | vSyncCount: 1
102 | lodBias: 0.7
103 | maximumLODLevel: 0
104 | streamingMipmapsActive: 0
105 | streamingMipmapsAddAllCameras: 1
106 | streamingMipmapsMemoryBudget: 512
107 | streamingMipmapsRenderersPerFrame: 512
108 | streamingMipmapsMaxLevelReduction: 2
109 | streamingMipmapsMaxFileIORequests: 1024
110 | particleRaycastBudget: 64
111 | asyncUploadTimeSlice: 2
112 | asyncUploadBufferSize: 16
113 | asyncUploadPersistentBuffer: 1
114 | resolutionScalingFixedDPIFactor: 1
115 | customRenderPipeline: {fileID: 0}
116 | excludedTargetPlatforms: []
117 | - serializedVersion: 2
118 | name: High
119 | pixelLightCount: 2
120 | shadows: 2
121 | shadowResolution: 1
122 | shadowProjection: 1
123 | shadowCascades: 2
124 | shadowDistance: 40
125 | shadowNearPlaneOffset: 3
126 | shadowCascade2Split: 0.33333334
127 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
128 | shadowmaskMode: 1
129 | skinWeights: 2
130 | textureQuality: 0
131 | anisotropicTextures: 1
132 | antiAliasing: 0
133 | softParticles: 0
134 | softVegetation: 1
135 | realtimeReflectionProbes: 1
136 | billboardsFaceCameraPosition: 1
137 | vSyncCount: 1
138 | lodBias: 1
139 | maximumLODLevel: 0
140 | streamingMipmapsActive: 0
141 | streamingMipmapsAddAllCameras: 1
142 | streamingMipmapsMemoryBudget: 512
143 | streamingMipmapsRenderersPerFrame: 512
144 | streamingMipmapsMaxLevelReduction: 2
145 | streamingMipmapsMaxFileIORequests: 1024
146 | particleRaycastBudget: 256
147 | asyncUploadTimeSlice: 2
148 | asyncUploadBufferSize: 16
149 | asyncUploadPersistentBuffer: 1
150 | resolutionScalingFixedDPIFactor: 1
151 | customRenderPipeline: {fileID: 0}
152 | excludedTargetPlatforms: []
153 | - serializedVersion: 2
154 | name: Very High
155 | pixelLightCount: 3
156 | shadows: 2
157 | shadowResolution: 2
158 | shadowProjection: 1
159 | shadowCascades: 2
160 | shadowDistance: 70
161 | shadowNearPlaneOffset: 3
162 | shadowCascade2Split: 0.33333334
163 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
164 | shadowmaskMode: 1
165 | skinWeights: 4
166 | textureQuality: 0
167 | anisotropicTextures: 2
168 | antiAliasing: 2
169 | softParticles: 1
170 | softVegetation: 1
171 | realtimeReflectionProbes: 1
172 | billboardsFaceCameraPosition: 1
173 | vSyncCount: 1
174 | lodBias: 1.5
175 | maximumLODLevel: 0
176 | streamingMipmapsActive: 0
177 | streamingMipmapsAddAllCameras: 1
178 | streamingMipmapsMemoryBudget: 512
179 | streamingMipmapsRenderersPerFrame: 512
180 | streamingMipmapsMaxLevelReduction: 2
181 | streamingMipmapsMaxFileIORequests: 1024
182 | particleRaycastBudget: 1024
183 | asyncUploadTimeSlice: 2
184 | asyncUploadBufferSize: 16
185 | asyncUploadPersistentBuffer: 1
186 | resolutionScalingFixedDPIFactor: 1
187 | customRenderPipeline: {fileID: 0}
188 | excludedTargetPlatforms: []
189 | - serializedVersion: 2
190 | name: Ultra
191 | pixelLightCount: 4
192 | shadows: 2
193 | shadowResolution: 2
194 | shadowProjection: 1
195 | shadowCascades: 4
196 | shadowDistance: 150
197 | shadowNearPlaneOffset: 3
198 | shadowCascade2Split: 0.33333334
199 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
200 | shadowmaskMode: 1
201 | skinWeights: 255
202 | textureQuality: 0
203 | anisotropicTextures: 2
204 | antiAliasing: 0
205 | softParticles: 1
206 | softVegetation: 1
207 | realtimeReflectionProbes: 1
208 | billboardsFaceCameraPosition: 1
209 | vSyncCount: 1
210 | lodBias: 2
211 | maximumLODLevel: 0
212 | streamingMipmapsActive: 0
213 | streamingMipmapsAddAllCameras: 1
214 | streamingMipmapsMemoryBudget: 512
215 | streamingMipmapsRenderersPerFrame: 512
216 | streamingMipmapsMaxLevelReduction: 2
217 | streamingMipmapsMaxFileIORequests: 1024
218 | particleRaycastBudget: 4096
219 | asyncUploadTimeSlice: 2
220 | asyncUploadBufferSize: 16
221 | asyncUploadPersistentBuffer: 1
222 | resolutionScalingFixedDPIFactor: 1
223 | customRenderPipeline: {fileID: 0}
224 | excludedTargetPlatforms: []
225 | m_PerPlatformDefaultQuality:
226 | Android: 2
227 | Lumin: 5
228 | GameCoreScarlett: 5
229 | GameCoreXboxOne: 5
230 | Nintendo Switch: 5
231 | PS4: 5
232 | PS5: 5
233 | Stadia: 5
234 | Standalone: 5
235 | WebGL: 3
236 | Windows Store Apps: 5
237 | XboxOne: 5
238 | iPhone: 2
239 | tvOS: 2
240 |
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/ColliderBakingHelper.cs:
--------------------------------------------------------------------------------
1 | using Unity.Entities;
2 | using Unity.Mathematics;
3 | using Unity.Physics;
4 | using UnityEngine;
5 | using Material = Unity.Physics.Material;
6 | using Collider = Unity.Physics.Collider;
7 | using SphereCollider = Unity.Physics.SphereCollider;
8 | using BoxCollider = Unity.Physics.BoxCollider;
9 | using CapsuleCollider = Unity.Physics.CapsuleCollider;
10 |
11 | namespace UnityPhysics2DPlugin
12 | {
13 | internal enum ColliderScalingMode
14 | {
15 | None,
16 | Local,
17 | Global
18 | }
19 |
20 | internal static class ColliderBakingHelper
21 | {
22 | public static RigidTransform GetCompoundFromChild(Transform shape, Transform body)
23 | {
24 | var worldFromBody = Math.DecomposeRigidBodyTransform(body.transform.localToWorldMatrix);
25 | var worldFromShape = Math.DecomposeRigidBodyTransform(shape.transform.localToWorldMatrix);
26 | return math.mul(math.inverse(worldFromBody), worldFromShape);
27 | }
28 |
29 | public static Material ProduceMaterial(Collider2D collider)
30 | {
31 | var material = new Material();
32 | if (collider.isTrigger)
33 | {
34 | material.CollisionResponse = CollisionResponsePolicy.RaiseTriggerEvents;
35 | }
36 |
37 | material.Friction = collider.friction;
38 | material.Restitution = collider.bounciness;
39 | material.FrictionCombinePolicy = Material.CombinePolicy.ArithmeticMean;
40 | material.RestitutionCombinePolicy = Material.CombinePolicy.ArithmeticMean;
41 |
42 | return material;
43 | }
44 |
45 | public static CollisionFilter ProduceCollisionFilter(Collider2D collider)
46 | {
47 | var layer = collider.gameObject.layer;
48 | var filter = new CollisionFilter { BelongsTo = (uint)(1 << collider.gameObject.layer) };
49 | for (var i = 0; i < 32; ++i)
50 | filter.CollidesWith |= (uint)(Physics2D.GetIgnoreLayerCollision(layer, i) ? 0 : 1 << i);
51 | return filter;
52 | }
53 |
54 | public static bool TryCreateCollider(Collider2D src, ColliderScalingMode scalingMode, float positionZ, out BlobAssetReference result)
55 | {
56 | switch (src)
57 | {
58 | case CircleCollider2D circleCollider:
59 | result = CreateCircleCollider(circleCollider, scalingMode, positionZ);
60 | return true;
61 | case BoxCollider2D boxCollider:
62 | result = CreateBoxCollider(boxCollider, scalingMode, positionZ);
63 | return true;
64 | case CapsuleCollider2D capsuleCollider:
65 | result = CreateCapsuleCollider(capsuleCollider, scalingMode, positionZ);
66 | return true;
67 | default:
68 | Debug.LogWarning($"Collider type:{src.GetType().Name} is not supported.");
69 | result = default;
70 | return false;
71 | }
72 | }
73 |
74 | public static BlobAssetReference CreateCircleCollider(CircleCollider2D src, ColliderScalingMode scalingMode, float positionZ)
75 | {
76 | float scale = 1f;
77 | switch (scalingMode)
78 | {
79 | case ColliderScalingMode.None:
80 | break;
81 | case ColliderScalingMode.Local:
82 | scale = math.max(src.transform.localScale.x, src.transform.localScale.y);
83 | break;
84 | case ColliderScalingMode.Global:
85 | scale = math.max(src.transform.lossyScale.x, src.transform.lossyScale.y);
86 | break;
87 | }
88 |
89 | var geometry = new SphereGeometry()
90 | {
91 | Center = new float3(src.offset.x, src.offset.y, positionZ),
92 | Radius = src.radius * scale
93 | };
94 | return SphereCollider.Create(geometry, ProduceCollisionFilter(src), ProduceMaterial(src));
95 | }
96 |
97 | public static BlobAssetReference CreateBoxCollider(BoxCollider2D src, ColliderScalingMode scalingMode, float positionZ)
98 | {
99 | float2 scale = new(1f, 1f);
100 | switch (scalingMode)
101 | {
102 | case ColliderScalingMode.None:
103 | break;
104 | case ColliderScalingMode.Local:
105 | scale = new(src.transform.localScale.x, src.transform.localScale.y);
106 | break;
107 | case ColliderScalingMode.Global:
108 | scale = new(src.transform.lossyScale.x, src.transform.lossyScale.y);
109 | break;
110 | }
111 |
112 | var geometry = new BoxGeometry()
113 | {
114 | Size = new float3(
115 | src.size.x * scale.x,
116 | src.size.y * scale.y,
117 | 1f
118 | ),
119 | Center = new float3(src.offset.x, src.offset.y, positionZ),
120 | Orientation = quaternion.identity,
121 | BevelRadius = 0f
122 | };
123 | return BoxCollider.Create(geometry, ProduceCollisionFilter(src), ProduceMaterial(src));
124 | }
125 |
126 | public static BlobAssetReference CreateCapsuleCollider(CapsuleCollider2D src, ColliderScalingMode scalingMode, float positionZ)
127 | {
128 | float2 scale = new(1f, 1f);
129 | switch (scalingMode)
130 | {
131 | case ColliderScalingMode.None:
132 | break;
133 | case ColliderScalingMode.Local:
134 | scale = new(src.transform.localScale.x, src.transform.localScale.y);
135 | break;
136 | case ColliderScalingMode.Global:
137 | scale = new(src.transform.lossyScale.x, src.transform.lossyScale.y);
138 | break;
139 | }
140 |
141 | CapsuleGeometry geometry;
142 | switch (src.direction)
143 | {
144 | default:
145 | case CapsuleDirection2D.Vertical:
146 | geometry = new CapsuleGeometry()
147 | {
148 | Radius = src.size.x * 0.5f * scale.x,
149 | Vertex0 = new float3(
150 | src.offset.x,
151 | (-src.size.y * 0.5f + src.size.x * 0.5f) * scale.y + src.offset.y,
152 | positionZ
153 | ),
154 | Vertex1 = new float3(
155 | src.offset.x,
156 | (src.size.y * 0.5f - src.size.x * 0.5f) * scale.y + src.offset.y,
157 | positionZ
158 | )
159 | };
160 | break;
161 | case CapsuleDirection2D.Horizontal:
162 | geometry = new CapsuleGeometry()
163 | {
164 | Radius = src.size.y * 0.5f * scale.y,
165 | Vertex0 = new float3(
166 | (-src.size.x * 0.5f + src.size.y * 0.5f) * scale.x + src.offset.x,
167 | src.offset.y,
168 | positionZ
169 | ),
170 | Vertex1 = new float3(
171 | (src.size.x * 0.5f - src.size.y * 0.5f + src.offset.x) * scale.x,
172 | src.offset.y,
173 | positionZ
174 | ),
175 | };
176 | break;
177 | }
178 | return CapsuleCollider.Create(geometry, ProduceCollisionFilter(src), ProduceMaterial(src));
179 | }
180 | }
181 | }
--------------------------------------------------------------------------------
/Assets/UnityPhysics2DPlugin/Runtime/Baking/Rigidbody2DBaker.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Unity.Entities;
3 | using Unity.Mathematics;
4 | using Unity.Physics;
5 | using Unity.Physics.Authoring;
6 | using Unity.Physics.GraphicsIntegration;
7 | using Unity.Transforms;
8 | using UnityEngine;
9 | using Unity.Collections;
10 |
11 | namespace UnityPhysics2DPlugin.Baking
12 | {
13 | public class Rigidbody2DBaker : Baker
14 | {
15 | static readonly List colliderComponents = new();
16 |
17 | public override void Bake(Rigidbody2D authoring)
18 | {
19 | var entity = GetEntity(TransformUsageFlags.Dynamic);
20 |
21 | AddComponent(entity);
22 | AddComponent(entity);
23 |
24 | var bakingData = new RigidbodyBakingData
25 | {
26 | isKinematic = authoring.isKinematic,
27 | mass = authoring.mass,
28 | automaticCenterOfMass = false,
29 | centerOfMass = new float3(authoring.centerOfMass.x, authoring.centerOfMass.y, 0f),
30 | automaticInertiaTensor = true
31 | };
32 | AddComponent(entity, bakingData);
33 |
34 | AddSharedComponent(entity, new PhysicsWorldIndex(UnityPhysics2D.PhysicsWorldIndex));
35 |
36 | var bodyTransform = GetComponent();
37 |
38 | var motionType = authoring.isKinematic ? BodyMotionType.Kinematic : BodyMotionType.Dynamic;
39 | var hasInterpolation = authoring.interpolation != RigidbodyInterpolation2D.None;
40 | PostProcessTransform(bodyTransform, motionType);
41 |
42 | AddColliders(entity, authoring);
43 | if (authoring.sharedMaterial != null) DependsOn(authoring.sharedMaterial);
44 |
45 | if (IsStatic() || authoring.bodyType == RigidbodyType2D.Static) return;
46 |
47 | if (hasInterpolation)
48 | {
49 | AddComponent(entity, new PhysicsGraphicalSmoothing());
50 |
51 | if (authoring.interpolation == RigidbodyInterpolation2D.Interpolate)
52 | {
53 | AddComponent(entity, new PhysicsGraphicalInterpolationBuffer
54 | {
55 | PreviousTransform = Math.DecomposeRigidBodyTransform(bodyTransform.localToWorldMatrix)
56 | });
57 | }
58 | }
59 |
60 | AddComponent(entity, new PhysicsVelocity());
61 |
62 | if (!authoring.isKinematic)
63 | {
64 | AddComponent(entity, new PhysicsDamping
65 | {
66 | Linear = authoring.drag,
67 | Angular = authoring.angularDrag
68 | });
69 | AddComponent(entity, new PhysicsGravityFactor { Value = authoring.gravityScale });
70 | }
71 | else
72 | {
73 | AddComponent(entity, new PhysicsGravityFactor { Value = authoring.gravityScale });
74 | }
75 | }
76 |
77 | void AddColliders(Entity entity, Rigidbody2D authoring)
78 | {
79 | GetComponentsInChildren(colliderComponents);
80 | if (colliderComponents.Count == 0) return;
81 |
82 | if (colliderComponents.Count == 1 && colliderComponents[0].gameObject == authoring.gameObject)
83 | {
84 | if (!colliderComponents[0].enabled) return;
85 |
86 | if (ColliderBakingHelper.TryCreateCollider(colliderComponents[0], ColliderScalingMode.Local, 0f, out var physicsCollider))
87 | {
88 | AddComponent(entity, new PhysicsCollider() { Value = physicsCollider });
89 | AddComponent(entity, authoring.isKinematic ?
90 | PhysicsMass.CreateKinematic(physicsCollider.Value.MassProperties) :
91 | PhysicsMass.CreateDynamic(physicsCollider.Value.MassProperties, authoring.mass)
92 | );
93 | }
94 | return;
95 | }
96 |
97 | var childColliders = new NativeList(colliderComponents.Count, Allocator.Temp);
98 | foreach (var childCollider in colliderComponents)
99 | {
100 | if (!childCollider.enabled) continue;
101 |
102 | if (ColliderBakingHelper.TryCreateCollider(childCollider, ColliderScalingMode.Local, authoring.transform.position.z - childCollider.transform.position.z, out var physicsCollider))
103 | {
104 | var childEntity = GetEntity(childCollider.gameObject, TransformUsageFlags.Dynamic);
105 |
106 | childColliders.Add(new CompoundCollider.ColliderBlobInstance()
107 | {
108 | Collider = physicsCollider,
109 | CompoundFromChild = ColliderBakingHelper.GetCompoundFromChild(childCollider.transform, authoring.transform),
110 | Entity = childEntity
111 | });
112 | }
113 | }
114 |
115 | if (childColliders.Length > 0)
116 | {
117 | var compoundCollider = CompoundCollider.Create(childColliders.ToArray(Allocator.Temp));
118 | AddComponent(entity, new PhysicsCollider() { Value = compoundCollider });
119 | AddComponent(entity, authoring.isKinematic ?
120 | PhysicsMass.CreateKinematic(compoundCollider.Value.MassProperties) :
121 | PhysicsMass.CreateDynamic(compoundCollider.Value.MassProperties, authoring.mass)
122 | );
123 | }
124 | else
125 | {
126 | var massProperties = MassProperties.UnitSphere;
127 | AddComponent(entity, authoring.isKinematic ?
128 | PhysicsMass.CreateKinematic(massProperties) :
129 | PhysicsMass.CreateDynamic(massProperties, authoring.mass)
130 | );
131 | }
132 | }
133 |
134 | bool NeedsPostProcessTransform(Transform worldTransform, bool gameObjectStatic, BodyMotionType motionType, out PhysicsPostProcessData data)
135 | {
136 | Transform transformParent = worldTransform.parent;
137 | bool haveParentEntity = transformParent != null;
138 | bool haveBakedTransform = gameObjectStatic;
139 | bool hasNonIdentityScale = HasNonIdentityScale(worldTransform);
140 | bool unparent = motionType != BodyMotionType.Static || hasNonIdentityScale || !haveParentEntity || haveBakedTransform;
141 |
142 | data = default;
143 | if (unparent)
144 | {
145 | data = new PhysicsPostProcessData()
146 | {
147 | LocalToWorldMatrix = worldTransform.localToWorldMatrix,
148 | LossyScale = worldTransform.lossyScale
149 | };
150 | }
151 | return unparent;
152 | }
153 |
154 | bool HasNonIdentityScale(Transform bodyTransform)
155 | {
156 | return math.lengthsq((float3)bodyTransform.lossyScale - new float3(1f)) > 0f;
157 | }
158 |
159 | void PostProcessTransform(Transform bodyTransform, BodyMotionType motionType = BodyMotionType.Static)
160 | {
161 | if (NeedsPostProcessTransform(bodyTransform, IsStatic(), motionType, out PhysicsPostProcessData data))
162 | {
163 | var entity = GetEntity(TransformUsageFlags.ManualOverride);
164 | AddComponent(entity, new LocalToWorld { Value = bodyTransform.localToWorldMatrix });
165 |
166 | if (HasNonIdentityScale(bodyTransform))
167 | {
168 | var compositeScale = float4x4.Scale(bodyTransform.localScale);
169 | AddComponent(entity, new PostTransformMatrix { Value = compositeScale });
170 | }
171 | var uniformScale = 1.0f;
172 | LocalTransform transform = LocalTransform.FromPositionRotationScale(bodyTransform.localPosition, bodyTransform.localRotation, uniformScale);
173 |
174 | AddComponent(entity, transform);
175 | AddComponent(entity, data);
176 | }
177 | }
178 | }
179 | }
--------------------------------------------------------------------------------
/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.2d.animation": {
4 | "version": "9.0.3",
5 | "depth": 1,
6 | "source": "registry",
7 | "dependencies": {
8 | "com.unity.2d.common": "8.0.1",
9 | "com.unity.2d.sprite": "1.0.0",
10 | "com.unity.collections": "1.1.0",
11 | "com.unity.modules.animation": "1.0.0",
12 | "com.unity.modules.uielements": "1.0.0"
13 | },
14 | "url": "https://packages.unity.com"
15 | },
16 | "com.unity.2d.aseprite": {
17 | "version": "1.0.0",
18 | "depth": 1,
19 | "source": "registry",
20 | "dependencies": {
21 | "com.unity.2d.sprite": "1.0.0",
22 | "com.unity.2d.common": "6.0.6",
23 | "com.unity.mathematics": "1.2.6",
24 | "com.unity.modules.animation": "1.0.0"
25 | },
26 | "url": "https://packages.unity.com"
27 | },
28 | "com.unity.2d.common": {
29 | "version": "8.0.1",
30 | "depth": 2,
31 | "source": "registry",
32 | "dependencies": {
33 | "com.unity.2d.sprite": "1.0.0",
34 | "com.unity.mathematics": "1.1.0",
35 | "com.unity.modules.uielements": "1.0.0",
36 | "com.unity.modules.animation": "1.0.0",
37 | "com.unity.burst": "1.7.3"
38 | },
39 | "url": "https://packages.unity.com"
40 | },
41 | "com.unity.2d.pixel-perfect": {
42 | "version": "5.0.3",
43 | "depth": 1,
44 | "source": "registry",
45 | "dependencies": {},
46 | "url": "https://packages.unity.com"
47 | },
48 | "com.unity.2d.psdimporter": {
49 | "version": "8.0.2",
50 | "depth": 1,
51 | "source": "registry",
52 | "dependencies": {
53 | "com.unity.2d.animation": "9.0.1",
54 | "com.unity.2d.common": "8.0.1",
55 | "com.unity.2d.sprite": "1.0.0"
56 | },
57 | "url": "https://packages.unity.com"
58 | },
59 | "com.unity.2d.sprite": {
60 | "version": "1.0.0",
61 | "depth": 1,
62 | "source": "builtin",
63 | "dependencies": {}
64 | },
65 | "com.unity.2d.spriteshape": {
66 | "version": "9.0.2",
67 | "depth": 1,
68 | "source": "registry",
69 | "dependencies": {
70 | "com.unity.mathematics": "1.1.0",
71 | "com.unity.2d.common": "8.0.1",
72 | "com.unity.modules.physics2d": "1.0.0"
73 | },
74 | "url": "https://packages.unity.com"
75 | },
76 | "com.unity.2d.tilemap": {
77 | "version": "1.0.0",
78 | "depth": 1,
79 | "source": "builtin",
80 | "dependencies": {
81 | "com.unity.modules.tilemap": "1.0.0",
82 | "com.unity.modules.uielements": "1.0.0"
83 | }
84 | },
85 | "com.unity.2d.tilemap.extras": {
86 | "version": "3.1.1",
87 | "depth": 1,
88 | "source": "registry",
89 | "dependencies": {
90 | "com.unity.modules.tilemap": "1.0.0",
91 | "com.unity.2d.tilemap": "1.0.0",
92 | "com.unity.ugui": "1.0.0",
93 | "com.unity.modules.jsonserialize": "1.0.0"
94 | },
95 | "url": "https://packages.unity.com"
96 | },
97 | "com.unity.burst": {
98 | "version": "1.8.8",
99 | "depth": 1,
100 | "source": "registry",
101 | "dependencies": {
102 | "com.unity.mathematics": "1.2.1"
103 | },
104 | "url": "https://packages.unity.com"
105 | },
106 | "com.unity.collab-proxy": {
107 | "version": "2.0.5",
108 | "depth": 0,
109 | "source": "registry",
110 | "dependencies": {},
111 | "url": "https://packages.unity.com"
112 | },
113 | "com.unity.collections": {
114 | "version": "2.1.4",
115 | "depth": 1,
116 | "source": "registry",
117 | "dependencies": {
118 | "com.unity.burst": "1.8.4",
119 | "com.unity.modules.unityanalytics": "1.0.0",
120 | "com.unity.nuget.mono-cecil": "1.11.4"
121 | },
122 | "url": "https://packages.unity.com"
123 | },
124 | "com.unity.entities": {
125 | "version": "1.0.16",
126 | "depth": 1,
127 | "source": "registry",
128 | "dependencies": {
129 | "com.unity.burst": "1.8.8",
130 | "com.unity.serialization": "3.1.1",
131 | "com.unity.collections": "2.1.4",
132 | "com.unity.mathematics": "1.2.6",
133 | "com.unity.modules.assetbundle": "1.0.0",
134 | "com.unity.modules.audio": "1.0.0",
135 | "com.unity.modules.unitywebrequest": "1.0.0",
136 | "com.unity.test-framework.performance": "3.0.2",
137 | "com.unity.nuget.mono-cecil": "1.11.4",
138 | "com.unity.scriptablebuildpipeline": "1.20.2",
139 | "com.unity.profiling.core": "1.0.2"
140 | },
141 | "url": "https://packages.unity.com"
142 | },
143 | "com.unity.entities.graphics": {
144 | "version": "1.0.16",
145 | "depth": 0,
146 | "source": "registry",
147 | "dependencies": {
148 | "com.unity.entities": "1.0.16",
149 | "com.unity.modules.particlesystem": "1.0.0",
150 | "com.unity.render-pipelines.core": "14.0.7"
151 | },
152 | "url": "https://packages.unity.com"
153 | },
154 | "com.unity.ext.nunit": {
155 | "version": "1.0.6",
156 | "depth": 1,
157 | "source": "registry",
158 | "dependencies": {},
159 | "url": "https://packages.unity.com"
160 | },
161 | "com.unity.feature.2d": {
162 | "version": "2.0.0",
163 | "depth": 0,
164 | "source": "builtin",
165 | "dependencies": {
166 | "com.unity.2d.animation": "9.0.3",
167 | "com.unity.2d.pixel-perfect": "5.0.3",
168 | "com.unity.2d.psdimporter": "8.0.2",
169 | "com.unity.2d.sprite": "1.0.0",
170 | "com.unity.2d.spriteshape": "9.0.2",
171 | "com.unity.2d.tilemap": "1.0.0",
172 | "com.unity.2d.tilemap.extras": "3.1.1",
173 | "com.unity.2d.aseprite": "1.0.0"
174 | }
175 | },
176 | "com.unity.ide.rider": {
177 | "version": "3.0.24",
178 | "depth": 0,
179 | "source": "registry",
180 | "dependencies": {
181 | "com.unity.ext.nunit": "1.0.6"
182 | },
183 | "url": "https://packages.unity.com"
184 | },
185 | "com.unity.ide.visualstudio": {
186 | "version": "2.0.22",
187 | "depth": 0,
188 | "source": "registry",
189 | "dependencies": {
190 | "com.unity.test-framework": "1.1.9"
191 | },
192 | "url": "https://packages.unity.com"
193 | },
194 | "com.unity.mathematics": {
195 | "version": "1.2.6",
196 | "depth": 1,
197 | "source": "registry",
198 | "dependencies": {},
199 | "url": "https://packages.unity.com"
200 | },
201 | "com.unity.nuget.mono-cecil": {
202 | "version": "1.11.4",
203 | "depth": 2,
204 | "source": "registry",
205 | "dependencies": {},
206 | "url": "https://packages.unity.com"
207 | },
208 | "com.unity.physics": {
209 | "version": "1.0.16",
210 | "depth": 0,
211 | "source": "registry",
212 | "dependencies": {
213 | "com.unity.burst": "1.8.8",
214 | "com.unity.collections": "2.1.4",
215 | "com.unity.entities": "1.0.16",
216 | "com.unity.mathematics": "1.2.6",
217 | "com.unity.modules.imgui": "1.0.0",
218 | "com.unity.modules.jsonserialize": "1.0.0"
219 | },
220 | "url": "https://packages.unity.com"
221 | },
222 | "com.unity.profiling.core": {
223 | "version": "1.0.2",
224 | "depth": 2,
225 | "source": "registry",
226 | "dependencies": {},
227 | "url": "https://packages.unity.com"
228 | },
229 | "com.unity.render-pipelines.core": {
230 | "version": "14.0.8",
231 | "depth": 1,
232 | "source": "builtin",
233 | "dependencies": {
234 | "com.unity.ugui": "1.0.0",
235 | "com.unity.modules.physics": "1.0.0",
236 | "com.unity.modules.terrain": "1.0.0",
237 | "com.unity.modules.jsonserialize": "1.0.0"
238 | }
239 | },
240 | "com.unity.render-pipelines.universal": {
241 | "version": "14.0.8",
242 | "depth": 0,
243 | "source": "builtin",
244 | "dependencies": {
245 | "com.unity.mathematics": "1.2.1",
246 | "com.unity.burst": "1.8.4",
247 | "com.unity.render-pipelines.core": "14.0.8",
248 | "com.unity.shadergraph": "14.0.8"
249 | }
250 | },
251 | "com.unity.scriptablebuildpipeline": {
252 | "version": "1.21.5",
253 | "depth": 2,
254 | "source": "registry",
255 | "dependencies": {},
256 | "url": "https://packages.unity.com"
257 | },
258 | "com.unity.searcher": {
259 | "version": "4.9.2",
260 | "depth": 2,
261 | "source": "registry",
262 | "dependencies": {},
263 | "url": "https://packages.unity.com"
264 | },
265 | "com.unity.serialization": {
266 | "version": "3.1.1",
267 | "depth": 2,
268 | "source": "registry",
269 | "dependencies": {
270 | "com.unity.collections": "2.1.4",
271 | "com.unity.burst": "1.7.2"
272 | },
273 | "url": "https://packages.unity.com"
274 | },
275 | "com.unity.shadergraph": {
276 | "version": "14.0.8",
277 | "depth": 1,
278 | "source": "builtin",
279 | "dependencies": {
280 | "com.unity.render-pipelines.core": "14.0.8",
281 | "com.unity.searcher": "4.9.2"
282 | }
283 | },
284 | "com.unity.sysroot": {
285 | "version": "2.0.7",
286 | "depth": 1,
287 | "source": "registry",
288 | "dependencies": {},
289 | "url": "https://packages.unity.com"
290 | },
291 | "com.unity.sysroot.linux-x86_64": {
292 | "version": "2.0.6",
293 | "depth": 1,
294 | "source": "registry",
295 | "dependencies": {
296 | "com.unity.sysroot": "2.0.7"
297 | },
298 | "url": "https://packages.unity.com"
299 | },
300 | "com.unity.test-framework": {
301 | "version": "1.1.33",
302 | "depth": 0,
303 | "source": "registry",
304 | "dependencies": {
305 | "com.unity.ext.nunit": "1.0.6",
306 | "com.unity.modules.imgui": "1.0.0",
307 | "com.unity.modules.jsonserialize": "1.0.0"
308 | },
309 | "url": "https://packages.unity.com"
310 | },
311 | "com.unity.test-framework.performance": {
312 | "version": "3.0.2",
313 | "depth": 2,
314 | "source": "registry",
315 | "dependencies": {
316 | "com.unity.test-framework": "1.1.31",
317 | "com.unity.modules.jsonserialize": "1.0.0"
318 | },
319 | "url": "https://packages.unity.com"
320 | },
321 | "com.unity.textmeshpro": {
322 | "version": "3.0.6",
323 | "depth": 0,
324 | "source": "registry",
325 | "dependencies": {
326 | "com.unity.ugui": "1.0.0"
327 | },
328 | "url": "https://packages.unity.com"
329 | },
330 | "com.unity.timeline": {
331 | "version": "1.7.5",
332 | "depth": 0,
333 | "source": "registry",
334 | "dependencies": {
335 | "com.unity.modules.director": "1.0.0",
336 | "com.unity.modules.animation": "1.0.0",
337 | "com.unity.modules.audio": "1.0.0",
338 | "com.unity.modules.particlesystem": "1.0.0"
339 | },
340 | "url": "https://packages.unity.com"
341 | },
342 | "com.unity.toolchain.macos-arm64-linux-x86_64": {
343 | "version": "2.0.0",
344 | "depth": 0,
345 | "source": "registry",
346 | "dependencies": {
347 | "com.unity.sysroot": "2.0.7",
348 | "com.unity.sysroot.linux-x86_64": "2.0.6"
349 | },
350 | "url": "https://packages.unity.com"
351 | },
352 | "com.unity.ugui": {
353 | "version": "1.0.0",
354 | "depth": 0,
355 | "source": "builtin",
356 | "dependencies": {
357 | "com.unity.modules.ui": "1.0.0",
358 | "com.unity.modules.imgui": "1.0.0"
359 | }
360 | },
361 | "com.unity.visualscripting": {
362 | "version": "1.8.0",
363 | "depth": 0,
364 | "source": "registry",
365 | "dependencies": {
366 | "com.unity.ugui": "1.0.0",
367 | "com.unity.modules.jsonserialize": "1.0.0"
368 | },
369 | "url": "https://packages.unity.com"
370 | },
371 | "com.unity.modules.ai": {
372 | "version": "1.0.0",
373 | "depth": 0,
374 | "source": "builtin",
375 | "dependencies": {}
376 | },
377 | "com.unity.modules.androidjni": {
378 | "version": "1.0.0",
379 | "depth": 0,
380 | "source": "builtin",
381 | "dependencies": {}
382 | },
383 | "com.unity.modules.animation": {
384 | "version": "1.0.0",
385 | "depth": 0,
386 | "source": "builtin",
387 | "dependencies": {}
388 | },
389 | "com.unity.modules.assetbundle": {
390 | "version": "1.0.0",
391 | "depth": 0,
392 | "source": "builtin",
393 | "dependencies": {}
394 | },
395 | "com.unity.modules.audio": {
396 | "version": "1.0.0",
397 | "depth": 0,
398 | "source": "builtin",
399 | "dependencies": {}
400 | },
401 | "com.unity.modules.cloth": {
402 | "version": "1.0.0",
403 | "depth": 0,
404 | "source": "builtin",
405 | "dependencies": {
406 | "com.unity.modules.physics": "1.0.0"
407 | }
408 | },
409 | "com.unity.modules.director": {
410 | "version": "1.0.0",
411 | "depth": 0,
412 | "source": "builtin",
413 | "dependencies": {
414 | "com.unity.modules.audio": "1.0.0",
415 | "com.unity.modules.animation": "1.0.0"
416 | }
417 | },
418 | "com.unity.modules.imageconversion": {
419 | "version": "1.0.0",
420 | "depth": 0,
421 | "source": "builtin",
422 | "dependencies": {}
423 | },
424 | "com.unity.modules.imgui": {
425 | "version": "1.0.0",
426 | "depth": 0,
427 | "source": "builtin",
428 | "dependencies": {}
429 | },
430 | "com.unity.modules.jsonserialize": {
431 | "version": "1.0.0",
432 | "depth": 0,
433 | "source": "builtin",
434 | "dependencies": {}
435 | },
436 | "com.unity.modules.particlesystem": {
437 | "version": "1.0.0",
438 | "depth": 0,
439 | "source": "builtin",
440 | "dependencies": {}
441 | },
442 | "com.unity.modules.physics": {
443 | "version": "1.0.0",
444 | "depth": 0,
445 | "source": "builtin",
446 | "dependencies": {}
447 | },
448 | "com.unity.modules.physics2d": {
449 | "version": "1.0.0",
450 | "depth": 0,
451 | "source": "builtin",
452 | "dependencies": {}
453 | },
454 | "com.unity.modules.screencapture": {
455 | "version": "1.0.0",
456 | "depth": 0,
457 | "source": "builtin",
458 | "dependencies": {
459 | "com.unity.modules.imageconversion": "1.0.0"
460 | }
461 | },
462 | "com.unity.modules.subsystems": {
463 | "version": "1.0.0",
464 | "depth": 1,
465 | "source": "builtin",
466 | "dependencies": {
467 | "com.unity.modules.jsonserialize": "1.0.0"
468 | }
469 | },
470 | "com.unity.modules.terrain": {
471 | "version": "1.0.0",
472 | "depth": 0,
473 | "source": "builtin",
474 | "dependencies": {}
475 | },
476 | "com.unity.modules.terrainphysics": {
477 | "version": "1.0.0",
478 | "depth": 0,
479 | "source": "builtin",
480 | "dependencies": {
481 | "com.unity.modules.physics": "1.0.0",
482 | "com.unity.modules.terrain": "1.0.0"
483 | }
484 | },
485 | "com.unity.modules.tilemap": {
486 | "version": "1.0.0",
487 | "depth": 0,
488 | "source": "builtin",
489 | "dependencies": {
490 | "com.unity.modules.physics2d": "1.0.0"
491 | }
492 | },
493 | "com.unity.modules.ui": {
494 | "version": "1.0.0",
495 | "depth": 0,
496 | "source": "builtin",
497 | "dependencies": {}
498 | },
499 | "com.unity.modules.uielements": {
500 | "version": "1.0.0",
501 | "depth": 0,
502 | "source": "builtin",
503 | "dependencies": {
504 | "com.unity.modules.ui": "1.0.0",
505 | "com.unity.modules.imgui": "1.0.0",
506 | "com.unity.modules.jsonserialize": "1.0.0"
507 | }
508 | },
509 | "com.unity.modules.umbra": {
510 | "version": "1.0.0",
511 | "depth": 0,
512 | "source": "builtin",
513 | "dependencies": {}
514 | },
515 | "com.unity.modules.unityanalytics": {
516 | "version": "1.0.0",
517 | "depth": 0,
518 | "source": "builtin",
519 | "dependencies": {
520 | "com.unity.modules.unitywebrequest": "1.0.0",
521 | "com.unity.modules.jsonserialize": "1.0.0"
522 | }
523 | },
524 | "com.unity.modules.unitywebrequest": {
525 | "version": "1.0.0",
526 | "depth": 0,
527 | "source": "builtin",
528 | "dependencies": {}
529 | },
530 | "com.unity.modules.unitywebrequestassetbundle": {
531 | "version": "1.0.0",
532 | "depth": 0,
533 | "source": "builtin",
534 | "dependencies": {
535 | "com.unity.modules.assetbundle": "1.0.0",
536 | "com.unity.modules.unitywebrequest": "1.0.0"
537 | }
538 | },
539 | "com.unity.modules.unitywebrequestaudio": {
540 | "version": "1.0.0",
541 | "depth": 0,
542 | "source": "builtin",
543 | "dependencies": {
544 | "com.unity.modules.unitywebrequest": "1.0.0",
545 | "com.unity.modules.audio": "1.0.0"
546 | }
547 | },
548 | "com.unity.modules.unitywebrequesttexture": {
549 | "version": "1.0.0",
550 | "depth": 0,
551 | "source": "builtin",
552 | "dependencies": {
553 | "com.unity.modules.unitywebrequest": "1.0.0",
554 | "com.unity.modules.imageconversion": "1.0.0"
555 | }
556 | },
557 | "com.unity.modules.unitywebrequestwww": {
558 | "version": "1.0.0",
559 | "depth": 0,
560 | "source": "builtin",
561 | "dependencies": {
562 | "com.unity.modules.unitywebrequest": "1.0.0",
563 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
564 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
565 | "com.unity.modules.audio": "1.0.0",
566 | "com.unity.modules.assetbundle": "1.0.0",
567 | "com.unity.modules.imageconversion": "1.0.0"
568 | }
569 | },
570 | "com.unity.modules.vehicles": {
571 | "version": "1.0.0",
572 | "depth": 0,
573 | "source": "builtin",
574 | "dependencies": {
575 | "com.unity.modules.physics": "1.0.0"
576 | }
577 | },
578 | "com.unity.modules.video": {
579 | "version": "1.0.0",
580 | "depth": 0,
581 | "source": "builtin",
582 | "dependencies": {
583 | "com.unity.modules.audio": "1.0.0",
584 | "com.unity.modules.ui": "1.0.0",
585 | "com.unity.modules.unitywebrequest": "1.0.0"
586 | }
587 | },
588 | "com.unity.modules.vr": {
589 | "version": "1.0.0",
590 | "depth": 0,
591 | "source": "builtin",
592 | "dependencies": {
593 | "com.unity.modules.jsonserialize": "1.0.0",
594 | "com.unity.modules.physics": "1.0.0",
595 | "com.unity.modules.xr": "1.0.0"
596 | }
597 | },
598 | "com.unity.modules.wind": {
599 | "version": "1.0.0",
600 | "depth": 0,
601 | "source": "builtin",
602 | "dependencies": {}
603 | },
604 | "com.unity.modules.xr": {
605 | "version": "1.0.0",
606 | "depth": 0,
607 | "source": "builtin",
608 | "dependencies": {
609 | "com.unity.modules.physics": "1.0.0",
610 | "com.unity.modules.jsonserialize": "1.0.0",
611 | "com.unity.modules.subsystems": "1.0.0"
612 | }
613 | }
614 | }
615 | }
616 |
--------------------------------------------------------------------------------
/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: 26
7 | productGUID: 8c87ee17aa9384c6e851cf1adb9f0b29
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: UnityPhysics2DPlugin
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_SpriteBatchVertexThreshold: 300
52 | m_MTRendering: 1
53 | mipStripping: 0
54 | numberOfMipsStripped: 0
55 | numberOfMipsStrippedPerMipmapLimitGroup: {}
56 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
57 | iosShowActivityIndicatorOnLoading: -1
58 | androidShowActivityIndicatorOnLoading: -1
59 | iosUseCustomAppBackgroundBehavior: 0
60 | allowedAutorotateToPortrait: 1
61 | allowedAutorotateToPortraitUpsideDown: 1
62 | allowedAutorotateToLandscapeRight: 1
63 | allowedAutorotateToLandscapeLeft: 1
64 | useOSAutorotation: 1
65 | use32BitDisplayBuffer: 1
66 | preserveFramebufferAlpha: 0
67 | disableDepthAndStencilBuffers: 0
68 | androidStartInFullscreen: 1
69 | androidRenderOutsideSafeArea: 1
70 | androidUseSwappy: 1
71 | androidBlitType: 0
72 | androidResizableWindow: 0
73 | androidDefaultWindowWidth: 1920
74 | androidDefaultWindowHeight: 1080
75 | androidMinimumWindowWidth: 400
76 | androidMinimumWindowHeight: 300
77 | androidFullscreenMode: 1
78 | defaultIsNativeResolution: 1
79 | macRetinaSupport: 1
80 | runInBackground: 0
81 | captureSingleScreen: 0
82 | muteOtherAudioSources: 0
83 | Prepare IOS For Recording: 0
84 | Force IOS Speakers When Recording: 0
85 | deferSystemGesturesMode: 0
86 | hideHomeButton: 0
87 | submitAnalytics: 1
88 | usePlayerLog: 1
89 | bakeCollisionMeshes: 0
90 | forceSingleInstance: 0
91 | useFlipModelSwapchain: 1
92 | resizableWindow: 0
93 | useMacAppStoreValidation: 0
94 | macAppStoreCategory: public.app-category.games
95 | gpuSkinning: 0
96 | xboxPIXTextureCapture: 0
97 | xboxEnableAvatar: 0
98 | xboxEnableKinect: 0
99 | xboxEnableKinectAutoTracking: 0
100 | xboxEnableFitness: 0
101 | visibleInBackground: 1
102 | allowFullscreenSwitch: 1
103 | fullscreenMode: 1
104 | xboxSpeechDB: 0
105 | xboxEnableHeadOrientation: 0
106 | xboxEnableGuest: 0
107 | xboxEnablePIXSampling: 0
108 | metalFramebufferOnly: 0
109 | xboxOneResolution: 0
110 | xboxOneSResolution: 0
111 | xboxOneXResolution: 3
112 | xboxOneMonoLoggingLevel: 0
113 | xboxOneLoggingLevel: 1
114 | xboxOneDisableEsram: 0
115 | xboxOneEnableTypeOptimization: 0
116 | xboxOnePresentImmediateThreshold: 0
117 | switchQueueCommandMemory: 1048576
118 | switchQueueControlMemory: 16384
119 | switchQueueComputeMemory: 262144
120 | switchNVNShaderPoolsGranularity: 33554432
121 | switchNVNDefaultPoolsGranularity: 16777216
122 | switchNVNOtherPoolsGranularity: 16777216
123 | switchGpuScratchPoolGranularity: 2097152
124 | switchAllowGpuScratchShrinking: 0
125 | switchNVNMaxPublicTextureIDCount: 0
126 | switchNVNMaxPublicSamplerIDCount: 0
127 | switchNVNGraphicsFirmwareMemory: 32
128 | stadiaPresentMode: 0
129 | stadiaTargetFramerate: 0
130 | vulkanNumSwapchainBuffers: 3
131 | vulkanEnableSetSRGBWrite: 0
132 | vulkanEnablePreTransform: 0
133 | vulkanEnableLateAcquireNextImage: 0
134 | vulkanEnableCommandBufferRecycling: 1
135 | loadStoreDebugModeEnabled: 0
136 | bundleVersion: 1.0
137 | preloadedAssets: []
138 | metroInputSource: 0
139 | wsaTransparentSwapchain: 0
140 | m_HolographicPauseOnTrackingLoss: 1
141 | xboxOneDisableKinectGpuReservation: 1
142 | xboxOneEnable7thCore: 1
143 | vrSettings:
144 | enable360StereoCapture: 0
145 | isWsaHolographicRemotingEnabled: 0
146 | enableFrameTimingStats: 0
147 | enableOpenGLProfilerGPURecorders: 1
148 | useHDRDisplay: 0
149 | hdrBitDepth: 0
150 | m_ColorGamuts: 00000000
151 | targetPixelDensity: 30
152 | resolutionScalingMode: 0
153 | resetResolutionOnWindowResize: 0
154 | androidSupportedAspectRatio: 1
155 | androidMaxAspectRatio: 2.1
156 | applicationIdentifier:
157 | Standalone: com.DefaultCompany.UnityPhysics2DPlugin
158 | buildNumber:
159 | Standalone: 0
160 | VisionOS: 0
161 | iPhone: 0
162 | tvOS: 0
163 | overrideDefaultApplicationIdentifier: 0
164 | AndroidBundleVersionCode: 1
165 | AndroidMinSdkVersion: 22
166 | AndroidTargetSdkVersion: 0
167 | AndroidPreferredInstallLocation: 1
168 | aotOptions:
169 | stripEngineCode: 1
170 | iPhoneStrippingLevel: 0
171 | iPhoneScriptCallOptimization: 0
172 | ForceInternetPermission: 0
173 | ForceSDCardPermission: 0
174 | CreateWallpaper: 0
175 | APKExpansionFiles: 0
176 | keepLoadedShadersAlive: 0
177 | StripUnusedMeshComponents: 0
178 | strictShaderVariantMatching: 0
179 | VertexChannelCompressionMask: 4054
180 | iPhoneSdkVersion: 988
181 | iOSTargetOSVersionString: 12.0
182 | tvOSSdkVersion: 0
183 | tvOSRequireExtendedGameController: 0
184 | tvOSTargetOSVersionString: 12.0
185 | VisionOSSdkVersion: 0
186 | VisionOSTargetOSVersionString: 1.0
187 | uIPrerenderedIcon: 0
188 | uIRequiresPersistentWiFi: 0
189 | uIRequiresFullScreen: 1
190 | uIStatusBarHidden: 1
191 | uIExitOnSuspend: 0
192 | uIStatusBarStyle: 0
193 | appleTVSplashScreen: {fileID: 0}
194 | appleTVSplashScreen2x: {fileID: 0}
195 | tvOSSmallIconLayers: []
196 | tvOSSmallIconLayers2x: []
197 | tvOSLargeIconLayers: []
198 | tvOSLargeIconLayers2x: []
199 | tvOSTopShelfImageLayers: []
200 | tvOSTopShelfImageLayers2x: []
201 | tvOSTopShelfImageWideLayers: []
202 | tvOSTopShelfImageWideLayers2x: []
203 | iOSLaunchScreenType: 0
204 | iOSLaunchScreenPortrait: {fileID: 0}
205 | iOSLaunchScreenLandscape: {fileID: 0}
206 | iOSLaunchScreenBackgroundColor:
207 | serializedVersion: 2
208 | rgba: 0
209 | iOSLaunchScreenFillPct: 100
210 | iOSLaunchScreenSize: 100
211 | iOSLaunchScreenCustomXibPath:
212 | iOSLaunchScreeniPadType: 0
213 | iOSLaunchScreeniPadImage: {fileID: 0}
214 | iOSLaunchScreeniPadBackgroundColor:
215 | serializedVersion: 2
216 | rgba: 0
217 | iOSLaunchScreeniPadFillPct: 100
218 | iOSLaunchScreeniPadSize: 100
219 | iOSLaunchScreeniPadCustomXibPath:
220 | iOSLaunchScreenCustomStoryboardPath:
221 | iOSLaunchScreeniPadCustomStoryboardPath:
222 | iOSDeviceRequirements: []
223 | iOSURLSchemes: []
224 | macOSURLSchemes: []
225 | iOSBackgroundModes: 0
226 | iOSMetalForceHardShadows: 0
227 | metalEditorSupport: 1
228 | metalAPIValidation: 1
229 | iOSRenderExtraFrameOnPause: 0
230 | iosCopyPluginsCodeInsteadOfSymlink: 0
231 | appleDeveloperTeamID:
232 | iOSManualSigningProvisioningProfileID:
233 | tvOSManualSigningProvisioningProfileID:
234 | VisionOSManualSigningProvisioningProfileID:
235 | iOSManualSigningProvisioningProfileType: 0
236 | tvOSManualSigningProvisioningProfileType: 0
237 | VisionOSManualSigningProvisioningProfileType: 0
238 | appleEnableAutomaticSigning: 0
239 | iOSRequireARKit: 0
240 | iOSAutomaticallyDetectAndAddCapabilities: 1
241 | appleEnableProMotion: 0
242 | shaderPrecisionModel: 0
243 | clonedFromGUID: c19f32bac17ee4170b3bf8a6a0333fb9
244 | templatePackageId: com.unity.template.universal-2d@2.1.2
245 | templateDefaultScene: Assets/Scenes/SampleScene.unity
246 | useCustomMainManifest: 0
247 | useCustomLauncherManifest: 0
248 | useCustomMainGradleTemplate: 0
249 | useCustomLauncherGradleManifest: 0
250 | useCustomBaseGradleTemplate: 0
251 | useCustomGradlePropertiesTemplate: 0
252 | useCustomGradleSettingsTemplate: 0
253 | useCustomProguardFile: 0
254 | AndroidTargetArchitectures: 1
255 | AndroidTargetDevices: 0
256 | AndroidSplashScreenScale: 0
257 | androidSplashScreen: {fileID: 0}
258 | AndroidKeystoreName:
259 | AndroidKeyaliasName:
260 | AndroidEnableArmv9SecurityFeatures: 0
261 | AndroidBuildApkPerCpuArchitecture: 0
262 | AndroidTVCompatibility: 0
263 | AndroidIsGame: 1
264 | AndroidEnableTango: 0
265 | androidEnableBanner: 1
266 | androidUseLowAccuracyLocation: 0
267 | androidUseCustomKeystore: 0
268 | m_AndroidBanners:
269 | - width: 320
270 | height: 180
271 | banner: {fileID: 0}
272 | androidGamepadSupportLevel: 0
273 | chromeosInputEmulation: 1
274 | AndroidMinifyRelease: 0
275 | AndroidMinifyDebug: 0
276 | AndroidValidateAppBundleSize: 1
277 | AndroidAppBundleSizeToValidate: 150
278 | m_BuildTargetIcons: []
279 | m_BuildTargetPlatformIcons:
280 | - m_BuildTarget: iPhone
281 | m_Icons:
282 | - m_Textures: []
283 | m_Width: 180
284 | m_Height: 180
285 | m_Kind: 0
286 | m_SubKind: iPhone
287 | - m_Textures: []
288 | m_Width: 120
289 | m_Height: 120
290 | m_Kind: 0
291 | m_SubKind: iPhone
292 | - m_Textures: []
293 | m_Width: 167
294 | m_Height: 167
295 | m_Kind: 0
296 | m_SubKind: iPad
297 | - m_Textures: []
298 | m_Width: 152
299 | m_Height: 152
300 | m_Kind: 0
301 | m_SubKind: iPad
302 | - m_Textures: []
303 | m_Width: 76
304 | m_Height: 76
305 | m_Kind: 0
306 | m_SubKind: iPad
307 | - m_Textures: []
308 | m_Width: 120
309 | m_Height: 120
310 | m_Kind: 3
311 | m_SubKind: iPhone
312 | - m_Textures: []
313 | m_Width: 80
314 | m_Height: 80
315 | m_Kind: 3
316 | m_SubKind: iPhone
317 | - m_Textures: []
318 | m_Width: 80
319 | m_Height: 80
320 | m_Kind: 3
321 | m_SubKind: iPad
322 | - m_Textures: []
323 | m_Width: 40
324 | m_Height: 40
325 | m_Kind: 3
326 | m_SubKind: iPad
327 | - m_Textures: []
328 | m_Width: 87
329 | m_Height: 87
330 | m_Kind: 1
331 | m_SubKind: iPhone
332 | - m_Textures: []
333 | m_Width: 58
334 | m_Height: 58
335 | m_Kind: 1
336 | m_SubKind: iPhone
337 | - m_Textures: []
338 | m_Width: 29
339 | m_Height: 29
340 | m_Kind: 1
341 | m_SubKind: iPhone
342 | - m_Textures: []
343 | m_Width: 58
344 | m_Height: 58
345 | m_Kind: 1
346 | m_SubKind: iPad
347 | - m_Textures: []
348 | m_Width: 29
349 | m_Height: 29
350 | m_Kind: 1
351 | m_SubKind: iPad
352 | - m_Textures: []
353 | m_Width: 60
354 | m_Height: 60
355 | m_Kind: 2
356 | m_SubKind: iPhone
357 | - m_Textures: []
358 | m_Width: 40
359 | m_Height: 40
360 | m_Kind: 2
361 | m_SubKind: iPhone
362 | - m_Textures: []
363 | m_Width: 40
364 | m_Height: 40
365 | m_Kind: 2
366 | m_SubKind: iPad
367 | - m_Textures: []
368 | m_Width: 20
369 | m_Height: 20
370 | m_Kind: 2
371 | m_SubKind: iPad
372 | - m_Textures: []
373 | m_Width: 1024
374 | m_Height: 1024
375 | m_Kind: 4
376 | m_SubKind: App Store
377 | - m_BuildTarget: Android
378 | m_Icons:
379 | - m_Textures: []
380 | m_Width: 432
381 | m_Height: 432
382 | m_Kind: 2
383 | m_SubKind:
384 | - m_Textures: []
385 | m_Width: 324
386 | m_Height: 324
387 | m_Kind: 2
388 | m_SubKind:
389 | - m_Textures: []
390 | m_Width: 216
391 | m_Height: 216
392 | m_Kind: 2
393 | m_SubKind:
394 | - m_Textures: []
395 | m_Width: 162
396 | m_Height: 162
397 | m_Kind: 2
398 | m_SubKind:
399 | - m_Textures: []
400 | m_Width: 108
401 | m_Height: 108
402 | m_Kind: 2
403 | m_SubKind:
404 | - m_Textures: []
405 | m_Width: 81
406 | m_Height: 81
407 | m_Kind: 2
408 | m_SubKind:
409 | - m_Textures: []
410 | m_Width: 192
411 | m_Height: 192
412 | m_Kind: 1
413 | m_SubKind:
414 | - m_Textures: []
415 | m_Width: 144
416 | m_Height: 144
417 | m_Kind: 1
418 | m_SubKind:
419 | - m_Textures: []
420 | m_Width: 96
421 | m_Height: 96
422 | m_Kind: 1
423 | m_SubKind:
424 | - m_Textures: []
425 | m_Width: 72
426 | m_Height: 72
427 | m_Kind: 1
428 | m_SubKind:
429 | - m_Textures: []
430 | m_Width: 48
431 | m_Height: 48
432 | m_Kind: 1
433 | m_SubKind:
434 | - m_Textures: []
435 | m_Width: 36
436 | m_Height: 36
437 | m_Kind: 1
438 | m_SubKind:
439 | - m_Textures: []
440 | m_Width: 192
441 | m_Height: 192
442 | m_Kind: 0
443 | m_SubKind:
444 | - m_Textures: []
445 | m_Width: 144
446 | m_Height: 144
447 | m_Kind: 0
448 | m_SubKind:
449 | - m_Textures: []
450 | m_Width: 96
451 | m_Height: 96
452 | m_Kind: 0
453 | m_SubKind:
454 | - m_Textures: []
455 | m_Width: 72
456 | m_Height: 72
457 | m_Kind: 0
458 | m_SubKind:
459 | - m_Textures: []
460 | m_Width: 48
461 | m_Height: 48
462 | m_Kind: 0
463 | m_SubKind:
464 | - m_Textures: []
465 | m_Width: 36
466 | m_Height: 36
467 | m_Kind: 0
468 | m_SubKind:
469 | m_BuildTargetBatching: []
470 | m_BuildTargetShaderSettings: []
471 | m_BuildTargetGraphicsJobs: []
472 | m_BuildTargetGraphicsJobMode: []
473 | m_BuildTargetGraphicsAPIs: []
474 | m_BuildTargetVRSettings: []
475 | m_DefaultShaderChunkSizeInMB: 16
476 | m_DefaultShaderChunkCount: 0
477 | openGLRequireES31: 0
478 | openGLRequireES31AEP: 0
479 | openGLRequireES32: 0
480 | m_TemplateCustomTags: {}
481 | mobileMTRendering:
482 | Android: 1
483 | iPhone: 1
484 | tvOS: 1
485 | m_BuildTargetGroupLightmapEncodingQuality: []
486 | m_BuildTargetGroupHDRCubemapEncodingQuality: []
487 | m_BuildTargetGroupLightmapSettings: []
488 | m_BuildTargetGroupLoadStoreDebugModeSettings: []
489 | m_BuildTargetNormalMapEncoding: []
490 | m_BuildTargetDefaultTextureCompressionFormat: []
491 | playModeTestRunnerEnabled: 0
492 | runPlayModeTestAsEditModeTest: 0
493 | actionOnDotNetUnhandledException: 1
494 | enableInternalProfiler: 0
495 | logObjCUncaughtExceptions: 1
496 | enableCrashReportAPI: 0
497 | cameraUsageDescription:
498 | locationUsageDescription:
499 | microphoneUsageDescription:
500 | bluetoothUsageDescription:
501 | macOSTargetOSVersion: 10.13.0
502 | switchNMETAOverride:
503 | switchNetLibKey:
504 | switchSocketMemoryPoolSize: 6144
505 | switchSocketAllocatorPoolSize: 128
506 | switchSocketConcurrencyLimit: 14
507 | switchScreenResolutionBehavior: 2
508 | switchUseCPUProfiler: 0
509 | switchUseGOLDLinker: 0
510 | switchLTOSetting: 0
511 | switchApplicationID: 0x01004b9000490000
512 | switchNSODependencies:
513 | switchCompilerFlags:
514 | switchTitleNames_0:
515 | switchTitleNames_1:
516 | switchTitleNames_2:
517 | switchTitleNames_3:
518 | switchTitleNames_4:
519 | switchTitleNames_5:
520 | switchTitleNames_6:
521 | switchTitleNames_7:
522 | switchTitleNames_8:
523 | switchTitleNames_9:
524 | switchTitleNames_10:
525 | switchTitleNames_11:
526 | switchTitleNames_12:
527 | switchTitleNames_13:
528 | switchTitleNames_14:
529 | switchTitleNames_15:
530 | switchPublisherNames_0:
531 | switchPublisherNames_1:
532 | switchPublisherNames_2:
533 | switchPublisherNames_3:
534 | switchPublisherNames_4:
535 | switchPublisherNames_5:
536 | switchPublisherNames_6:
537 | switchPublisherNames_7:
538 | switchPublisherNames_8:
539 | switchPublisherNames_9:
540 | switchPublisherNames_10:
541 | switchPublisherNames_11:
542 | switchPublisherNames_12:
543 | switchPublisherNames_13:
544 | switchPublisherNames_14:
545 | switchPublisherNames_15:
546 | switchIcons_0: {fileID: 0}
547 | switchIcons_1: {fileID: 0}
548 | switchIcons_2: {fileID: 0}
549 | switchIcons_3: {fileID: 0}
550 | switchIcons_4: {fileID: 0}
551 | switchIcons_5: {fileID: 0}
552 | switchIcons_6: {fileID: 0}
553 | switchIcons_7: {fileID: 0}
554 | switchIcons_8: {fileID: 0}
555 | switchIcons_9: {fileID: 0}
556 | switchIcons_10: {fileID: 0}
557 | switchIcons_11: {fileID: 0}
558 | switchIcons_12: {fileID: 0}
559 | switchIcons_13: {fileID: 0}
560 | switchIcons_14: {fileID: 0}
561 | switchIcons_15: {fileID: 0}
562 | switchSmallIcons_0: {fileID: 0}
563 | switchSmallIcons_1: {fileID: 0}
564 | switchSmallIcons_2: {fileID: 0}
565 | switchSmallIcons_3: {fileID: 0}
566 | switchSmallIcons_4: {fileID: 0}
567 | switchSmallIcons_5: {fileID: 0}
568 | switchSmallIcons_6: {fileID: 0}
569 | switchSmallIcons_7: {fileID: 0}
570 | switchSmallIcons_8: {fileID: 0}
571 | switchSmallIcons_9: {fileID: 0}
572 | switchSmallIcons_10: {fileID: 0}
573 | switchSmallIcons_11: {fileID: 0}
574 | switchSmallIcons_12: {fileID: 0}
575 | switchSmallIcons_13: {fileID: 0}
576 | switchSmallIcons_14: {fileID: 0}
577 | switchSmallIcons_15: {fileID: 0}
578 | switchManualHTML:
579 | switchAccessibleURLs:
580 | switchLegalInformation:
581 | switchMainThreadStackSize: 1048576
582 | switchPresenceGroupId:
583 | switchLogoHandling: 0
584 | switchReleaseVersion: 0
585 | switchDisplayVersion: 1.0.0
586 | switchStartupUserAccount: 0
587 | switchSupportedLanguagesMask: 0
588 | switchLogoType: 0
589 | switchApplicationErrorCodeCategory:
590 | switchUserAccountSaveDataSize: 0
591 | switchUserAccountSaveDataJournalSize: 0
592 | switchApplicationAttribute: 0
593 | switchCardSpecSize: -1
594 | switchCardSpecClock: -1
595 | switchRatingsMask: 0
596 | switchRatingsInt_0: 0
597 | switchRatingsInt_1: 0
598 | switchRatingsInt_2: 0
599 | switchRatingsInt_3: 0
600 | switchRatingsInt_4: 0
601 | switchRatingsInt_5: 0
602 | switchRatingsInt_6: 0
603 | switchRatingsInt_7: 0
604 | switchRatingsInt_8: 0
605 | switchRatingsInt_9: 0
606 | switchRatingsInt_10: 0
607 | switchRatingsInt_11: 0
608 | switchRatingsInt_12: 0
609 | switchLocalCommunicationIds_0:
610 | switchLocalCommunicationIds_1:
611 | switchLocalCommunicationIds_2:
612 | switchLocalCommunicationIds_3:
613 | switchLocalCommunicationIds_4:
614 | switchLocalCommunicationIds_5:
615 | switchLocalCommunicationIds_6:
616 | switchLocalCommunicationIds_7:
617 | switchParentalControl: 0
618 | switchAllowsScreenshot: 1
619 | switchAllowsVideoCapturing: 1
620 | switchAllowsRuntimeAddOnContentInstall: 0
621 | switchDataLossConfirmation: 0
622 | switchUserAccountLockEnabled: 0
623 | switchSystemResourceMemory: 16777216
624 | switchSupportedNpadStyles: 22
625 | switchNativeFsCacheSize: 32
626 | switchIsHoldTypeHorizontal: 0
627 | switchSupportedNpadCount: 8
628 | switchEnableTouchScreen: 1
629 | switchSocketConfigEnabled: 0
630 | switchTcpInitialSendBufferSize: 32
631 | switchTcpInitialReceiveBufferSize: 64
632 | switchTcpAutoSendBufferSizeMax: 256
633 | switchTcpAutoReceiveBufferSizeMax: 256
634 | switchUdpSendBufferSize: 9
635 | switchUdpReceiveBufferSize: 42
636 | switchSocketBufferEfficiency: 4
637 | switchSocketInitializeEnabled: 1
638 | switchNetworkInterfaceManagerInitializeEnabled: 1
639 | switchPlayerConnectionEnabled: 1
640 | switchUseNewStyleFilepaths: 0
641 | switchUseLegacyFmodPriorities: 0
642 | switchUseMicroSleepForYield: 1
643 | switchEnableRamDiskSupport: 0
644 | switchMicroSleepForYieldTime: 25
645 | switchRamDiskSpaceSize: 12
646 | ps4NPAgeRating: 12
647 | ps4NPTitleSecret:
648 | ps4NPTrophyPackPath:
649 | ps4ParentalLevel: 11
650 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
651 | ps4Category: 0
652 | ps4MasterVersion: 01.00
653 | ps4AppVersion: 01.00
654 | ps4AppType: 0
655 | ps4ParamSfxPath:
656 | ps4VideoOutPixelFormat: 0
657 | ps4VideoOutInitialWidth: 1920
658 | ps4VideoOutBaseModeInitialWidth: 1920
659 | ps4VideoOutReprojectionRate: 60
660 | ps4PronunciationXMLPath:
661 | ps4PronunciationSIGPath:
662 | ps4BackgroundImagePath:
663 | ps4StartupImagePath:
664 | ps4StartupImagesFolder:
665 | ps4IconImagesFolder:
666 | ps4SaveDataImagePath:
667 | ps4SdkOverride:
668 | ps4BGMPath:
669 | ps4ShareFilePath:
670 | ps4ShareOverlayImagePath:
671 | ps4PrivacyGuardImagePath:
672 | ps4ExtraSceSysFile:
673 | ps4NPtitleDatPath:
674 | ps4RemotePlayKeyAssignment: -1
675 | ps4RemotePlayKeyMappingDir:
676 | ps4PlayTogetherPlayerCount: 0
677 | ps4EnterButtonAssignment: 2
678 | ps4ApplicationParam1: 0
679 | ps4ApplicationParam2: 0
680 | ps4ApplicationParam3: 0
681 | ps4ApplicationParam4: 0
682 | ps4DownloadDataSize: 0
683 | ps4GarlicHeapSize: 2048
684 | ps4ProGarlicHeapSize: 2560
685 | playerPrefsMaxSize: 32768
686 | ps4Passcode: D25bFOIlcWmANChRvUT1ao3Ud48vHsjc
687 | ps4pnSessions: 1
688 | ps4pnPresence: 1
689 | ps4pnFriends: 1
690 | ps4pnGameCustomData: 1
691 | playerPrefsSupport: 0
692 | enableApplicationExit: 0
693 | resetTempFolder: 1
694 | restrictedAudioUsageRights: 0
695 | ps4UseResolutionFallback: 0
696 | ps4ReprojectionSupport: 0
697 | ps4UseAudio3dBackend: 0
698 | ps4UseLowGarlicFragmentationMode: 1
699 | ps4SocialScreenEnabled: 0
700 | ps4ScriptOptimizationLevel: 2
701 | ps4Audio3dVirtualSpeakerCount: 14
702 | ps4attribCpuUsage: 0
703 | ps4PatchPkgPath:
704 | ps4PatchLatestPkgPath:
705 | ps4PatchChangeinfoPath:
706 | ps4PatchDayOne: 0
707 | ps4attribUserManagement: 0
708 | ps4attribMoveSupport: 0
709 | ps4attrib3DSupport: 0
710 | ps4attribShareSupport: 0
711 | ps4attribExclusiveVR: 0
712 | ps4disableAutoHideSplash: 0
713 | ps4videoRecordingFeaturesUsed: 0
714 | ps4contentSearchFeaturesUsed: 0
715 | ps4CompatibilityPS5: 0
716 | ps4AllowPS5Detection: 0
717 | ps4GPU800MHz: 1
718 | ps4attribEyeToEyeDistanceSettingVR: 0
719 | ps4IncludedModules: []
720 | ps4attribVROutputEnabled: 0
721 | monoEnv:
722 | splashScreenBackgroundSourceLandscape: {fileID: 0}
723 | splashScreenBackgroundSourcePortrait: {fileID: 0}
724 | blurSplashScreenBackground: 1
725 | spritePackerPolicy:
726 | webGLMemorySize: 32
727 | webGLExceptionSupport: 1
728 | webGLNameFilesAsHashes: 0
729 | webGLShowDiagnostics: 0
730 | webGLDataCaching: 1
731 | webGLDebugSymbols: 0
732 | webGLEmscriptenArgs:
733 | webGLModulesDirectory:
734 | webGLTemplate: APPLICATION:Default
735 | webGLAnalyzeBuildSize: 0
736 | webGLUseEmbeddedResources: 0
737 | webGLCompressionFormat: 0
738 | webGLWasmArithmeticExceptions: 0
739 | webGLLinkerTarget: 1
740 | webGLThreadsSupport: 0
741 | webGLDecompressionFallback: 0
742 | webGLInitialMemorySize: 32
743 | webGLMaximumMemorySize: 2048
744 | webGLMemoryGrowthMode: 2
745 | webGLMemoryLinearGrowthStep: 16
746 | webGLMemoryGeometricGrowthStep: 0.2
747 | webGLMemoryGeometricGrowthCap: 96
748 | webGLPowerPreference: 2
749 | scriptingDefineSymbols:
750 | Standalone: UNITY_PHYSICS_CUSTOM
751 | additionalCompilerArguments: {}
752 | platformArchitecture: {}
753 | scriptingBackend: {}
754 | il2cppCompilerConfiguration: {}
755 | il2cppCodeGeneration: {}
756 | managedStrippingLevel:
757 | EmbeddedLinux: 1
758 | GameCoreScarlett: 1
759 | GameCoreXboxOne: 1
760 | Nintendo Switch: 1
761 | PS4: 1
762 | PS5: 1
763 | QNX: 1
764 | Stadia: 1
765 | VisionOS: 1
766 | WebGL: 1
767 | Windows Store Apps: 1
768 | XboxOne: 1
769 | iPhone: 1
770 | tvOS: 1
771 | incrementalIl2cppBuild: {}
772 | suppressCommonWarnings: 1
773 | allowUnsafeCode: 1
774 | useDeterministicCompilation: 1
775 | additionalIl2CppArgs:
776 | scriptingRuntimeVersion: 1
777 | gcIncremental: 1
778 | gcWBarrierValidation: 0
779 | apiCompatibilityLevelPerPlatform: {}
780 | m_RenderingPath: 1
781 | m_MobileRenderingPath: 1
782 | metroPackageName: UnityPhysics2DPlugin
783 | metroPackageVersion:
784 | metroCertificatePath:
785 | metroCertificatePassword:
786 | metroCertificateSubject:
787 | metroCertificateIssuer:
788 | metroCertificateNotAfter: 0000000000000000
789 | metroApplicationDescription: UnityPhysics2DPlugin
790 | wsaImages: {}
791 | metroTileShortName:
792 | metroTileShowName: 0
793 | metroMediumTileShowName: 0
794 | metroLargeTileShowName: 0
795 | metroWideTileShowName: 0
796 | metroSupportStreamingInstall: 0
797 | metroLastRequiredScene: 0
798 | metroDefaultTileSize: 1
799 | metroTileForegroundText: 2
800 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
801 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
802 | metroSplashScreenUseBackgroundColor: 0
803 | platformCapabilities: {}
804 | metroTargetDeviceFamilies: {}
805 | metroFTAName:
806 | metroFTAFileTypes: []
807 | metroProtocolName:
808 | vcxProjDefaultLanguage:
809 | XboxOneProductId:
810 | XboxOneUpdateKey:
811 | XboxOneSandboxId:
812 | XboxOneContentId:
813 | XboxOneTitleId:
814 | XboxOneSCId:
815 | XboxOneGameOsOverridePath:
816 | XboxOnePackagingOverridePath:
817 | XboxOneAppManifestOverridePath:
818 | XboxOneVersion: 1.0.0.0
819 | XboxOnePackageEncryption: 0
820 | XboxOnePackageUpdateGranularity: 2
821 | XboxOneDescription:
822 | XboxOneLanguage:
823 | - enus
824 | XboxOneCapability: []
825 | XboxOneGameRating: {}
826 | XboxOneIsContentPackage: 0
827 | XboxOneEnhancedXboxCompatibilityMode: 0
828 | XboxOneEnableGPUVariability: 1
829 | XboxOneSockets: {}
830 | XboxOneSplashScreen: {fileID: 0}
831 | XboxOneAllowedProductIds: []
832 | XboxOnePersistentLocalStorageSize: 0
833 | XboxOneXTitleMemory: 8
834 | XboxOneOverrideIdentityName:
835 | XboxOneOverrideIdentityPublisher:
836 | vrEditorSettings: {}
837 | cloudServicesEnabled: {}
838 | luminIcon:
839 | m_Name:
840 | m_ModelFolderPath:
841 | m_PortalFolderPath:
842 | luminCert:
843 | m_CertPath:
844 | m_SignPackage: 1
845 | luminIsChannelApp: 0
846 | luminVersion:
847 | m_VersionCode: 1
848 | m_VersionName:
849 | hmiPlayerDataPath:
850 | hmiForceSRGBBlit: 1
851 | embeddedLinuxEnableGamepadInput: 1
852 | hmiLogStartupTiming: 0
853 | hmiCpuConfiguration:
854 | apiCompatibilityLevel: 6
855 | activeInputHandler: 0
856 | windowsGamepadBackendHint: 0
857 | cloudProjectId:
858 | framebufferDepthMemorylessMode: 0
859 | qualitySettingsNames: []
860 | projectName:
861 | organizationId:
862 | cloudEnabled: 0
863 | legacyClampBlendShapeWeights: 0
864 | hmiLoadingImage: {fileID: 0}
865 | platformRequiresReadableAssets: 0
866 | virtualTexturingSupportEnabled: 0
867 | insecureHttpOption: 0
868 |
--------------------------------------------------------------------------------