From a458d265d628e11ccdb747d616f5032af2cd54bd Mon Sep 17 00:00:00 2001
From: chai <chaifix@163.com>
Date: Thu, 27 Jan 2022 17:44:31 +0800
Subject: *wall check

---
 JamTools/Assets/JamTools/Materials/ontop.mat       |  78 ++++++++
 JamTools/Assets/JamTools/Materials/ontop.mat.meta  |   8 +
 .../PhysicsMaterials/bounce_1.physicMaterial       |  14 ++
 .../PhysicsMaterials/bounce_1.physicMaterial.meta  |   8 +
 .../PhysicsMaterials/player_body.physicMaterial    |  14 ++
 .../player_body.physicMaterial.meta                |   8 +
 .../JamTools/Prefabs/CylinderCollider.prefab       |  56 ++++++
 .../JamTools/Prefabs/CylinderCollider.prefab.meta  |   7 +
 JamTools/Assets/JamTools/Prefabs/Player.prefab     |  65 +++----
 .../JamTools/Scenes/FPSCharacterController.unity   | 211 +++++++++++++++++----
 .../FPSCharacterController.cs                      |  38 ++--
 .../Character/FPSCharacterController/PlayerBody.cs |  23 +++
 .../FPSCharacterController/PlayerBody.cs.meta      |  11 ++
 .../FPSCharacterController/WallChecker.cs          |  35 +++-
 JamTools/Assets/JamTools/Scripts/Utils/Editor.meta |   8 +
 .../Scripts/Utils/Editor/MeshRendererEditor.cs     |  35 ++++
 .../Utils/Editor/MeshRendererEditor.cs.meta        |  11 ++
 .../Scripts/Utils/MeshRendererOrderModifier.cs     |  21 ++
 .../Utils/MeshRendererOrderModifier.cs.meta        |  11 ++
 .../ProjectSettings/SceneTemplateSettings.json     | 167 ++++++++++++++++
 JamTools/ProjectSettings/TagManager.asset          |   3 +
 21 files changed, 742 insertions(+), 90 deletions(-)
 create mode 100644 JamTools/Assets/JamTools/Materials/ontop.mat
 create mode 100644 JamTools/Assets/JamTools/Materials/ontop.mat.meta
 create mode 100644 JamTools/Assets/JamTools/PhysicsMaterials/bounce_1.physicMaterial
 create mode 100644 JamTools/Assets/JamTools/PhysicsMaterials/bounce_1.physicMaterial.meta
 create mode 100644 JamTools/Assets/JamTools/PhysicsMaterials/player_body.physicMaterial
 create mode 100644 JamTools/Assets/JamTools/PhysicsMaterials/player_body.physicMaterial.meta
 create mode 100644 JamTools/Assets/JamTools/Prefabs/CylinderCollider.prefab
 create mode 100644 JamTools/Assets/JamTools/Prefabs/CylinderCollider.prefab.meta
 create mode 100644 JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs
 create mode 100644 JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs.meta
 create mode 100644 JamTools/Assets/JamTools/Scripts/Utils/Editor.meta
 create mode 100644 JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs
 create mode 100644 JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs.meta
 create mode 100644 JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs
 create mode 100644 JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs.meta
 create mode 100644 JamTools/ProjectSettings/SceneTemplateSettings.json

