54 lines
1.4 KiB
C#
54 lines
1.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class PlayerMoveScript : MonoBehaviour
|
|
{
|
|
|
|
public float speed;
|
|
public float xSensitivity;
|
|
public float ySensitivity;
|
|
private Rigidbody rb;
|
|
public Camera cam;
|
|
|
|
void Start()
|
|
{
|
|
rb = GetComponent<Rigidbody>();
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
// In welche Richtung rennt der Spieler?
|
|
int moveDirX = 0;;
|
|
int moveDirZ = 0;
|
|
|
|
if(Input.GetKey(KeyCode.W)){moveDirZ++;}
|
|
if(Input.GetKey(KeyCode.S)){moveDirZ--;}
|
|
if(Input.GetKey(KeyCode.D)){moveDirX++;}
|
|
if(Input.GetKey(KeyCode.A)){moveDirX--;}
|
|
|
|
Vector3 moveDir = new Vector3(moveDirX, 0, moveDirZ);
|
|
moveDir.Normalize();
|
|
|
|
rb.velocity = transform.TransformDirection(new Vector3(moveDir.x * speed, rb.velocity.y, moveDir.z * speed));
|
|
|
|
look();
|
|
|
|
}
|
|
|
|
public void look()
|
|
{
|
|
float xMouseMovement = Input.GetAxis("Mouse X") * xSensitivity * Time.deltaTime;
|
|
float yMouseMovement = Input.GetAxis("Mouse Y") * ySensitivity * Time.deltaTime;
|
|
|
|
Vector3 currentRotation = cam.transform.rotation.eulerAngles;
|
|
|
|
float newDirX = currentRotation.y + xMouseMovement;
|
|
float newDirY = currentRotation.x - yMouseMovement;
|
|
|
|
cam.transform.rotation = Quaternion.Euler(0, newDirX, 0);
|
|
transform.rotation = Quaternion.Euler(newDirY, 0, 0);
|
|
}
|
|
}
|