This repository has been archived on 2023-09-13. You can view files and clone it, but cannot push or open issues or pull requests.
station_obscurum_unity/Assets/Scripts/Player/PlayerMovementController.cs
2023-04-09 22:30:54 -04:00

100 lines
2.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovementController : MonoBehaviour
{
[SerializeField]
private PlayerAnimationController animcontroller;
private float x = 0;
private float y = 0;
private float mouseX = 0;
private bool isRunning = false;
[SerializeField]
private CharacterController ccontroller;
[SerializeField]
private CameraController cameraController;
[SerializeField]
private float speed = 1f;
[SerializeField]
private float sideSpeed = 0.5f;
[SerializeField]
private float animatedRotationSpeed = 5f;
[SerializeField]
private Camera cam;
[HideInInspector]
public bool AllowRotation = false;
private Vector3 lookingDirectionVector;
private void GetMovementOld()
{
x = Input.GetAxis("Horizontal");
y = Input.GetAxis("Vertical");
isRunning = (Mathf.Abs(y) > 0.1f || Mathf.Abs(x) > 0.1f);
}
private void MovePlayer()
{
Vector3 movement = Vector3.zero;
movement += transform.forward * Mathf.Abs(y) * Time.deltaTime * speed;//+(transform.right*x*Time.deltaTime*speed);
//movement += transform.right * Mathf.Abs(x) * Time.deltaTime * sideSpeed;
movement += transform.forward * Mathf.Abs(x) * Time.deltaTime * speed;
movement += Vector3.down * 9.8f;
ccontroller.Move(movement);
}
public void SetSpeed(float speed)
{
this.speed = speed;
}
private void GetJumpOld()
{
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
AllowRotation = Input.GetMouseButton(1);
GetMovementOld();
MovePlayer();
animcontroller.Animate(new Vector2(x, y), false,isRunning);
this.lookingDirectionVector = ((cameraController.Forward * y) + cameraController.Right * x).normalized;
if (isRunning && !Input.GetMouseButtonDown(1)||AllowRotation)
{
if (AllowRotation && x == 0 && y == 0)
{
this.lookingDirectionVector = cameraController.Forward.normalized;
}
SlowLookAt(this.lookingDirectionVector);
}
}
void SlowLookAt(Vector3 targetVector)
{
Vector3 relativePos = targetVector;
Quaternion toRotation = Quaternion.LookRotation(relativePos);
transform.rotation = Quaternion.Lerp(transform.rotation, toRotation, animatedRotationSpeed * Time.deltaTime);
}
}