2016-10-18 95 views
0

一旦某個按鈕被擊中,我一直難以讓我的電影開始播放。我可以讓它與void Start()一起工作,但是一旦加載了我不想要的場景,視頻就會開始播放。當按下按鈕開始播放電影時,我嘗試過這種方法。點擊開始播放電影

public MovieTexture myMovie; 
    public RawImage myLayer; 
    private new AudioSource audio; 

    public void onClick() 
    { 
     GetComponent<RawImage>().texture = myMovie as MovieTexture; 

     audio = GetComponent<AudioSource>(); 
     audio.clip = myMovie.audioClip; 
     myMovie.Play(); 
     audio.Play(); 


    } 

該電影將顯示,但不是實際播放。我敢肯定,我錯過了一些明顯的東西,但由於我是編碼技術人員,我無法弄清楚它是什麼。任何幫助將不勝感激!

+0

是有史以來爲myMovie在類的構造函數設置? –

+0

你確定onClick被調用嗎?通常它使用方法OnMouseDown來檢測點擊https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html 而對象將需要有一個碰撞器或一個GUIElement來檢測點擊。 –

回答

0

使其中將包含

void Play() 
{ 
    myMovie.Play(); 
    audio.Play(); 
} 

,並在檢查分配給按鈕組件一個自定義的方法

編輯:
我的意思是,當你使用啓動等不使用的onClick,這不是可執行的。有兩種方法:

1)你製作一個自定義方法(稱爲你想要的),例如我上面列出的,並將其分配給檢查器中的onClick字段,按+,添加一個腳本並從中選擇一個方法腳本; enter image description here

2)

public Button yourButton; 

    void Start() { 
     Button btn = yourButton.GetComponent<Button>(); 
     btn.onClick.AddListener(TaskOnClick); 
    } 

    void TaskOnClick(){ 
     Debug.Log ("You have clicked the button!"); 
    } 

像參考:docs.unity3d.com/ScriptReference/UI.Button-onClick.html

+0

是的這就是我正在試圖用上面的代碼,如果不明確,我很抱歉。當我按下執行onClick的按鈕時,電影出現但不起作用。 – Amanda

+0

我終於搞定了。我將我的方法名稱從onClick更改爲playMovie,並將其分配給電影面板而不是電影控制器,現在它的效果非常好。謝謝您的幫助! – Amanda