Запуск фильма по щелчку мыши

#c# #unity3d

#c# #unity3d

Вопрос:

У меня возникли трудности с запуском воспроизведения моего фильма после нажатия определенной кнопки. Я могу заставить его работать с помощью 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 ();


    }
  

Фильм будет показан, но фактически не воспроизведен. Я уверен, что мне не хватает чего-то очевидного, но поскольку я новичок в кодировании, я не могу понять, что это такое. Любая помощь была бы высоко оценена!

Комментарии:

1. Установлен ли MyMovie когда-либо в конструкторе класса?

2. Вы уверены, что вызывается onClick? Обычно для обнаружения щелчков используется метод OnMouseDown docs.unity3d.com/ScriptReference/MonoBehaviour . OnMouseDown.html И у объекта должен быть коллайдер или элемент управления для обнаружения щелчка.

Ответ №1:

Создайте пользовательский метод, который будет содержать

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

и назначьте его компоненту кнопки в инспекторе

РЕДАКТИРОВАТЬ:
я имел в виду, не используйте onClick, как вы используете Start и т.д., Это не так исполняемо. Есть 2 способа:

1) Вы создаете пользовательский метод (называемый как угодно), например, как я перечислил выше, и назначаете его полю onClick в инспекторе, нажимаете , добавляете сценарий и выбираете метод из этого сценария; введите описание изображения здесь

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

Комментарии:

1. Да, это то, что я пытался сделать с приведенным выше кодом, извините, если это было непонятно. Когда я нажимаю кнопку, которая выполняет onClick, фильм появляется, но не работает.

2. Я, наконец, заставил его работать. Я изменил название своего метода с onClick на PlayMovie и назначил его панели movie вместо контроллера movie, и теперь он прекрасно работает. Спасибо за помощь!

Ответ №2:

Вы можете добавить видеопроигрыватель, используя Создать -> Видео -> Видеопроигрыватель

Установите видеоклип видеоплеера, режим рендеринга в качестве дальней плоскости камеры и выберите камеру в качестве основной камеры

Создайте сценарий, как указано ниже. Просто вызовите метод PlayMovie() в любом событии кнопки