Управление звуком и светом

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

Управление звуком и светом

Сообщение NOD 07 янв 2010, 08:35

Подскажите пожалуйста как разрешить следующие вопросы:

1. Расставил на машине источники света (фары, огни и т.д.). Теперь не пойму можно ли к ним обратиться из скрипта обрабатывающего клавиши, чтобы включать и выключать свет тупо по имени источников света в сцене? Или придется прямо в скрипте прописывать сначала все источники, место их расположения, а потом их обрабатывать? То есть я не понял есть ли что то типа команд on off для света в сцене?

2. В хелпе есть пример мигающего источника света, а как сделать чтобы между миганиями еще и пауза была? Ну типа как у самолетов лампочки мигают...

3. со звуком аналогичный вопрос. Могу ли приатачить к объекту источник звука, а потом из скрипта им управлять, или все надо через скрипт фигачить?
NOD
UNец
 
Сообщения: 36
Зарегистрирован: 20 дек 2009, 01:57

Re: Управление звуком и светом

Сообщение Neodrop 07 янв 2010, 08:53

Изменил название темы. Оно не соответствовало Правилам Форума. Беру на карандаш. :-w

Путей реализации вашей проблемы так много, что я даже затрудняюсь сказать сколько. Но уж точно десятки. Для начала, настоятельно рекомендую вам пройти 3D Platform Tutorial, чтобы не возникало столь поверхностных проблем.

З.Ы. Я бы решил эту задачу с помошью Antares.Manager. Примерно аналогичная задача ставилась в теме про переключение камер (не помню названия) там я давал код, который точно так же (чуть подправив) можно использовать и для света и для звука и много для чего ещё.
Но мой Менеджер бесплатен только для некоммерческих продуктов.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Управление звуком и светом

Сообщение NOD 07 янв 2010, 09:49

Neodrop писал(а):Изменил название темы. Оно не соответствовало Правилам Форума. Беру на карандаш. :-w

Путей реализации вашей проблемы так много, что я даже затрудняюсь сказать сколько. Но уж точно десятки. Для начала, настоятельно рекомендую вам пройти 3D Platform Tutorial, чтобы не возникало столь поверхностных проблем.

З.Ы. Я бы решил эту задачу с помошью Antares.Manager. Примерно аналогичная задача ставилась в теме про переключение камер (не помню названия) там я давал код, который точно так же (чуть подправив) можно использовать и для света и для звука и много для чего ещё.
Но мой Менеджер бесплатен только для некоммерческих продуктов.


Ок. Спасибо за рекомендации. Еще вопрос. Сейчас только натолкнулся на одну хрень. Фары освещают землю круглыми пятнами нормально только если в террейне выставлен параметр Lighting: pixel но при этом на расстоянии метров 100 от камеры все рисуется в полной темноте. В принципе для ночи как раз нормально. Но блин если фары днем включить? Если ставить Lighting: vertex то все видно отлично, но фары светят огромными квадратами (естественно фейсами поверхности). Мне нужен первый вариант, но как избавиться от черноты? Или это невозможно и придется отказаться от нормальных фар днем?
NOD
UNец
 
Сообщения: 36
Зарегистрирован: 20 дек 2009, 01:57

Re: Управление звуком и светом

Сообщение Neodrop 07 янв 2010, 09:56

Вы эксперименты свои проводите в режиме качества GOOD
По -умолчанию, в этом режиме только один пиксельный источник света. Поэтому, когда вы врубаете ваши "фары", ваше "Солнце" автоматом переводится в режим Vertex. От этого и страдает освещенность террейна.
Главный источник света поставьте в режим Force Pixel
C фар убрать нафиг пиксельный свет. Чаще всего он не нужен. Пятна света сделайте инструментом Projector
Если все-же хочется с пиксельным светом, то и на фарах поставьте Force Pixel и будет вам счастье.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Управление звуком и светом

Сообщение NOD 07 янв 2010, 10:06

Neodrop писал(а):Вы эксперименты свои проводите в режиме качества GOOD
По -умолчанию, в этом режиме только один пиксельный источник света. Поэтому, когда вы врубаете ваши "фары", ваше "Солнце" автоматом переводится в режим Vertex. От этого и страдает освещенность террейна.
Главный источник света поставьте в режим Force Pixel
C фар убрать нафиг пиксельный свет. Чаще всего он не нужен. Пятна света сделайте инструментом Projector
Если все-же хочется с пиксельным светом, то и на фарах поставьте Force Pixel и будет вам счастье.


На фарах и так стоял форс пиксел и на солнце тоже. Все, разобрался, получилось. Проблема была в том что при включенном pixel на террейне, частично террейн не отрисовывался из-за отсутствия лаймепа на террейне. Спасибо за инфу. Я посторил лайтмэп для террейна и все прокатило. Чернота исчезла. Теперь фары и днем светят как надо и видно до горизонта. Это связано с billboard. Если крутишь этот параметр чернота отодвигается... Но не далеко.
NOD
UNец
 
Сообщения: 36
Зарегистрирован: 20 дек 2009, 01:57

Re: Управление звуком и светом

Сообщение Zaicheg 07 янв 2010, 12:42

1. Расставил на машине источники света (фары, огни и т.д.). Теперь не пойму можно ли к ним обратиться из скрипта обрабатывающего клавиши, чтобы включать и выключать свет тупо по имени источников света в сцене? Или придется прямо в скрипте прописывать сначала все источники, место их расположения, а потом их обрабатывать?

Можно обращаться по имени источников.
GameObject.Find() например.

То есть я не понял есть ли что то типа команд on off для света в сцене?

Есть. Переменная enabled. Она есть у всех компонентов.
http://unity3d.com/support/documentatio ... from=Light
Или можете интенсивность света в ноль убирать:
http://unity3d.com/support/documentatio ... nsity.html

2. В хелпе есть пример мигающего источника света, а как сделать чтобы между миганиями еще и пауза была? Ну типа как у самолетов лампочки мигают...

Посмотрите FPS Tutorial, раздел MachineGun. Там есть задержка между выстрелами — можете взять её, это наиболее простой вариант.

3. со звуком аналогичный вопрос. Могу ли приатачить к объекту источник звука, а потом из скрипта им управлять, или все надо через скрипт фигачить?

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

Re: Управление звуком и светом

Сообщение Neodrop 07 янв 2010, 13:03

Заяц, ты чего ламеров путаешь? GameObject.Find самая тупая функция из всех.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Управление звуком и светом

Сообщение NOD 07 янв 2010, 16:31

Neodrop писал(а):Заяц, ты чего ламеров путаешь? GameObject.Find самая тупая функция из всех.


И че, если она самая тупая, то работать не будет? Я же не прошу искать "красивые оптимальные методы". Я сперва вообще хочу увидеть результат работы даже самой простой функции.
NOD
UNец
 
Сообщения: 36
Зарегистрирован: 20 дек 2009, 01:57

Re: Управление звуком и светом

Сообщение NOD 07 янв 2010, 16:49

Zaicheg писал(а):
1. Расставил на машине источники света (фары, огни и т.д.). Теперь не пойму можно ли к ним обратиться из скрипта обрабатывающего клавиши, чтобы включать и выключать свет тупо по имени источников света в сцене? Или придется прямо в скрипте прописывать сначала все источники, место их расположения, а потом их обрабатывать?

Можно обращаться по имени источников.
GameObject.Find() например.

То есть я не понял есть ли что то типа команд on off для света в сцене?

Есть. Переменная enabled. Она есть у всех компонентов.
http://unity3d.com/support/documentatio ... from=Light
Или можете интенсивность света в ноль убирать:
http://unity3d.com/support/documentatio ... nsity.html

2. В хелпе есть пример мигающего источника света, а как сделать чтобы между миганиями еще и пауза была? Ну типа как у самолетов лампочки мигают...

Посмотрите FPS Tutorial, раздел MachineGun. Там есть задержка между выстрелами — можете взять её, это наиболее простой вариант.

3. со звуком аналогичный вопрос. Могу ли приатачить к объекту источник звука, а потом из скрипта им управлять, или все надо через скрипт фигачить?

Да. Как с любым другим компонентом.
http://unity3d.com/support/documentatio ... ource.html


То есть для изменения интенсивности можно так? Я правильно понял хелп?:

private var Fara1 : GameObject;

function Start () {
Fara1 = GameObject.Find("FrontLight1");
}

function Update() {
var duration = 1.0;
var phi = Time.time / duration * 2 * Mathf.PI;
var amplitude = Mathf.Cos( phi ) * 0.5 + 0.5;
Fara1.intensity = amplitude;
}

Можно ли отключить вообще одной командой, что то типа GameObject.Find("FrontLight1").Enabled = false? Ни черта не пойму из этого долбаного хелпа.
NOD
UNец
 
Сообщения: 36
Зарегистрирован: 20 дек 2009, 01:57

Re: Управление звуком и светом

Сообщение Zaicheg 07 янв 2010, 19:17

Можно ли отключить вообще одной командой, что то типа GameObject.Find("FrontLight1").Enabled = false? Ни черта не пойму из этого долбаного хелпа.

GameObject.Find("FrontLight1").GetComponent<Light>().enabled = false;
То есть, сначала получаем объект через геймфинд, потом получаем компонент через геткомпонент, затем обращаемся к переменной этого компонента.
В принципе, можно и сам объект отключить. GameObject.Find("FrontLight1").enabled = false. Но чтобы включить его потом, нужно сохранить его в переменной, иначе доступ не получишь.
Ну да, финд медленный, но я просто проиллюстрировать логику.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Управление звуком и светом

Сообщение NOD 07 янв 2010, 21:38

Zaicheg писал(а):
Можно ли отключить вообще одной командой, что то типа GameObject.Find("FrontLight1").Enabled = false? Ни черта не пойму из этого долбаного хелпа.

GameObject.Find("FrontLight1").GetComponent<Light>().enabled = false;
То есть, сначала получаем объект через геймфинд, потом получаем компонент через геткомпонент, затем обращаемся к переменной этого компонента.
В принципе, можно и сам объект отключить. GameObject.Find("FrontLight1").enabled = false. Но чтобы включить его потом, нужно сохранить его в переменной, иначе доступ не получишь.
Ну да, финд медленный, но я просто проиллюстрировать логику.


Вот! Огромное тебе спасибо! Это я и хотел уяснить. Логика то мне изначально была ясна (я в общем-то предполагал, что так оно и должно быть), вот реализация никак не сводилась до кучи после чтения хелпа. Еще раз спасибо.

З.Ы. А что быстрее файнда получает доступ к объекту? Или ты имеешь ввиду непосредственное создание объекта через скрипт?
NOD
UNец
 
Сообщения: 36
Зарегистрирован: 20 дек 2009, 01:57

Re: Управление звуком и светом

Сообщение warr11r 09 янв 2010, 21:55

Я enabled = false использовал для инстнасируемых впоследствии обьектов.
Мудрость - это когда начинаешь понимать, что все время занимаешься какой-то х...ней.
Изображение
Аватара пользователя
warr11r
UNITрон
 
Сообщения: 310
Зарегистрирован: 06 июн 2009, 03:21
Откуда: Украина, Ровно
  • ICQ


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

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 8