Скрипт не выкл\вкл рендер
korveen Дата: Пт, 06 Дек 2013, 19:12 | Сообщение # 1
Победитель конкурса GCC
Сообщений: 183
Награды:
2
Репутация:
45
Статус: Offline
Доброго времени суток дамы и господа! Для игры мне потребовалось реализовать фонарик, решил не заморачиваться и появление фонарика делать через рендер.
Код
using UnityEngine; using System.Collections; public class Flashlight : MonoBehaviour { public Light Spotlight; public AudioClip FlashlightOnOff; public AudioSource FlashlightSource; public GameObject light_flashlight; public bool FlashlightOn; void Update () { if (Input.GetKeyDown(KeyCode.F) && FlashlightOn == false) { FlashlightOn = true; Spotlight.light.enabled = true; light_flashlight.renderer.enabled = true; audio.clip = FlashlightOnOff; audio.PlayOneShot(FlashlightOnOff, 0.7F); } if (Input.GetKeyDown(KeyCode.F) && FlashlightOn == true) { FlashlightOn = false; Spotlight.light.enabled = false; light_flashlight.renderer.enabled = false; audio.clip = FlashlightOnOff; audio.PlayOneShot(FlashlightOnOff, 0.7F); } } }
Проблема в том, что light_flashlight.renderer.enabled = true; или же light_flashlight.renderer.enabled = false; , попросту не работают... остальное вполне пашет. Предмет указал, то он не появляется. Может я что-то не то указал\написал? Помогите пожалуйста! P.S. Возможно вопрос банальны и просто, но я искал тут на форуме, как правильно скрывать рендер, не нашел =(. Заранее спасибо! Добавлено (06 Дек 2013, 19:12) --------------------------------------------- Добавил в public AudioClip FlashlightOnOff звук и в public AudioSource FlashlightSource добавил объект с этим движком, перестает работать включение света в целом! мб я сделал не в том порядке? звук есть, а потом ничего не происходит( Помогите подправить скрипт!
Сообщение отредактировал korveen - Пт, 06 Дек 2013, 19:13
Сообщение Доброго времени суток дамы и господа! Для игры мне потребовалось реализовать фонарик, решил не заморачиваться и появление фонарика делать через рендер.
Код
using UnityEngine; using System.Collections; public class Flashlight : MonoBehaviour { public Light Spotlight; public AudioClip FlashlightOnOff; public AudioSource FlashlightSource; public GameObject light_flashlight; public bool FlashlightOn; void Update () { if (Input.GetKeyDown(KeyCode.F) && FlashlightOn == false) { FlashlightOn = true; Spotlight.light.enabled = true; light_flashlight.renderer.enabled = true; audio.clip = FlashlightOnOff; audio.PlayOneShot(FlashlightOnOff, 0.7F); } if (Input.GetKeyDown(KeyCode.F) && FlashlightOn == true) { FlashlightOn = false; Spotlight.light.enabled = false; light_flashlight.renderer.enabled = false; audio.clip = FlashlightOnOff; audio.PlayOneShot(FlashlightOnOff, 0.7F); } } }
Проблема в том, что light_flashlight.renderer.enabled = true; или же light_flashlight.renderer.enabled = false; , попросту не работают... остальное вполне пашет. Предмет указал, то он не появляется. Может я что-то не то указал\написал? Помогите пожалуйста! P.S. Возможно вопрос банальны и просто, но я искал тут на форуме, как правильно скрывать рендер, не нашел =(. Заранее спасибо! Добавлено (06 Дек 2013, 19:12) --------------------------------------------- Добавил в public AudioClip FlashlightOnOff звук и в public AudioSource FlashlightSource добавил объект с этим движком, перестает работать включение света в целом! мб я сделал не в том порядке? звук есть, а потом ничего не происходит( Помогите подправить скрипт! Автор - korveen Дата добавления - 06 Дек 2013 в 19:12
Левша Дата: Пт, 06 Дек 2013, 22:34 | Сообщение # 2
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Цитата korveen (
)
light_flashlight.renderer.enabled = true; или же light_flashlight.renderer.enabled = false;, попросту не работают... остальное вполне пашет.
Рендерер - это компонент ГО а не ИС, аналогично и audioSource. Код
light_flashlight.gameObject.GetComponent(Renderer).enabled = true;
А лучше сразу иметь ссылки на компоненты: Код
var fonar : Renderer; var sound : AudioSource; // и т.д. fonar.enabled = false;
X.cor.R (Prologue)
Сообщение Цитата korveen (
)
light_flashlight.renderer.enabled = true; или же light_flashlight.renderer.enabled = false;, попросту не работают... остальное вполне пашет.
Рендерер - это компонент ГО а не ИС, аналогично и audioSource. Код
light_flashlight.gameObject.GetComponent(Renderer).enabled = true;
А лучше сразу иметь ссылки на компоненты: Код
var fonar : Renderer; var sound : AudioSource; // и т.д. fonar.enabled = false;
Автор - Левша Дата добавления - 06 Дек 2013 в 22:34
korveen Дата: Сб, 07 Дек 2013, 17:30 | Сообщение # 3
Победитель конкурса GCC
Сообщений: 183
Награды:
2
Репутация:
45
Статус: Offline
Левша, а какая команда в скрипе C# отвечает за этот рендер, или как он называется...
Сообщение Левша, а какая команда в скрипе C# отвечает за этот рендер, или как он называется... Автор - korveen Дата добавления - 07 Дек 2013 в 17:30
Левша Дата: Вс, 08 Дек 2013, 01:17 | Сообщение # 4
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Код
gameObject.SetActive(true);
X.cor.R (Prologue)
Сообщение Код
gameObject.SetActive(true);
Автор - Левша Дата добавления - 08 Дек 2013 в 01:17