diff --git a/JamTools/Assets/JamTools/Materials/ontop.mat b/JamTools/Assets/JamTools/Materials/ontop.mat
new file mode 100644
index 0000000..12b8d7f
--- /dev/null
+++ b/JamTools/Assets/JamTools/Materials/ontop.mat
@@ -0,0 +1,78 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: ontop
+  m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []
diff --git a/JamTools/Assets/JamTools/Materials/ontop.mat.meta b/JamTools/Assets/JamTools/Materials/ontop.mat.meta
new file mode 100644
index 0000000..da0235c
--- /dev/null
+++ b/JamTools/Assets/JamTools/Materials/ontop.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1f41374a6d8c5c14388e0da7ceb2fe37
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/JamTools/Assets/JamTools/PhysicsMaterials/bounce_1.physicMaterial b/JamTools/Assets/JamTools/PhysicsMaterials/bounce_1.physicMaterial
new file mode 100644
index 0000000..d477f45
--- /dev/null
+++ b/JamTools/Assets/JamTools/PhysicsMaterials/bounce_1.physicMaterial
@@ -0,0 +1,14 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!134 &13400000
+PhysicMaterial:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: bounce_1
+  dynamicFriction: 0.6
+  staticFriction: 0.6
+  bounciness: 1
+  frictionCombine: 0
+  bounceCombine: 3
diff --git a/JamTools/Assets/JamTools/PhysicsMaterials/bounce_1.physicMaterial.meta b/JamTools/Assets/JamTools/PhysicsMaterials/bounce_1.physicMaterial.meta
new file mode 100644
index 0000000..031fcf7
--- /dev/null
+++ b/JamTools/Assets/JamTools/PhysicsMaterials/bounce_1.physicMaterial.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 47d5dc03e48dbc44d91df81dbc84c5e6
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 13400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/JamTools/Assets/JamTools/PhysicsMaterials/player_body.physicMaterial b/JamTools/Assets/JamTools/PhysicsMaterials/player_body.physicMaterial
new file mode 100644
index 0000000..5cf1f75
--- /dev/null
+++ b/JamTools/Assets/JamTools/PhysicsMaterials/player_body.physicMaterial
@@ -0,0 +1,14 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!134 &13400000
+PhysicMaterial:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: player_body
+  dynamicFriction: 0
+  staticFriction: 0
+  bounciness: 0
+  frictionCombine: 1
+  bounceCombine: 0
diff --git a/JamTools/Assets/JamTools/PhysicsMaterials/player_body.physicMaterial.meta b/JamTools/Assets/JamTools/PhysicsMaterials/player_body.physicMaterial.meta
new file mode 100644
index 0000000..9abf473
--- /dev/null
+++ b/JamTools/Assets/JamTools/PhysicsMaterials/player_body.physicMaterial.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 88e7227246830b942910801154d623b9
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 13400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/JamTools/Assets/JamTools/Prefabs/CylinderCollider.prefab b/JamTools/Assets/JamTools/Prefabs/CylinderCollider.prefab
new file mode 100644
index 0000000..30d42c6
--- /dev/null
+++ b/JamTools/Assets/JamTools/Prefabs/CylinderCollider.prefab
@@ -0,0 +1,56 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4176189782986773098
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4176189782986773095}
+  - component: {fileID: 4176189782986773092}
+  - component: {fileID: 4176189782986773093}
+  m_Layer: 0
+  m_Name: CylinderCollider
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4176189782986773095
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4176189782986773098}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 9.233, y: 0.4, z: -0.39904237}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4176189782986773092
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4176189782986773098}
+  m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!64 &4176189782986773093
+MeshCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4176189782986773098}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 4
+  m_Convex: 1
+  m_CookingOptions: 30
+  m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/JamTools/Assets/JamTools/Prefabs/CylinderCollider.prefab.meta b/JamTools/Assets/JamTools/Prefabs/CylinderCollider.prefab.meta
new file mode 100644
index 0000000..eb75248
--- /dev/null
+++ b/JamTools/Assets/JamTools/Prefabs/CylinderCollider.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 72b2822c4bc77e744aa13f25a0c206cd
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/JamTools/Assets/JamTools/Prefabs/Player.prefab b/JamTools/Assets/JamTools/Prefabs/Player.prefab
index fe2632a..96fc7c7 100644
--- a/JamTools/Assets/JamTools/Prefabs/Player.prefab
+++ b/JamTools/Assets/JamTools/Prefabs/Player.prefab
@@ -135,8 +135,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: aa1da003e4adb0a4882351b5858277d2, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  upper: {fileID: 0}
-  lower: {fileID: 0}
+  upper: {fileID: 1514607783}
+  lower: {fileID: 1747156836}
 --- !u!1 &3755607822235943212
 GameObject:
   m_ObjectHideFlags: 0
@@ -147,7 +147,7 @@ GameObject:
   m_Component:
   - component: {fileID: 3755607822235943213}
   - component: {fileID: 3755607822235943203}
-  - component: {fileID: 1832268035}
+  - component: {fileID: 4144800332532561314}
   m_Layer: 6
   m_Name: GroundChecker
   m_TagString: Untagged
@@ -183,7 +183,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Foot: {fileID: 581680372}
---- !u!135 &1832268035
+--- !u!135 &4144800332532561314
 SphereCollider:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -194,8 +194,8 @@ SphereCollider:
   m_IsTrigger: 1
   m_Enabled: 1
   serializedVersion: 2
-  m_Radius: 0.31855884
-  m_Center: {x: 0.005017042, y: 0.22975197, z: 0.005543828}
+  m_Radius: 0.41830033
+  m_Center: {x: 0, y: 0.33, z: -0.0037634373}
 --- !u!1 &3755607822786182922
 GameObject:
   m_ObjectHideFlags: 0
@@ -304,6 +304,7 @@ MonoBehaviour:
     serializedVersion: 2
     m_Bits: 4294967295
   m_ShotInfiniteDistance: 100
+  m_WallJumpForce: 1
 --- !u!114 &104493165
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -328,7 +329,6 @@ GameObject:
   - component: {fileID: 3755607823301764077}
   - component: {fileID: 3755607823301764064}
   - component: {fileID: 3755607823301764067}
-  - component: {fileID: 3755607823301764066}
   m_Layer: 7
   m_Name: Gun
   m_TagString: Untagged
@@ -396,23 +396,10 @@ MeshRenderer:
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
-  m_SortingLayerID: 0
-  m_SortingLayer: 0
+  m_SortingLayerID: 2114570511
+  m_SortingLayer: 1
   m_SortingOrder: 0
   m_AdditionalVertexStreams: {fileID: 0}
---- !u!65 &3755607823301764066
-BoxCollider:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 3755607823301764076}
-  m_Material: {fileID: 0}
-  m_IsTrigger: 0
-  m_Enabled: 1
-  serializedVersion: 2
-  m_Size: {x: 1, y: 1, z: 1}
-  m_Center: {x: 0, y: 0, z: 0}
 --- !u!1 &3755607823435741733
 GameObject:
   m_ObjectHideFlags: 0
@@ -533,7 +520,7 @@ CapsuleCollider:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 3755607823625089725}
-  m_Material: {fileID: 0}
+  m_Material: {fileID: 13400000, guid: 88e7227246830b942910801154d623b9, type: 2}
   m_IsTrigger: 0
   m_Enabled: 1
   m_Radius: 0.5
@@ -549,8 +536,8 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 2798309367730113166}
-  - component: {fileID: 3485014426452298626}
   - component: {fileID: 553569468365550078}
+  - component: {fileID: 6135652675925644977}
   m_Layer: 6
   m_Name: WallChecker
   m_TagString: Untagged
@@ -567,25 +554,11 @@ Transform:
   m_GameObject: {fileID: 4374959424473659971}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_LocalScale: {x: 1.1, y: 0.5, z: 1.1}
   m_Children: []
   m_Father: {fileID: 3755607823128161140}
   m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!136 &3485014426452298626
-CapsuleCollider:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 4374959424473659971}
-  m_Material: {fileID: 0}
-  m_IsTrigger: 1
-  m_Enabled: 1
-  m_Radius: 0.5270803
-  m_Height: 2.0453064
-  m_Direction: 1
-  m_Center: {x: 0.003008604, y: -0.0013152361, z: 0}
 --- !u!114 &553569468365550078
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -598,3 +571,17 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 32f00fa7c9bddb34a9f2255a5ad0d669, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+--- !u!64 &6135652675925644977
+MeshCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4374959424473659971}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 4
+  m_Convex: 1
+  m_CookingOptions: 26
+  m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/JamTools/Assets/JamTools/Scenes/FPSCharacterController.unity b/JamTools/Assets/JamTools/Scenes/FPSCharacterController.unity
index 40de1c2..3fe0725 100644
--- a/JamTools/Assets/JamTools/Scenes/FPSCharacterController.unity
+++ b/JamTools/Assets/JamTools/Scenes/FPSCharacterController.unity
@@ -907,6 +907,118 @@ Mesh:
     offset: 0
     size: 0
     path: 
+--- !u!1 &108258043 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 3755607823625089725, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
+  m_PrefabInstance: {fileID: 1293970797}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &108258044
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 108258043}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 2c8f58020a68c9a4cad47eca148231ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!1 &153808474
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 153808478}
+  - component: {fileID: 153808477}
+  - component: {fileID: 153808476}
+  - component: {fileID: 153808475}
+  m_Layer: 0
+  m_Name: Cube
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!65 &153808475
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 153808474}
+  m_Material: {fileID: 13400000, guid: 47d5dc03e48dbc44d91df81dbc84c5e6, type: 2}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &153808476
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 153808474}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 2114570511
+  m_SortingLayer: 1
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &153808477
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 153808474}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &153808478
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 153808474}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -6.5, y: -1.17, z: 10.05}
+  m_LocalScale: {x: 5, y: 1, z: 5}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 12
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &190189551
 GameObject:
   m_ObjectHideFlags: 0
