aboutsummaryrefslogtreecommitdiff
path: root/JamTools
diff options
context:
space:
mode:
Diffstat (limited to 'JamTools')
-rw-r--r--JamTools/Assets/JamTools/Prefabs/Player.prefab18
-rw-r--r--JamTools/Assets/JamTools/Scenes/FPSCharacterController.unity36
-rw-r--r--JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs4
-rw-r--r--JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs14
-rw-r--r--JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs40
-rw-r--r--JamTools/Assets/JamTools/Scripts/TestCollision.cs51
-rw-r--r--JamTools/Assets/JamTools/Scripts/TestCollision.cs.meta11
-rw-r--r--JamTools/Assets/JamTools/Scripts/Utils/ColliderUtility.cs59
-rw-r--r--JamTools/Assets/JamTools/Scripts/Utils/ColliderUtility.cs.meta11
9 files changed, 184 insertions, 60 deletions
diff --git a/JamTools/Assets/JamTools/Prefabs/Player.prefab b/JamTools/Assets/JamTools/Prefabs/Player.prefab
index 96fc7c7..599f41b 100644
--- a/JamTools/Assets/JamTools/Prefabs/Player.prefab
+++ b/JamTools/Assets/JamTools/Prefabs/Player.prefab
@@ -294,6 +294,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Modules: -1
m_Eye: {fileID: 3755607823435741754}
+ m_Body: {fileID: 0}
m_GroundChecker: {fileID: 3755607822235943203}
m_WallChecker: {fileID: 553569468365550078}
m_LookSensitive: 1000
@@ -378,7 +379,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ - {fileID: 2100000, guid: 1f41374a6d8c5c14388e0da7ceb2fe37, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -443,6 +444,7 @@ GameObject:
- component: {fileID: 3755607823625089713}
- component: {fileID: 3755607823625089712}
- component: {fileID: 3755607823625089715}
+ - component: {fileID: 108258044}
m_Layer: 6
m_Name: Body
m_TagString: Untagged
@@ -527,6 +529,18 @@ CapsuleCollider:
m_Height: 2
m_Direction: 1
m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &108258044
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3755607823625089725}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2c8f58020a68c9a4cad47eca148231ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &4374959424473659971
GameObject:
m_ObjectHideFlags: 0
@@ -579,7 +593,7 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4374959424473659971}
m_Material: {fileID: 0}
- m_IsTrigger: 1
+ m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 4
m_Convex: 1
diff --git a/JamTools/Assets/JamTools/Scenes/FPSCharacterController.unity b/JamTools/Assets/JamTools/Scenes/FPSCharacterController.unity
index 3fe0725..57c7423 100644
--- a/JamTools/Assets/JamTools/Scenes/FPSCharacterController.unity
+++ b/JamTools/Assets/JamTools/Scenes/FPSCharacterController.unity
@@ -907,18 +907,12 @@ 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
+--- !u!114 &108258044 stripped
MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
+ m_CorrespondingSourceObject: {fileID: 108258044, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
+ m_PrefabInstance: {fileID: 1293970797}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 108258043}
+ m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2c8f58020a68c9a4cad47eca148231ff, type: 3}
@@ -9089,12 +9083,16 @@ PrefabInstance:
m_Modifications:
- target: {fileID: 2798309367730113166, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
propertyPath: m_LocalScale.x
- value: 1
+ value: 1.05
objectReference: {fileID: 0}
- target: {fileID: 2798309367730113166, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
propertyPath: m_LocalScale.z
- value: 1
+ value: 1.05
objectReference: {fileID: 0}
+ - target: {fileID: 3755607823128161098, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
+ propertyPath: m_Body
+ value:
+ objectReference: {fileID: 108258044}
- target: {fileID: 3755607823128161140, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
propertyPath: m_RootOrder
value: 13
@@ -9143,21 +9141,9 @@ 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
+ value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 9fe5972a3b043bf459d903bda86ae2ba, type: 3}
diff --git a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs
index c902a9d..c7a5560 100644
--- a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs
+++ b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs
@@ -261,8 +261,6 @@ namespace JamTools
if(Input.GetButtonDown("Jump"))
{
- Debug.Log(m_WallChecker.normal);
- m_Rigidbody.AddForce(m_WallChecker.normal * 100);
}
}
@@ -274,8 +272,6 @@ namespace JamTools
if (!m_WallChecker.IsOnWall)
return;
-
-
}
void PullTrick()
diff --git a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs
index 074b6f0..709b756 100644
--- a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs
+++ b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs
@@ -4,6 +4,20 @@ using UnityEngine;
public class PlayerBody : MonoBehaviour
{
+ private CapsuleCollider m_CapsuleCollider;
+
+ public CapsuleCollider capsuleCollider
+ {
+ get
+ {
+ return m_CapsuleCollider;
+ }
+ }
+
+ private void Awake()
+ {
+ m_CapsuleCollider = GetComponent<CapsuleCollider>();
+ }
private void OnCollisionEnter(Collision collision)
{
diff --git a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs
index 797b0b4..946c326 100644
--- a/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs
+++ b/JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs
@@ -14,51 +14,33 @@ public class WallChecker : MonoBehaviour
}
}
- private Vector3 m_Normal;
- public Vector3 normal
+ private List<Collider> m_Colliders = new List<Collider>();
+
+ private void Update()
{
- get
+ if (m_IsOnWall && m_Colliders.Count == 0)
{
- return m_Normal;
+ m_IsOnWall = false;
}
}
- private void OnCollisionEnter(Collision collision)
- {
- Debug.Log("OnCollisionEnter");
-
- m_IsOnWall = true;
- m_Normal = collision.contacts[0].normal;
- }
-
- 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;
+
+ m_Colliders.Add(other);
}
private void OnTriggerStay(Collider other)
{
- m_IsOnWall = true;
-
}
private void OnTriggerExit(Collider other)
{
- m_IsOnWall = false;
+ if(m_Colliders.Contains(other))
+ {
+ m_Colliders.Remove(other);
+ }
}
}
diff --git a/JamTools/Assets/JamTools/Scripts/TestCollision.cs b/JamTools/Assets/JamTools/Scripts/TestCollision.cs
new file mode 100644
index 0000000..87b018f
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/TestCollision.cs
@@ -0,0 +1,51 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class TestCollision : MonoBehaviour
+{
+ // Start is called before the first frame update
+ void Start()
+ {
+
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+
+ }
+
+ private void OnCollisionEnter(Collision collision)
+ {
+ Debug.Log("OnCollisionEnter");
+
+ }
+
+ private void OnCollisionStay(Collision collision)
+ {
+
+ }
+
+ private void OnCollisionExit(Collision collision)
+ {
+
+ }
+
+
+ private void OnTriggerEnter(Collider other)
+ {
+ Debug.Log("OnTriggerEnter");
+
+ }
+
+ private void OnTriggerStay(Collider other)
+ {
+
+ }
+
+ private void OnTriggerExit(Collider other)
+ {
+ }
+
+}
diff --git a/JamTools/Assets/JamTools/Scripts/TestCollision.cs.meta b/JamTools/Assets/JamTools/Scripts/TestCollision.cs.meta
new file mode 100644
index 0000000..4d5ff9b
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/TestCollision.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 08a344d0f26d38142afbf1868e8e57b6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JamTools/Assets/JamTools/Scripts/Utils/ColliderUtility.cs b/JamTools/Assets/JamTools/Scripts/Utils/ColliderUtility.cs
new file mode 100644
index 0000000..3efe155
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/Utils/ColliderUtility.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace JamTools
+{
+
+ public static class ColliderUtility
+ {
+ private static readonly List<Vector3> s_Vertices = new List<Vector3>();
+
+ private static readonly List<int> s_Triangles = new List<int>();
+
+ private static Plane GetWorldTriangle(Transform collider, int index)
+ {
+ Vector3 position = ColliderUtility.s_Vertices[ColliderUtility.s_Triangles[3 * index]];
+ Vector3 position2 = ColliderUtility.s_Vertices[ColliderUtility.s_Triangles[3 * index + 1]];
+ Vector3 position3 = ColliderUtility.s_Vertices[ColliderUtility.s_Triangles[3 * index + 2]];
+ return new Plane(collider.TransformPoint(position), collider.TransformPoint(position2), collider.TransformPoint(position3));
+ }
+
+ public static Vector3 FindClosestPoint(Collider collider, Vector3 position)
+ {
+ return ColliderUtility.FindClosestPoint(collider, position, false);
+ }
+
+ public static Vector3 FindClosestPoint(Collider collider, Vector3 position, bool ignoreVerticalTriangles)
+ {
+ MeshCollider meshCollider;
+ if ((meshCollider = (collider as MeshCollider)) != null && !meshCollider.convex)
+ {
+ Mesh sharedMesh = meshCollider.sharedMesh;
+ sharedMesh.GetVertices(ColliderUtility.s_Vertices);
+ Plane plane = default(Plane);
+ float num = float.PositiveInfinity;
+ for (int i = 0; i < sharedMesh.subMeshCount; i++)
+ {
+ sharedMesh.GetTriangles(ColliderUtility.s_Triangles, i);
+ int j = 0;
+ int num2 = ColliderUtility.s_Triangles.Count / 3;
+ while (j < num2)
+ {
+ Plane worldTriangle = ColliderUtility.GetWorldTriangle(meshCollider.transform, j);
+ float num3 = Mathf.Abs(worldTriangle.GetDistanceToPoint(position));
+ if ((!ignoreVerticalTriangles || (!(worldTriangle.normal == Vector3.up) && !(worldTriangle.normal == Vector3.down))) && ((i == 0 && j == 0) || num3 < num))
+ {
+ plane = worldTriangle;
+ num = num3;
+ }
+ j++;
+ }
+ }
+ return plane.ClosestPointOnPlane(position);
+ }
+ return collider.ClosestPoint(position);
+ }
+ }
+
+}
diff --git a/JamTools/Assets/JamTools/Scripts/Utils/ColliderUtility.cs.meta b/JamTools/Assets/JamTools/Scripts/Utils/ColliderUtility.cs.meta
new file mode 100644
index 0000000..4d828ca
--- /dev/null
+++ b/JamTools/Assets/JamTools/Scripts/Utils/ColliderUtility.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 17d16ee713041694bb7486e050909dd8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: