PlayerMovement | Showreel

PHOTO EMBED

Tue May 17 2022 16:06:41 GMT+0000 (Coordinated Universal Time)

Saved by @BiscuitTinx #c#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float moveSpeed = 6f;
    public float jumpForce = 2f;

    public Rigidbody rb;
    // public CharacterController controller;

    private Vector3 moveDirection;
    // public float gravityScale;

    public Transform Pivot;
    public float rotateSpeed;

    public GameObject playerModel;


    bool isGrounded;

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        //controller = GetComponent<CharacterController>();
    }

    // Update is called once per frame
    void FixedUpdate()
    {

        rb.velocity = new Vector3(Input.GetAxisRaw("Horizontal") * moveSpeed, rb.velocity.y, Input.GetAxisRaw("Vertical") * moveSpeed);

        if (Input.GetButtonDown("Jump") && isGrounded)
        {
            rb.velocity = new Vector3(rb.velocity.x, jumpForce, rb.velocity.z);
        }

        float yStore = rb.velocity.y;
        rb.velocity = (transform.forward * Input.GetAxisRaw("Vertical")) + (transform.right * Input.GetAxisRaw("Horizontal"));
        rb.velocity = rb.velocity.normalized * moveSpeed;
        rb.velocity = new Vector3(rb.velocity.x, yStore, rb.velocity.z);

        /* moveDirection = new Vector3(Input.GetAxis("Horizontal") * moveSpeed, 0f, Input.GetAxis("Vertical") * moveSpeed); */

        /* if (Input.GetButtonDown("Jump"))
         {
             moveDirection.y = jumpForce;
         }

         moveDirection.y = moveDirection.y + (Physics.gravity.y * gravityScale);
         controller.Move(moveDirection * Time.deltaTime); */

        // Move the player in different directions based on camera look direction

        if (Input.GetAxisRaw("Horizontal") != 0 || Input.GetAxisRaw("Vertical") != 0)
        {
            transform.rotation = Quaternion.Euler(0f, Pivot.rotation.eulerAngles.y, 0f);
            // Use this when you have a player model makes it turn smoother
           // Quaternion newRotation = Quaternion.LookRotation(new Vector3(moveDirection.x, 0f, moveDirection.z));
            //playerModel.transform.rotation = Quaternion.Slerp(playerModel.transform.rotation, newRotation, rotateSpeed * Time.deltaTime);
        }


    }

    private void Update()
    {
        if (Input.GetButtonDown("Jump") && isGrounded)
        {
            rb.velocity = new Vector3(rb.velocity.x, jumpForce, rb.velocity.z);

            isGrounded = false;
        }
    }

    private void OnCollisionStay(Collision c)
    {
        if (c.gameObject.tag == ("Ground"))

            isGrounded = true;
    }

    private void OnCollisionExit(Collision c)
    {
        if (c.gameObject.tag == ("Ground"))

            isGrounded = false;
    }


}
content_copyCOPY