Cuando en la clase pasada vimos el
=-
Conocer el motor de juegos Unity en 3D
¿Qué vamos a aprender? Historia y evolución de los motores de videojuegos
¿Qué hay detrás de un videojuego? Arte, narrativa, mecánicas, sistemas
Instalación de Unity y Unity Hub
Iniciando nuestro proyecto en Unity
Mundo tridimensional: cómo funcionan los gráficos en una computadora
Mundo tridimensional: cómo procesa los movimientos la computadora
Creando nuestro terreno: importando paquetes y assets del asset store
Importando los standard assets para importar vegetación
Ajuste de cámara de nuestro terreno
Texturizando y agregando vegetación a nuestro terreno
Creando nuestro controlador de FPS
Creación del controlador de nuestro FPS
Programando nuestro script de mira
Revisión del código y bugfixing
Control y movimiento del personaje
Importando nuestra arma a Unity
Programando el comportamiento de nuestra arma con Raycast
Cómo funcionan los colliders
Creación de enemigos estáticos
Terminar los enemigos
¿Cómo continuar tu ruta de aprendizaje profesional?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Aportes 23
Preguntas 12
Cuando en la clase pasada vimos el
=-
Un consejo para encontrar y solucionar errores más fácilmente:
Tenia este error Assets\Scripts\Mira.cs(26,62): error CS1003: Syntax error, ‘,’ expected.
Para encontrar el fallo simplemente hay que fijarse en los números dentro del paréntesis (26,62).
El primer número indica la línea donde se encuentra el error, que en este caso es la línea 26.
El segundo número muestra el caracter donde esta el error, que es el caracter 62.
Espero les sirva 😃
Me sucedía que no podía girar a los lados a pesar de tener el código igual y de probar el código que mis compañeros compartían. Estuve probando y me di cuenta que con la misma función de localRotation se puede lograr el mismo resultado, sin embargo hay que crear otra variable de rotación. aquí les dejo el código de como me quedo:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class mira : MonoBehaviour
{
public float Sensitivity=0.1f;
public Transform player1;
float xRotation = 0f;
float yRotation = 0f;
// Start is called before the first frame update
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
float mouseY = Input.GetAxis("Mouse Y")*Sensitivity;
float mouseX = Input.GetAxis("Mouse X")*Sensitivity;
xRotation -= mouseY;
yRotation += mouseX;
xRotation = Mathf.Clamp(xRotation,-90f,75f);
transform.localRotation = Quaternion.Euler(xRotation,yRotation,0f);
}
}
Cuando le damos a play el cursor desaparece debido a la instrucción que le dimos en el script, para que vuelva a aparecer solo presiona la tecla esc
Un aporte pequeño :
Si van a Edit > Project settings > Input manager > Axes pueden ver los inputs que tenemos disponibles , aquie es de donde tomamos “Mouse X” y “Mouse Y”. 😄
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Mira : MonoBehaviour
{
public float Sensitivity = 100f;
public Transform player1;
float xRotation = 0f;
// Start is called before the first frame update
void Start()
{
//
Cursor.lockState = CursorLockMode.Locked;//bloquea el cursor al centro de la ventana del juego
}
// Update is called once per frame
void Update()
{
float mouseX = Input.GetAxis("Mouse X") * Sensitivity * Time.deltaTime;//
float mouseY = Input.GetAxis("Mouse Y") * Sensitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 75f);
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);//Quaternion se ocupa para almacenar rotaciones
player1.Rotate(Vector3.up * mouseX);
}
}```
Corregí todo, puedo mover la cámara pero solo para arriba y para abajo (en el eje X) 😦 no puedo ir a los costados.
Esto cada vez se pone mejor.
Muy buen repaso y corrección de Bug. A Ricardo Izquierdo le hubiera gustado mucho esta clase.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Mouse : MonoBehaviour
{
public float Sensitivity = 100f;
public Transform player1;
float xRotation = 0f;
// Start is called before the first frame update
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
float mouseX = Input.GetAxis("Mouse X") * Sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * Sensitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90, 75f);
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
player1.Rotate(Vector3.up * mouseX);
}
}
Para colocar comentarios solo debes añadir // doble barra al inicio de la linea.
//Input.GetAxis("Mouse X") devuelve valores entre 1 y -1 dependiendo de
//la direccion a la que se mueva el mouse
float mouseX = Input.GetAxis("Mouse X") * sensibilidad * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * sensibilidad * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation,-80,75);
//Para rotar la camara
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
//Para rotar el personaje
player_1.Rotate(Vector3.up * mouseX);
Porfavor ayuda, alguien sabe que hacer en este caso, ya seguí todo y no entiendo porque falla lo estoy haciendo desde VS tal como dice el profesor.
Me sale este error :c
Aquí está lo que hice
me gustaria que no me fuera a 1 FPS jajaj
ayuda me sale eso:(
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Mira : MonoBehaviour
{
public float Sensitivity = 100f;
public Transform player1;
float xRotation = 0f;
// Start is called before the first frame update
void Start()
{
// bloquea el cursor al centro de la ventana de juego
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
// obtener el eje x del mouse
float mouseX = Input.GetAxis("Mouse X") * Sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * Sensitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation Mathf.Clamp(xRotation, -90f, 75f);
Transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
player1.Rotate(Vector3.up * mouseX);
}
}
Excelente Clase! Ya que todo funciona tratare de asimilar el codigo XD
![](
Alguien me puede decir como solucionar esos errores por favor
no se si es por la version de unity pero segun unity “TIME” does not contain a definition for “deltatime”
Excelente clase!.
Me sale como error esto en unity “The left-hand side of an assignment must be a variable, property or indexer” qué estoy haciendo mal??
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Mira : MonoBehaviour
{
public float Sensitivity = 100f;
public Transform player1;
float xRotation = 0f;
// Start is called before the first frame update
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
float mouseX = Input.GetAxis("Mouse X") = Sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") = Sensitivity * Time.deltaTime;
xRotation =- mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 75f);
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
player1.Rotate(Vector3.up * mouseX);
}
}
No me funciona! 😦 lo edito y guardo pero cuando agrego el script solo me aparece esto!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?