Got a functional implementation of wall running that I am satisfied with
This commit is contained in:
@@ -180,8 +180,8 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 194035203}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 62, y: 6.5, z: 12}
|
||||
m_LocalScale: {x: 25, y: 20, z: 0.25}
|
||||
m_LocalPosition: {x: 80, y: 6.5, z: 12}
|
||||
m_LocalScale: {x: 75, y: 20, z: 0.25}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1013482115}
|
||||
m_RootOrder: 0
|
||||
@@ -366,7 +366,7 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 203887784}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 84, y: -0.5, z: 6}
|
||||
m_LocalPosition: {x: 120, y: -0.5, z: 6}
|
||||
m_LocalScale: {x: 20, y: 0.5, z: 12}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 833538478}
|
||||
@@ -1205,7 +1205,7 @@ CapsuleCollider:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 741217452}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_IsTrigger: 1
|
||||
m_Enabled: 1
|
||||
m_Radius: 0.5
|
||||
m_Height: 2
|
||||
@@ -1404,8 +1404,8 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 858957125}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 62, y: 6.5, z: 0}
|
||||
m_LocalScale: {x: 25, y: 20, z: 0.25}
|
||||
m_LocalPosition: {x: 80, y: 6.5, z: 0}
|
||||
m_LocalScale: {x: 75, y: 20, z: 0.25}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1013482115}
|
||||
m_RootOrder: 1
|
||||
@@ -2045,8 +2045,8 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1853948297}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 62, y: -3.5, z: 6}
|
||||
m_LocalScale: {x: 25, y: 0.25, z: 12}
|
||||
m_LocalPosition: {x: 80, y: -3.5, z: 6}
|
||||
m_LocalScale: {x: 75, y: 0.25, z: 12}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 833538478}
|
||||
m_RootOrder: 1
|
||||
|
||||
@@ -22,7 +22,9 @@ public class PlayerController : MonoBehaviour
|
||||
public Transform pivot;
|
||||
public GameObject playerModel;
|
||||
|
||||
private bool wallRunning = false;
|
||||
private int jump = 0;
|
||||
private int wall = 0;
|
||||
private float maxSpeedStore;
|
||||
private float capsuleHeight;
|
||||
private float controllerHeight;
|
||||
@@ -50,7 +52,8 @@ public class PlayerController : MonoBehaviour
|
||||
|
||||
if(hit.gameObject.tag == "Wall")
|
||||
{
|
||||
gravity = 0.5f;
|
||||
wallRunning = true;
|
||||
wall++;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -72,7 +75,7 @@ public class PlayerController : MonoBehaviour
|
||||
if (jump <= 1)
|
||||
{
|
||||
//moveDirection = moveDirection.normalized * speed; //Remove this line to make running diagonal the fastest standard run
|
||||
maxSpeed = maxSpeedStore;
|
||||
//maxSpeed = maxSpeedStore;
|
||||
|
||||
} else {
|
||||
//moveDirection = (moveDirection.normalized * speed)/4; //Remove this line to make running diagonal the fastest standard run
|
||||
@@ -145,11 +148,34 @@ public class PlayerController : MonoBehaviour
|
||||
|
||||
if (characterController.collisionFlags == CollisionFlags.None)
|
||||
{
|
||||
gravity = 5;
|
||||
wallRunning = false;
|
||||
wall = 0;
|
||||
}
|
||||
|
||||
moveDirection.y += Physics.gravity.y * gravity * Time.deltaTime;
|
||||
|
||||
if (wallRunning)
|
||||
{
|
||||
maxSpeed = maxSpeedStore*1.5f;
|
||||
jump = 0;
|
||||
|
||||
if(wall == 1)
|
||||
{
|
||||
startTime = Time.time;
|
||||
}
|
||||
|
||||
if(startTime + oneSec < Time.time)
|
||||
{
|
||||
|
||||
moveDirection.y += Physics.gravity.y * (gravity/8) * Time.deltaTime;
|
||||
//wallRunning = false;
|
||||
maxSpeed = maxSpeedStore;
|
||||
|
||||
} else {
|
||||
moveDirection.y = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
velocity = Vector3.ClampMagnitude(velocity, maxSpeed);
|
||||
|
||||
velocity.y = moveDirection.y;
|
||||
|
||||
Reference in New Issue
Block a user