#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() в любом событии кнопки