├── .gitattributes ├── .gitignore ├── Assets ├── UnityPhysics2DPlugin.meta └── UnityPhysics2DPlugin │ ├── Documentation~ │ └── img1.png │ ├── Runtime.meta │ ├── Runtime │ ├── Baking.meta │ ├── Baking │ │ ├── Collider2DBaker.cs │ │ ├── Collider2DBaker.cs.meta │ │ ├── Rigidbody2DBaker.cs │ │ └── Rigidbody2DBaker.cs.meta │ ├── ColliderBakingHelper.cs │ ├── ColliderBakingHelper.cs.meta │ ├── MathHelper.cs │ ├── MathHelper.cs.meta │ ├── Physics2DComponents.cs │ ├── Physics2DComponents.cs.meta │ ├── Physics2DSystemGroup.cs │ ├── Physics2DSystemGroup.cs.meta │ ├── Physics2DSystems.cs │ ├── Physics2DSystems.cs.meta │ ├── UnityPhysics2D.cs │ ├── UnityPhysics2D.cs.meta │ ├── UnityPhysics2DPlugin.asmdef │ └── UnityPhysics2DPlugin.asmdef.meta │ ├── package.json │ └── package.json.meta ├── LICENSE ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── BurstAotSettings_Android.json ├── BurstAotSettings_StandaloneOSX.json ├── BurstAotSettings_WebGL.json ├── BurstAotSettings_iOS.json ├── ClusterInputManager.asset ├── CommonBurstAotSettings.json ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── EntitiesClientSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── ShaderGraphSettings.asset ├── TagManager.asset ├── TimeManager.asset ├── URPProjectSettings.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset ├── README.md └── README_JP.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /Assets/UnityPhysics2DPlugin.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24f2c457e332347e599becf6cef5d8ae 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UnityPhysics2DPlugin/Documentation~/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/annulusgames/UnityPhysics2DPlugin/c41f0c3e15214330d0e8e63b1e32998e96518939/Assets/UnityPhysics2DPlugin/Documentation~/img1.png -------------------------------------------------------------------------------- /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/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 | } -------------------------------------------------------------------------------- /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: -------------------------------------------------------------------------------- 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 | } -------------------------------------------------------------------------------- /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/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/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/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 | } -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /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: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /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: -------------------------------------------------------------------------------- 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/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/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/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 | -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /Assets/UnityPhysics2DPlugin/Runtime/UnityPhysics2DPlugin.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81332e9e6cb53467ab8ef4469b44adc0 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /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/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3125c4f09ceb74365b1293072f137f3a 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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_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/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/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/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/CommonBurstAotSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "DisabledWarnings": "" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2022.3.7f1 2 | m_EditorVersionWithRevision: 2022.3.7f1 (b16b3b16c7a0) 3 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /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/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 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Unity Physics 2D Plugin 2 | Unity Physics extension for adding pseudo 2D physics functionality 3 | 4 | [![license](https://img.shields.io/badge/LICENSE-MIT-green.svg)](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) -------------------------------------------------------------------------------- /README_JP.md: -------------------------------------------------------------------------------- 1 | # Unity Physics 2D Plugin 2 | Unity Physics extension for adding pseudo 2D physics functionality 3 | 4 | [![license](https://img.shields.io/badge/LICENSE-MIT-green.svg)](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 | --------------------------------------------------------------------------------