Problema no script de lanterna (spotAngle, range e intensity)
3 participantes
Página 1 de 1
Problema no script de lanterna (spotAngle, range e intensity)
Tava vendo um video do Schultz, mas acho que ta desatualizado. Tive inclusive um erro com as luzes, mas consegui descobrir como resolver. Mas para mudar angulo e intensidade eu não consigo, alguem pode me ajudar? Os erros aparecem a partir dos valores máximos e minimos.
+++++++++++++++++++++
+++++++++++++++++++++
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bateria : MonoBehaviour {
public Texture [] texturaBateria;
public int numero;
public AudioClip click;
public static float tempoTotal = 120; //tempo alterado pelo script
public float tempoMinimo = 20;
public int numeroTexturas,pilhaASerTexturizada;
public float anguloDaLuz = 35;
public float distanciaDaLuz = 5;
public float intensidade = 5;
public float reduçãoForçaLuz = 50;
public bool podeLigar;
public static float tempoTotalInicial;
public float anguloMaximo,anguloMinimo,intensidadeMaxima,intensidadeMinima,distanciaMaxima,distanciaMinima;
private Light myLight;
void start () {
{
myLight = GetComponent();
}
myLight.enabled= false;
tempoTotalInicial = tempoTotal;
podeLigar = true;
numeroTexturas = texturaBateria.Length - 1;
numero = Mathf.RoundToInt (tempoTotal) / texturaBateria.Length;
}
void Update() {
if (myLight.enabled == true && podeLigar == true) {
tempoTotal -= Time.deltaTime;
}
if (Input.GetKeyDown ("f")) {
if (myLight.enabled == true) {
myLight.enabled = false;
http://audio.PlayOneShot (click);
}
else {
myLight.enabled = true;
http://audio.PlayOneShot (click);
}
}
if (tempoTotal <= tempoMinimo) {
myLight.enabled = false;
podeLigar = false;
}
if (tempoTotal >= tempoMinimo) {
podeLigar = true;
}
if (tempoTotal >= tempoTotalInicial) {
tempoTotal = tempoTotalInicial;
}
light.spotAngle = anguloDaLuz*tempoTotal/reduçãoForçaLuz;
light.range = distanciaDaLuz*tempoTotal/reduçãoForçaLuz;
light.intensity = intensidade*tempoTotal/reduçãoForçaLuz/2;
pilhaASerTexturizada = Mathf.FloorToInt (tempoTotal/numero);
//========================VALORES MAXIMOS E MINIMOS+++++++++++++++
if(light.spotAngle >= anguloMaximo) {
light.spotAngle = anguloMaximo;
}
if(light.spotAngle <= anguloMinimo) {
light.spotAngle = anguloMinimo;
}
//==========================================
if(light.range >= distanciaMaxima) {
light.range = distanciaMaxima;
}
if(light.range <= distanciaMinima) {
light.range = distanciaMinima;
}
//==========================================
if(light.intensity >= intensidadeMaxima) {
light.intensity = intensidadeMaxima;
}
if(light.intensity <= intensidadeMinima) {
light.intensity = intensidadeMinima;
}
}
void OnGUI () {
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 2.3f, Screen.height / 2 - Screen.height / 4, Screen.width / 25, Screen.height / 10), texturaBateria [pilhaASerTexturizada]);
}
}
Última edição por John Rambo em Qua Abr 12, 2017 10:00 pm, editado 1 vez(es) (Motivo da edição : Inserir Scripts Dentro da caixa de códigos oferecida pelo fórum)
Giulyo- Iniciante
- PONTOS : 2791
REPUTAÇÃO : 1
Respeito as regras :
Re: Problema no script de lanterna (spotAngle, range e intensity)
Bom dia! erros no script? tens como postar eles? não estou em casa, por isso não consigo ver o script.Giulyo escreveu:Tava vendo um video do Schultz, mas acho que ta desatualizado. Tive inclusive um erro com as luzes, mas consegui descobrir como resolver. Mas para mudar angulo e intensidade eu não consigo, alguem pode me ajudar? Os erros aparecem a partir dos valores máximos e minimos.
+++++++++++++++++++++
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bateria : MonoBehaviour {
public Texture [] texturaBateria;
public int numero;
public AudioClip click;
public static float tempoTotal = 120; //tempo alterado pelo script
public float tempoMinimo = 20;
public int numeroTexturas,pilhaASerTexturizada;
public float anguloDaLuz = 35;
public float distanciaDaLuz = 5;
public float intensidade = 5;
public float reduçãoForçaLuz = 50;
public bool podeLigar;
public static float tempoTotalInicial;
public float anguloMaximo,anguloMinimo,intensidadeMaxima,intensidadeMinima,distanciaMaxima,distanciaMinima;
private Light myLight;
void start () {
{
myLight = GetComponent<Light>();
}
myLight.enabled= false;
tempoTotalInicial = tempoTotal;
podeLigar = true;
numeroTexturas = texturaBateria.Length - 1;
numero = Mathf.RoundToInt (tempoTotal) / texturaBateria.Length;
}
void Update() {
if (myLight.enabled == true && podeLigar == true) {
tempoTotal -= Time.deltaTime;
}
if (Input.GetKeyDown ("f")) {
if (myLight.enabled == true) {
myLight.enabled = false;
http://audio.PlayOneShot (click);
}
else {
myLight.enabled = true;
http://audio.PlayOneShot (click);
}
}
if (tempoTotal <= tempoMinimo) {
myLight.enabled = false;
podeLigar = false;
}
if (tempoTotal >= tempoMinimo) {
podeLigar = true;
}
if (tempoTotal >= tempoTotalInicial) {
tempoTotal = tempoTotalInicial;
}
light.spotAngle = anguloDaLuz*tempoTotal/reduçãoForçaLuz;
light.range = distanciaDaLuz*tempoTotal/reduçãoForçaLuz;
light.intensity = intensidade*tempoTotal/reduçãoForçaLuz/2;
pilhaASerTexturizada = Mathf.FloorToInt (tempoTotal/numero);
//========================VALORES MAXIMOS E MINIMOS+++++++++++++++
if(light.spotAngle >= anguloMaximo) {
light.spotAngle = anguloMaximo;
}
if(light.spotAngle <= anguloMinimo) {
light.spotAngle = anguloMinimo;
}
//==========================================
if(light.range >= distanciaMaxima) {
light.range = distanciaMaxima;
}
if(light.range <= distanciaMinima) {
light.range = distanciaMinima;
}
//==========================================
if(light.intensity >= intensidadeMaxima) {
light.intensity = intensidadeMaxima;
}
if(light.intensity <= intensidadeMinima) {
light.intensity = intensidadeMinima;
}
}
void OnGUI () {
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 2.3f, Screen.height / 2 - Screen.height / 4, Screen.width / 25, Screen.height / 10), texturaBateria [pilhaASerTexturizada]);
}
}
Abraço!
Re: Problema no script de lanterna (spotAngle, range e intensity)
Tentei enviar uma imagem. Da para ver?
O erro é basicamente o unity não reconhecer os comandos spotAngle, intensity e range (para mudar o angulo da luz, a intensidade e a distancia de acordo com o tempo)
Tive o mesmo problema com a luz (não reconhecia light.enable, resolvi usando myLight = GetComponent<Light>(); e myLight.enabled)
Giulyo- Iniciante
- PONTOS : 2791
REPUTAÇÃO : 1
Respeito as regras :
Re: Problema no script de lanterna (spotAngle, range e intensity)
Ok, a noite vou colocar o script no meu Unity e dar uma olhada, se caso até lá você não conseguir resolver.Giulyo escreveu:
Tentei enviar uma imagem. Da para ver?
O erro é basicamente o unity não reconhecer os comandos spotAngle, intensity e range (para mudar o angulo da luz, a intensidade e a distancia de acordo com o tempo)
Tive o mesmo problema com a luz (não reconhecia light.enable, resolvi usando myLight = GetComponent<Light>(); e myLight.enabled)
Abraço!
Re: Problema no script de lanterna (spotAngle, range e intensity)
Boa noite cara! seu script eu consegui corrigir, mas não testa-lo pois não faço ideia da forma de seta-lo, testa ai e dá uma olhada nos seus erros, compara com o seu script.
Abraço!
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bateria : MonoBehaviour {
public Texture [] texturaBateria;
public int numero;
public AudioClip click;
public static float tempoTotal = 120; //tempo alterado pelo script
public float tempoMinimo = 20;
public int numeroTexturas,pilhaASerTexturizada;
public float anguloDaLuz = 35;
public float distanciaDaLuz = 5;
public float intensidade = 5;
public float reduçãoForçaLuz = 50;
public bool podeLigar;
public static float tempoTotalInicial;
public float anguloMaximo,anguloMinimo,intensidadeMaxima,intensidadeMinima,distanciaMaxima,distanciaMinima;
private Light myLight;
void start () {
{
myLight = GetComponent<Light>();
}
myLight.enabled= false;
tempoTotalInicial = tempoTotal;
podeLigar = true;
numeroTexturas = texturaBateria.Length - 1;
numero = Mathf.RoundToInt (tempoTotal) / texturaBateria.Length;
}
void Update() {
if (myLight.enabled == true && podeLigar == true) {
tempoTotal -= Time.deltaTime;
}
if (Input.GetKeyDown ("f")) {
if (myLight.enabled == true) {
myLight.enabled = false;
//http://audio.PlayOneShot (click);
}
else {
myLight.enabled = true;
//http://audio.PlayOneShot (click);
}
}
if (tempoTotal <= tempoMinimo) {
myLight.enabled = false;
podeLigar = false;
}
if (tempoTotal >= tempoMinimo) {
podeLigar = true;
}
if (tempoTotal >= tempoTotalInicial) {
tempoTotal = tempoTotalInicial;
}
myLight.spotAngle = anguloDaLuz*tempoTotal/reduçãoForçaLuz;
myLight.range = distanciaDaLuz*tempoTotal/reduçãoForçaLuz;
myLight.intensity = intensidade*tempoTotal/reduçãoForçaLuz/2;
pilhaASerTexturizada = Mathf.FloorToInt (tempoTotal/numero);
//========================VALORES MAXIMOS E MINIMOS+++++++++++++++
if(myLight.spotAngle >= anguloMaximo) {
myLight.spotAngle = anguloMaximo;
}
if(myLight.spotAngle <= anguloMinimo) {
myLight.spotAngle = anguloMinimo;
}
//==========================================
if(myLight.range >= distanciaMaxima) {
myLight.range = distanciaMaxima;
}
if(myLight.range <= distanciaMinima) {
myLight.range = distanciaMinima;
}
//==========================================
if(myLight.intensity >= intensidadeMaxima) {
myLight.intensity = intensidadeMaxima;
}
if(myLight.intensity <= intensidadeMinima) {
myLight.intensity = intensidadeMinima;
}
}
void OnGUI () {
GUI.DrawTexture (new Rect (Screen.width / 2 + Screen.width / 2.3f, Screen.height / 2 - Screen.height / 4, Screen.width / 25, Screen.height / 10), texturaBateria [pilhaASerTexturizada]);
}
}
Abraço!
Re: Problema no script de lanterna (spotAngle, range e intensity)
Boa noite Mestre!
Então, não funcionou, pq não ta ligando a lanterna. Vou tirar o feriadão para comparar o seu script com o outro, pra saber onde foi que ta errando. Dei uma pausa pq preciso fazer a movimentação do inimigo tambem, que ta atravessando paredes. coloquei colliders e rigidbodys nos dois, mas ele continua atravessando paredes. Tem ideia do que possa estar fazendo errado?
Abraço, e grato!
Então, não funcionou, pq não ta ligando a lanterna. Vou tirar o feriadão para comparar o seu script com o outro, pra saber onde foi que ta errando. Dei uma pausa pq preciso fazer a movimentação do inimigo tambem, que ta atravessando paredes. coloquei colliders e rigidbodys nos dois, mas ele continua atravessando paredes. Tem ideia do que possa estar fazendo errado?
Abraço, e grato!
Giulyo- Iniciante
- PONTOS : 2791
REPUTAÇÃO : 1
Respeito as regras :
Re: Problema no script de lanterna (spotAngle, range e intensity)
tenta Mudar isso :
- Código:
if (Input.GetKeyDown ("f")) {
myLight.enabled = !myLight.enabled;
}
Tópicos semelhantes
» Problema com LANTERNA
» RESOLVIDO Script de ligar/desligar lanterna Unity 5 Ultima Versao
» Ajuda ae error CS1525: Unexpected symbol `if' como ajeito esse error no script da lanterna?
» Problema com script
» ALGUEM PODE ME AJUDAR COM ESSE SCRIPT DE LANTERNA
» RESOLVIDO Script de ligar/desligar lanterna Unity 5 Ultima Versao
» Ajuda ae error CS1525: Unexpected symbol `if' como ajeito esse error no script da lanterna?
» Problema com script
» ALGUEM PODE ME AJUDAR COM ESSE SCRIPT DE LANTERNA
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos