Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Problema con MouseLook

Iniciado por st0le, Abril 07, 2017, 12:58:22 AM

Tema anterior - Siguiente tema
Abril 07, 2017, 12:58:22 AM Ultima modificación: Abril 07, 2017, 01:13:49 AM por pioj
Hola,
Estaba intentando hacer una camara fija en un personaje estilo Outlast, estaba siguiendo este tutorial: https://www.youtube.com/watch?v=-RTyXouM4dw&t=202s
Llega el momento de añadir el MouseLook.cs al personaje y me da el error "The script needs to derive from MonoBehaivour!"
En Consola me devuelve el siguiente error:
 



   
      Assets/Standard Assets/Characters/FirstPersonCharacter/Scripts/FirstPersonController.cs(29,17): error CS0246: The type or namespace name `MouseLook' could not be found. Are you missing an assembly reference?
   

[/quote]
 

He probado de comentar la linea... Pero dan mas errores.
La Linea en cuestion es esta:
      
 



   
        private MouseLook m_MouseLook;
   

[/quote]
 

Alguien tiene alguna idea de que puede estar pasando? He estado buscando en otros foros etc... Pero no me sirve nada :(
Saludos!

Un consejo y el mejor de todos que te va a evitar toneladas de problemas es no usar/confiar en codigos ajenos, si queres copia funcionalidades (siempre que las entiendas) pero nunca todo el codigo, siempre aparecen errores idiotas. Y de yapa aprendes a hacerlos vos. Obvio que la mayoria hemos robado codigo jajaj, la mejor forma de aprender y crear.
 
Te fijaste que derive de monobehavour? el codigo de donde lo sacaste? si ese es el firstPersonController standard de Unity te recomiendo que gires 180° y corras lo que mas puedas , de enserio, hacerse un controller eficiente y liviano te lleva 4 lineas de codigo para lo que seguro lo vas a usar.
 
Si queres hacer un mouseLook podes crearte uno, es super simple, los limites se lo tenes que agregar vos:
 

using UnityEngine;
using System.Collections;
public class Player_Camera : MonoBehaviour {
Transform cam;
float sensitivity = 2;   
float anglePitch = 0;
void OnEnable () {
   cam = Camera.main.transform;        
}

void Update () {
   anglePitch -= Input.GetAxis ("Mouse Y");
   transform.eulerAngles += new Vector3 (0 ,  Input.GetAxis ("Mouse X"), 0) * sensitivity;
   cam.localEulerAngles = new Vector3 (anglePitch , 0, 0) * sensitivity;
 
}
}

 
Esto se lo pones a tu player, siendo la camara hija del player.
 
en este caso lo llame Player_Camera y por ejemplo Player_Movement podria contener lo relacionado al movimiento.
 
Que loco, te dije de no usar codigos ajenos y te pase uno jajaj.

@lightbug He entrado a trastear con esto por aprender un poco, hay una cosa que no me queda clara anglePitch maneja el eje Y del ratón, ¿porqué no se invierte al quitarle el menos?
 

anglePitch = Input.GetAxis("Mouse Y");

 
También he añadido estas dos lineas para evitar poder mirar demasiado arriba y demasiado abajo en el Update()
 

if (anglePitch > 30)
anglePitch = 30;
if (anglePitch < -30)
anglePitch = -30;

 
 

Abril 07, 2017, 07:19:00 AM #3 Ultima modificación: Abril 07, 2017, 07:19:52 AM por lightbug
Cita de: Cristian Ros date=1491540180if (anglePitch > 30) anglePitch = 30; if (anglePitch < -30) anglePitch = -30;
   


tenia esas lineas pero no se porque se las quite, eso era de un script que tenia tirado por ahi, se ve que pase uno viejo.
 
 
 
Cita de: Cristian Ros date=1491540180hay una cosa que no me queda clara anglePitch maneja el eje Y del ratón, ¿porqué no se invierte al quitarle el menos?
   


var += 2  es equivalente a  var = var + 2
 
y
 
var = 2   es equivalente a var = 2 
 
si queres invertirlo tenes que sumar
 

anglePitch += Input.GetAxis("Mouse Y");

 
o restarlo cuando se lo aplicas a la camara en cam.localEulerAngles ...

@lightbug Es tan obvio que me acabo de quedar muy loco por no haberme fijado, sorry por no fijarme mejor 

Cita de: st0le date=1491519502Hola,


      Estaba intentando hacer una camara fija en un personaje estilo Outlast, estaba siguiendo este tutorial: 
https://www.youtube.com/watch?v=-RTyXouM4dw&t=202s


      Llega el momento de añadir el MouseLook.cs al personaje y me da el error "The script needs to derive from MonoBehaivour!"


      En Consola me devuelve el siguiente error:
   
   
      

      He probado de comentar la linea... Pero dan mas errores.


      La Linea en cuestion es esta:

            
   
   
      

      Alguien tiene alguna idea de que puede estar pasando? He estado buscando en otros foros etc... Pero no me sirve nada :(


      Saludos!
   


 
 
Te da ese error porque no hay una clase creada que se llame MouseLook, asegurate que en MouseLook.cs en las primeras lineas del código hay algo así y que no tiene ningún otro nombre: 
 

public class MouseLook : MonoBehaviour

 
 

Etiquetas: