Sistema de dia e noite bugando outras coisas quando fica anoite
Página 1 de 1
Sistema de dia e noite bugando outras coisas quando fica anoite
Eu fiz o sistema de dia e noite de um video do schulz:
e tambem fiz o sistema de deixar o jogo otimizado do schulz:
blz,no meu aqui,tem 390 objetos que botei nesse sistema,se algum objeto entrar dentro dos 33 metros do personagem ele aparece,se nao,nao.
Funciona normal quando ta de dia,mas quando fica anoite buga,algumas coisas continua aparecendo e outras coisas nem aparece!Eu fiz uns testes,eu dei
play no jogo e enquanto tava de dia,eu fiquei puxando o personagem pra la e pra ca e as coisas apareciam e desapareciam normalmente,se eu ficar fazendo isso ate anoitecer,as coisas continua normal.quando do play no jogo e jogo normal,de dia funciona o negocio e de noite buga do nada,ai eu depois vou no scene e fico puxando o player igual fiz antes e continua bugado........quando amanhece a luz fica toda bugada e extremamente vermelha!mas so em vez em quando......sera que eu fiz alguma coisa errado?eu fiz tudo exatamente igual nos videos
script do dia e noite:
script de otimização:
e tambem fiz o sistema de deixar o jogo otimizado do schulz:
blz,no meu aqui,tem 390 objetos que botei nesse sistema,se algum objeto entrar dentro dos 33 metros do personagem ele aparece,se nao,nao.
Funciona normal quando ta de dia,mas quando fica anoite buga,algumas coisas continua aparecendo e outras coisas nem aparece!Eu fiz uns testes,eu dei
play no jogo e enquanto tava de dia,eu fiquei puxando o personagem pra la e pra ca e as coisas apareciam e desapareciam normalmente,se eu ficar fazendo isso ate anoitecer,as coisas continua normal.quando do play no jogo e jogo normal,de dia funciona o negocio e de noite buga do nada,ai eu depois vou no scene e fico puxando o player igual fiz antes e continua bugado........quando amanhece a luz fica toda bugada e extremamente vermelha!mas so em vez em quando......sera que eu fiz alguma coisa errado?eu fiz tudo exatamente igual nos videos
script do dia e noite:
- Código:
using UnityEngine;
using System.Collections;
using System;
[Serializable]
public class ClasseNuvens {
[Range(1,50)]
public float Velocidade = 5;
[Range(2,50)]
public float Altura = 17.0f;
[Range(0.1f,1)]
public float Quantidade = 0.2f;
[Range(0,10)]
public float Claridade = 9.0f;
[Range(0.4f,5.0f)]
public float TamanhoDaNuvem = 1.4f;
[Range(0,50)]
public float Intensidade = 30;
[Range(10,100)]
public float OpacidadeHorizonte = 50;
public Shader ShaderDoObjeto;
public Texture TexturaShader;
[HideInInspector]
public GameObject bola;
[Range(500,5000)]
public int escalaDaEsfera = 2000;
}
[Serializable]
public class ConfigsDia {
public float DuracaoDiaMin = 60;
[Range(0,8)]
public float IntensidadeLuzDia = 1;
[Range(0,8)]
public float IntensidadeLuzAmbienteDia = 1;
[Range(0.1f,100)]
public float VelocidadeInteracao = 1;
[Range(0.2f,1)]
public float HoraLuzesNoite = 0.4f;
[Range(0,8)]
public float ReflexosLuzDia = 1;
}
public class DiaNoite : MonoBehaviour {
public ClasseNuvens Nuvens;
public ConfigsDia ConfigsDoDia;
public Light[] LuzesNoite;
public GameObject Jogador;
private Light componenteLuz;
private bool ativou1x;
private float intensidadeCor;
void Awake(){
Nuvens.bola = new GameObject("EsferaNuvens");
Nuvens.bola.AddComponent (typeof(MeshFilter));
Nuvens.bola.AddComponent (typeof(MeshRenderer));
GameObject bolaTemp = GameObject.CreatePrimitive (PrimitiveType.Sphere);
Nuvens.bola.GetComponent<MeshFilter> ().mesh = bolaTemp.GetComponent<MeshFilter> ().mesh;
Destroy (bolaTemp);
Nuvens.bola.transform.localScale = new Vector3 (20*Nuvens.escalaDaEsfera, Nuvens.escalaDaEsfera, 20*Nuvens.escalaDaEsfera);
Nuvens.bola.GetComponent<Renderer> ().material.shader = Nuvens.ShaderDoObjeto;
Nuvens.bola.GetComponent<Renderer> ().material.mainTexture = Nuvens.TexturaShader;
}
void Start(){
Camera.main.farClipPlane = 51 * Nuvens.escalaDaEsfera;
AtivarLuzes (false);
transform.eulerAngles = new Vector3 (transform.eulerAngles.x, transform.eulerAngles.y, 0);
componenteLuz = GetComponent<Light> ();
componenteLuz.renderMode = LightRenderMode.ForcePixel;
RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Flat;
RenderSettings.ambientSkyColor = componenteLuz.color;
intensidadeCor = Mathf.Clamp ((transform.eulerAngles.x / 90), 0, 1);
}
void Update () {
if (Jogador != null) {
Nuvens.bola.transform.position = Jogador.transform.position;
}
SetarShaderUpdate ();
if (ConfigsDoDia.DuracaoDiaMin > 0) {
transform.Rotate ((6.0f / ConfigsDoDia.DuracaoDiaMin) * Time.deltaTime, 0, 0);
}
if (transform.eulerAngles.x > 0 && transform.eulerAngles.x < 180) {
intensidadeCor = Mathf.Lerp (intensidadeCor, Mathf.Abs (transform.eulerAngles.x / 90), Time.deltaTime * ConfigsDoDia.VelocidadeInteracao);
RenderSettings.ambientSkyColor = componenteLuz.color * Mathf.Clamp (intensidadeCor, 0.0f, 1.0f);
RenderSettings.ambientIntensity = Mathf.Lerp(RenderSettings.ambientIntensity, (0.15f + ConfigsDoDia.IntensidadeLuzAmbienteDia * Mathf.Abs (transform.eulerAngles.x/90)),Time.deltaTime*ConfigsDoDia.VelocidadeInteracao);
RenderSettings.reflectionIntensity = Mathf.Lerp(RenderSettings.reflectionIntensity, (0.1f + ConfigsDoDia.ReflexosLuzDia * Mathf.Abs (transform.eulerAngles.x/90)),Time.deltaTime*ConfigsDoDia.VelocidadeInteracao);
componenteLuz.intensity = Mathf.Lerp(componenteLuz.intensity,(ConfigsDoDia.IntensidadeLuzDia/2 + ConfigsDoDia.IntensidadeLuzDia*Mathf.Abs (transform.eulerAngles.x/360)),Time.deltaTime*ConfigsDoDia.VelocidadeInteracao);
} else {
intensidadeCor = Mathf.Lerp (intensidadeCor, 0.0f, Time.deltaTime * ConfigsDoDia.VelocidadeInteracao*0.4f);
RenderSettings.ambientSkyColor = componenteLuz.color * Mathf.Clamp (intensidadeCor, 0.0f, 1.0f);
RenderSettings.ambientIntensity = Mathf.Lerp (RenderSettings.ambientIntensity, 0.0f, Time.deltaTime*ConfigsDoDia.VelocidadeInteracao);
RenderSettings.reflectionIntensity = Mathf.Lerp (RenderSettings.reflectionIntensity, 0.0f, Time.deltaTime*ConfigsDoDia.VelocidadeInteracao);
componenteLuz.intensity = Mathf.Lerp (componenteLuz.intensity, 0.01f, Time.deltaTime*ConfigsDoDia.VelocidadeInteracao);
}
if (RenderSettings.ambientIntensity < ConfigsDoDia.HoraLuzesNoite && ativou1x == false) {
AtivarLuzes (true);
ativou1x = true;
} else if (RenderSettings.ambientIntensity >= ConfigsDoDia.HoraLuzesNoite) {
AtivarLuzes (false);
ativou1x = false;
}
}
void AtivarLuzes(bool condic){
for (int x = 0; x < LuzesNoite.Length; x++) {
LuzesNoite [x].enabled = condic;
}
}
void SetarShaderUpdate(){
Shader.SetGlobalFloat("_velocidade", Time.time*Nuvens.Velocidade);
Shader.SetGlobalFloat("_altura", Nuvens.Altura);
Shader.SetGlobalFloat("_quantidade", Nuvens.Quantidade);
Shader.SetGlobalFloat("_claridade", Nuvens.Claridade);
Shader.SetGlobalFloat("_tamanhoNuvem", (1/Nuvens.TamanhoDaNuvem));
Shader.SetGlobalFloat("_intensidade", Nuvens.Intensidade);
Shader.SetGlobalFloat("_opacidadeHorizonte", Nuvens.OpacidadeHorizonte);
}
}
script de otimização:
- Código:
using UnityEngine;
using System.Collections;
public class otimizacao : MonoBehaviour {
public GameObject[] _OBJETOS;
private GameObject JOGADOR;
private float DistanciaDoPlayer;
public float DistanciaMaxima = 40;
void Start (){
JOGADOR = GameObject.FindWithTag("Player");
}
void Update (){
for(int i = 0; i <_OBJETOS.Length; i++){
DistanciaDoPlayer = Vector3.Distance(JOGADOR.transform.position,_OBJETOS[i].transform.position);
if(DistanciaDoPlayer >= DistanciaMaxima){
_OBJETOS[i].SetActive (false);
}else{
_OBJETOS[i].SetActive (true);
}
}
}
}
Tópicos semelhantes
» (ajuda)quero fazer um sistema que quando o carro fica de ponta cabeça por 5 segundo ele de respawn automatico
» Sistema de dia e noite com nuvens
» [TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
» Como fazer Sistema Dia e Noite Segui o sistema de Hora
» Como faço para luz acender somente quando esta anoite?
» Sistema de dia e noite com nuvens
» [TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
» Como fazer Sistema Dia e Noite Segui o sistema de Hora
» Como faço para luz acender somente quando esta anoite?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos