- Home /
how can i put button to stop this movie?
hello ; my main problem is because of i have to define var www = new WWW(url) into function i can't access from another function like OnGUI().
var url = "http://www.unity3d.com/webplayers/Movie/sample.ogg";
function Start () {
// Start download
var www = new WWW(url);
// Make sure the movie is ready to start before we start playing
var movieTexture = www.movie;
while (!movieTexture.isReadyToPlay)
yield;
// Initialize gui texture to be 1:1 resolution centered on screen
guiTexture.texture = movieTexture;
transform.localScale = Vector3 (0,0,0);
transform.position = Vector3 (0.5,0.5,0);
guiTexture.pixelInset.xMin = -movieTexture.width / 2;
guiTexture.pixelInset.xMax = movieTexture.width / 2;
guiTexture.pixelInset.yMin = -movieTexture.height / 2;
guiTexture.pixelInset.yMax = movieTexture.height / 2;
// Assign clip to audio source
// Sync playback with audio
audio.clip = movieTexture.audioClip;
// Play both movie & sound
movieTexture.Play();
audio.Play();
}
// Make sure we have gui texture and audio source
@script RequireComponent (GUITexture)
@script RequireComponent (AudioSource)
thank you jbarba ;but my problem is i can't access to movieTexture from onGUI becuse of i define in into the start function.
Then define it out of the Start function, like this:
var movieTexture : $$anonymous$$ovieTexture;
function Start () {
www = new WWW(url);
movieTexture = www.movie;
thank you so much ;and one important question .how can i put a button to remove video from RA$$anonymous$$ because i have at least 30 video and when i play, video size goes to RA$$anonymous$$ and stay there when i play 10 video my RA$$anonymous$$ is completely full!! what do you think ?
Answer by Statement · Mar 06, 2013 at 03:05 PM
Just move the variable out of the function scope so it becomes a member variable.
var www : WWW;
var movieTexture : MovieTexture;
function Start () {
www = new WWW(url);
movieTexture = www.movie;
thank a lot Statement ♦♦ .and one important question .how can i put a button to remove video from RA$$anonymous$$ because i have at least 30 video and when i play, video size goes to RA$$anonymous$$ and stay there when i play 10 video my RA$$anonymous$$ is completely full!! what do you think ?
So, the video is going to be loaded into RA$$anonymous$$. What you should do is dispose of the www object (www.Dispose();) and unload the movie texture. I can't remember from the top of my head if you should use Resources.UnloadAsset() or Object.Destroy() but it should be one or another I think. If you use the wrong one I am sure the log will tell you.
Answer by hoy_smallfry · Mar 06, 2013 at 04:56 PM
Something like this?
void OnGUI()
{
string label = movieTexture.isPlaying ? "Pause" : "Play";
if(GUILayout.Button(label))
{
if(movieTexture.isPlaying)
{
movieTexture.Pause();
}
else
{
movieTexture.Play();
}
}
}
Then define it outside of the Start function, like this:
var movieTexture : MovieTexture;
function Start () {
www = new WWW(url);
movieTexture = www.movie;
// ... rest of the code.
That way, both functions can use it!
Your answer
Follow this Question
Related Questions
Splash videos on android and iOS? 0 Answers
Smooth Synchronized HD Video Playback 0 Answers
MovieTexture .ogg file size limit? 0 Answers
Movie Texture - lost first few seconds and long start up times 2 Answers
WWW.movie doesn't work 1 Answer