Вкл\выкл SpotLight - Форум Игроделов
Сб, 04 Май 2024, 20:03 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » HELP & FAQ » Вкл\выкл SpotLight (Помогите пожалуйста дописать код.)
Вкл\выкл SpotLight
WaveДата: Вс, 29 Сен 2013, 21:57 | Сообщение # 1
 
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
Подскажите пожалуйста, что дописать в коде, что бы когда значение Cur Battery Life достигало 0 то фонарик то есть SpotLight отключался.
Код

public var flickerSpeed : float = 0.1;
public var curBatteryLife : float;

public var batteryTexture : Texture2D;
public var batteryBarTexture : Texture2D;
var FlashLightOn : AudioClip;
var FlashLightOff : AudioClip;

function Start()
{
curBatteryLife = maxBatteryLife;
}

function Update()
{
if(this.light.enabled) {
curBatteryLife -= Time.deltaTime;
}

if(Input.GetKeyDown(KeyCode.F) && !this.light.enabled) {
audio.clip = FlashLightOn;
audio.Play();
Debug.Log("Play sound");

if(curBatteryLife > 0)
{
if(curBatteryLife > maxBatteryLife)
{
curBatteryLife = maxBatteryLife;
}

if(curBatteryLife <= flickerStart)
{
var RandomNumber = Random.value;
if(RandomNumber <= flickerSpeed)
{
this.light.enabled = true;

}
else
{
this.light.enabled=false;
}
}
else
{
this.light.enabled = true;
}
}

else
{
curBatteryLife = 0;
this.light.enabled = false;
}

} else if(Input.GetKeyDown(KeyCode.F) && this.light.enabled) {
audio.clip = FlashLightOff;
audio.Play();
Debug.Log("Play sound");
this.light.enabled = false;
}
}

function OnGUI()
{
GUI.DrawTexture(Rect(Screen.width - 60, 10, 50, 50), batteryTexture);

var adjustBatteryBar = curBatteryLife * (36/maxBatteryLife);
if(curBatteryLife <= maxBatteryLife/5)
{
GUI.color = Color.red;
}
else
{
GUI.color = Color.white;
}
GUI.BeginGroup(Rect(Screen.width - 55, 28, adjustBatteryBar, 12.7));
GUI.DrawTexture(Rect(0, 0, 36, 12.7), batteryBarTexture);
GUI.EndGroup();
}
Это во-первых...

Добавлено (29 Сен 2013, 21:57)
---------------------------------------------
И куда это вписать .
-
при регистрации любезно предоставлены правила (видимо только для меня), не прочтем = не удивляемся потом...
3. Публикация сообщений.
п.1 Название темы должно быть информативным, максимально четко отражая смысл проблемы.
5. Категорически запрещаеться
п. 9 Использование неинформативных заголовков - "Спасите", "Помогите", "Нужна помощь!", "Вопрос", "Help Me", "SOS", "Срочно".
DENTNT
 
СообщениеПодскажите пожалуйста, что дописать в коде, что бы когда значение Cur Battery Life достигало 0 то фонарик то есть SpotLight отключался.
Код

public var flickerSpeed : float = 0.1;
public var curBatteryLife : float;

public var batteryTexture : Texture2D;
public var batteryBarTexture : Texture2D;
var FlashLightOn : AudioClip;
var FlashLightOff : AudioClip;

function Start()
{
curBatteryLife = maxBatteryLife;
}

function Update()
{
if(this.light.enabled) {
curBatteryLife -= Time.deltaTime;
}

if(Input.GetKeyDown(KeyCode.F) && !this.light.enabled) {
audio.clip = FlashLightOn;
audio.Play();
Debug.Log("Play sound");

if(curBatteryLife > 0)
{
if(curBatteryLife > maxBatteryLife)
{
curBatteryLife = maxBatteryLife;
}

if(curBatteryLife <= flickerStart)
{
var RandomNumber = Random.value;
if(RandomNumber <= flickerSpeed)
{
this.light.enabled = true;

}
else
{
this.light.enabled=false;
}
}
else
{
this.light.enabled = true;
}
}

else
{
curBatteryLife = 0;
this.light.enabled = false;
}

} else if(Input.GetKeyDown(KeyCode.F) && this.light.enabled) {
audio.clip = FlashLightOff;
audio.Play();
Debug.Log("Play sound");
this.light.enabled = false;
}
}

function OnGUI()
{
GUI.DrawTexture(Rect(Screen.width - 60, 10, 50, 50), batteryTexture);

var adjustBatteryBar = curBatteryLife * (36/maxBatteryLife);
if(curBatteryLife <= maxBatteryLife/5)
{
GUI.color = Color.red;
}
else
{
GUI.color = Color.white;
}
GUI.BeginGroup(Rect(Screen.width - 55, 28, adjustBatteryBar, 12.7));
GUI.DrawTexture(Rect(0, 0, 36, 12.7), batteryBarTexture);
GUI.EndGroup();
}
Это во-первых...

Добавлено (29 Сен 2013, 21:57)
---------------------------------------------
И куда это вписать .
-
при регистрации любезно предоставлены правила (видимо только для меня), не прочтем = не удивляемся потом...
3. Публикация сообщений.
п.1 Название темы должно быть информативным, максимально четко отражая смысл проблемы.
5. Категорически запрещаеться
п. 9 Использование неинформативных заголовков - "Спасите", "Помогите", "Нужна помощь!", "Вопрос", "Help Me", "SOS", "Срочно".
DENTNT

Автор - Wave
Дата добавления - 29 Сен 2013 в 21:57
игнатДата: Пн, 30 Сен 2013, 17:12 | Сообщение # 2
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
А во вторых:
Как я понимаю, скрипт не ваш, раз вы не знаете куда что "вписывать".
Следуем простой логике - у вас есть строчка
Код
if(curBatteryLife > 0)    //если curBatteryLife > 0, то...
{   
бла-бла-бла...

По идее сюда вы и должны вставить CurBatteryLife -= Time.deltaTime
Тем более у вас есть строка:
Код
if(this.light.enabled) {   
curBatteryLife -= Time.deltaTime;   
}

В которой и происходит это уменьшение.
Далее надо написать такую функцию:
Код

function Update() {   
if(curBatteryLife <= 0) {   
       curBatteryLife = 0;   
       this.light.enabled = false;   
}
}

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



Правила форума · участник GCC
 
СообщениеА во вторых:
Как я понимаю, скрипт не ваш, раз вы не знаете куда что "вписывать".
Следуем простой логике - у вас есть строчка
Код
if(curBatteryLife > 0)    //если curBatteryLife > 0, то...
{   
бла-бла-бла...

По идее сюда вы и должны вставить CurBatteryLife -= Time.deltaTime
Тем более у вас есть строка:
Код
if(this.light.enabled) {   
curBatteryLife -= Time.deltaTime;   
}

В которой и происходит это уменьшение.
Далее надо написать такую функцию:
Код

function Update() {   
if(curBatteryLife <= 0) {   
       curBatteryLife = 0;   
       this.light.enabled = false;   
}
}

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

Автор - игнат
Дата добавления - 30 Сен 2013 в 17:12
игнатДата: Пн, 30 Сен 2013, 18:47 | Сообщение # 3
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Скрипт работает (но что-то с обновлением значения переменных). Основные функции:
1. Вкл/выкл
2. Заряд
3. Показатель заряда
4. Рандомное вкл/выкл фонарика, при определ. обстоятельствах.
Скрипт немного поправил:

Код
public var flickerSpeed : float = 0.1;  //
public var curBatteryLife : float;   //
public var maxBatteryLife : float;   //Кто будет объявлять переменную?
public var flickerStart : float;   //Кто будет объявлять переменную? И для чего она?
public var batteryTexture : Texture2D;   //
public var batteryBarTexture : Texture2D;    //
public var FlashLightOn : AudioClip;   //
public var FlashLightOff : AudioClip;  //  

  function Start() {  
   curBatteryLife = maxBatteryLife;    //
  }

  function Update() {  

   if(Input.GetKeyDown(KeyCode.F) && !this.light.enabled) {  
    audio.clip = FlashLightOn;  
    audio.Play();  
    Debug.Log("Play sound, Input F");  
    this.light.enabled = true;

    if(curBatteryLife > 0) {  
     if(curBatteryLife > maxBatteryLife) {  
      curBatteryLife = maxBatteryLife;  
     }  
      
     if(this.light.enabled) {    
      curBatteryLife -= Time.deltaTime;    
     }

     if(curBatteryLife <= flickerStart) {  
      var RandomNumber = Random.value;
       
      if(RandomNumber <= flickerSpeed){  
             this.light.enabled = true;  
            } else {  
             this.light.enabled=false;  
            }  
        } else {  
            this.light.enabled = true;  
        }   
     } else {  
        curBatteryLife = 0;  
        this.light.enabled = false;  
      }   

   } else if(Input.GetKeyDown(KeyCode.F) && this.light.enabled) {  
       audio.clip = FlashLightOff;  
       audio.Play();  
       Debug.Log("Play sound");  
       this.light.enabled = false;  
    }  
  }  

  function OnGUI() {  
   GUI.DrawTexture(Rect(Screen.width - 60, 10, 50, 50), batteryTexture);  

   var adjustBatteryBar = curBatteryLife * (36/maxBatteryLife);
     
   if(curBatteryLife <= maxBatteryLife/5) {  
    GUI.color = Color.red;  
   } else {  
    GUI.color = Color.white;  
   }  
    
   GUI.BeginGroup(Rect(Screen.width - 55, 28, adjustBatteryBar, 12.7));  
   GUI.DrawTexture(Rect(0, 0, 36, 12.7), batteryBarTexture);  
   GUI.EndGroup();  
  }



Правила форума · участник GCC
 
СообщениеСкрипт работает (но что-то с обновлением значения переменных). Основные функции:
1. Вкл/выкл
2. Заряд
3. Показатель заряда
4. Рандомное вкл/выкл фонарика, при определ. обстоятельствах.
Скрипт немного поправил:

Код
public var flickerSpeed : float = 0.1;  //
public var curBatteryLife : float;   //
public var maxBatteryLife : float;   //Кто будет объявлять переменную?
public var flickerStart : float;   //Кто будет объявлять переменную? И для чего она?
public var batteryTexture : Texture2D;   //
public var batteryBarTexture : Texture2D;    //
public var FlashLightOn : AudioClip;   //
public var FlashLightOff : AudioClip;  //  

  function Start() {  
   curBatteryLife = maxBatteryLife;    //
  }

  function Update() {  

   if(Input.GetKeyDown(KeyCode.F) && !this.light.enabled) {  
    audio.clip = FlashLightOn;  
    audio.Play();  
    Debug.Log("Play sound, Input F");  
    this.light.enabled = true;

    if(curBatteryLife > 0) {  
     if(curBatteryLife > maxBatteryLife) {  
      curBatteryLife = maxBatteryLife;  
     }  
      
     if(this.light.enabled) {    
      curBatteryLife -= Time.deltaTime;    
     }

     if(curBatteryLife <= flickerStart) {  
      var RandomNumber = Random.value;
       
      if(RandomNumber <= flickerSpeed){  
             this.light.enabled = true;  
            } else {  
             this.light.enabled=false;  
            }  
        } else {  
            this.light.enabled = true;  
        }   
     } else {  
        curBatteryLife = 0;  
        this.light.enabled = false;  
      }   

   } else if(Input.GetKeyDown(KeyCode.F) && this.light.enabled) {  
       audio.clip = FlashLightOff;  
       audio.Play();  
       Debug.Log("Play sound");  
       this.light.enabled = false;  
    }  
  }  

  function OnGUI() {  
   GUI.DrawTexture(Rect(Screen.width - 60, 10, 50, 50), batteryTexture);  

   var adjustBatteryBar = curBatteryLife * (36/maxBatteryLife);
     
   if(curBatteryLife <= maxBatteryLife/5) {  
    GUI.color = Color.red;  
   } else {  
    GUI.color = Color.white;  
   }  
    
   GUI.BeginGroup(Rect(Screen.width - 55, 28, adjustBatteryBar, 12.7));  
   GUI.DrawTexture(Rect(0, 0, 36, 12.7), batteryBarTexture);  
   GUI.EndGroup();  
  }

Автор - игнат
Дата добавления - 30 Сен 2013 в 18:47
Форум Игроделов » UNITY3D » HELP & FAQ » Вкл\выкл SpotLight (Помогите пожалуйста дописать код.)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024