SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Como colocar valor float em um texto na UI unity
[TUTORIAL] Mover, Girar e lançar objetos com o mouse ( estilo Amnesia )
como que faz para fazer o objeto sumir ao encostar
Como criar Objetos (GameObjects) Apertando Uma tecla
Questionário de Tema para História
Dê sua opinião de Cidade em Jogos
FORMAÇÃO DE EQUIPE PARA DESENVOLVIMENTO DE JOGO ESTILO RESIDENT EVIL 7
OBJETOS PISCANDO
MOVIMENTO DO JOGADOR DE ACORDO COM A CAMERA
[RESOLVIDO] como add tempo ao timer ao encostar em um objeto?
Como muda o shaders da unity
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Uma engine que irei recomendar a todos
como desativar script usando GetComponent?
RIGIDBODY...
Questionário de Estação do Ano e Acontecimento de Eventos
MySql + Unity 5.5 Não esta funcionando
Menu Button UI
[____TÓPICO LIVRE____] FALE O QUE QUISER
(Dúvida) Objeto receber posição do Raycast.
[TUTORIAL] Sistema COMPLETO de câmeras
Script que detecta o nome do objeto que colidiu
Desenvolvendo um aeronave VTOL
Idéias para games
Objeto ir para raycast
Objeto ultrapassando Colisor
[RESOLVIDO] Meu Script Sumiu!
Duvida de camera
Brasileiros podem usar o Unity ADS?
Como verificar se a animação términou no animator
DUVIDA SCRIPT DO MARCOS SELEÇÃO DE PERSONAGEM !
SOBRE "IK" INVERSE KINEMATICS
Botão em cena de Realidade aumentada.
Duvida como instância um game objeto com Raycast
sobre build run no Android
e algum bug??
Preciso de ajuda com Programação no Unity
[DÚVIDA] Como descobrir se o Player está na frente do Npc
[TUTORIAL] Efeitos e Partículas
Terreno infinito
[MODELO 3D] Fita K7 para Uso Comercial
[Dúvida] Movimentação com touch
BRASILIAN TRUCK SIMULADOR
Como colocar o personagem a piscar quando bate num espinho por exemplo e perde vida???
[PROBLEMA] Problema ao conectar a um host com o Unet. (Localmente)
[DUVIDA] como melhorar a jogabilidade de um jogo 2D
MoonthyStudios, se junte a nós e seja reconhecido.
DESLIGAR E LIGAR O CARRO
Diminuir tamanho do //BUILD// do projeto
[Asset] sendo criada, Hotel Completo(Ainda n esta pronta)
Erro ao tentar instalar o Visual Studio 2015
Unity ADS tem limite de anuncios diarios?
Skript para atravessar uma area e ir para outra cena já como personagem
[RESOLVIDO] Script
Uno Game with Unity 3D
multiplayer
Android Swipe
Formaçao de equipe para jogo de sobrevivencia online
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
Recarregador de arms
Alguém Para Dar Uma Avaliada no Meu Jogo de Terror :)
Tela rosa em jogos
MonoDevelop
[TUTORIAL] Cutscene inicial!
Design de apartamento (interior)
[RESOLVIDO] //Script// pressionar botão e destruir objeto não funciona
Stop Animation
Como usar uma animação de uma arma animada na Unity...
Como funciona esse script?!
Delay e ativar variavel de audio
Text to Speech ou outra sugestão
[RESOLVIDO] Como deixar sempre com dois dígitos
[RESOLVIDO] ERRO NO SISTEMA DE FOME, VIDA, STAMINA ETC... DO MARCOS
[RESOLVIDO] VOID START???
[RESOLVIDO] Animação
jogo quiz 2D unity 5...
Personagem em 3ª pessoa
Projeto - IMU, terror de sobrevivência em primeira pessoa (estilo silent hill)
JUMP no estilo Subwey surf
Auxilio para script de Câmera
[TUTORIAL] AI Enemy ( Jogos de terror )
Criar varias funções de mesmo nome em um script
Como Que faço Para Quando Eu Reentrar no game o PlayerPrefs restaurar os dados salvos?
[ASSET] Cama Realista 3D + Download Grátis!
Como colocar arvores configuradas pelo terrain?
Problema de conexão com o fórum
Desenvolvimento de game PokeGen MS - Vídeo e informações
dúvida com variáveis
Câmera tipo Uncharted
Iluminação unity 5
Procuro membros para minha Equipe (Programadores, designers, etc)
Galera aki tenho um site com muitos models 3d
COMO COLOCO LANTERNA DE LED NO MEU JOGO DE BUS
Problema Com Virtual Buttons Help me ;-;
GALERA PRECISO DE MODELADORES ,DESIGNER E PROGAMADORES PARA A MINHA EQUIPE DE UNITY 5
Ajuda na script
[ajuda] câmera puxada
Duvida de script de controle
Não carrega próxima cena após finalizar cutscene
Hoje à(s) 7:18 pm
Hoje à(s) 6:26 pm
Hoje à(s) 6:07 pm
Hoje à(s) 5:47 pm
Hoje à(s) 5:12 pm
Hoje à(s) 4:45 pm
Hoje à(s) 4:43 pm
Hoje à(s) 4:36 pm
Hoje à(s) 4:27 pm
Hoje à(s) 3:40 pm
Hoje à(s) 2:05 pm
Hoje à(s) 1:36 pm
Hoje à(s) 12:57 pm
Hoje à(s) 12:34 pm
Hoje à(s) 11:23 am
Hoje à(s) 10:14 am
Hoje à(s) 9:24 am
Hoje à(s) 8:52 am
Hoje à(s) 8:29 am
Hoje à(s) 4:25 am
Ontem à(s) 5:42 pm
Ontem à(s) 5:40 pm
Ontem à(s) 5:36 pm
Ontem à(s) 5:33 pm
Ontem à(s) 5:25 pm
Ontem à(s) 5:20 pm
Ontem à(s) 4:58 pm
Ontem à(s) 4:55 pm
Ontem à(s) 4:53 pm
Ontem à(s) 4:48 pm
Ontem à(s) 4:36 pm
Ontem à(s) 4:32 pm
Ontem à(s) 4:30 pm
Ontem à(s) 4:30 pm
Ontem à(s) 4:24 pm
Ontem à(s) 4:23 pm
Ontem à(s) 3:13 pm
Ontem à(s) 3:12 pm
Ontem à(s) 2:26 pm
Ontem à(s) 2:01 pm
Ontem à(s) 1:10 pm
Ontem à(s) 11:02 am
Ontem à(s) 10:24 am
Ontem à(s) 7:15 am
Ontem à(s) 1:45 am
Ontem à(s) 1:01 am
Ontem à(s) 12:57 am
Dom Jan 22, 2017 11:01 pm
Dom Jan 22, 2017 10:15 pm
Dom Jan 22, 2017 6:36 pm
Dom Jan 22, 2017 6:19 pm
Dom Jan 22, 2017 6:14 pm
Dom Jan 22, 2017 12:56 pm
Dom Jan 22, 2017 12:22 pm
Dom Jan 22, 2017 8:23 am
Sab Jan 21, 2017 10:13 pm
Sab Jan 21, 2017 10:04 pm
Sab Jan 21, 2017 9:17 pm
Sab Jan 21, 2017 4:08 pm
Sab Jan 21, 2017 1:45 pm
Sab Jan 21, 2017 1:23 pm
Sab Jan 21, 2017 1:16 pm
Sab Jan 21, 2017 2:31 am
Sab Jan 21, 2017 1:38 am
Sab Jan 21, 2017 12:07 am
Sex Jan 20, 2017 10:23 pm
Sex Jan 20, 2017 8:04 pm
Sex Jan 20, 2017 7:56 pm
Sex Jan 20, 2017 7:51 pm
Sex Jan 20, 2017 2:53 pm
Sex Jan 20, 2017 10:34 am
Sex Jan 20, 2017 5:22 am
Qui Jan 19, 2017 10:05 pm
Qui Jan 19, 2017 10:04 pm
Qui Jan 19, 2017 3:31 pm
Qui Jan 19, 2017 2:41 pm
Qui Jan 19, 2017 10:17 am
Qui Jan 19, 2017 9:58 am
Qua Jan 18, 2017 11:04 pm
Qua Jan 18, 2017 10:35 pm
Qua Jan 18, 2017 10:10 pm
Qua Jan 18, 2017 8:27 pm
Qua Jan 18, 2017 8:27 pm
Qua Jan 18, 2017 7:45 pm
Qua Jan 18, 2017 5:32 pm
Qua Jan 18, 2017 3:58 pm
Qua Jan 18, 2017 2:07 pm
Qua Jan 18, 2017 12:59 pm
Qua Jan 18, 2017 12:23 pm
Ter Jan 17, 2017 8:57 pm
Ter Jan 17, 2017 8:17 pm
Ter Jan 17, 2017 6:54 pm
Ter Jan 17, 2017 5:13 pm
Ter Jan 17, 2017 10:16 am
Ter Jan 17, 2017 7:54 am
Seg Jan 16, 2017 5:21 pm
Seg Jan 16, 2017 5:12 pm
Seg Jan 16, 2017 5:11 pm
Seg Jan 16, 2017 5:11 pm
DragonEarthGamesProggrame
DragonEarthGamesProggrame
John Rambo
DragonEarthGamesProggrame
John Rambo
John Rambo
John Rambo
John Rambo
lpseccp
johns
franz12
joabr
Fabroid
Willian Wii
lucasfera15
Rafael.
franz12
RenanMSV
RenanMSV
rafaelllsd
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Raaby Miranda
MarcosSchultz
MarcosSchultz
MarcosSchultz
Fabroid
George Lucas Vieira
George Lucas Vieira
weslleyFx
LucioHenrique
MrKarate
mukalok73
Jogos mini
marcos4503
artplayer
artplayer
tom ramber
AndyShow
LukkaFA
Fabroid
Kenji Haruno
kalel013
GabrielRaaposo
dstaroski
anizioNoob
anizioNoob
MateusWTP
Alerson Software
Callyde Jr
Moa
weslleyFx
Alerson Software
Dayzr
LukkaFA
joabr
weslleyFx
weslleyFx
weslleyFx
GustavoMaster
AndyShow
AndyShow
Joker 22
lucasfera15
GustavoMaster
Kenji Haruno
AndyShow
joabr
poker14k
artplayer
Pedro Canassa Garcia
pablo10544
LegendGames
artplayer
artplayer
Weverton Borges da Silva
AndyShow
AndyShow
John Rambo
John Rambo
dstaroski
MonsaM
John Rambo
anizioNoob
dstaroski
MarcosSchultz
MarcosSchultz
MarcosSchultz
joabr

