aboutsummaryrefslogtreecommitdiff
path: root/JamTools/Assets/JamTools/Scripts
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-01-27 17:44:31 +0800
committerchai <chaifix@163.com>2022-01-27 17:44:31 +0800
commita458d265d628e11ccdb747d616f5032af2cd54bd (patch)
tree6346d1945e546094cc5a79111224b6394cfe406d /JamTools/Assets/JamTools/Scripts
parent757c316aeaa6f894b81f56bbe944aa4a85069148 (diff)
*wall check
Diffstat (limited to 'JamTools/Assets/JamTools/Scripts')
-rw-r--r--JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/FPSCharacterController.cs38
-rw-r--r--JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs23
-rw-r--r--JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/PlayerBody.cs.meta11
-rw-r--r--JamTools/Assets/JamTools/Scripts/Character/FPSCharacterController/WallChecker.cs35
-rw-r--r--JamTools/Assets/JamTools/Scripts/Utils/Editor.meta8
-rw-r--r--JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs35
-rw-r--r--JamTools/Assets/JamTools/Scripts/Utils/Editor/MeshRendererEditor.cs.meta11
-rw-r--r--JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs21
-rw-r--r--JamTools/Assets/JamTools/Scripts/Utils/MeshRendererOrderModifier.cs.meta11
9 files changed, 180 insertions, 13 deletions
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: