hidehub / Unity

0 stars 0 forks source link

THIRD PERSON Controller #1

Open hidehub opened 3 years ago

hidehub commented 3 years ago

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

public class Player : MonoBehaviour { public float speed; public float jumpForce; private float gravity = -9.81f; private bool gravityInvers = false;

public Rigidbody rb;
void Update()
{
    Move();

    if (Input.GetKeyDown(KeyCode.Space))
    {
        Jump();
    }

    if (Input.GetKeyDown(KeyCode.E))
    {
        GravityChange();        
    }
}

void Move()
{
    float x = Input.GetAxis("Horizontal");
    float z = Input.GetAxis("Vertical");

    Vector3 direction = transform.right * x + transform.forward * z;
    direction *= speed;
    direction.y = rb.velocity.y;

    rb.velocity = direction;
}

void Jump()
{
    if (CanJump())
    {
        rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
    }
}

bool CanJump()
{
    Ray ray = new Ray(transform.position, Vector3.down);
    RaycastHit hit;

    if(Physics.Raycast(ray, out hit, 0.5f))
    {
        return hit.collider != null;
    }

    return false;
}

void GravityChange()
{
    transform.Rotate(0, 0, 180);
    if (!gravityInvers)
    {
        Physics.gravity = new Vector3(0, -gravity, 0);
        gravityInvers = true;
    }
    else
    {
        Physics.gravity = new Vector3(0, gravity, 0);
        gravityInvers = false;
    }
}

}

hidehub commented 3 years ago

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

public class Camera : MonoBehaviour { public float lookSens; public float minXLook; public float maxXLook;

public Transform anchor;

private float curXRotation;

private void Start()
{
    Cursor.lockState = CursorLockMode.Locked;
}

private void LateUpdate()
{
    float x = Input.GetAxis("Mouse X");
    float y = Input.GetAxis("Mouse Y");

    transform.eulerAngles += Vector3.up * x * lookSens;

    curXRotation -= y * lookSens;
    curXRotation = Mathf.Clamp(curXRotation, minXLook, maxXLook);

    Vector3 clamedAngle = anchor.eulerAngles;
    clamedAngle.x = curXRotation;

    anchor.eulerAngles = clamedAngle;
}

}