Porta com senha!

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

DÚVIDA Porta com senha!

Mensagem por LeonradoGp em Qua Ago 26, 2015 2:00 pm

Galera eu preciso de um script de uma porta com senha.
tipo eu chego na porta e aperto "e" ai aparece pra por a senha clicando em cada numero na imagem,ai a porta abre, e se der erro ai sai um som.

LeonradoGp
Membro
Membro

Masculino PONTOS : 766
REPUTAÇÃO : 0
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Porta com senha!

Mensagem por MarcosSchultz em Sex Ago 28, 2015 2:21 pm

Cara, isto é um pouco complexo de fazer... Não o sistema de comparação de senha em si, más a parte do digitador.

Dá uma olhada neste script básico que eu fiz para ir na camera:

Código:

using UnityEngine;
using System.Collections;

public class Senha : MonoBehaviour {
   public string senha;
   private string senhaTXT;
   private  GUIStyle style;
   void Start(){
      senhaTXT = string.Empty;
      style = new GUIStyle();
   }
   void OnGUI(){
      //numeros da senha
         GUI.Box(new Rect(Screen.width / 2.61f, Screen.height / 8, Screen.width / 4.3f, Screen.height / 8), senhaTXT);
      // 1 - 2 - 3
         if (GUI.Button (new Rect (Screen.width / 2.61f, Screen.height / 3, Screen.width / 14, Screen.height / 8), "1")) {
            senhaTXT = senhaTXT + "1";
         }
         if (GUI.Button (new Rect (Screen.width / 2.16f, Screen.height / 3, Screen.width / 14, Screen.height / 8), "2")) {
            senhaTXT = senhaTXT + "2";
         }
         if (GUI.Button (new Rect (Screen.width / 1.835f, Screen.height / 3, Screen.width / 14, Screen.height / 8), "3")) {
            senhaTXT = senhaTXT + "3";
         }
      // 4 - 5 - 6
         if (GUI.Button (new Rect (Screen.width / 2.61f, Screen.height / 2.1f, Screen.width / 14, Screen.height / 8), "4")) {
            senhaTXT = senhaTXT + "4";
         }
         if (GUI.Button (new Rect (Screen.width / 2.16f, Screen.height / 2.1f, Screen.width / 14, Screen.height / 8), "5")) {
            senhaTXT = senhaTXT + "5";
         }
         if (GUI.Button (new Rect (Screen.width / 1.835f, Screen.height / 2.1f, Screen.width / 14, Screen.height / 8), "6")) {
            senhaTXT = senhaTXT + "6";
         }
      // 7 - 8 - 9
         if (GUI.Button (new Rect (Screen.width / 2.61f, Screen.height / 1.6f, Screen.width / 14, Screen.height / 8), "7")) {
            senhaTXT = senhaTXT + "7";
         }
         if (GUI.Button (new Rect (Screen.width / 2.16f, Screen.height / 1.6f, Screen.width / 14, Screen.height / 8), "8")) {
            senhaTXT = senhaTXT + "8";
         }
         if (GUI.Button (new Rect (Screen.width / 1.835f, Screen.height / 1.6f, Screen.width / 14, Screen.height / 8), "9")) {
            senhaTXT = senhaTXT + "9";
         }
      // * - 0 - #
         if (GUI.Button (new Rect (Screen.width / 2.61f, Screen.height / 1.3f, Screen.width / 14, Screen.height / 8), "*")) {
            senhaTXT = senhaTXT + "*";
         }
         if (GUI.Button (new Rect (Screen.width / 2.16f, Screen.height / 1.3f, Screen.width / 14, Screen.height / 8), "0")) {
            senhaTXT = senhaTXT + "0";
         }
         if (GUI.Button (new Rect (Screen.width / 1.835f, Screen.height / 1.3f, Screen.width / 14, Screen.height / 8), "#")) {
            senhaTXT = senhaTXT + "#";
         }
      // RESSETAR OU CONFIRMAR
      if (GUI.Button (new Rect (Screen.width / 1.5f, Screen.height / 1.7f, Screen.width / 5, Screen.height / 8), "RESSETAR")) {
         senhaTXT = string.Empty;
      }
      if (GUI.Button (new Rect (Screen.width / 1.5f, Screen.height / 2.5f, Screen.width / 5, Screen.height / 8), "CONFIRMAR")) {
         if(senhaTXT == senha){
            senhaTXT = "Senha Correta";
         }else{
            senhaTXT = "Senha Incorreta";
         }
      }
   }
}