@@ -1414,7 +1526,7 @@ Transform:
   - {fileID: 1304633276}
   - {fileID: 459152570}
   m_Father: {fileID: 0}
-  m_RootOrder: 6
+  m_RootOrder: 7
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &239987018
 GameObject:
@@ -1480,7 +1592,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 2
+  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &279687859
 GameObject:
@@ -2822,7 +2934,7 @@ Light:
   m_Type: 1
   m_Shape: 0
   m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
-  m_Intensity: 0.51
+  m_Intensity: 0.45
   m_Range: 10
   m_SpotAngle: 30
   m_InnerSpotAngle: 21.80208
@@ -6126,7 +6238,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 9
+  m_RootOrder: 8
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &830429033
 GameObject:
@@ -7202,7 +7314,7 @@ Transform:
   - {fileID: 961102767}
   - {fileID: 1213064841}
   m_Father: {fileID: 0}
-  m_RootOrder: 12
+  m_RootOrder: 11
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &961102761
 GameObject:
@@ -7430,8 +7542,8 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 963194225}
-  m_LocalRotation: {x: -0.15235557, y: 0.7597579, z: -0.19222517, w: -0.6021672}
-  m_LocalPosition: {x: 12.90897, y: 2.986691, z: 15.034449}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 0}
@@ -8067,7 +8179,7 @@ RectTransform:
   m_Children:
   - {fileID: 1086095811}
   m_Father: {fileID: 0}
-  m_RootOrder: 3
+  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -8226,6 +8338,7 @@ GameObject:
   - component: {fileID: 1124696508}
   - component: {fileID: 1124696507}
   - component: {fileID: 1124696506}
+  - component: {fileID: 1124696510}
   m_Layer: 0
   m_Name: Cube
   m_TagString: Untagged
@@ -8283,8 +8396,8 @@ MeshRenderer:
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
-  m_SortingLayerID: 0
-  m_SortingLayer: 0
+  m_SortingLayerID: 2114570511
+  m_SortingLayer: 1
   m_SortingOrder: 0
   m_AdditionalVertexStreams: {fileID: 0}
 --- !u!33 &1124696508
@@ -8303,12 +8416,28 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1124696505}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 20.01, y: 0.52, z: 0}
+  m_LocalPosition: {x: 20.01, y: 0.91, z: 0}
   m_LocalScale: {x: 10, y: 5, z: 1}
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 11
+  m_RootOrder: 10
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!54 &1124696510
+Rigidbody:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1124696505}
+  serializedVersion: 2
+  m_Mass: 500
+  m_Drag: 0
+  m_AngularDrag: 0.05
+  m_UseGravity: 1
+  m_IsKinematic: 0
+  m_Interpolate: 0
+  m_Constraints: 0
+  m_CollisionDetection: 0
 --- !u!1 &1156133196
 GameObject:
   m_ObjectHideFlags: 0
@@ -8958,17 +9087,17 @@ PrefabInstance:
   m_Modification:
     m_TransformParent: {fileID: 0}
     m_Modifications:
