Seguimos con nuestro tutorial para aprender a usar el Character Controller y mover a tu personaje en Unity 3D 2018!!
En este video aprenderemos a mover a nuestro jugador con respecto a la direccion de la camara y al mismo tiempo ajustaremos el input para evitar incrementos en la velocidad al movernos en diagonal.
Script PlayerController:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public float horizontalMove;
public float verticalMove;
private Vector3 playerInput;
public CharacterController player;
public float playerSpeed;
private Vector3 movePlayer;
public Camera mainCamera;
private Vector3 camForward;
private Vector3 camRight;
// Use this for initialization
void Start () {
player = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update () {
horizontalMove = Input.GetAxis("Horizontal");
verticalMove = Input.GetAxis("Vertical");
playerInput = new Vector3(horizontalMove, 0, verticalMove);
playerInput = Vector3.ClampMagnitude(playerInput, 1);
CamDirection();
movePlayer = playerInput.x * camRight + playerInput.z * camForward;
player.transform.LookAt(player.transform.position + movePlayer);
player.Move(movePlayer * playerSpeed * Time.deltaTime);
Debug.Log(player.velocity.magnitude);
}
//Funcion para determinar la direccion a la que mira la camara.
public void CamDirection()
{
camForward = mainCamera.transform.forward;
camRight = mainCamera.transform.right;
camForward.y = 0;
camRight.y = 0;
camForward = camForward.normalized;
camRight = camRight.normalized;
}
}
No te pierdas esta serie de tutoriales en los que aprenderemos juntos a utilizar el motor Unity 3D y crearemos nuestros propios videojuegos!