MarcosSchultz
Administrador

Masculino PONTOS : 7562
REPUTAÇÃO : 1001
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA Re: Porta com senha!

Mensagem por LeonradoGp em Sab Ago 29, 2015 3:42 pm

e como eu faço para esse script ser executado só quando eu apertar a letra "E" na porta?? e tbm quando ele digitar a senha correta carregar outra scene?

LeonradoGp
Membro
Membro

Masculino PONTOS : 766
REPUTAÇÃO : 0
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Porta com senha!

Mensagem por MarcosSchultz em Ter Set 01, 2015 9:32 pm

Use a função "OnTriggerEnter" para detectar se esta perto da porta ou um "Vector3.Distance"

Depois faça um simples if para quando você apertar "e", alguma bariavel booleana fica verdadeira. Depois basta colocar os comandos GUI de senha dentro de uma condição em que a variavel booleana necessita estar verdadeira.

MarcosSchultz
Administrador

Masculino PONTOS : 7562
REPUTAÇÃO : 1001
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA teste

Mensagem por bianchi31 em Qua Set 02, 2015 9:29 am

Opa boa tarde , eu nao entendo nada de programação , e eu estava querendo mesma coisa que voce, ai vi o que o Marcos postou, e juntei com script da porta que ele mesmo colocou, ai consegui, agora caso esteja errado mau ae pessoal ^^
ESSE SCRIPT E SEM 'TELEPORTE'