-    - target: {fileID: 2071361619, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
-      propertyPath: lower
-      value: 
-      objectReference: {fileID: 1747156836}
-    - target: {fileID: 2071361619, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
-      propertyPath: upper
-      value: 
-      objectReference: {fileID: 1514607783}
+    - target: {fileID: 2798309367730113166, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
+      propertyPath: m_LocalScale.x
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 2798309367730113166, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
+      propertyPath: m_LocalScale.z
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 3755607823128161140, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
       propertyPath: m_RootOrder
-      value: 8
+      value: 13
       objectReference: {fileID: 0}
     - target: {fileID: 3755607823128161140, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
       propertyPath: m_LocalPosition.x
@@ -9014,6 +9143,22 @@ PrefabInstance:
       propertyPath: m_Name
       value: Player
       objectReference: {fileID: 0}
+    - target: {fileID: 3755607823301764067, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
+      propertyPath: m_SortingLayer
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 3755607823301764067, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
+      propertyPath: m_SortingLayerID
+      value: 2114570511
+      objectReference: {fileID: 0}
+    - target: {fileID: 3755607823301764067, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
+      propertyPath: m_Materials.Array.data[0]
+      value: 
+      objectReference: {fileID: 2100000, guid: 1f41374a6d8c5c14388e0da7ceb2fe37, type: 2}
+    - target: {fileID: 6135652675925644977, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
+      propertyPath: m_IsTrigger
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
 --- !u!4 &1293970798 stripped
@@ -9833,7 +9978,7 @@ GameObject:
   - component: {fileID: 1372386536}
   - component: {fileID: 1372386535}
   m_Layer: 0
-  m_Name: Stairs (1)
+  m_Name: Stairs
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -9898,8 +10043,8 @@ MeshRenderer:
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
-  m_SortingLayerID: 0
-  m_SortingLayer: 0
+  m_SortingLayerID: 2114570511
+  m_SortingLayer: 1
   m_SortingOrder: 0
   m_AdditionalVertexStreams: {fileID: 0}
 --- !u!114 &1372386538
@@ -13059,13 +13204,8 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 10
+  m_RootOrder: 9
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!4 &1514607783 stripped
-Transform:
-  m_CorrespondingSourceObject: {fileID: 1514607783, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
-  m_PrefabInstance: {fileID: 1293970797}
-  m_PrefabAsset: {fileID: 0}
 --- !u!1 &1537433337
 GameObject:
   m_ObjectHideFlags: 0
@@ -14619,11 +14759,6 @@ Mesh:
     offset: 0
     size: 0
     path: 
---- !u!4 &1747156836 stripped
-Transform:
-  m_CorrespondingSourceObject: {fileID: 1747156836, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
-  m_PrefabInstance: {fileID: 1293970797}
-  m_PrefabAsset: {fileID: 0}
 --- !u!1 &1833817344
 GameObject:
   m_ObjectHideFlags: 0
@@ -14659,7 +14794,7 @@ Transform:
   - {fileID: 1719779269}
   - {fileID: 1002245355}
   m_Father: {fileID: 0}
-  m_RootOrder: 5
+  m_RootOrder: 6
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1861258020
 GameObject:
@@ -14695,7 +14830,7 @@ Transform:
   - {fileID: 1537433342}
   - {fileID: 666827294}
   m_Father: {fileID: 0}
-  m_RootOrder: 4
+  m_RootOrder: 5
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1893547452
 GameObject:
@@ -15892,7 +16027,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6462871305178900895, guid: b338d16f2565167408259c170d8f52b3, type: 3}
       propertyPath: m_RootOrder
-      value: 7
+      value: 2
       objectReference: {fileID: 0}
     - target: {fileID: 6462871305178900895, guid: b338d16f2565167408259c170d8f52b3, type: 3}
       propertyPath: m_LocalPosition.x
diff --git a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs
index a5387d2..c902a9d 100644
--- a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs
+++ b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs
@@ -33,6 +33,7 @@ namespace JamTools
 
         [SerializeField] private Transform m_Eye;
 
+        [SerializeField] private PlayerBody m_Body;
         [SerializeField] private GroundChecker m_GroundChecker;
         [SerializeField] private WallChecker m_WallChecker;
 
@@ -54,6 +55,9 @@ namespace JamTools
         [SerializeField] private LayerMask m_HittableLayers;
         [SerializeField] private float m_ShotInfiniteDistance = 100f;
 
+        [Header("WallJump")]
+        [SerializeField] private float m_WallJumpForce = 1;
+
         #endregion 
 
         public Func<RaycastHit, bool> checkHit;
@@ -113,6 +117,9 @@ namespace JamTools
             if (!IsModuleActive(CharacterModule.MoveAround))
                 return;
 
+            if (!m_GroundChecker.isOnGround)
+                return;
+
             float moveX = Input.GetAxis("Horizontal");
             float moveZ = Input.GetAxis("Vertical");
 
@@ -152,8 +159,6 @@ namespace JamTools
             Vector3 velocity = new Vector3(m_MoveDirection.x * Time.deltaTime * m_MoveSpeed, vy, m_MoveDirection.z * Time.deltaTime * m_MoveSpeed);
 
             m_Rigidbody.velocity = Vector3.Lerp(m_Rigidbody.velocity, velocity, 0.25f);
-
-            Debug.Log("Move");
         }
 
         void MoveInAirUpdate()
@@ -164,9 +169,6 @@ namespace JamTools
             if (m_GroundChecker.isOnGround)
                 return;
 
-            if (m_WallChecker.IsOnWall)
-                return;
-
             float moveX = Input.GetAxis("Horizontal");
             float moveZ = Input.GetAxis("Vertical");
 
@@ -185,13 +187,10 @@ namespace JamTools
             if (m_MoveDirection.magnitude == 0)
                 return;
 
-            if (m_WallChecker.IsOnWall)
-                return;
-
             float vy = m_Rigidbody.velocity.y;
             Vector3 velocity = new Vector3(m_MoveDirection.x * Time.deltaTime * m_MoveSpeedInAir, vy, m_MoveDirection.z * Time.deltaTime * m_MoveSpeedInAir);
 
-            m_Rigidbody.velocity = Vector3.Lerp(m_Rigidbody.velocity, velocity, 0.25f);
+            m_Rigidbody.velocity = Vector3.Lerp(m_Rigidbody.velocity, velocity, 0.1f);
         }
 
         void Jump()
@@ -252,13 +251,30 @@ namespace JamTools
             return hits[0].point;
         }
 
-        void WallJumpUpdate()
+        void WallJump()
         {
+            if (!IsModuleActive(CharacterModule.WallJump))
+                return;
+
+            if (!m_WallChecker.IsOnWall)
+                return;
 
+            if(Input.GetButtonDown("Jump"))
+            {
+                Debug.Log(m_WallChecker.normal);
+                m_Rigidbody.AddForce(m_WallChecker.normal * 100);
+            }
         }
 
         void WallRun()
         {
+            if (!IsModuleActive(CharacterModule.WallRun))
+                return;
+
+            if (!m_WallChecker.IsOnWall)
+                return;
+
+
 
         }
 
@@ -287,7 +303,7 @@ namespace JamTools
             Jump();
             Dodge();
             Shot();
-            WallJumpUpdate();
+            WallJump();
             PullTrick();
         }
 
diff --git a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs
new file mode 100644
index 0000000..074b6f0
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs
@@ -0,0 +1,23 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class PlayerBody : MonoBehaviour
+{
+
+    private void OnCollisionEnter(Collision collision)
+    {
+        
+    }
+
+    private void OnCollisionStay(Collision collision)
+    {
+        
+    }
+
+    private void OnCollisionExit(Collision collision)
+    {
+        
+    }
+
+}
diff --git a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs.meta b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs.meta
new file mode 100644
index 0000000..218de82
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2c8f58020a68c9a4cad47eca148231ff
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs
index e3da563..797b0b4 100644
--- a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs
+++ b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs
@@ -14,14 +14,40 @@ public class WallChecker : MonoBehaviour
         }
     }
 
-    private void OnTriggerEnter(Collider other)
+    private Vector3 m_Normal;
+    public Vector3 normal
+    {
+        get
+        {
+            return m_Normal;
+        }
+    }
+
+    private void OnCollisionEnter(Collision collision)
     {
+        Debug.Log("OnCollisionEnter");
+
         m_IsOnWall = true;
+        m_Normal = collision.contacts[0].normal;
     }
 
-    private void OnTriggerExit(Collider other)
+    private void OnCollisionStay(Collision collision)
+    {
+        m_IsOnWall = true;
+
+    }
+
+    private void OnCollisionExit(Collision collision)
     {
         m_IsOnWall = false;
+
+    }
+
+    private void OnTriggerEnter(Collider other)
+    {
+        Debug.Log("OnCollisionEnter");
+
+        m_IsOnWall = true;
     }
 
     private void OnTriggerStay(Collider other)
@@ -30,4 +56,9 @@ public class WallChecker : MonoBehaviour
 
     }
 
+    private void OnTriggerExit(Collider other)
+    {
+        m_IsOnWall = false;
+    }
+
 }
