Noticias

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

Una ayudita con mi script?(nivel novato)

Iniciado por arkandius, Noviembre 21, 2016, 08:25:42 PM

Tema anterior - Siguiente tema
nono solo me sale ese error, por más que le de a clear con el código en void, me sigue apareciendo ese error, es el único que me sale..:/

Noviembre 21, 2016, 11:14:36 PM #16 Ultima modificación: Noviembre 21, 2016, 11:15:23 PM por kingtrase
ya vi el problema 1 min

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



aqui la solucion
 
https://forum.unity3d.com/threads/error-cannot-be-an-iterator-block-because-void-is-not-an-iterator-interface-type.144248/
 
es por el yield dentro del OntriggeerEnter, no lo podes usar asi, tenes que llamarlo dentro de un IEnumerator aparte


yield return new WaitForSecondsRealtime (audio.clip.length);

 
  quita esa mierda
 
 
 
@lightbug a la vez, jajajaja

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



Cita de: kingtrase date=1479766541

yield return new WaitForSecondsRealtime (audio.clip.length);

   
        quita esa mierda
   
   
       
   
   
      @lightbug a la vez, jajajaja
   


Ajajajjaj  maldito yield!

Vale...A ver, se ha solucionado el error, pero ha vuelto a aparecer nuestro querido NullreferenceException, aparte que ahora las herramientas ni desaparecen, ni se oye el sonido 
 
Menudo lío os tengo aquí montado xD

cuanto ocupa tu proyecto....??? subelo y te lo apaño, o exporta la escena con los datos y prefab a un asset externo de unity (.unitypackage) y lo miro a ver

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



Noviembre 21, 2016, 11:55:04 PM #22 Ultima modificación: Noviembre 21, 2016, 11:56:31 PM por arkandius
Um lo de subir mi proyecto, cuando tenga la fibra optica, porque son casi 5Gb....xDD Tengo muchos assets importados y canciones al proyecto (lo de ser novato). Como debería enviartelo entonces??
 
Si te importo solo la escena vale?

sabes exportar solo los asset que tienen que ver con esos scripts? solo lo necesario para que ese script me funcione a mi si lo importo a mi unity

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



Cita de: arkandius date=1479768490Vale...A ver, se ha solucionado el error, pero ha vuelto a aparecer nuestro querido NullreferenceException, aparte que ahora las herramientas ni desaparecen, ni se oye el sonido 
   
      Menudo lío os tengo aquí montado xD
   


Recorda que la reproduccion del sonido (me imagino que sera una onda las moneditas de mario) la haces en "registro"
 

using UnityEngine;
using System.Collections;
public class Registro : MonoBehaviour {
private int contador;
public AudioClip sonido;
// Use this for initialization
void Start ()
{
   contador = 0;
   
   if(sonido){
      gameObject.AddComponent<AudioSource>();
            GetComponent<AudioSource> ().loop = false;
             GetComponent<AudioSource> ().playOnAwake = false;
        }
}
public void SumarContador()
{
   contador++;
             
        if(GetComponent<AudioSource> ()) //fijate que se pregunta si tiene audioSOurce sino da Nullreference
         GetComponent<AudioSource> ().Play();
}
}

 
 

@lightbug esta llamando dos veces a AudioSource.Play() verdad??

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



Cita de: kingtrase date=1479769256@lightbug esta llamando dos veces a AudioSource.Play() verdad??
   


no lo creo, fijate que cuando aumenta reproduce una sola vez, lo escribi aca asi que "creo" que la sintaxis esta bien jaja

Ahora me aparecen dos errores más, pero siguen sin funcionar las herramientas :(
 
La línea 30 es :  registro = GameObject.Find("Registro").GetComponent<Registro>(); //Debes llamar al objeto que tiene el script Registro como "Registro"
 



   
      NullReferenceException: Object reference not set to an instance of an object

      Recoge_Herramientas.Start () (at Assets/Scripts/Recoge_Herramientas.cs:30)
   

[/quote]
 
 
 
Y la 45 :  registro.SumarContador();
 



   
      NullReferenceException: Object reference not set to an instance of an object

      Recoge_Herramientas.OnTriggerEnter (UnityEngine.Collider col) (at Assets/Scripts/Recoge_Herramientas.cs:45)
   

[/quote]
 
 

muestranos los scripts de Registro, Recoge_Herramientas y todos los scripts que esten implicados

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



Noviembre 22, 2016, 12:18:19 AM #29 Ultima modificación: Noviembre 22, 2016, 12:19:45 AM por arkandius
Recoge_herramientas que se le asigna al jugador :
 

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Recoge_Herramientas : MonoBehaviour
{
public GameObject jugador;
//Sonido
public AudioSource audio;
public AudioClip recogido;
private bool ispla***;
//Puntuación
private Registro registro;
/*Recoge componente y pone ispla*** "audio" false.
public void Awake()
{
   audio = GetComponent<AudioSource> ();
   ispla*** = false;
}*/
public void Start()
{
   registro = GameObject.Find("Registro").GetComponent<Registro>(); //Debes llamar al objeto que tiene el script Registro como "Registro"
}
   
//Que pasa cuando colisiona con el game object
void OnTriggerEnter(Collider col)
{
   //Comprueba que tiene tag "PickUp"
   if (col !=null && col.gameObject.tag == "PickUp")
   {
      /*Si NO se ha reproducido, iniciarlo y colocar ispla*** = true
      if (!ispla***)
      {
         audio.Play();
         ispla*** = true;
      }*/
         
      registro.SumarContador();
      Destroy (col.gameObject);
   }
}
 
}

 
 
 
Registro.cs para el contador:
 

using UnityEngine;
using System.Collections;
public class Registro : MonoBehaviour
{
private int contador;
public AudioClip sonido;
// Use this for initialization
void Start ()
{
   contador = 0;
   if (sonido)
   {
      gameObject.AddComponent<AudioSource> ();
      GetComponent<AudioSource> ().loop = false;
      GetComponent<AudioSource> ().playOnAwake = false;
   }
}
public void SumarContador()
{
   contador++;
   if (GetComponent<AudioSource> ()) //fijate que se pregunta si tiene audioSOurce sino da Nullreference
      GetComponent<AudioSource> ().Play ();
}
}

 
 
 
Estos son los scripts que intervienen con esta tarea, no tengo más 
 
 
 
 

Etiquetas: