[Решено при помощи костыля]Музыка через сцены без запинки

Программирование на Юнити.

[Решено при помощи костыля]Музыка через сцены без запинки

Сообщение 12sd 27 июл 2011, 13:22

Окончательный вариант:
Music.js (вешаем на объект Music, на него музыку, снимаем галочку "Play automaticly"
Синтаксис:
Используется javascript
static var music :boolean;
function Awake() {
        if ( Music.music) {DestroyImmediate(gameObject);}       //проверяем на клоны объекта
        music = true;
        audio.Play(); //рулим музыку
        print("Music should be");
        var gameMusic : GameObject = GameObject.Find("Music");
    DontDestroyOnLoad(gameObject);
}
 

Follow.js (тоже вешаем на Music, а вместо Player - имя объекта, за которым ползать надо
Синтаксис:
Используется javascript
private var gameMusic : GameObject;
private var player : GameObject;

function Awake () {
        gameMusic = GameObject.Find ("Music");
       
}

function Update () {
        player = GameObject.Find ("Player");
        gameMusic.transform.position = player.transform.position;
}

Может кому-то и поможет.
Последний раз редактировалось 12sd 27 июл 2011, 14:43, всего редактировалось 6 раз(а).
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [НЕ решил]Таргет на префаб

Сообщение 12sd 27 июл 2011, 13:36

Короче, нужно задавать Transform через ЭТО :
GameObject.Find("Player");
Ща опробую, отпишусь.
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [НЕ решил]Таргет на префаб

Сообщение 12sd 27 июл 2011, 13:37

Мозги кипят.
Cannot convert 'UnityEngine.GameObject' to 'UnityEngine.Transform'.

Transform.Find("Player");
А я пока остужусь, идиот.
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [НЕ решил]Таргет на префаб

Сообщение 12sd 27 июл 2011, 13:38

А и вообще прикольно самим с собою болтать. :D
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [НЕ решил]Таргет на префаб

Сообщение 12sd 27 июл 2011, 13:40

An instance of type 'UnityEngine.Transform' is required to access non static member 'Find'.

Короче
Синтаксис:
Используется javascript
var target : Transform=Transform.Find("Sphere");
 

плюет ошибкой
An instance of type 'UnityEngine.Transform' is required to access non static member 'Find'.
Но ведь и так тип Transform!
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [НЕ решил]Таргет на префаб

Сообщение 3Dragon 27 июл 2011, 13:48

Нэ?

Синтаксис:
Используется javascript
private var gameMusic : GameObject;
private var player : GameObject;

function Awake () {
        gameMusic = GameObject.Find ("gameMusic");
        player = GameObject.Find ("Player");
}

function Update () {
        gameMusic.transform.position = player.transform.position;
}
Глаза боятся, а руки - крюки.
3Dragon
UNIт
 
Сообщения: 61
Зарегистрирован: 25 ноя 2009, 21:50
Откуда: Санкт-Петербург
  • ICQ

Re: [НЕ решил]Таргет на префаб

Сообщение 12sd 27 июл 2011, 13:56

3Dragon писал(а):Нэ?

Синтаксис:
Используется javascript
private var gameMusic : GameObject;
private var player : GameObject;

function Awake () {
        gameMusic = GameObject.Find ("gameMusic");
        player = GameObject.Find ("Player");
}

function Update () {
        gameMusic.transform.position = player.transform.position;
}


На первой сцене всё ОК, а потом
The object of type 'GameObject' has been destroyed but you are still trying to access it.
Хотя объект Music есть и музыка играет, но из другого места.
Хотя объект и не дестроится. А плеер дестроится и создается заново. Из префаба.
То есть надо вызывать player = GameObject.Find("Player"); не в Awake, а тогда, когда грузится сцена.
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [НЕ решил]Таргет на префаб

Сообщение Zaicheg 27 июл 2011, 14:00

12sd писал(а):А и вообще прикольно самим с собою болтать. :D

Здесь не чат. Предупреждение.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: [НЕ решил]Таргет на префаб

Сообщение 12sd 27 июл 2011, 14:00

В принципе есть Application.isLoadingLevel, но как-то...
Есть функция, которая вызывается когда была загружена сцена?
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [НЕ решил]Таргет на префаб

Сообщение 3Dragon 27 июл 2011, 14:01

Глаза боятся, а руки - крюки.
3Dragon
UNIт
 
Сообщения: 61
Зарегистрирован: 25 ноя 2009, 21:50
Откуда: Санкт-Петербург
  • ICQ

Re: [НЕ решил]Таргет на префаб

Сообщение 12sd 27 июл 2011, 14:02


Музыку я так и делаю, а плеера надо дестроить. Там хранятся очки за левел и т.д.
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [НЕ решил]Таргет на префаб

Сообщение 3Dragon 27 июл 2011, 14:05

Определитесь со структурой приложения и четче обозначьте задачу. Тогда появятся варианты.
Пока что вижу только тотальное нежелание читать справку, в которой все есть.
Глаза боятся, а руки - крюки.
3Dragon
UNIт
 
Сообщения: 61
Зарегистрирован: 25 ноя 2009, 21:50
Откуда: Санкт-Петербург
  • ICQ

Re: [НЕ решил]Таргет на префаб

Сообщение 12sd 27 июл 2011, 14:07

3Dragon писал(а):...в которой все есть.

поиска нормального нет.
объект Music не дестроится, Player плеер дестроится и загружается заново.
Нужно Music направлять за Player-ом, то есть каждый раз при загрузке сцены находить объект Player.
Всё.
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [НЕ решил]Таргет на префаб

Сообщение 12sd 27 июл 2011, 14:11

Пока пихнул
player = GameObject.Find ("Sphere");
в Update ()
Но ведь это костыль. Неужели нет вышеописанной функции?
Добавить egorchiks96 в Skype
12sd
UNIт
 
Сообщения: 71
Зарегистрирован: 16 июл 2011, 21:47

Re: [Решено при помощи костыля]Таргет на префаб

Сообщение seaman 27 июл 2011, 14:31

Если нужно определять момент, когда сцена загружена, то:
LoadLevelAsync
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7