diff --git a/JamTools/Assets/JamTools/Scripts/Utils/Editor.meta b/JamTools/Assets/JamTools/Scripts/Utils/Editor.meta
new file mode 100644
index 0000000..292ca3d
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/Utils/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f0d601d32de9dd74aa29e699ca3bb0ba
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs b/JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs
new file mode 100644
index 0000000..139072a
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs
@@ -0,0 +1,35 @@
+using UnityEngine;
+using UnityEditor;
+
+[CustomEditor(typeof(MeshRenderer))]
+public class MeshRendererEditor : Editor
+{
+    MeshRenderer meshRenderer;
+    public override void OnInspectorGUI()
+    {
+        base.OnInspectorGUI();
+        meshRenderer = target as MeshRenderer;
+
+        string[] layerNames = new string[SortingLayer.layers.Length];
+        for (int i = 0; i < SortingLayer.layers.Length; i++)
+            layerNames[i] = SortingLayer.layers[i].name;
+
+        int layerValue = SortingLayer.GetLayerValueFromName(meshRenderer.sortingLayerName);
+        layerValue = EditorGUILayout.Popup("Sorting Layer", layerValue, layerNames);
+
+        GUI.changed = false;
+
+        SortingLayer layer = SortingLayer.layers[layerValue];
+        meshRenderer.sortingLayerName = layer.name;
+        meshRenderer.sortingLayerID = layer.id;
+        meshRenderer.sortingOrder = EditorGUILayout.IntField("Order in Layer", meshRenderer.sortingOrder);
+
+        if (GUI.changed)
+        {
+            EditorUtility.SetDirty(meshRenderer);
+            AssetDatabase.SaveAssets();
+            AssetDatabase.Refresh();
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs.meta b/JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs.meta
new file mode 100644
index 0000000..76fc308
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 80862adc8955f0c4b8edde2e46cda527
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs b/JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs
new file mode 100644
index 0000000..40fe5bd
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs
@@ -0,0 +1,21 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class MeshRendererOrderModifier : MonoBehaviour
+{
+    [SerializeField] private string m_RenderLayer;
+    [SerializeField] private int m_RenderOrder;
+
+    private MeshRenderer m_MeshRenderer; 
+
+    void Start()
+    {
+        m_MeshRenderer = GetComponent<MeshRenderer>();
+        if(m_MeshRenderer != null)
+        {
+            m_MeshRenderer.sortingLayerID = SortingLayer.NameToID(m_RenderLayer);
+            m_MeshRenderer.sortingOrder = m_RenderOrder;
+        }
+    }
+}
diff --git a/JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs.meta b/JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs.meta
new file mode 100644
index 0000000..18fab3b
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bbbbac06de34c484daaf3d065f8fe527
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/JamTools/ProjectSettings/SceneTemplateSettings.json b/JamTools/ProjectSettings/SceneTemplateSettings.json
new file mode 100644
index 0000000..6f3e60f
--- /dev/null
+++ b/JamTools/ProjectSettings/SceneTemplateSettings.json
@@ -0,0 +1,167 @@
+{
+    "templatePinStates": [],
+    "dependencyTypeInfos": [
+        {
+            "userAdded": false,
+            "type": "UnityEngine.AnimationClip",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.Animations.AnimatorController",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.AnimatorOverrideController",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.Audio.AudioMixerController",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.ComputeShader",
+            "ignore": true,
+            "defaultInstantiationMode": 1,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Cubemap",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.GameObject",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.LightingDataAsset",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": false
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.LightingSettings",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Material",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.MonoScript",
+            "ignore": true,
+            "defaultInstantiationMode": 1,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.PhysicMaterial",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.PhysicsMaterial2D",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Rendering.VolumeProfile",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.SceneAsset",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": false
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Shader",
+            "ignore": true,
+            "defaultInstantiationMode": 1,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.ShaderVariantCollection",
+            "ignore": true,
+            "defaultInstantiationMode": 1,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Texture",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Texture2D",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Timeline.TimelineAsset",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        }
+    ],
+    "defaultDependencyTypeInfo": {
+        "userAdded": false,
+        "type": "<default_scene_template_dependencies>",
+        "ignore": false,
+        "defaultInstantiationMode": 1,
+        "supportsModification": true
+    },
+    "newSceneOverride": 0
+}
\ No newline at end of file
diff --git a/JamTools/ProjectSettings/TagManager.asset b/JamTools/ProjectSettings/TagManager.asset
index 06e640d..86a3ee5 100644
--- a/JamTools/ProjectSettings/TagManager.asset
+++ b/JamTools/ProjectSettings/TagManager.asset
@@ -41,3 +41,6 @@ TagManager:
   - name: Default
     uniqueID: 0
     locked: 0
+  - name: Player
+    uniqueID: 2114570511
+    locked: 0
-- 
cgit v1.1-26-g67d0