Kod:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.Vehicles.Car;
public class OwnThirdPersonController : MonoBehaviour {
public Joystick LeftJoystick;
public Button Button;
public TouchField TouchField;
protected Actions Actions;
protected PlayerController PlayerController;
protected Rigidbody Rigidbody;
protected float CameraAngleY;
protected float CameraAngleSpeed = 0.1f;
protected float CameraPosY = 3f;
protected float CameraPosSpeed = 0.02f;
// Use this for initialization
void Start ()
{
Actions = GetComponent<Actions>();
PlayerController = GetComponent<PlayerController>();
Rigidbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
var input = new Vector3(LeftJoystick.inputVector.x, 0, LeftJoystick.inputVector.y);
var vel = Quaternion.AngleAxis(CameraAngleY + 180, Vector3.up) * input * 5f;
Rigidbody.velocity = new Vector3(vel.x, Rigidbody.velocity.y, vel.z);
transform.rotation = Quaternion.AngleAxis(CameraAngleY + Vector3.SignedAngle(Vector3.forward, input.normalized + Vector3.forward * 0.0001f, Vector3.up) + 180, Vector3.up);
CameraAngleY += TouchField.TouchDist.x * CameraAngleSpeed;
Camera.main.transform.position = transform.position + Quaternion.AngleAxis(CameraAngleY, Vector3.up) * new Vector3(0, CameraPosY, 4);
Camera.main.transform.rotation = Quaternion.LookRotation(transform.position + Vector3.up * 2f - Camera.main.transform.position, Vector3.up);
if (Rigidbody.velocity.magnitude > 3f)
Actions.Run();
else if (Rigidbody.velocity.magnitude > 0.5f)
Actions.Walk();
else
Actions.Stay();
}
}