assim quando vc chegar perto dela e apertar "E"  ela ira abrir o painel com senha.

criar um Script com nome : Codigocamera e joga no objeto vazio de sua porta
Código:
using UnityEngine;
using System.Collections;

public class Codigocamera : MonoBehaviour {
   public string senha;
   private string senhaTXT;
   private  GUIStyle style;
   private GameObject Jogador;
   private bool PodeAbrir;
   public float distanciaParaAbrir = 2;
   public bool AtivarGui = false;
   private float RotacaoFechada,RotacaoAberta;
   private bool MovimentarPorta,EstaAberta;
   public float VelocidadeDeGiro = 60;
   private float CronometroDoAviso,CronometroMovimento;
   private Codigocamera script; // "Codigocamera" nome desse script - troque para nome de seu script
   private PortaAoContrario script1;  // "PortaAoContario" nome do script da porta normal



      void Start(){
      script = GetComponent<Codigocamera>(); //"Codigocamera" nome desse script
      script1 = GetComponent<PortaAoContrario>();  // "PortaAoContario" nome do script da porta normal
      EstaAberta = false;
      senhaTXT = string.Empty;
      style = new GUIStyle();
      Jogador = GameObject.FindWithTag ("Player");
      RotacaoFechada = transform.eulerAngles.y;
      RotacaoAberta = transform.eulerAngles.y + 90;
      if (RotacaoAberta > 360) {
         RotacaoAberta = transform.eulerAngles.y + 90 -360;
      }
   }

