|
|
- using System;
- 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()
- {
- }
-
- public void SetMovement(Vector2 input)
- {
- receivedInput = input;
- }
-
- public void UpdatePosition()
- {
- float HorseX, HorseZ;
- HorseZ = receivedInput.y;
- HorseX = receivedInput.x;
-
- float rotateTo = RotateObject(HorseX, HorseZ);
-
- HorseZ *= walkSpeed;
- HorseX *= walkSpeed;
-
-
- transform.Translate(HorseX, 0, HorseZ);
-
- //Vector3 dir = Quaternion.Euler(-90, rotateTo, 0) * Vector3.forward;
- //model.transform.forward = dir;
- //LeanTween.rotateY(model, rotateTo, 0.1f);
-
- }
-
- public float RotateObject(float xInput, float zInput)
- {
- float to = model.transform.rotation.eulerAngles.y;
- //Debug.Log(to);
- if (receivedInput.x != 0 || receivedInput.y != 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 void MoveObject()
- {
- UpdatePosition();
- if (receivedInput.x != 0 || receivedInput.y != 0)
- {
- model.transform.Rotate(-90, 0, 0);
- }
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
- }
|