Noticias

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

Error al construir apk

Iniciado por Bryan Murgas, Febrero 05, 2017, 07:33:33 PM

Tema anterior - Siguiente tema
Febrero 05, 2017, 07:33:33 PM Ultima modificación: Febrero 06, 2017, 07:33:28 PM por pioj
Hola chicos , el problema es que cuando quiero construir el apk me da error dice que hay error en el script y pues cuando corro el juego no hay error solo cuando quiero construir , este es el error:
 



   
      Error CS0118`Play.MovieTexture()' is a `method' but a `type' was expected
   

[/quote]
 
y este es el script :
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
using UnityEngine;
public class Play : MonoBehaviour {
    
    private float time;
    private Renderer renderer;
    private bool PlayVid;
    void Start ()
    {
        MovieTexture ();
    }
    void MovieTexture () 
    {
        renderer = GetComponent<Renderer>();
        PlayVid = true;
    }
        
    void Update ()
    {    
        if (PlayVid == true)
        {
            ((MovieTexture)renderer.material.mainTexture).Play(); //ESTA ES LA LINEA QUE DICE QUE TIENE ERROR
        }
        time += Time.deltaTime;
        if (time > 14)
        {
            SceneManager.LoadScene("Lvl2");
        }
        if (Input.GetMouseButtonDown ())
        {
            gameObject.GetComponent<AudioSource> ().Stop ();
                SceneManager.LoadScene("Lvl2");
        }
        
    }
}

 
 

Y eso:
 

(MovieTexture)renderer.material.mainTexture

 
Lo sacaste de una nave alienigena? jajajaa Estas haciendo un cast, no de una variable sino de un metodo. Lo que haria seria volar ese MovieTexture que es innecesario, ni siquiera para mantener el orden está y poner todo en Start:
 

void Start ()
    {        
        renderer = GetComponent<Renderer>();
        PlayVid = true;
    }
       
    void Update ()
    {  
        renderer.material.mainTexture.Play(); //ESTA ES LA LINEA QUE DICE QUE TIENE ERROR
       
        time += Time.deltaTime;
        if (time > 14)
        {
            SceneManager.LoadScene("Lvl2");
        }
        if (Input.GetMouseButtonDown (0))
        {
            gameObject.GetComponent<AudioSource> ().Stop ();
            SceneManager.LoadScene("Lvl2");
        }
       
    }
 
}

 
No se porque pusiste Play() en la textura, eso si no se que es APK. A que te referis?
 
PlayVid por el start es true, osea que el if que tenes en el update no tiene mucho sentido. Salvo que vuelvas a ponerlo en false en algun momento, usarlo de flag.
 
Salu2

deja te explico , el objeto en el que esta ese script es un cubo y a ese cubo le meti un video ogg  y solo asi el video incia por eso es que le puse play  lo que intento hacer con ese script es reproducir el video que contiene el cubo , lo logre con ese script pero el problema es que cuando intento construir la apk para android me da ese error

Ah, ahi investigue algo, en este video hace algo asi:
 


   
eature=oembed" width="480">

 
claro, por eso el Play().
 
quizas lo tendrias que haber subido a Builds Android si decis que ya andaba y sea un problema enteramente del build. Pero bueno, probaste con el codigo que puse haber si te daba el mismo error haciendo el build? 

con lo que me digiste que hiciera no reproduce nada y por cierto tengo el unity personal

Febrero 05, 2017, 11:05:48 PM #5 Ultima modificación: Febrero 05, 2017, 11:06:41 PM por lightbug
Tenes razon! no cualquier tipo de textura te da esa funcionalidad, tiene que ser un movieTexture, no sabia que existia :)
 
https://docs.unity3d.com/ScriptReference/MovieTexture.Play.html
 

public class ExampleClass : MonoBehaviour {
    public MovieTexture movTexture;
    void Start() {
        GetComponent<Renderer>().material.mainTexture = movTexture;
        movTexture.Play();
    }
}

 
Proba asi entonces:
 

public MovieTexture movieTex;   //Pones el video
void Start ()
    {        
        GetComponent<Renderer>().material.mainTexture = movieTex;
        movieTex.Play();   //Lo pondria aca, si tenes que en todo cuadro le da play puede llegar comportarse de cualquier forma
    }
       
    void Update ()
    {
        time += Time.deltaTime;
        if (time > 14)
        {
            SceneManager.LoadScene("Lvl2");
        }
        if (Input.GetMouseButtonDown (0))
        {
            gameObject.GetComponent<AudioSource> ().Stop ();
            SceneManager.LoadScene("Lvl2");
        }
       
    }
 
}

 
Si pones el Play en update manejate con un flag para que no se reproduzca constantemente. Tenes el isPlaying del mismo MovieTexture

