Пятница, 29 Марта 2024, 08:52

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Кат сцены в Unity
Кат сцены в 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 тебя не смущает в твоем коде? smile
а то что это используется для видео тоже не смущает? smile
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
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Кат сцены в Unity
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг