Compare commits

..
2 changed files with 37 additions and 69 deletions
+12 -15
View File
@@ -484,8 +484,7 @@ MeshRenderer:
m_RayTracingMode: 2 m_RayTracingMode: 2
m_RenderingLayerMask: 1 m_RenderingLayerMask: 1
m_RendererPriority: 0 m_RendererPriority: 0
m_Materials: m_Materials: []
- {fileID: 2100000, guid: 727f61c75f8320d4ab79aaf01ab76181, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
@@ -542,29 +541,27 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
speed: 20 speed: 20
jumpHeight: 15 jumpSpeed: 20
gravity: 5 gravity: 5
rotationSpeed: 20 rotationSpeed: 20
pivot: {fileID: 1402695046} pivot: {fileID: 1402695046}
playerModel: {fileID: 615882415} playerModel: {fileID: 615882415}
--- !u!143 &741217458 --- !u!54 &741217458
CharacterController: Rigidbody:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 741217452} m_GameObject: {fileID: 741217452}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2 serializedVersion: 2
m_Height: 2 m_Mass: 1
m_Radius: 0.5 m_Drag: 5
m_SlopeLimit: 45 m_AngularDrag: 0.05
m_StepOffset: 0.3 m_UseGravity: 1
m_SkinWidth: 0.08 m_IsKinematic: 0
m_MinMoveDistance: 0.001 m_Interpolate: 0
m_Center: {x: 0, y: 0, z: 0} m_Constraints: 80
m_CollisionDetection: 0
--- !u!1 &876326172 --- !u!1 &876326172
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
+24 -53
View File
@@ -9,53 +9,48 @@ using System.Collections;
public class PlayerController : MonoBehaviour public class PlayerController : MonoBehaviour
{ {
CharacterController characterController; Rigidbody rb;
CapsuleCollider capsule;
public float speed; public float speed;
public float jumpHeight; public float jumpSpeed;
public float gravity; public float gravity;
public float rotationSpeed; public float rotationSpeed;
public Transform pivot; public Transform pivot;
public GameObject playerModel; public GameObject playerModel;
private int jump = 0; private bool extraJump = true;
private float capsuleHeight; private float distToGround;
private float controllerHeight;
private float transformHeight;
private Vector3 moveDirection; private Vector3 moveDirection;
float startTime = 0.0f;
float oneSec = 1.0f;
void Start() void Start()
{ {
characterController = GetComponent<CharacterController>(); rb = GetComponent<Rigidbody>();
capsule = GetComponent<CapsuleCollider>();
transformHeight = transform.localScale.y;
controllerHeight = characterController.height;
capsuleHeight = capsule.height;
} }
void Update() bool IsGrounded(){
return Physics.Raycast(transform.position, -Vector3.up, distToGround + 0.1f);
}
void FixedUpdate()
{ {
float yStore = moveDirection.y; float yStore = moveDirection.y;
//Need to switch to 'raw' when using keyboard //Need to switch to 'raw' when using keyboard
moveDirection = (transform.forward * Input.GetAxis("Vertical")) + (transform.right * Input.GetAxis("Horizontal")); moveDirection = (transform.forward * Input.GetAxis("Vertical")) + (transform.right * Input.GetAxis("Horizontal"));
if (jump <= 1) if (extraJump == true)
{ {
moveDirection = moveDirection.normalized * speed; //Remove this line to make running diagonal the fastest standard run moveDirection = moveDirection.normalized * speed; //Remove this line to make running diagonal the fastest standard run
} else { } else
{
moveDirection = (moveDirection.normalized * speed)/4; //Remove this line to make running diagonal the fastest standard run moveDirection = (moveDirection.normalized * speed)/4; //Remove this line to make running diagonal the fastest standard run
} }
moveDirection.y = yStore; moveDirection.y = yStore;
if (characterController.isGrounded) if (IsGrounded())
{ {
jump = 0; extraJump = true;
moveDirection.y = 0.0f; moveDirection.y = 0.0f;
if(Input.GetKey(KeyCode.LeftShift)) if(Input.GetKey(KeyCode.LeftShift))
@@ -65,48 +60,24 @@ public class PlayerController : MonoBehaviour
moveDirection = moveDirection.normalized * speed; moveDirection = moveDirection.normalized * speed;
} }
if(Input.GetKey(KeyCode.LeftControl)) if (Input.GetButtonDown("Jump"))
{ {
moveDirection.y = jumpSpeed;
characterController.height /= 2;
capsule.height /= 2;
transform.localScale = new Vector3(transform.localScale.x, transformHeight/2, transform.localScale.z);
if(Input.GetKeyDown(KeyCode.LeftControl))
{
startTime = Time.time;
}
if(characterController.velocity != new Vector3(0, 0, 0) && startTime + oneSec >= Time.time)
{
moveDirection = (moveDirection.normalized * speed * 2);
} else {
moveDirection = (moveDirection.normalized * speed/4);
} }
} else { } else {
moveDirection = moveDirection.normalized * speed; if (Input.GetButtonDown("Jump") && extraJump == true)
characterController.height = controllerHeight;
capsule.height = capsuleHeight;
transform.localScale = new Vector3(transform.localScale.x, transformHeight, transform.localScale.z);
}
}
if (Input.GetButtonDown("Jump") && jump <= 1)
{ {
moveDirection.y = jumpHeight; moveDirection.y = jumpSpeed;
jump++; extraJump = false;
} }
moveDirection.y += Physics.gravity.y * gravity * Time.deltaTime; }
moveDirection.y = moveDirection.y + (Physics.gravity.y * gravity * Time.deltaTime);
// Move the controller // Move the controller
characterController.Move(moveDirection * Time.deltaTime); rb.AddForce(moveDirection * Time.deltaTime);
//Move the player in different directions based on camera look direction //Move the player in different directions based on camera look direction
//Need to switch to 'raw' when using keyboard //Need to switch to 'raw' when using keyboard