vaya el resultado no es el mismo que yo tenia por que con tu codigo solo reproduce el video mas sinembargo no el audio pero el resultado es el mismo corre dentro del unity pero cuando quiero construir la apk para andorid da error
 
Assets/Scripts/Play.cs(10,9): error CS0246: The type or namespace name `MovieTexture' could not be found. Are you missing an assembly reference?

Cita de: Bryan Murgas date=1486332957vaya el resultado no es el mismo que yo tenia por que con tu codigo solo reproduce el video mas sinembargo no el audio pero el resultado es el mismo corre dentro del unity pero cuando quiero construir la apk para andorid da error
   
   
      Assets/Scripts/Play.cs(10,9): error CS0246: The type or namespace name `MovieTexture' could not be found. Are you missing an assembly reference?
   


Proba lo siguiente cambiando el nombre de la clase y del script por "PlayVideoScript" o algo asi, distinto al Play, ya no se si es un tema de namespaces que quizas con Android falla, ni idea.
 
El audio lo tenes que reproducir aparte, ya sea agregando el audioSource con el clip que trae el video, o creo que desde el mismo MovieTexture podes buscarlo con MovieTexture.audioClip.

Nada ya cambie el nombre y en el editor funciona bien pero al construir dice esto
 
Assets/Scripts/PlayVideos.cs(34,6): error CS0118: `PlayVideos.MovieTexture()' is a `method' but a `type' was expected
 
sera que no se puede agregar videos a unity personal ?

Cita de: Bryan Murgas date=1486334223Nada ya cambie el nombre y en el editor funciona bien pero al construir dice esto
   
   
      Assets/Scripts/PlayVideos.cs(34,6): error CS0118: `PlayVideos.MovieTexture()' is a `method' but a `type' was expected
   
   
      sera que no se puede agregar videos a unity personal ?
   


pero ahora te cambio el error, volviste al mismo del principio?, saca el metodo ese, trata de dejarlo lo mas limpio posible solo con un start para ver si anda
 

public MovieTexture movieTex;   //Pones el video
void Start ()
{        
GetComponent<Renderer>().material.mainTexture = movieTex;
     movieTex.Play();   
}

 
Creo que en Unity Personal tenes todo completo:
 
https://store.unity.com/

Febrero 05, 2017, 11:53:31 PM #10 Ultima modificación: Febrero 05, 2017, 11:56:09 PM por Bryan Murgas
vaya exactamente asi como me dices solo me dice que  hubo error al construir por que un script del editor tiene errores
 
pero no me dice cual pero obviamente es por ese script por que es el unico nuevo script que tengo y antes de agregar el video y ese script todo hiba bien
 
 
 
ya vi en donde dice que hay error y en efecto si es ese script el error esta en la linea en donde he declarado la variable publica MovieTexture ahi me manda el error

Quizas alguien que desarrolle en Android (no es mi caso) te pueda ayudar mucho mas. Espera que voy a probar a ver si falla aca tambien


Jajaj mas abajo en MovieTexture decia que no lo soportaba:
 
 
 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 


Android


 
Movie Textures are not supported on Android. Instead, full-screen streaming playback is provided using Handheld.PlayFullScreenMovie.
 


You need to keep your videos inside the StreamingAssets folder located in the Assets folder of your project.


 
Unity Android supports any movie file type supported by Android, (ie, files with the extensions .mp4 and .3gp) and using one of the following compression standards:
 


  •    H.263


  •    H.264 AVC


  •    MPEG–4 SP


However, device vendors are keen on expanding this list, so some Android devices are able to play formats other than those listed, such as HD videos.
 
For more information about the supported compression standards, consult the Android SDK Core Media Formats documentation.
 
As soon as you call Handheld.PlayFullScreenMovie the screen will fade from your current content to the designated background color. It might take some time before the movie is ready to play but in the meantime, the player will continue displaying the background color and may also display a progress indicator to let the user know the movie is loading. When playback finishes, the screen will fade back to your content.
 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 
 
Podes usar Handheld.PlayFullScreenMovie

Febrero 06, 2017, 12:32:56 AM #14 Ultima modificación: Febrero 06, 2017, 07:33:59 PM por pioj
Ya lo intente  ya cree la carpeta que dice el manual que hay que crear ya tengo el video en mp4 y luego hice este codigo
 
y nada , puedes ayudarme ?
 



   
      public class PlayVideos : MonoBehaviour {
          void Start()
          {
              StartCoroutine (PlayMovie ());
           
          }
          protected IEnumerator PlayMovie()
          {
              Handheld.PlayFullScreenMovie ("VideoSivarNights.mp4", Color.black, FullScreenMovieControlMode.Full);
              yield return new WaitForSeconds (14.5f);
              SceneManager.LoadScene("Lvl2");
          }
      }
   

[/quote]
 
 

Etiquetas: