Задать мерцание света?

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

Задать мерцание света?

Сообщение Str 14 фев 2010, 18:48

Здрастье, товарищи. у меня есть вопрос ? как задать для обьекта ligth мерцание? Я хочу что бы у меня свет мерцал разной интенсивностью через определенное время, а точнее что бы РАНДОМ на интенсивность срабатывал через определенное время, прмерно 0.5-1 сек? как это сделать !!!!??? плиз хелп, я еще по ка нуб по скриптам, тк что сильно не ругаться :-)

вод код

using UnityEngine;
using System.Collections;

public class fire : MonoBehaviour {

private float MinIntensive = 0.8f;
private float MaxIntensive = 1.5f;


void Start ()
{

}


void Update ()
{

light.intensity = Random.Range(MinIntensive, MaxIntensive) ;

}
}
Str
UNец
 
Сообщения: 16
Зарегистрирован: 02 фев 2010, 20:52

Re: Задать мерцание света?

Сообщение warr11r 14 фев 2010, 22:12

На JavaScript это выглядит так:

(js)
Синтаксис:
Используется cpp
var minFlickerSpeed : float = 0.1;
var maxFlickerSpeed : float = 1.0;

function Update()
{
     light.enabled = true;
     yield WaitForSeconds (Random.Range(minFlickerSpeed, maxFlickerSpeed );
     light.enabled = false;
     yield WaitForSeconds (Random.Range(minFlickerSpeed, maxFlickerSpeed );
}


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

Re: Задать мерцание света?

Сообщение Neodrop 14 фев 2010, 22:29

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

Re: Задать мерцание света?

Сообщение Fatalix3d 15 фев 2010, 06:45

Вот код который я использую для света от факелов, как раз то что тебе нужно!

Синтаксис:
Используется cpp
// Properties
var waveFunction : String = "sin"; // possible values: sin, tri(angle), sqr(square), saw(tooth), inv(verted sawtooth), noise (random)
var base : float = 0.0; // start
var amplitude : float = 1.0; // amplitude of the wave
var phase : float = 0.0; // start point inside on wave cycle
var frequency : float = 0.5; // cycle frequency per second

// Keep a copy of the original color
private var originalColor : Color;

// Store the original color
function Start () {
   originalColor = GetComponent(Light).color;
}

function Update () {
  var light : Light = GetComponent(Light);
  light.color = originalColor * (EvalWave());
}

function EvalWave () {
  var x : float = (Time.time + phase)*frequency;
  var y : float;
 
  x = x - Mathf.Floor(x); // normalized value (0..1)
 
  if (waveFunction=="sin") {
     y = Mathf.Sin(x*2*Mathf.PI);
  }
  else if (waveFunction=="tri") {
     if (x < 0.5)
       y = 4.0 * x - 1.0;
     else
       y = -4.0 * x + 3.0;
  }      
  else if (waveFunction=="sqr") {
     if (x < 0.5)
       y = 1.0;
     else
       y = -1.0;
  }      
  else if (waveFunction=="saw") {
       y = x;
  }      
  else if (waveFunction=="inv") {
     y = 1.0 - x;
  }      
  else if (waveFunction=="noise") {
     y = 1 - (Random.value*2);
  }
  else {
     y = 1.0;
  }        
  return (y*amplitude)+base;  
}
Fatalix3d
UNец
 
Сообщения: 47
Зарегистрирован: 23 дек 2009, 17:43

Re: Задать мерцание света?

Сообщение Serge 15 фев 2010, 08:19

Light = GetComponent(Light);
нужно из Update () перенести в Start () :)
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
Аватара пользователя
Serge
UNIверсал
 
Сообщения: 476
Зарегистрирован: 20 мар 2009, 15:53
Откуда: Сибирь г. Омск
  • Сайт
  • ICQ

Re: Задать мерцание света?

Сообщение PavelCrow 15 фев 2010, 11:39

На вики готовый скрипт по мерцанию света, правда сам не пробовал:
http://www.unifycommunity.com/wiki/inde ... ring_Light
PavelCrow
UNец
 
Сообщения: 25
Зарегистрирован: 21 май 2009, 10:10

Re: Задать мерцание света?

Сообщение warr11r 16 фев 2010, 00:15

Извините, не было машины под рукой проверить работоспособность.

Все, вынес корутину в отдельный метод. Теперь все отлично мерцает.
(js)
Синтаксис:
Используется javascript
var minFlickerSpeed : float = 0.1;
var maxFlickerSpeed : float = 1.0;


function Update() {
        Flicker();
}
function Flicker()
{
     light.enabled = true;
     yield WaitForSeconds(Random.Range(minFlickerSpeed, maxFlickerSpeed));
     light.enabled = false;
     yield WaitForSeconds(Random.Range(minFlickerSpeed, maxFlickerSpeed));
}

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

Re: Задать мерцание света?

Сообщение defint 16 фев 2010, 22:27

мерцание света было в Asylum Project (http://www.unitytutorials.com/photo/39/asylum) только забыл где качал проект.
defint
UNIт
 
Сообщения: 94
Зарегистрирован: 10 авг 2009, 12:17

Re: Задать мерцание света?

Сообщение warr11r 18 фев 2010, 20:55

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

Re: Задать мерцание света?

Сообщение defint 19 фев 2010, 14:46

warr11r, тк ресур отключен.
defint
UNIт
 
Сообщения: 94
Зарегистрирован: 10 авг 2009, 12:17

Re: Задать мерцание света?

Сообщение DzumoHu4 21 фев 2010, 17:36

Я делал огонь(с мерцанием, дымом, и партиклами) если найду скрипт выложу.
DzumoHu4
UNец
 
Сообщения: 46
Зарегистрирован: 02 июн 2009, 20:02


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

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

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