|
|
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
- public class PlayerController : MonoBehaviour
- {
- public float walkSpeed;
- public GameObject model;
-
- private Vector2 receivedInput;
- // Start is called before the first frame update
- void Start()
- {
- StartCoroutine((FlipOnAxis()));
- }
-
- public void SetMovement(Vector2 input)
- {
- receivedInput = input;
- }
-
- public void UpdatePosition()
- {
- float HorseX, HorseZ;
- HorseZ = Input.GetAxisRaw("Vertical");
- HorseX = Input.GetAxisRaw("Horizontal");
-
- float rotateTo = RotateObject(HorseX, HorseZ);
-
- HorseZ = Input.GetAxis("Vertical") * Time.deltaTime * walkSpeed;
- HorseX = Input.GetAxis("Horizontal") * Time.deltaTime * walkSpeed;
-
-
- transform.Translate(HorseX, 0, HorseZ);
- LeanTween.rotateY(model, rotateTo, 0.1f);
-
- }
-
- public float RotateObject(float xInput, float zInput)
- {
- float to = model.transform.rotation.eulerAngles.y;
- //Debug.Log(to);
- if (Input.GetAxisRaw("Horizontal") != 0 || Input.GetAxis("Vertical") != 0)
- {
- if (zInput > 0 && xInput == 0)
- to = 0;
- else if (zInput < 0 && xInput == 0)
- to = 180;
- else if (zInput == 0 && xInput > 0)
- to = 90;
- else if (zInput == 0 && xInput < 0)
- to = 270;
- else if (zInput > 0 && xInput > 0)
- to = 45;
- else if (zInput < 0 && xInput > 0)
- to = 135;
- else if (zInput < 0 && xInput < 0)
- to = 225;
- else if (zInput > 0 && xInput < 0)
- to = 315;
- }
-
- return to;
- }
-
- public IEnumerator FlipOnAxis()
- {
- if (Input.GetAxisRaw("Horizontal") != 0 || Input.GetAxis("Vertical") != 0)
- {
- LeanTween.rotateX(model, -90, 0.1f);
- }
- yield return new WaitForSeconds(0.5f);
- }
- }
-
- // Update is called once per frame
- void Update()
- {
- UpdatePosition();
- }
- }
|