   void Update (){
      // CHECAHDO SE ESTA PERTO OU NAO
      if (Input.GetKeyDown ("e") && Vector3.Distance (transform.position, Jogador.transform.position) <= distanciaParaAbrir && AtivarGui == false) {
         PodeAbrir = true;
         AtivarGui = true;
      } else if (Vector3.Distance (transform.position, Jogador.transform.position) > distanciaParaAbrir) {
         PodeAbrir = false;
         AtivarGui = false;
      }

      {
         if (Input.GetKeyDown ("escape") && AtivarGui == true)
            AtivarGui = false;
      }
      if (MovimentarPorta == true) {
         CronometroMovimento += Time.deltaTime;
      }
      if (CronometroMovimento >= 2 + 75 / VelocidadeDeGiro) {
         MovimentarPorta = false;
         CronometroMovimento = 0;
         EstaAberta = !EstaAberta;
         script.enabled = false;   // depois que o movimento da porta for concluido, desabilitar esse script
         script1.enabled = true;  // depois que o movimento da porta for concluido, ativar script da porta

      }
   }


   void FixedUpdate (){
      if (MovimentarPorta == true && EstaAberta == false) {
         Vector3 rotacaoFinal = new Vector3(0,RotacaoAberta,0);
         transform.eulerAngles = Vector3.Lerp (transform.eulerAngles,rotacaoFinal,Time.deltaTime*(VelocidadeDeGiro/50));

      }
      // MOVIMENTO DE FECHAR A PORTA
      else if (MovimentarPorta == true && EstaAberta == true) {
         Vector3 rotacaoFinal = new Vector3(0,RotacaoFechada,0);
         transform.eulerAngles = Vector3.Lerp (transform.eulerAngles,rotacaoFinal,Time.deltaTime*(VelocidadeDeGiro/50));
      }
   }
   void OnGUI(){
      //numeros da senha
      if(AtivarGui == true)
      GUI.Box(new Rect(Screen.width / 2.61f, Screen.height / 8, Screen.width / 4.3f, Screen.height / 8), senhaTXT);
      // 1 - 2 - 3
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 2.61f, Screen.height / 3, Screen.width / 14, Screen.height / 8), "1")) {
         senhaTXT = senhaTXT + "1";
      }
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 2.16f, Screen.height / 3, Screen.width / 14, Screen.height / 8), "2")) {
         senhaTXT = senhaTXT + "2";
      }
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 1.835f, Screen.height / 3, Screen.width / 14, Screen.height / 8), "3")) {
         senhaTXT = senhaTXT + "3";
      }
      // 4 - 5 - 6
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 2.61f, Screen.height / 2.1f, Screen.width / 14, Screen.height / 8), "4")) {
         senhaTXT = senhaTXT + "4";
      }
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 2.16f, Screen.height / 2.1f, Screen.width / 14, Screen.height / 8), "5")) {
         senhaTXT = senhaTXT + "5";
      }
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 1.835f, Screen.height / 2.1f, Screen.width / 14, Screen.height / 8), "6")) {
         senhaTXT = senhaTXT + "6";
      }
      // 7 - 8 - 9
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 2.61f, Screen.height / 1.6f, Screen.width / 14, Screen.height / 8), "7")) {
         senhaTXT = senhaTXT + "7";
      }
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 2.16f, Screen.height / 1.6f, Screen.width / 14, Screen.height / 8), "8")) {
         senhaTXT = senhaTXT + "8";
      }
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 1.835f, Screen.height / 1.6f, Screen.width / 14, Screen.height / 8), "9")) {
         senhaTXT = senhaTXT + "9";
      }
      // * - 0 - #
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 2.61f, Screen.height / 1.3f, Screen.width / 14, Screen.height / 8), "*")) {
         senhaTXT = senhaTXT + "*";
      }
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 2.16f, Screen.height / 1.3f, Screen.width / 14, Screen.height / 8), "0")) {
         senhaTXT = senhaTXT + "0";
      }
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 1.835f, Screen.height / 1.3f, Screen.width / 14, Screen.height / 8), "#")) {
         senhaTXT = senhaTXT + "#";
      }
      // RESSETAR OU CONFIRMAR
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 1.5f, Screen.height / 1.7f, Screen.width / 5, Screen.height / 8), "RESETAR")) {
         senhaTXT = string.Empty;
      }
      if (AtivarGui == true && GUI.Button (new Rect (Screen.width / 1.5f, Screen.height / 2.5f, Screen.width / 5, Screen.height / 8), "CONFIRMAR")) {
         if(senhaTXT == senha){
            senhaTXT = "Senha Correta";
            MovimentarPorta = true;
            EstaAberta = false;

            


         }else{
            senhaTXT = "Senha Incorreta";

         }

         }

      }

   }

