2014-09-02 53 views
0

我已经编写了一个脚本来播放OGG文件作为MovieTexture,我已经尝试了嵌入式资产文件,也尝试了从网络。我遇到的问题是,该视频在调试移动发挥(当我打的“游戏”选项卡上的播放按钮和测试),但是当我建立一个可执行的他们从来没有工作..MovieTexture Never Plays In Build

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

变成我使用的自定义透明漫反射着色引起的问题!卫生署!

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

现在变成

renderer.material.mainTexture = movieTexture;