Кат сцены в Unity
| |
q1w287 | Дата: Суббота, 14 Марта 2015, 19:51 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Здравствуйте. Есть отрендеренное видео. Нужно как-то сделать его на кат сцену при смерти игрока. Подскажите как это можно сделать? Если подробнее то надо остановить игру, показать видео на весь экран и затем вернуть игрока на место последнего автосохранения. Код if (other.tag == "killPoint") { Time.timeScale=0; // вроде должно останавливать, но нет GameObject instance = new GameObject(); // делаю объект instance = Instantiate(thePrefab, transform.position, transform.rotation) as GameObject;
потом есть другой скрипт который играет видео Код using UnityEngine;
[RequireComponent(typeof(AudioSource))] public class cutVideo : MonoBehaviour { public MovieTexture movTexture; public playerController pos; void Start() { renderer.material.mainTexture = movTexture; audio.clip = movTexture.audioClip; movTexture.Play(); audio.Play(); }
void Update(){ if(!movTexture.isPlaying){ Destroy(gameObject); pos.transform.position=pos.currentSavePosition; } } } Но видео не на весь экран, оно также зацикливается, объект не удаляется после проигрыша ввиду цикличности и игрок никуда не переносится. Вроде есть еще возможность это как-то через GUI делать, но что-то не нашел. Помогите люди добрые.
Сообщение отредактировал q1w287 - Суббота, 14 Марта 2015, 20:14 |
|
| |
harmoxyne | Дата: Суббота, 14 Марта 2015, 22:10 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Посмотри здесь на комментарий от Jakko van Hunen, может поможет.
|
|
| |
q1w287 | Дата: Суббота, 14 Марта 2015, 22:41 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| И так переделал скрипт играющий видео через GUI, вот: Код using UnityEngine; using System.Collections; [RequireComponent (typeof (AudioSource))]
public class cutVideo : MonoBehaviour { public MovieTexture movTexture;
void Start() { audio.clip = movTexture.audioClip; movTexture.Play(); audio.Play(); } void OnGUI() { GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), movTexture); if(movTexture.isPlaying==false) { movTexture.Stop(); Destroy(gameObject); } }
} Но все-таки остались некоторые проблемы. После проигрывания остаются новые объекты созданные здесь: Код GameObject instance = new GameObject(); // делаю объект instance = Instantiate(thePrefab, transform.position, transform.rotation) as GameObject;
И все никак не сделать остановку игры при проигрывании видео. Подскажите же кто-нибудь.Добавлено (14 марта 2015, 22:25) --------------------------------------------- QNicolya, спасибо за наводку сделал все-таки через Time.timeScale, вроде работает. Добавлено (14 марта 2015, 22:28) --------------------------------------------- Осталась последняя проблема удаление new GameObject после проигрывания видео, или может кто-то подскажет как обойтись без new GameObject, хотя наверно так нельзя. Жду от кого-нибудь помощи. Добавлено (14 марта 2015, 22:41) --------------------------------------------- Ага все оказалось проще некуда Код GameObject instance = Instantiate(thePrefab, transform.position, transform.rotation) as GameObject;
Но все-таки есть одна проблема, первый раз видео стартует с начала, а при последующих показывается конец видео, где-то секунда, а потом проигрывается все как положено. Подскажите что-нибудь.
|
|
| |
MANMANA | Дата: Воскресенье, 15 Марта 2015, 00:24 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| ну для ката можно вначале и конце черненький экран пустить - не так уж и много - секунда... не минута же. а если без костылей, то устанавливай перед проигрыванием стартовый кадр анимации через - установку нужного кадра http://docs.unity3d.com/ScriptReference/AudioSource-timeSamples.html или через установку времени http://docs.unity3d.com/ScriptReference/AudioSource-time.html
Отличный тутор по кат сценам от CGcookie http://cgcookie.com/unity....n-unity
про беды с большими файлами http://answers.unity3d.com/questio....ie.html
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
q1w287 | Дата: Воскресенье, 15 Марта 2015, 01:58 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| MANMANA, файл не большой поэтому последняя ссылка отпадает, третью знаю использовал ее, а вот по первым двум не совсем понял, это же для аудио, как это можно использовать?
|
|
| |
MANMANA | Дата: Воскресенье, 15 Марта 2015, 02:51 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| т.е. audio.clip тебя не смущает в твоем коде? а то что это используется для видео тоже не смущает? http://answers.unity3d.com/questions/192542/speed-up-video-play.html тут и на вики плагин есть ссылочка "This works fine. Unity seems to sync the video according to its audio clip"
http://www.41post.com/3687....-videos http://docs.unity3d.com/Manual/class-AudioClip.html
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
q1w287 | Дата: Воскресенье, 22 Марта 2015, 00:25 | Сообщение # 7 |
частый гость
Сейчас нет на сайте
| MANMANA, без audio.clip звук из видео проигрываться не будет или я чего-то не понимаю? ускорение по ссылке работает, но мне ускорение не надо ну допустим добавил audio.time, вот Код void Start() { audio.clip = movTexture.audioClip; audio.time = 2.0f; // должно играть со второй секунды movTexture.Play(); audio.Play(); } Должно играть со второй секунды если я правильно понимаю работу, но ничего не меняется идет конец, а потом уже ролик с начала. Может здесь какая-то проблема с duration, где-то проскакивало что он -1 и там какие-то проблемы из-за этого, но вот не могу найти что-то.Добавлено (20 марта 2015, 00:04) --------------------------------------------- Люди помогите решить проблему, кто-нибудь Добавлено (22 марта 2015, 00:25) --------------------------------------------- ПОМОГИТЕ, неужели никто не сталкивался с такой проблемой, MANMANA, или еще кто может подскажите как избавиться от этой проблемы
|
|
| |
MANMANA | Дата: Воскресенье, 22 Марта 2015, 02:13 | Сообщение # 8 |
почти ветеран
Сейчас нет на сайте
| Только в редакторе такая хрень или в скомпилированном проЭкте то же самое? тебе обязательно в ГУЕ? если на меше: if (!renderer.material.mainTexture.isPlaying) { renderer.material.mainTexture.Stop(); } renderer.material.mainTexture.Play();
Кстати, ты из кода не убрал случайно Stop, который возвращает видео в начало проигрывания?
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
q1w287 | Дата: Понедельник, 30 Марта 2015, 00:21 | Сообщение # 9 |
частый гость
Сейчас нет на сайте
| MANMANA, Нет стоп не убрал, вот: Код void OnGUI() { GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), movTexture); if(Input.GetKeyUp(KeyCode.Space) || movTexture.isPlaying==false) { movTexture.Stop(); Destroy(gameObject); } } И еще сейчас такую штуку заметил, раньше не пробовал прерывать видео досрочно, а вот если сейчас пробую, то сначала играет последний кадр на котором нажат был пробел, а потом все с начала. В скомпилированном все тоже.
Сообщение отредактировал q1w287 - Понедельник, 30 Марта 2015, 00:21 |
|
| |
MANMANA | Дата: Понедельник, 30 Марта 2015, 01:36 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
| аиииии вот такой вопрос: пробовал не удалять объект Destroy(gameObject); ? это что за объект удаляется?
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
q1w287 | Дата: Воскресенье, 05 Апреля 2015, 00:49 | Сообщение # 11 |
частый гость
Сейчас нет на сайте
| MANMANA, это удаляется GUI Добавлено (31 марта 2015, 21:59) --------------------------------------------- MANMANA, остались ли у Вас еще какие-нибудь идеи, как можно решить данную затыку Добавлено (05 апреля 2015, 00:49) --------------------------------------------- жалко что проблема так и осталась не решенной, придется искать другие пути или форумы где подскажут
Сообщение отредактировал q1w287 - Понедельник, 30 Марта 2015, 20:10 |
|
| |
|