Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Alvaro95 en Octubre 21, 2018, 03:18:34 PM

Título: Problema de Script y fisica tras actualizar Unity.
Publicado por: Alvaro95 en Octubre 21, 2018, 03:18:34 PM
Buenas a todos.
 
 
 
Resulta que hace dos dias actualicé a la ultima version de unity. (Pase de la 2018.2.12f1 a la 2018.2.13f1).
 
Bueno, pues para comenzar, el primer poblema que note fueron los materiales... al pulsar cualquier objeto comenzaban a aparecer decenas de errores en la consola y ademas no podria extraer materiales ni nada(lo probe con otros modelos y en otro PC y ocurria lo mismo), tras esto note claramente que esta update venia con un bug, pero esto no era el mayor problema... resulta que cuando le di al play la fisica del juiego habia cambiado, bueno... se habia roto mejor dicho, un objeto que lo tengo asociado con un script de rotation se movia mas rapido de lo normal, y algunos hinge join presentaban una fisica no del todo corriente, me di cuenta de que claramente estaba ante un "physics broken", como ocurrio hace un año con la version "2017.2".
 
 
 
Ante esto lo primero que pense fue deinstalar la version que acababa de actualizar y volver a bajar la anterrior... y ahi fue mi sorpresa...  y es que la fisica seguia igual de fastidiada, y asi con versiones anteriores.
 
 
 
A alguien le ha ocurrido??? es que es del todo frustrante no poder solucionar el problema, he cambiado de PC, he instalado otras versiones, he probado los scripts con creando nuevos proyectos, he cambiado opciones de time y physic y nada... ¡ayuda por favor!
 
Saludos comunidad.
Título: Problema de Script y fisica tras actualizar Unity.
Publicado por: lightbug en Octubre 21, 2018, 04:06:21 PM
Cita de: Alvaro95 date=1540127914tras esto note claramente que esta update venia con un bug
   


No necesariamente, aunque Unity está siendo famoso por ser muy bugero ultimamente entr versión y versión, como es que actualizaste? chequeaste que las opciones de físicas y demas estén iguales? o hiciste un backup de las opciones? (supongo que no, yo siempre hacía uno antes de mandar mano).
 
Es raro porque los updates "f's" (creo que fixes) por lo general no la cagan tanto como de un 2018.2 a un 2018.3, pero está la posibilidad de que algo se rompa , por supuesto.
 
https://unity3d.com/unity/whatsnew/unity-2018.2.13 (https://unity3d.com/unity/whatsnew/unity-2018.2.13)
 
 
 
Cita de: Alvaro95 date=1540127914A alguien le ha ocurrido??? es que es del todo frustrante no poder solucionar el problema, he cambiado de PC, he instalado otras versiones, he probado los scripts con creando nuevos proyectos, he cambiado opciones de time y physic y nada... ¡ayuda por favor!
   


Como primer paso especificar los errores que te aparecen, ya que sino estamos todos en el aire dando ideas sin sentido. Podría a llegar a ser cualquier cosa o algo que hayan "arreglado" que antes te andaba porque en realidad andaba mal, pero ahora te da resultados desfavorables, no se, cualquier cosa. Mientras más puedas aclarar mejor, revisá la consola.
 
Ah y revisá si tenés algun asset del assetStore (gratis o pago, no importa) a veces pasan cosas raras, resulta que algo anda mal porque tenés la aberración cromática de ChiChunChan del 2009 versión 2.1.45 , suena a locura pero me ha pasado, no en relación con las físicas pero con cuestiones gráficas (justamente con un aberración cromática que descargué de Github por eso me acuerdo del efecto)
Título: Problema de Script y fisica tras actualizar Unity.
Publicado por: Alvaro95 en Octubre 21, 2018, 06:23:36 PM
Gracias por tu respuesta lightbug
 
El error de la consola era un simple  Null Reference Exception, pero estaba relaccionado con los modelos y los materiales de la nueva version, una vez que regreso a la 2018.2.12f1  todo sigue igual sin dar ningun error, tampoco son los assets instalados.
 
 
 
Sin embargo tras varios testeos he notado que realmente el problema solo afecta al script que te comenté antes.
 
Que por cierto es java , debido a que no soy experto en programacion y me es muy dificil hacer esta funcion en C, la funcion es un hinge join con el cual al mentener pulsado A, rota hacia un lado, y al pulsar Q, hacia el otro, y por ende, al pulsar Z se detiene lentamente.
 
Quizas haya otro metodo mas facil de hacer esto o mas simplificado.
 
El script:
 
(solo te adjunto el funcion update)
 

function Update () {
 var test = transform.localEulerAngles.z;
lol = test;
   GetComponent.<HingeJoint>().motor.targetVelocity = kruissnelheid;
   GetComponent.<HingeJoint>().motor.force = 010;
   if(Parken == false && Parken1 == false){
   
   if (Input.GetKey("q")) {kruissnelheid += -3*Time.maximumDeltaTime;}     
   if (Input.GetKey("a")) {kruissnelheid -= -3*Time.maximumDeltaTime;}
   if (Input.GetKey("z")){
      if(kruissnelheid < 0){kruissnelheid += 2*Time.maximumDeltaTime;}
      if(kruissnelheid > 0){kruissnelheid -= 2*Time.maximumDeltaTime;}
      if(kruissnelheid > -1 && kruissnelheid < 1){kruissnelheid = 0;}
   }
   
    if(kruissnelheid < -0.1){
      rechts = true; links = false;
      }else if (kruissnelheid > 0.1){
      rechts = false; links = true;
      }else if (kruissnelheid == 0){
      rechts = false; links = false;
      }
      
      
   kruissnelheid = Mathf.Clamp(kruissnelheid, -117, 117);

 
Lo de kruissnelheid, quiere decir el velocidad, es que esta en Aleman por varios motivos.
Título: Problema de Script y fisica tras actualizar Unity.
Publicado por: lightbug en Octubre 21, 2018, 09:51:16 PM
Cita de: Alvaro95 date=1540139016Que por cierto es java


Ahhhh bueno hubieras empezado por ahí, javascript yo no está soportado oficialmente (creo, ya vienen diciendo que no hace rato) tendrías que pensar en cambiarte, y claro no estoy seguro que sea la causa pero tiene toda la pinta. (espero).
 
Cita de: Alvaro95 date=1540139016debido a que no soy experto en programacion y me es muy dificil hacer esta funcion en C,
   


Que la estructura de la clase no te asuste, digo esto porque es sorprendente el miedo que los JS le tienen a C# (cuando son casi idénticos estructuralmente), es como un boogeyman de la programación y como consecuencia se quedan pegados a un lenguaje que en teoría no anda... Es tiempo de tomar la píldora roja .
 
 
 
Cita de: Alvaro95 date=1540139016Lo de kruissnelheid, quiere decir el velocidad, es que esta en Aleman por varios motivos.
   


Ehhh ... no voy a preguntar jajaja
Título: Problema de Script y fisica tras actualizar Unity.
Publicado por: Alvaro95 en Octubre 21, 2018, 10:27:52 PM
Jajaja, yo he probado en pasar varios script a C y la verdad es que en todos no he conseguido mucho exito, en los basicos si, cambiando alguna que otra funcion o nombre.
 
 
 
Lo de kruissnelheid  es porque los juegos en los que colaboro se desarollan en Alemania.
Título: Problema de Script y fisica tras actualizar Unity.
Publicado por: lightbug en Octubre 22, 2018, 02:41:19 AM
Cita de: Alvaro95 date=1540153672Jajaja, yo he probado en pasar varios script a C y la verdad es que en todos no he conseguido mucho exito, en los basicos si, cambiando alguna que otra funcion o nombre.
   


podés arrancar bien  por lo básico:
 

[Acceso] [Tipo] [nombre] = [Valor];

 
Para una función/método pasa similar:
 

[Acceso] [Tipo de retorno] [Nombre] ( [Argumento 1] , [Argumento 2] , ...  )
{
...
...
return [Retorno, si el tipo es void podés no llamar a return, si es otra cosa asegurate de que se retorne lo que se debe]
}

 
Para las clases típicas de Unity (el monobehaviour que se crea cuando le das a C# script)
 

public class [Nombre Del Archivo que creaste , debe coincidir] : Monobehaviour
{
[Tus métodos, o funciones de una clase, es lo mismo]
[Tus "Mensajes" , métodos que si los definís Unity los reconoce y los llama en determinados momentos]
[Por ej : OnTriggerEnter , Update, Awake, etc]
[Casi que la idea de meter un monobehaviour es usar sus mensajes]
 
[Tus IEnumarators , básicamente tus "corrutinas"]
[Digo esto porque en JS es super fácil manejarte con esto y en C# es chino básico a lo primero]
[Para correr una corrutina tenés que usar un StartCoroutine( [Nombre]() )]
[el "waitforseconds" en JS acá es un "yield return new WaitForSeconds(X)" ]
}

 
Igual la mejor forma de aprender es con la referencia de C# de Unity, pero bueno es lo diferente respecto a C# que se me ocurre ahora, ni hablar de  polimorfismo herencia interfaces delegates y demás, todo eso es supér útil si estás métido en C#, no es necesario a lo primero.
Título: Problema de Script y fisica tras actualizar Unity.
Publicado por: Igor en Octubre 22, 2018, 03:21:34 PM
yo tube problemas con alguna fisica al pasar un proyecto de unity4 a 5.... las fuerzas estaban desproporcionadas... algunas cosas salian disparadas... pero lo solucione facil ajustando los valores de fuerzas en los scripts que "fallaban".... aunque ese no es tu caso...
 
...por lo que veo en tu script, si lo quieres pasar a C#, tendrias que poner los "float" con una "f" detras
 

//porejemplo en:
if(kruissnelheid < -0.1f) {
                         
}
                        
//tambien he visto un "motor.force = 010"
//eso esta bien?

 
 
 
@lightbug, como siempre muy buena explicacion lo de:
 



   
      acceso tipo nombre = valor.
   

[/quote]
 
voy a añadir un poco mas de info:
 



   
       
   
   
      * acceso: puede ser:
   
   

  •          private (solo ese objeto puede acceder a esa variable)
          

  •       

  •          public (todos puede ver/modificar esa variable)
          

  •       

  •          protected (todos pueden ver pero no modificarla)
          

  •    

       
   

[/quote]



   
       
   
   
      * tipos:.... puf....
   
   
      int (numero entero), float (numero real (con decimales)), string (cadena de caracteres(palabra o frases)), bool (true-false), ...o cualquier otra clase
   
   
      * nombre: el nombre que quieras ponerle a tu variable.
   
   
      *valor: el valor que tiene esa variable (deve asignarse correctamente antes de usarse)
   
   
       
   

[/quote]
 
 
Título: Problema de Script y fisica tras actualizar Unity.
Publicado por: Alvaro95 en Octubre 22, 2018, 06:11:50 PM
 
 
@Igor Te he enviado un mensaje
 
 
 
¿A nadie le ha sucedido entonces?, por que yo sigo sin explicarmelo...
 
Actualizo y cambia las fuerzas y fisica y las velocidades de los scripts...
 
Y vuelvo a versiones anteriores y creo nuevos proyectos y persiste el problema.
 
Ni idea.