[TUTORIAL] Lanterna | Bateria | Efeito de falha
3 participantes
Página 1 de 1
[TUTORIAL] Lanterna | Bateria | Efeito de falha
Boa Noite galera.
Tenho 4 scripts aqui para lanternas muito boas para jogos de terror.
Cade linha esta comentada é só ver:
As scripts da Bateria e da Lanterna estão juntas.
Lanterna:
(Essa script precisa ser usada com a bateria)
Bateria:
Lanterna Falhando:
Lanterna Individual:
(Essa script não precisa ser usada com a bateria)
Tenho 4 scripts aqui para lanternas muito boas para jogos de terror.
Cade linha esta comentada é só ver:
As scripts da Bateria e da Lanterna estão juntas.
Lanterna:
(Essa script precisa ser usada com a bateria)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lanterna : MonoBehaviour {
GameObject SpotLight;//Componente. | ESTE COMPONENTE TEM QUE TER O NOME "LUZ" EM SUA LANTERNA
public GameObject lanterna;//Lanterna
Light light;//Componente
int a;//"A"
bool bateria;//Estado da Bateria
float d;//"D"
bool c;//"C"
bool b;//"B"
bool e;//"E"
float Intensity;//Intensidade random da SpotLight (EFEITO)
float RealIntensity;//Intensidade normal da SpotLight
float duracao;//Duração do efeito
float cdelay;//Cronometro
// Use this for initialization
void Start () {
SpotLight = GameObject.Find ("Luz");//Procurar SpotLight com o nome Luz
light = SpotLight.GetComponent<Light> ();//Pegar componente "Light" da SpotLight
RealIntensity = light.intensity;//"RealIntensity" é igual a SpotLight.intensity
}
// Update is called once per frame
void Update () {
if (bateria == true) {//Se bateria for igual a true
if (Input.GetKey (KeyCode.Mouse0)) {//Se eu clicar no mouse
a += 1;//Adicionar 1 a "A" quando eu clicar
if (a == 1) {//Se "A" for igual a 1 ou seja 1 click
light.enabled = true;//Ligar Lanterna
}
if (a == 2) {//Se a for igual a 2 ou seja se tiver dado o segundo click
light.enabled = false;//Desligar lanterna
a = 0;//"A" é igual a 0
}
}
} else {//Se "Bateria" for igual a false
SemBateria ();// Inciar Metodo SemBateria()
}
}
public void SemBateria(){//Metodo SemBateria()
cdelay += 1 * Time.deltaTime;//Adicionar 1 ao cronometro a cada segundo
if (c == false) {//Se "C" for igual a false
duracao = Random.Range (1, 2);//Valor random para a duração do efeito entre 1 a 2 segundos
c = true;//"C" é igual a true
}
if (cdelay < duracao) {//Se cronometro for menor que a duração
if (e == false) { // se "E" for igual a false libera a trava
StartCoroutine ("falha");//Start Efeito( Metodo IEnumerator falha() )
}
}
if (cdelay >= duracao) {//se for maior
e = false;//"E" é igual a false
b = false;//"B" é igual a false
c = false;// "C" é igual a false
cdelay = 0;//Cronometro é igual a 0
light.enabled = false;//Desligar lanterna
}
}//SemBateria()
IEnumerator falha(){
e = true;// "E" igual a true
Intensity = Random.Range (0,0.4f);//Dar valor random para o intensidade de 0 a 0.4
light.intensity = Intensity;//Intensidade da lanterna com efeito
yield return new WaitForSeconds(Random.Range(0.001f,0.01f));//Dar valor random para o return de 0.001 a 0.01 | isso vai fazer o lanterna piscar
light.intensity = RealIntensity;//Lanterna volta a sua intensidade normal
e = false;// "E" igual a false | libera a trava
}
public void StatsBateria(bool bate){
bateria = bate;
}
}
Bateria:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bateria : MonoBehaviour {
public int CargaTotal = 100;//Carga Total da Bateria
float delay = 3;//delay para diminuir a carga da bateria
float cdelay;//Cronometro
bool Stats;//Estado
public GameObject lanterna;//Lanterna
Lanterna lan;//Script "Lanterna"
Light light;//Componente
GameObject SpotLight;//Componente
public UnityEngine.UI.Text labe1;//LABEL
// Use this for initialization
void Start () {
SpotLight = GameObject.Find ("Luz");//Procurar GameObject com o nome "Luz"
light = SpotLight.GetComponent<Light> ();//Pegar componente "Light" da SpotLight
}
// Update is called once per frame
void Update () {
cdelay += 1 * Time.deltaTime;//Aumentar cronometro
if(cdelay >= delay){//Se o cronometro for maior ou igual a "Delay"
if(CargaTotal >= 0){//se "CargaTotal" for maior ou igual a 0
if(light.enabled == true){//Se a lanterna estiver ligada
CargaTotal -= 1;//Diminuir a carga
labe1.text = "Bateria: " + CargaTotal + "%"; //Editar texto da Label(UI text)
}
}
cdelay = 0;//Cronometro igual a 0
}
if(CargaTotal == 0){//Se "CargaTotal" for igual a 0
Stats = false;//Estado igual a False
}
if(CargaTotal > 0){//se "CargaTotal" for maior que 0
Stats = true;//Estado igual a true
}
lan = lanterna.GetComponent<Lanterna>();//Pegar script "Lanterna" no gameObject
lan.StatsBateria (Stats);//Enviar estado da bateria para a script da lanterna
}
}
Lanterna Falhando:
- Código:
using UnityEngine;
using System.Collections;
public class LanternaFalhando : MonoBehaviour {
GameObject SpotLight;
Light _Light;
//Falha Intensity
public float MaxIntensity;
float Intensity;
float RealIntensity;
float duracao;
float cdelay;//Cronometro
float tempo;
float ctempo;//Cronometro
bool c;
bool b;
bool a;
// Use this for initialization
void Start () {
SpotLight = GameObject.Find ("Luz");
_Light = SpotLight.GetComponent<Light> ();
RealIntensity = _Light.intensity;
}
// Update is called once per frame
void Update () {
if (_Light.enabled == true) {//Se a lanterna estiver ligada
//Duração do efeito
ctempo += 1 * Time.deltaTime;//Aumentar Cronometro
if (b == false) {//Se "B" for igual a false
tempo = Random.Range (10, 50);//Valor Random
b = true;//"B" igual a true
}
if (ctempo >= tempo) {// Se Cronometro for maior ou igual a "tempo"
cdelay += 1 * Time.deltaTime;//Aumentar Cronometro
if (c == false) {//Se "C" for igual a false
duracao = Random.Range (1, 4);//Valor random
c = true;//"C" igual a true
}
if (cdelay < duracao) {//Se Cronometro for menor que "duração"
if (a == false) {//Se "A" for igual a false
StartCoroutine ("falha");//Start Efeito
}
}
if (cdelay >= duracao) {
a = false; //"A" igual a 0
b = false;//"B" igual a 0
c = false;//"C" igual a 0
cdelay = 0;//"cdelay" igual a 0
ctempo = 0;//Cronometro igual a 0
}
}
}
}
IEnumerator falha(){
a = true;//"A" igual a true
Intensity = Random.Range (0,MaxIntensity);//Dar valor random para "Intensity" de 0 a "MaxIntensity"
_Light.intensity = Intensity;//intensidade da SpotLight ganha valor random para o efeito
yield return new WaitForSeconds(Random.Range(0.003f,0.01f));//Valor random para o return
_Light.intensity = RealIntensity;//intensidade da SpotLight volta ao normal
a = false;//"A" igual a false
}
}
Lanterna Individual:
(Essa script não precisa ser usada com a bateria)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lanterna : MonoBehaviour {
GameObject SpotLight;//Componente. | ESTE COMPONENTE TEM QUE TER O NOME "LUZ" EM SUA LANTERNA
public GameObject lanterna;//Lanterna
Light light;//Componente
int a;
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.Mouse0)) {//Se eu clicar no mouse
a += 1;//Adicionar 1 a "A" quando eu clicar
if (a == 1) {//Se "A" for igual a 1 ou seja 1 click
light.enabled = true;//Ligar Lanterna
}
if (a == 2) {//Se a for igual a 2 ou seja se tiver dado o segundo click
light.enabled = false;//Desligar lanterna
a = 0;//"A" é igual a 0
}
}
}
}
Re: [TUTORIAL] Lanterna | Bateria | Efeito de falha
Nossa cara ficou bem legal(vou usar com certeza.) uma pergunta. qual a duração da bateria?
Re: [TUTORIAL] Lanterna | Bateria | Efeito de falha
É só voce mudar aqui:
- Código:
public int CargaTotal = 100;//Carga Total da Bateria
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Sistema de Lanterna Simples sem bateria
» [TUTORIAL] Ligar e Desligar Lanterna
» Gui texture de progresso para Bateria de lanterna.
» Como consigo aquele efeito de lanterna imagem abaixo
» [TUTORIAL] - Script de lanterna pra seu jogo de terror e outros...
» [TUTORIAL] Ligar e Desligar Lanterna
» Gui texture de progresso para Bateria de lanterna.
» Como consigo aquele efeito de lanterna imagem abaixo
» [TUTORIAL] - Script de lanterna pra seu jogo de terror e outros...
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos