Добро пожаловать на сайт "Game Creating CommUnity"
Здравствуйте, уважаемый пользователь!

Возможно, вы впервые на этом сайте и мы очень надеемся, что вам у нас понравится. Администрация сайта сделает всё возможное, чтобы ваше пребывание на сайте было максимально комфортным. Спасибо за внимание!

P.S. Данное окно вас больше не потревожит
Вкл\выкл SpotLight - Форум Игроделов
Вт, 08 Июл 2025, 06:44 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Вкл\выкл 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
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025
Войти Зарегистрироваться