using UnityEngine;
|
|
using System.Collections;
|
|
|
|
public class thirdPersonController : MonoBehaviour {
|
|
|
|
public string CAMERA_INPUT_X;
|
|
public string CAMERA_INPUT_Y;
|
|
public string MOVEMENT_INPUT_X;
|
|
public string MOVEMENT_INPUT_Y;
|
|
public string JUMP_INPUT;
|
|
|
|
public Camera camera;
|
|
public GameObject cameraCentre;
|
|
|
|
public float cameraSpeedX = 250.0f;
|
|
public float cameraSpeedY = 120.0f;
|
|
public float cameraDistance = 10.0f;
|
|
|
|
public float movementSpeed;
|
|
public float jumpHeight;
|
|
|
|
private float cameraX;
|
|
private float cameraY;
|
|
private float movementX;
|
|
private float movementY;
|
|
|
|
|
|
|
|
|
|
|
|
// Use this for initialization
|
|
void Start () {
|
|
cameraX = camera.transform.eulerAngles.x;
|
|
cameraY = camera.transform.eulerAngles.y;
|
|
|
|
}
|
|
|
|
void FixedUpdate(){
|
|
|
|
movementX = Input.GetAxis (MOVEMENT_INPUT_X);
|
|
movementY = Input.GetAxis (MOVEMENT_INPUT_Y);
|
|
|
|
Vector3 velocity = new Vector3 (movementX, 0.0f, movementY)* movementSpeed * Time.deltaTime;
|
|
//Debug.Log (velocity);
|
|
velocity = Quaternion.Euler (0.0f,camera.transform.rotation.eulerAngles.y, 0.0f) * velocity;
|
|
|
|
GetComponent<Rigidbody>().AddForce (velocity);
|
|
|
|
//if (velocity != Vector3.zero)
|
|
transform.rotation = Quaternion.Euler(new Vector3 (0.0f, camera.transform.rotation.eulerAngles.y, 0.0f));
|
|
|
|
if (Physics.Raycast (transform.position, -Vector3.up, 1.3f)) {
|
|
//print ("Raycast succeeded");
|
|
if (Input.GetButtonDown (JUMP_INPUT)) {
|
|
GetComponent<Rigidbody>().AddRelativeForce (0, jumpHeight, 0);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void LateUpdate () {
|
|
cameraX += Input.GetAxis(CAMERA_INPUT_X) * cameraSpeedX * 0.02f;
|
|
cameraY += Input.GetAxis(CAMERA_INPUT_Y) * cameraSpeedY * 0.02f;
|
|
|
|
Quaternion cameraRotation = Quaternion.Euler (cameraY, cameraX, 0.0f);
|
|
Vector3 cameraPosition = cameraRotation * new Vector3(0.0f, 0.0f, -cameraDistance) + cameraCentre.transform.position;
|
|
|
|
camera.transform.rotation = cameraRotation;
|
|
camera.transform.position = cameraPosition;
|
|
|
|
|
|
}
|
|
}
|