esse script voce so cria se quiser que ela abra e feche normalmente.

Criar outro script com nome PortaAoContrario e joga no objeto vazio de sua porta  e desabilita ele no unity
esse e o mesmo script que marcos postou no forum aqui "Chaves"
so que mudei para negativo.

Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[RequireComponent(typeof(AudioSource))]
public class PortaAoContrario : MonoBehaviour {
   public bool EstaTrancada,PrecisaDeChave;
   public AudioClip PortaNormal,PortaTrancada,SomDeChave;
   public float distanciaParaAbrir = 3;
   public Font Fonte;
   public float VelocidadeDeGiro = 60;
   public int IDdaPorta;
   public static List<int> ListaDeIDs = new List<int>(); // LISTA DE CHAVES QUE O PLAYER CONTEM
   private bool MovimentarPorta, EstaAberta,PodeAbrir,AvisoTrancada,temAChave;
   private float CronometroDoAviso,CronometroMovimento;
   private float RotacaoFechada,RotacaoAberta;
   private GameObject Jogador;
   void Start (){
      EstaAberta = false;
      AvisoTrancada = false;
      temAChave = false;
      RotacaoFechada = transform.eulerAngles.y;
      RotacaoAberta = transform.eulerAngles.y - 90;
      if (RotacaoAberta > 360) {
         RotacaoAberta = transform.eulerAngles.y + 90 -360;
      }
      Jogador = GameObject.FindWithTag ("Player");
      if (PrecisaDeChave == true) {
         EstaTrancada = true;
      }
   }
   void Update (){
      // CHECAHDO SE ESTA PERTO OU NAO
      if (Vector3.Distance (transform.position, Jogador.transform.position) <= distanciaParaAbrir) {
         PodeAbrir = true;
      } else if (Vector3.Distance (transform.position, Jogador.transform.position) > distanciaParaAbrir) {
         PodeAbrir = false;
      }
      //CHECANDO SE ESTA TRANCADA OU NAO... SE NAO ESTIVER, PODE ABRIR
      if (EstaTrancada == false) {
         if(Input.GetKeyDown("e") && MovimentarPorta == true && PodeAbrir == true){
            CronometroMovimento = 0;
            EstaAberta = !EstaAberta;
            GetComponent<AudioSource>().Stop ();
            GetComponent<AudioSource>().PlayOneShot(PortaNormal);
         }
         else if(Input.GetKeyDown("e") && PodeAbrir == true && MovimentarPorta == false){
            GetComponent<AudioSource>().PlayOneShot(PortaNormal);
            MovimentarPorta = true;
         }
      }
      // SE A PORTA ESTIVER TRANCADA
      if (Input.GetKeyDown ("e") && PodeAbrir == true && EstaTrancada == true) {
         //CHECA SE O PALYER TEM A CHAVE OU NAO
         for(int x = 0; x < ListaDeIDs.Count; x++){
            if(IDdaPorta == ListaDeIDs[x]){
               temAChave = true;
            }else{
               temAChave = false;
            }
         }
         // SE O PALYER TEM A CHAVE
         if(temAChave == true && PrecisaDeChave == true){

            EstaTrancada = false;
            if(!GetComponent<AudioSource>().isPlaying){
               GetComponent<AudioSource>().PlayOneShot(SomDeChave);

            }
         }
         // SE O PALYER NAO TEM A CHAVE
         else {
            AvisoTrancada = true;
            if(!GetComponent<AudioSource>().isPlaying){
               GetComponent<AudioSource>().PlayOneShot(PortaTrancada);
            }
         }
      }
      // CRONOMETRO DO AVISO DA PORTA TRANCADA
      if (AvisoTrancada == true) {
         CronometroDoAviso += Time.deltaTime;
      }
      if (CronometroDoAviso >= 3) {
         AvisoTrancada = false;
         CronometroDoAviso = 0;
      }
      // CRONOMETRO DO MOVIMENTO DA PORTA
      if (MovimentarPorta == true) {
         CronometroMovimento += Time.deltaTime;
      }
      if(CronometroMovimento >= 2 + 75/VelocidadeDeGiro){
         MovimentarPorta = false;
         CronometroMovimento = 0;
         EstaAberta = !EstaAberta;
      }
   }
   void FixedUpdate (){
      // MOVIMENTO DE ABRIR A PORTA
      if (MovimentarPorta == true && EstaAberta == false) {
         Vector3 rotacaoFinal = new Vector3(0,RotacaoAberta,0);
         transform.eulerAngles = Vector3.Lerp (transform.eulerAngles,rotacaoFinal,Time.deltaTime*(VelocidadeDeGiro/50));
      }
      // MOVIMENTO DE FECHAR A PORTA
      else if (MovimentarPorta == true && EstaAberta == true) {
         Vector3 rotacaoFinal = new Vector3(0,RotacaoFechada,0);
         transform.eulerAngles = Vector3.Lerp (transform.eulerAngles,rotacaoFinal,Time.deltaTime*(VelocidadeDeGiro/50));
      }
   }
   void OnGUI (){
      // AVISO SOBRE PORTA TRANCADA
      GUI.skin.font = Fonte;
      GUI.skin.label.fontSize = Screen.height / 20;
      if (AvisoTrancada == true) {
         if(PrecisaDeChave == true){
            GUI.Label(new Rect(Screen.width/2-Screen.width/5,Screen.height/2-Screen.height/16,Screen.width/2.5f,Screen.height/8),"Voce precisa de uma chave");
         }
         else if(PrecisaDeChave == false){
            GUI.Label(new Rect(Screen.width/2-Screen.width/5,Screen.height/2-Screen.height/16,Screen.width/2.5f,Screen.height/8),"Nunca ira abrir");
         }
      }
   }
}


Creditos : MarcosSchultz Very Happy . vlw flw

bianchi31
Iniciante
Iniciante

PONTOS : 631
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Porta com senha!

Mensagem por LeonradoGp em Qua Set 02, 2015 3:30 pm

Obrigado!!! Funciono direitinho vlw man!!!

LeonradoGp
Membro
Membro

Masculino PONTOS : 766
REPUTAÇÃO : 0
Idade : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum