Как сделать переход между сценами спустя какое то время? - Форум Игроделов
Пт, 17 Май 2024, 09:43 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Как сделать переход между сценами спустя какое то время?
Как сделать переход между сценами спустя какое то время?
AlexCreateДата: Сб, 04 Апр 2015, 22:17 | Сообщение # 1
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
Как сделать переход допустим через 20 секунд с первой сцены на вторую?
 
СообщениеКак сделать переход допустим через 20 секунд с первой сцены на вторую?

Автор - AlexCreate
Дата добавления - 04 Апр 2015 в 22:17
ЛевшаДата: Сб, 04 Апр 2015, 22:40 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
http://docs.unity3d.com/ru....or.html
http://docs.unity3d.com/ru....el.html


X.cor.R (Prologue)
 
Сообщениеhttp://docs.unity3d.com/ru....or.html
http://docs.unity3d.com/ru....el.html

Автор - Левша
Дата добавления - 04 Апр 2015 в 22:40
AlexCreateДата: Пн, 06 Апр 2015, 23:38 | Сообщение # 3
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
Цитата Левша ()
http://docs.unity3d.com/ru....or.html
http://docs.unity3d.com/ru....el.html

Здравствуйте, я попробовал вот это:
Код
using UnityEngine;
using System.Collections;

public class LoadLvl1 : MonoBehaviour {
  void Start () {
    
    
   for (int i = 0; i > 200000; i++)
   {
    ;
   }
    
   Application.LoadLevel( 1 );
  }
}


Все работает, но переключается сразу. Помогите вставить в скрипт что-то типо время ожидания
 
Сообщение
Цитата Левша ()
http://docs.unity3d.com/ru....or.html
http://docs.unity3d.com/ru....el.html

Здравствуйте, я попробовал вот это:
Код
using UnityEngine;
using System.Collections;

public class LoadLvl1 : MonoBehaviour {
  void Start () {
    
    
   for (int i = 0; i > 200000; i++)
   {
    ;
   }
    
   Application.LoadLevel( 1 );
  }
}


Все работает, но переключается сразу. Помогите вставить в скрипт что-то типо время ожидания

Автор - AlexCreate
Дата добавления - 06 Апр 2015 в 23:38
ilyakosДата: Вт, 07 Апр 2015, 00:00 | Сообщение # 4
 
Сообщений: 171
Награды: 0
Репутация: 8
Статус: Offline
public float t;
if(t>0){
t-=Time.deltaTime;
}
if(t==0){
t = 20f;
}
if(t<0){
Application.LoadLevel( 2 );
}
 
Сообщениеpublic float t;
if(t>0){
t-=Time.deltaTime;
}
if(t==0){
t = 20f;
}
if(t<0){
Application.LoadLevel( 2 );
}

Автор - ilyakos
Дата добавления - 07 Апр 2015 в 00:00
AswoДата: Вт, 07 Апр 2015, 00:39 | Сообщение # 5
КЗОИ
 
Сообщений: 1031
Награды: 18
Репутация: 430
Статус: Offline
AlexCreate, а чем не устраивает предложенный вариант с WaitForSeconds?
Код
using UnityEngine;
using System.Collections;

public class LoadLvl1 : MonoBehaviour
{
      void Start()
      {
          //20f - время задержки, 1 - номер загружаемой сцены
          StartCoroutine(LoadLevel(20f, 1));
      }

      IEnumerator LoadLevel(float time, int level)
      {
          yield return new WaitForSeconds(time);
          Application.LoadLevel(level);
      }
}


end.
 
СообщениеAlexCreate, а чем не устраивает предложенный вариант с WaitForSeconds?
Код
using UnityEngine;
using System.Collections;

public class LoadLvl1 : MonoBehaviour
{
      void Start()
      {
          //20f - время задержки, 1 - номер загружаемой сцены
          StartCoroutine(LoadLevel(20f, 1));
      }

      IEnumerator LoadLevel(float time, int level)
      {
          yield return new WaitForSeconds(time);
          Application.LoadLevel(level);
      }
}

Автор - Aswo
Дата добавления - 07 Апр 2015 в 00:39
AlexCreateДата: Вт, 07 Апр 2015, 16:20 | Сообщение # 6
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
В итоге у меня получилось вот это:
Код
  void Start()  
   {  
    //20f - время задержки, 1 - номер загружаемой сцены  
    StartCoroutine(LoadLevel(19f, 1));  
   }  
    
   IEnumerator LoadLevel(float time, int level)  
   {  
    yield return new WaitForSeconds(time);  
    Application.LoadLevel(1);  
   }  
  }

Спасибо, работает. Хотел бы узнать как изменить скрипт, чтобы аудиозапись воиспроизводилась через 2 секунды по той же схеме.
 
СообщениеВ итоге у меня получилось вот это:
Код
  void Start()  
   {  
    //20f - время задержки, 1 - номер загружаемой сцены  
    StartCoroutine(LoadLevel(19f, 1));  
   }  
    
   IEnumerator LoadLevel(float time, int level)  
   {  
    yield return new WaitForSeconds(time);  
    Application.LoadLevel(1);  
   }  
  }

Спасибо, работает. Хотел бы узнать как изменить скрипт, чтобы аудиозапись воиспроизводилась через 2 секунды по той же схеме.

Автор - AlexCreate
Дата добавления - 07 Апр 2015 в 16:20
AswoДата: Вт, 07 Апр 2015, 18:25 | Сообщение # 7
КЗОИ
 
Сообщений: 1031
Награды: 18
Репутация: 430
Статус: Offline
AlexCreate, так то же самое.
Код
    IEnumerator PlaySound(float time)
     {
         yield return new WaitForSeconds(time);
         GetComponent<AudioSource>().Play();
     }


Не забудь повесить компонент Audio Source на объект со скриптом. Чтобы музыка не играла сразу после старта, необходимо снять галочку Play On Awake.


end.
 
СообщениеAlexCreate, так то же самое.
Код
    IEnumerator PlaySound(float time)
     {
         yield return new WaitForSeconds(time);
         GetComponent<AudioSource>().Play();
     }


Не забудь повесить компонент Audio Source на объект со скриптом. Чтобы музыка не играла сразу после старта, необходимо снять галочку Play On Awake.

Автор - Aswo
Дата добавления - 07 Апр 2015 в 18:25
QNicolyaДата: Вт, 07 Апр 2015, 18:27 | Сообщение # 8
God gave Rock'N'Roll to you
 
Сообщений: 3369
Награды: 3
Репутация: 352
Статус: Offline
AlexCreate, вот здесь можно посмотреть пример.
На основе того, что имеешь, сделай то, что нужно smile


Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
 
СообщениеAlexCreate, вот здесь можно посмотреть пример.
На основе того, что имеешь, сделай то, что нужно smile

Автор - QNicolya
Дата добавления - 07 Апр 2015 в 18:27
AlexCreateДата: Ср, 08 Апр 2015, 00:03 | Сообщение # 9
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
Вот так получилось:
Код
using UnityEngine;
using System.Collections;

public class lvl1Sound : MonoBehaviour {
   void Start()  
  {  
   //20f - время задержки, 1 - номер загружаемой сцены  
   StartCoroutine(PlaySound(4f, 1));  
  }  
   
  IEnumerator PlaySound(float time)  
  {  
   yield return new WaitForSeconds(time);  
   GetComponent<AudioSource>().Play();  
  }
}

Ошибка...
 
СообщениеВот так получилось:
Код
using UnityEngine;
using System.Collections;

public class lvl1Sound : MonoBehaviour {
   void Start()  
  {  
   //20f - время задержки, 1 - номер загружаемой сцены  
   StartCoroutine(PlaySound(4f, 1));  
  }  
   
  IEnumerator PlaySound(float time)  
  {  
   yield return new WaitForSeconds(time);  
   GetComponent<AudioSource>().Play();  
  }
}

Ошибка...

Автор - AlexCreate
Дата добавления - 08 Апр 2015 в 00:03
AswoДата: Ср, 08 Апр 2015, 00:14 | Сообщение # 10
КЗОИ
 
Сообщений: 1031
Награды: 18
Репутация: 430
Статус: Offline
AlexCreate, при вызове передаешь две переменные:
Код
StartCoroutine(PlaySound(4f, 1));  

а принимаешь одну:
Код
IEnumerator PlaySound(float time)  


PS: И стоит сообщать текст ошибки, так как экстрасенсы из нас никакие smile .


end.
 
СообщениеAlexCreate, при вызове передаешь две переменные:
Код
StartCoroutine(PlaySound(4f, 1));  

а принимаешь одну:
Код
IEnumerator PlaySound(float time)  


PS: И стоит сообщать текст ошибки, так как экстрасенсы из нас никакие smile .

Автор - Aswo
Дата добавления - 08 Апр 2015 в 00:14
AlexCreateДата: Пт, 10 Апр 2015, 16:39 | Сообщение # 11
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
Цитата Aswo ()
PS: И стоит сообщать текст ошибки, так как экстрасенсы из нас никакие .

lvl1Sound.cs(8,32): error CS1501: No overload for method `PlaySound' takes `2' arguments
lvl1Sound.cs(8,17): error CS1502: The best overloaded method match for `UnityEngine.MonoBehaviour.StartCoroutine(System.Collections.IEnumerator)' has some invalid arguments
lvl1Sound.cs(8,17): error CS1503: Argument `#1' cannot convert `object' expression to type `System.Collections.IEnumerator'
 
Сообщение
Цитата Aswo ()
PS: И стоит сообщать текст ошибки, так как экстрасенсы из нас никакие .

lvl1Sound.cs(8,32): error CS1501: No overload for method `PlaySound' takes `2' arguments
lvl1Sound.cs(8,17): error CS1502: The best overloaded method match for `UnityEngine.MonoBehaviour.StartCoroutine(System.Collections.IEnumerator)' has some invalid arguments
lvl1Sound.cs(8,17): error CS1503: Argument `#1' cannot convert `object' expression to type `System.Collections.IEnumerator'

Автор - AlexCreate
Дата добавления - 10 Апр 2015 в 16:39
AswoДата: Пт, 10 Апр 2015, 16:50 | Сообщение # 12
КЗОИ
 
Сообщений: 1031
Награды: 18
Репутация: 430
Статус: Offline
AlexCreate, я же выше написал как это исправить.

end.
 
СообщениеAlexCreate, я же выше написал как это исправить.

Автор - Aswo
Дата добавления - 10 Апр 2015 в 16:50
AlexCreateДата: Пт, 10 Апр 2015, 17:50 | Сообщение # 13
Нет аватара
 
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline
Всё-всё-всё! Дошло. Работает, спасибо =)
 
СообщениеВсё-всё-всё! Дошло. Работает, спасибо =)

Автор - AlexCreate
Дата добавления - 10 Апр 2015 в 17:50
Форум Игроделов » UNITY3D » СКРИПТИНГ » Как сделать переход между сценами спустя какое то время?
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024