player movement
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playermovement : MonoBehaviour
{
private CharacterController characterController;
public float walkspeed = 10f;
public float runSpeed = 15f;
public float speed;
public Vector3 movedirction;
public KeyCode runinputname;
public float jumpforce = 3f;
public Vector3 velocity;
public string jumpinputname = "Jump";
public bool isrun;
public float gravity = -20f;
public bool isrun1;
public bool isjump;
public bool isground;
// Start is called before the first frame update
private void Start()
{
characterController = GetComponent<CharacterController>();
runinputname = KeyCode.LeftShift;
}
// Update is called once per frame
private void Update()
{
Move();
}
public void Move()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
movedirction = (transform.right * h + transform.forward * v);
isrun = Input.GetKey(runinputname);
isrun1 = Input.GetButton("LB");
if (isrun || isrun1) { speed = runSpeed; }
else { speed = walkspeed; };
characterController.Move(movedirction * speed * Time.deltaTime);
characterController.Move(velocity * Time.deltaTime);
velocity.y += gravity * Time.deltaTime;//不在地面上(空中,累加重力值);
characterController.Move(velocity * Time.deltaTime); //施加重力;
Jump();
}
public void Jump()
{
isjump = Input.GetButtonDown(jumpinputname);
if (isjump) { velocity.y = Mathf.Sqrt(jumpforce * -2f * gravity); };
}
}
camera move
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cameramove : MonoBehaviour
{
public float mouseSensitiviy = 100f;
public Transform playerboby;
public float yRotation = 0f;
// Start is called before the first frame update
void Start()
{
transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
}
// Update is called once per frame
void Update()
{
float x = Input.GetAxis("Mouse X")*mouseSensitiviy *Time.deltaTime;
float y = Input.GetAxis("Mouse Y") *mouseSensitiviy *Time.deltaTime ;
float y1 = Input.GetAxis("Mouse Y") ;
float x1 = Input.GetAxis("Mouse X");
yRotation -= y;
if ((Mathf.Abs(y1) > 0.1)&&(yRotation< 70) && (yRotation > -100))
{
transform.localRotation = Quaternion.Euler(yRotation, 0f, 0f);
}
else
{ }
if (Mathf.Abs(x1) > 0.1)
{ playerboby.Rotate(Vector3.up * x); }
else
{ }
//transform.localRotation = Quaternion.AngleAxis(yRotation, Vector3.right);
//playerboby.Rotate(Vector3.up * x);
}
}