Вкл\выкл 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