diff options
author | chai <chaifix@163.com> | 2022-01-27 20:14:23 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-01-27 20:14:23 +0800 |
commit | 48ab4a903783ce6ecb102d2b9e1278716728bf82 (patch) | |
tree | 9a709729380a8385558fa70035c7a8ed7f570e70 /JamTools | |
parent | a458d265d628e11ccdb747d616f5032af2cd54bd (diff) |
*misc
Diffstat (limited to 'JamTools')
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: |