Seguiré subiendo videos en mi otro canal ya que me queda más fácil de controlar el contenido y los comentarios, suscríbete a Jucarave si te interesa el tema: ruclips.net/user/jucarave
se que a esta altura ya lo debes saber, pero cada que lo escucho me dan ganas de corregir: es "sensitivity", no "sensibility". Sin embargo, tienes una muy buena forma de explicar y hace muy fácil el aprendizaje.
Estupendo tutorial. Ya que has preguntado por sugerencias sobre que tipo de juegos nos gustaría ver por el canal propongo uno: RTS (estrategia en tiempo real).
bro necesito ayuda, tu codigo para el movimiento de camara no me funciono pero encontre otro que si me funciono. es este. { public float speedH = 2.0f; public float speedV = 2.0f; private float yaw = 0.0f; private float pitch = 0.0f; // Start is called before the first frame update void Start() { Cursor.lockState = CursorLockMode.Locked; } // Update is called once per frame void Update() { yaw += speedH * Input.GetAxis("Mouse X"); pitch -= speedV * Input.GetAxis("Mouse Y"); transform.eulerAngles = new Vector3(pitch , yaw , 0.0f); } } Pero como dijiste en el 4:48 cuando rota la camara. pero las flechitas y y x de la capsula no se mueven. osea si yo volteo mi camara 90 grados si le doy a W no se mueve hacia adelante, se mueve hacia a la izquierda aunque este mirando a otro lugar. plz ayuda
using System.Collections; using System.Collections.Generic; using UnityEngine; public class (Aca el nombre del Script que creaste) : MonoBehaviour { private new Transform camera; public Vector2 sensibility; // Start is called before the first frame update void Start() { camera = transform.Find("Nombre de tu camara"); Cursor.lockState = CursorLockMode.Locked; } // Update is called once per frame void Update() { float hor = Input.GetAxis("Mouse X"); float ver = Input.GetAxis("Mouse Y"); if (hor != 0) { transform.Rotate(Vector3.up * hor * sensibility.x); } if (ver != 0) { //camera.Rotate(Vector3.left * ver * sensibility.y); float angle = (camera.localEulerAngles.x - ver * sensibility.y + 360) % 360; if (angle > 180) { angle -= 360; } angle = Mathf.Clamp(angle, -60, 60); camera.localEulerAngles = Vector3.right * angle; } } }
no me sirvio pero porque no puedo mover la camara del editor osea esta parada y no puedo mover la camara no importa que ya probe con todo y no se que hacer
Hola, yo lo tengo hecho para que el objeto rote, con el teclado, con las flechas de los lados, pero al mover para lante, no guarda la rotacion, y avanza en el eje Z a 0, como podria solucionalo Gracias
lo malo de esto es al poner localEulerAngles la camara esta mirando al otro lado en vez de estar mirando al frente y esto hace que los controles del movimiento se inviertan (AYUDA SI ALGUIEN SABE COMO PODER CAMBIA LA POSICION DE LA CAMARA)
He puesto que rote también con las teclas y cuando le doy por ejemplo a Q para rotar se queda rotando infinitamente :c y si clico a rotar arriba o abajo se mezclan y rota en todas direcciones, una locura.
NullReferenceException: Object reference not set to an instance of an object micontroladorfps.FixedUpdate () (at Assets/scrips/micontroladorfps.cs:50) me sale este error ayuda
Unity me esta dando el siguiente error, NullReferenceException: Object reference not set to an instance of an object camara.Update () (at Assets/scrips/camara.cs:34)
Hola no puedo agregar FPSCamera a el jugador que en tu caso es capsule, me puedes explicar porque no me funciona. Me aparece: Can´t add script component "FPSCamera" because the script class dass cannot be found
Banda, me aparece el error CS1513: } Estoy poniendo todo tal cual como en el video pero aparece eso, alguie sabria como solucionarlo o que lo este causando ?
using System.Collections; using System.Collections.Generic; using UnityEngine; public class (Aca el nombre del Script que creaste) : MonoBehaviour { private new Transform camera; public Vector2 sensibility; // Start is called before the first frame update void Start() { camera = transform.Find("Nombre de tu camara"); Cursor.lockState = CursorLockMode.Locked; } // Update is called once per frame void Update() { float hor = Input.GetAxis("Mouse X"); float ver = Input.GetAxis("Mouse Y"); if (hor != 0) { transform.Rotate(Vector3.up * hor * sensibility.x); } if (ver != 0) { //camera.Rotate(Vector3.left * ver * sensibility.y); float angle = (camera.localEulerAngles.x - ver * sensibility.y + 360) % 360; if (angle > 180) { angle -= 360; } angle = Mathf.Clamp(angle, -60, 60); camera.localEulerAngles = Vector3.right * angle; } } }
Tengo un problema, en el script: camara.Rotate(Vector3.left * ver * sensibility.y); min: 09:47 . . . . En la parte de ''ver'' me sale este error: The name 'ver' does not exist. in the current context, alguien sabe como arreglarlo?
tengo un problema i es que al girar la camara hacia abajo o hacia arriba mientras me muevo el personaje atraviesa el suelo o sale volando, y si tiene el RigidBody i el Collider pero como el codigo le dice que vaya hacia alli se buguea i atraviesa el suelo, las paredes no. Si alguien me puede ayudar :(
hola amigo una pregunta, yo hice que al mover la camara horizontalmente tmb rote el jugador pero cuando voy para adelante pormas que gire pormas que el personaje mire para el otro lado, igualmente sigue caminando para donde miraba antes, el caso es que investige y me di cuenta que pasa porque estoy moviendo las cordenadas globales y tengo que usar las locales el caso es: ¿como hago para utilizar cordenadas locales en vez de globales? aclaro que estoy haciendo el movimiento con el character controler y uso la version de unity 5 saludos!
using System.Collections; using System.Collections.Generic; using UnityEngine; public class (Aca el nombre del Script que creaste) : MonoBehaviour { private new Transform camera; public Vector2 sensibility; // Start is called before the first frame update void Start() { camera = transform.Find("Nombre de tu camara"); Cursor.lockState = CursorLockMode.Locked; } // Update is called once per frame void Update() { float hor = Input.GetAxis("Mouse X"); float ver = Input.GetAxis("Mouse Y"); if (hor != 0) { transform.Rotate(Vector3.up * hor * sensibility.x); } if (ver != 0) { //camera.Rotate(Vector3.left * ver * sensibility.y); float angle = (camera.localEulerAngles.x - ver * sensibility.y + 360) % 360; if (angle > 180) { angle -= 360; } angle = Mathf.Clamp(angle, -60, 60); camera.localEulerAngles = Vector3.right * angle; } } }
Seguiré subiendo videos en mi otro canal ya que me queda más fácil de controlar el contenido y los comentarios, suscríbete a Jucarave si te interesa el tema: ruclips.net/user/jucarave
es normal que a la hora de poner el código las letras no se me pongan de otro color?
MUCHAS GRACIAS, EL UNICO VIDEO QUE SIRVE
se que a esta altura ya lo debes saber, pero cada que lo escucho me dan ganas de corregir: es "sensitivity", no "sensibility". Sin embargo, tienes una muy buena forma de explicar y hace muy fácil el aprendizaje.
te lo juro que e visto mas de 10 videos y solo el tuyo a funciona GRACIAS
Estupendo tutorial. Ya que has preguntado por sugerencias sobre que tipo de juegos nos gustaría ver por el canal propongo uno: RTS (estrategia en tiempo real).
interesante, sería un buen desafío. Muchas gracias por la sugerencia! Saludos
De ver tantos videos este si funciona gracias (Sub ADQUIRIDO)
Muchas gracias amigo, te explicastes muy bien y fue facil de entender
Como tienes la configuracion de Visual Studio?
Excelente, una pregunta! porqué la rotación lo colocaste en update y no en fixedupdate?
bro necesito ayuda, tu codigo para el movimiento de camara no me funciono pero encontre otro que si me funciono. es este.
{
public float speedH = 2.0f;
public float speedV = 2.0f;
private float yaw = 0.0f;
private float pitch = 0.0f;
// Start is called before the first frame update
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
yaw += speedH * Input.GetAxis("Mouse X");
pitch -= speedV * Input.GetAxis("Mouse Y");
transform.eulerAngles = new Vector3(pitch , yaw , 0.0f);
}
}
Pero como dijiste en el 4:48 cuando rota la camara. pero las flechitas y y x de la capsula no se mueven. osea si yo
volteo mi camara 90 grados si le doy a W no se mueve hacia adelante, se mueve hacia a la izquierda aunque este
mirando a otro lugar. plz ayuda
cosas del destino lo dejemos asi, ami me funciono este asi que gracias
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class (Aca el nombre del Script que creaste) : MonoBehaviour
{
private new Transform camera;
public Vector2 sensibility;
// Start is called before the first frame update
void Start()
{
camera = transform.Find("Nombre de tu camara");
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
float hor = Input.GetAxis("Mouse X");
float ver = Input.GetAxis("Mouse Y");
if (hor != 0) {
transform.Rotate(Vector3.up * hor * sensibility.x);
}
if (ver != 0) {
//camera.Rotate(Vector3.left * ver * sensibility.y);
float angle = (camera.localEulerAngles.x - ver * sensibility.y + 360) % 360;
if (angle > 180) { angle -= 360; }
angle = Mathf.Clamp(angle, -60, 60);
camera.localEulerAngles = Vector3.right * angle;
}
}
}
me pasa lo mismo
El codigo que yo tenía solo se movia hacia los lados gracias bro!!!!!!!!!!!!
es normal que a la hora de poner el código las letras no se me pongan de otro color?
nose amy tambien me pasa
dios mae que salvada sos un crack :) gracias
no me sirvio pero porque no puedo mover la camara del editor osea esta parada y no puedo mover la camara no importa que ya probe con todo y no se que hacer
Hola, yo lo tengo hecho para que el objeto rote, con el teclado, con las flechas de los lados, pero al mover para lante, no guarda la rotacion, y avanza en el eje Z a 0, como podria solucionalo
Gracias
grax
gracias me sirvio de mucho
Gracias por el apoyo
Hola que paquetes necesito descargar a visual studio?
muy buen video, gracias.
Bastante útil, me funciono
gracias amigo elunico tutorial que me funciono :)
como ha hecho la bomilla al lado de cursor
lock...
lo malo de esto es al poner localEulerAngles la camara esta mirando al otro lado en vez de estar mirando al frente y esto hace que los controles del movimiento se inviertan (AYUDA SI ALGUIEN SABE COMO PODER CAMBIA LA POSICION DE LA CAMARA)
Estoy en la misma
exelente video
He puesto que rote también con las teclas y cuando le doy por ejemplo a Q para rotar se queda rotando infinitamente :c y si clico a rotar arriba o abajo se mezclan y rota en todas direcciones, una locura.
Lo solucionaste ?
al hacer este script me salen muchos erores no se si solo funciona en la vercion 2019 yo tengo la vercion 2022
NullReferenceException: Object reference not set to an instance of an object
micontroladorfps.FixedUpdate () (at Assets/scrips/micontroladorfps.cs:50)
me sale este error ayuda
me sale un error que dice "Camera does not contain d definition dor localEulerAngles" que hago porfavor aiuda
hola ayuda el eje z de la camara tambien se mueve que hago?
papuu como se llama el programa que usas para los scripts, es dificil con el bloc de notas
Visual Studio Code si te interesa aunque ni venga del creador y fue hace banda :)
Hola no me dunciona la rotacion para arrriba
igual
tu tienes en el script: camera = transform.Find("Camera");
Intenta camera = transform.Find("Main Camera");
el Vector no me sale verde, atyuda!!
Realmente no importa, igual a mi no me sale y me funciona bien los códigos
Unity me esta dando el siguiente error,
NullReferenceException: Object reference not set to an instance of an object
camara.Update () (at Assets/scrips/camara.cs:34)
x2 si encuentras el error, agradeceria que lo pasaras, si lo encuentro te lo proporcionaré
codigo escrito please ?
Yo lo resolvi asi.
[SerializeField] float sensibilidad;
private float rotacionX;
private float rotacionY;
private void Awake() {
Cursor.lockState = CursorLockMode.Locked;
}
private void Update() {
MovimientoHorizontal();
MovimientoVertical();
}
private void MovimientoHorizontal() {
float mouseX = Input.GetAxis("Mouse X") * Time.deltaTime * sensibilidad;
rotacionX += mouseX;
transform.rotation = Quaternion.Euler(0, rotacionX, 0);
}
private void MovimientoVertical() {
float mouseY = Input.GetAxis("Mouse Y") * Time.deltaTime * sensibilidad;
rotacionY -= mouseY;
rotacionY = Mathf.Clamp(rotacionY, -90, 90);
Camera.main.transform.rotation = Quaternion.Euler(rotacionY, rotacionX, 0);
}
No tuve que calcular nada
Gente, porque cuando miro atrás y le doy a la W va hacia atrás? XD
Hola no puedo agregar FPSCamera a el jugador que en tu caso es capsule, me puedes explicar porque no me funciona. Me aparece: Can´t add script component "FPSCamera" because the script class dass cannot be found
x2 ya resolviste el problema ?
@@kanekiamvs5079 No se, se me soluciono haciendo otro proyecto y metiendo el c# antes de meter el script
Una cosa bro no se porque pero la camara se me cae por el RigidBody ayuda pls
Quítale la gravedad
juracave?
como se pone limites a la rotación horizontal??
haz lo mismo pero con el eje de la x
Banda, me aparece el error CS1513: }
Estoy poniendo todo tal cual como en el video pero aparece eso, alguie sabria como solucionarlo o que lo este causando
?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class (Aca el nombre del Script que creaste) : MonoBehaviour
{
private new Transform camera;
public Vector2 sensibility;
// Start is called before the first frame update
void Start()
{
camera = transform.Find("Nombre de tu camara");
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
float hor = Input.GetAxis("Mouse X");
float ver = Input.GetAxis("Mouse Y");
if (hor != 0) {
transform.Rotate(Vector3.up * hor * sensibility.x);
}
if (ver != 0) {
//camera.Rotate(Vector3.left * ver * sensibility.y);
float angle = (camera.localEulerAngles.x - ver * sensibility.y + 360) % 360;
if (angle > 180) { angle -= 360; }
angle = Mathf.Clamp(angle, -60, 60);
camera.localEulerAngles = Vector3.right * angle;
}
}
}
lo arreglaste yo copie todo como sale en el video y me marca el mismo error
Tengo un problema, en el script: camara.Rotate(Vector3.left * ver * sensibility.y); min: 09:47 . . . . En la parte de ''ver'' me sale este error: The name 'ver' does not exist. in the current context, alguien sabe como arreglarlo?
Buenas, eso te sale porque abajo en los if no debes estar usando la misma variable que declaraste arriba (ver)
@@valentinroldan545 Ah sisi, ya vi muchas gracias!
tengo un problema i es que al girar la camara hacia abajo o hacia arriba mientras me muevo el personaje atraviesa el suelo o sale volando, y si tiene el RigidBody i el Collider pero como el codigo le dice que vaya hacia alli se buguea i atraviesa el suelo, las paredes no.
Si alguien me puede ayudar :(
AÑADELE COLOSION AL PISO
no me funciona, podria ser pq uso visual studio?
el tmb lo usa, explica porque no funciona
hola amigo una pregunta, yo hice que al mover la camara horizontalmente tmb rote el jugador pero cuando voy para adelante pormas que gire pormas que el personaje mire para el otro lado, igualmente sigue caminando para donde miraba antes, el caso es que investige y me di cuenta que pasa porque estoy moviendo las cordenadas globales y tengo que usar las locales el caso es: ¿como hago para utilizar cordenadas locales en vez de globales? aclaro que estoy haciendo el movimiento con el character controler y uso la version de unity 5 saludos!
lo mismo pregunto
@@macroj04 si encontras la solucion decime que no me sale JASJAAJ
@@facumasri9453 jajaj resulta que lo explica en el video siguiente en la lista de reproducción en la que está este video
@@macroj04 jjajajjaa gracias
La variable Clamp me da error dice que no hay sobrecarga para el método clamp toma 2 argumentos
me puedes pasar el script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class (Aca el nombre del Script que creaste) : MonoBehaviour
{
private new Transform camera;
public Vector2 sensibility;
// Start is called before the first frame update
void Start()
{
camera = transform.Find("Nombre de tu camara");
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
float hor = Input.GetAxis("Mouse X");
float ver = Input.GetAxis("Mouse Y");
if (hor != 0) {
transform.Rotate(Vector3.up * hor * sensibility.x);
}
if (ver != 0) {
//camera.Rotate(Vector3.left * ver * sensibility.y);
float angle = (camera.localEulerAngles.x - ver * sensibility.y + 360) % 360;
if (angle > 180) { angle -= 360; }
angle = Mathf.Clamp(angle, -60, 60);
camera.localEulerAngles = Vector3.right * angle;
}
}
}
@@podeischupadmelapolla777 gracias a esta gente el mundo es un lugar mejor