2014-09-02 2 views
0

MovieTexture로 OGG 파일을 재생하는 스크립트를 작성했습니다. 포함 된 애셋 파일과 웹에서 모두 시도했습니다. 제가하는 데 문제는MovieTexture가 빌드에서 재생되지 않습니다

using UnityEngine; 

namespace Assets.Scripts 
{ 
    [RequireComponent(typeof(AudioSource))] 
    public class VideoScreen : MonoBehaviour 
    { 
     public string videoUrl; 
     public bool autoPlay = true; 
     public bool loop = true; 
     public bool playAudio = true; 
     public float opacity = 1.0f; 

     private bool hasLoaded; 
     private MovieTexture movieTexture; 

     public void Start() 
     { 
      if (string.IsNullOrEmpty(videoUrl)) 
      { 
       return; 
      } 

      var data = new WWW(videoUrl); 
      movieTexture = data.movie as MovieTexture; 
     } 

     public void Update() 
     { 
      if (movieTexture.isReadyToPlay && !hasLoaded) 
      { 
       renderer.material = new Material(Shader.Find("Custom/Unlit Transparent Color")) { mainTexture = movieTexture }; 
       audio.clip = movieTexture.audioClip; 

       SetLoop(loop); 

       if (autoPlay) 
       { 
        Play(); 
       } 

       hasLoaded = true; 
      } 

      var textureColor = renderer.material.color; 
      textureColor.a = opacity; 
      renderer.material.color = textureColor; 
     } 

     private void Play() 
     { 
      movieTexture.Stop(); 
      movieTexture.Play(); 

      if (playAudio) 
      { 
       audio.Stop(); 
       audio.Play(); 
      } 
     } 

     private void Pause() 
     { 
      movieTexture.Pause(); 
      if (playAudio) 
      { 
       audio.Pause(); 
      } 
     } 

     private void Stop() 
     { 
      movieTexture.Stop(); 
      if (playAudio) 
      { 
       audio.Stop(); 
      } 
     } 

     private void SetLoop(bool loopStatus) 
     { 
      movieTexture.loop = loopStatus; 
      if (playAudio) 
      { 
       audio.loop = loopStatus; 
      } 
     } 
    } 
} 

이 할 수있는 ... (필자는 "게임"탭에서 재생 버튼 및 시험을 칠 때) 비디오 디버그 이동에서 재생하지만 실행에 빌드 할 때 그들이 작동하지 않을 것입니다 누구든지이 행동에 어떤 빛을 발산합니까?

감사

답변

0

내가 문제를 일으키는 사용 된 사용자 정의 투명 확산 쉐이더를 밝혀! Doh !!

renderer.material = new Material(Shader.Find("Custom/Unlit Transparent Color")) { mainTexture = movieTexture }; 

지금

renderer.material.mainTexture = movieTexture; 
된다
관련 문제