Friday, March 24, 2017

Player Controller 3/24

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[System.Serializable]
public class Boundary
{
    public float xMin, xMax, zMin, zMax;
}

public class PlayerController : MonoBehaviour 
{
    public float speed;
    public float tilt;
    public Boundary boundary;

    void FixedUpdate () 
    {
        float movehorizontal = Input.GetAxis ("Horizontal");
        float movevertical = Input.GetAxis ("Vertical");

        Vector3 movement = new Vector3 (movehorizontal, 0.0f, movevertical);

        GetComponent<Rigidbody> ().velocity = movement * speed;
        GetComponent<Rigidbody> ().position = new Vector3 
            (
                Mathf.Clamp (GetComponent<Rigidbody> ().position.x, boundary.xMin, boundary.xMax), 
                0.0f, 
                Mathf.Clamp (GetComponent<Rigidbody> ().position.z, boundary.zMin, boundary.zMax)
            );
        GetComponent<Rigidbody>().rotation = Quaternion.Euler (0.0f, 0.0f, GetComponent<Rigidbody>().velocity.x * -tilt);
    }
}