|
|
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using Random = System.Random;
-
- public class PlayerController : MonoBehaviour
- {
- public float walkSpeed;
- public GameObject model;
-
- private float speedMulitplier;
-
- private Vector2 receivedInput;
- // Start is called before the first frame update
- void Start()
- {
- speedMulitplier = UnityEngine.Random.Range(0.8f, 1.2f);
- }
-
- 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 *= Time.deltaTime * walkSpeed * speedMulitplier;
- HorseX *= Time.deltaTime * walkSpeed * speedMulitplier;
-
-
- 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(float wait)
- {
- StartCoroutine(RandomWait(wait));
- }
-
- public IEnumerator RandomWait(float wait)
- {
- yield return new WaitForSeconds(UnityEngine.Random.Range(0, wait/2));
-
- Vector3 rotateDir = new Vector3(90 * Math.Sign(receivedInput.y), 0, -90 * Math.Sign(receivedInput.x));
- model.transform.Rotate(rotateDir, Space.World);
- }
-
- // Update is called once per frame
- void Update()
- {
- UpdatePosition();
- }
- }
|