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:
TOP SECRET - Programador iniciante com experiencia em 2D
[____TÓPICO LIVRE____] FALE O QUE QUISER
Dúvida sobre multiplayer!
PARTICULAS PLAY/STOP
IA zumbie veloz de mais
INSTANCIAR PARTICULAS
ABRIR E FECHAR PORTA!
Fazer objeto preview andar de gridsize em gridsize
Rotaçao de um objeto e paralizaçao de seu "filho" na hierarquia(Unity 2D)
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Criação de uma mensagem notificação em objeto 3d no unity
Fazer a camera seguir o personagem porem quando ela chegar na parede ela pare de se movimenta
Tocar som ao andar.
Verificar se é a primeira vez que joga
COMO POSSO FAZER O INIMIGO MORRER COM TIRO?
Unity Microfone
OBJETO GIRAR QUANDO ARRASTAR O MOUSE
Instanciar objetos aonde mira
disolver/ desintegrar um objeto
BARRINHA PARA REBAIXAR O CARRO!
Chamar Metodo
Gerador de códigos
Duvida sobre patrulha aleatória
[TUTORIAL] Ligar e Desligar Lanterna
[TUTORIAL] ARMA NO UNITY 3D
SOM DO TIRO
Como usar uma animação de uma arma animada na Unity...
[Tutorial] Porta ativada por alavanca
[DUVIDA] "encostar" em um GameObject e Tomar Dano
MIRA PARA JOGO DE FPS ESTILO CSGO
Game Resistência
Parede ocas
Modificar uma barrinha!
[Quase Pronto] Survival Block. Testem e mandem os bugs pra mim.
[ME AJUDA] O player não se movimenta...
SIRENE ESTILO POLÍCIA MILITAR
Movimentaçao player
Cena Loading para carregar proximo Level
SITE MODELOS 3D PARA USO COMERCIAL
Home Simulator 2017 (Estilo The Sims em 1ª Pessoa) (Download Grátis)
MUDAR FLOAT NO FIM DE UMA ANIMAÇÃO
RagDoll + Download Free -- feito por um gringo
[TUTORIAL] Criar Analógico Virtual UI Para Mobile.
[AJUDA] Cronometro
[PEDIDO] Designers ou Entendedores (Capa,Menu e ToolTip) 3 Imagens
[RESOLVIDO] Publicando Apk Parte 2
[TUTORIAL] IA Simples
[TUTORIAL] Ajustar o Brilho do LensFlare de Acordo com a Distância
CONTROLE ARCADE PARA JOGO DE CORRIDA
[TUTORIAL] IA Simples Parte 2 (Atirar)
[DEMO] Survival Block
Aprimoramento IA Inimiga
Batalha de Canhão
[RESOLVIDO] Camera Collider
Todos os inimigos morrem
Canal de tutoriais android
Area Para modeladores
Inimigo ao seguir flutua [ajuda]
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Demo de jogo para testarem...
[TUTORIAL] Fazer um VOLANTE com UI, para Android
[DUVIDA] Como destruir um GameObject (cubo etc...) sem destruir seus "afilhados"
[Duvida] Como fazer uma luz se desativar ao ficar longe dela
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
GRAFICO BUGADO [MOBILE]
Duvida sobre array de gameobject
ERRO NO APK
ANIMAÇÃO
sincronizar um Variável String multiplayer
DUVIDAS VARIADAS
Publicando Apk na PlayStore
Curar vida ao coletar itens
(Dúvida) Rotacionar roda
Sistema de tráfego
ObjetoCair
Existe alguma forma de fazer multiplayer por lan ou por bluethooth?
Duvida Script
converter para C#
Animação de movimento
Modelos 3D para uso gratuito ou comercial
Ajuda com jogos em flash
[RESOLVIDO] Dano No Player Ajuda erro
Como fazer parar de seguir em uma distancia determinada
Meus modelos 3D em fase de experimento
Lampião Vs Zombies - FORMAÇÃO DE EQUIPE - Jogo 2D
Criando Inteligencia Artificial Para BOSS.
Problema Com Menu Inicial !!
Tutorial rpg?
Criar um objeto preso em apenas um lado
Inventario equipando roupas - Leia mas para saber
Animação não esta ativando na hora do pulo
COMO POSSO FAZER UM MULTIPLAYER?
Menu principal não funciona no mobile
tenho que alterar os scripts para transfomar um game para Android????
Movimentação, sem Rigidbody
dash estilo megaman x, suavizar
[TUTORIAL] Mensagem aparecer na tela conforme a distância do jogador (Unity 5)
Como criar um sistema d interação cm objetos atraves do raycasthit?
RESOLVIDO Script de ligar/desligar lanterna Unity 5 Ultima Versao
Hoje à(s) 1:43 pm
Hoje à(s) 1:38 pm
Hoje à(s) 1:34 pm
Hoje à(s) 1:13 pm
Hoje à(s) 1:12 pm
Hoje à(s) 12:14 pm
Hoje à(s) 10:43 am
Hoje à(s) 4:01 am
Hoje à(s) 3:20 am
Hoje à(s) 1:37 am
Hoje à(s) 12:53 am
Hoje à(s) 12:52 am
Hoje à(s) 12:49 am
Hoje à(s) 12:46 am
Hoje à(s) 12:45 am
Hoje à(s) 12:34 am
Hoje à(s) 12:30 am
Hoje à(s) 12:22 am
Hoje à(s) 12:20 am
Hoje à(s) 12:15 am
Hoje à(s) 12:05 am
Ontem à(s) 11:59 pm
Ontem à(s) 11:58 pm
Ontem à(s) 8:59 pm
Ontem à(s) 6:50 pm
Ontem à(s) 3:37 pm
Ontem à(s) 1:51 am
Ontem à(s) 1:31 am
Ontem à(s) 12:31 am
Sex Mar 24, 2017 8:54 pm
Sex Mar 24, 2017 8:05 pm
Sex Mar 24, 2017 7:43 pm
Sex Mar 24, 2017 7:18 pm
Sex Mar 24, 2017 6:52 pm
Sex Mar 24, 2017 6:48 pm
Sex Mar 24, 2017 3:46 pm
Sex Mar 24, 2017 1:50 pm
Sex Mar 24, 2017 12:29 pm
Sex Mar 24, 2017 10:05 am
Qui Mar 23, 2017 10:13 pm
Qui Mar 23, 2017 6:55 pm
Qui Mar 23, 2017 4:50 pm
Qui Mar 23, 2017 4:38 pm
Qui Mar 23, 2017 4:33 pm
Qui Mar 23, 2017 12:46 pm
Qui Mar 23, 2017 8:56 am
Qua Mar 22, 2017 7:47 pm
Qua Mar 22, 2017 7:35 pm
Qua Mar 22, 2017 7:30 pm
Qua Mar 22, 2017 3:28 pm
Ter Mar 21, 2017 11:50 pm
Ter Mar 21, 2017 10:14 pm
Ter Mar 21, 2017 7:22 pm
Ter Mar 21, 2017 6:08 pm
Ter Mar 21, 2017 5:00 pm
Ter Mar 21, 2017 3:22 pm
Ter Mar 21, 2017 3:08 pm
Ter Mar 21, 2017 2:13 pm
Ter Mar 21, 2017 10:53 am
Ter Mar 21, 2017 10:13 am
Ter Mar 21, 2017 12:26 am
Ter Mar 21, 2017 12:10 am
Ter Mar 21, 2017 12:09 am
Ter Mar 21, 2017 12:05 am
Ter Mar 21, 2017 12:02 am
Seg Mar 20, 2017 11:58 pm
Seg Mar 20, 2017 11:55 pm
Seg Mar 20, 2017 9:10 pm
Seg Mar 20, 2017 7:57 pm
Seg Mar 20, 2017 6:41 pm
Seg Mar 20, 2017 4:31 pm
Seg Mar 20, 2017 8:10 am
Dom Mar 19, 2017 11:32 pm
Dom Mar 19, 2017 8:50 pm
Dom Mar 19, 2017 8:20 pm
Dom Mar 19, 2017 12:06 pm
Sab Mar 18, 2017 10:31 pm
Sab Mar 18, 2017 10:01 pm
Sab Mar 18, 2017 8:26 pm
Sab Mar 18, 2017 8:06 pm
Sab Mar 18, 2017 6:53 pm
Sab Mar 18, 2017 5:31 pm
Sab Mar 18, 2017 9:41 am
Sab Mar 18, 2017 7:23 am
Sex Mar 17, 2017 10:02 pm
Sex Mar 17, 2017 3:21 pm
Sex Mar 17, 2017 12:42 pm
Sex Mar 17, 2017 10:47 am
Qui Mar 16, 2017 11:16 pm
Qui Mar 16, 2017 9:33 pm
Qui Mar 16, 2017 9:32 pm
Qui Mar 16, 2017 9:28 pm
Qui Mar 16, 2017 9:18 pm
Qui Mar 16, 2017 9:16 pm
Qui Mar 16, 2017 9:09 pm
Qui Mar 16, 2017 9:08 pm
Qui Mar 16, 2017 9:07 pm
Qui Mar 16, 2017 9:06 pm
Qui Mar 16, 2017 8:59 pm
BatataName
artplayer
artplayer
Junim
Junim
Junim
Gabriel César O
hackernew404
niao
Atiradogamer
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
wender
MarcosSchultz
MarcosSchultz
MarcosSchultz
MateusWTP
Gabriel César O
Gabriel César O
Sheyk
PauloFR
wender
Gabriel César O
Weverton Borges da Silva
maikonluis
HeF Software
Junim
Junim
wender
bravoent
Marc7
Callyde Jr
hen000
rafaelllsd
MateusWTP
Gabriel César O
Gabriel César O
Madness
Paizudo
Gabriel César O
AnderGames
Gabriel César O
Matrirxp
rafaelllsd
Matrirxp
AndyShow
ffabim
rafaelllsd
MikaelSteam
PauloFR
bravoent
DuViDoSo34
Édipo
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
lucasfera15
Khilua
PauloFR
Paizudo
willtuck
rafaelllsd
rafaelllsd
IanLuan
John Rambo
kalielson
willtuck
MikaelSteam
joabr
Luiz Mauro TCC
bravoent
AndyShow
joabr
BatataName
Callyde Jr
John Rambo
Callyde Jr
IanLuan
MarcosSchultz
Junim
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Phillip
MarcosSchultz
MarcosSchultz

[TUTORIAL]Singleton, A melhor forma de acessar a classe!

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

TUTORIAL [TUTORIAL]Singleton, A melhor forma de acessar a classe!

Mensagem por dimmuo em Qua Out 05, 2016 2:50 pm

Bom pessoal, Andei muito assistindo vídeos de gringos e estudando sobre c#, desde então comecei a usar Singletons para facilitar a vida.
Bom, o Singleton vai ser util para classes controladoras, como por exemplo um GameController, um AudioController, e por aí vai. Caso queira saber mais sobre singletons leia aqui: https://msdn.microsoft.com/en-us/library/ff650316.aspx

Vamos ao tutorial explicando passo a passo do que deve ser feito. (É DE EXTREMA IMPORTÂNCIA QUE VOCE LEIA OS COMENTÁRIOS DENTRO DO CÓDIGO PARA ENTENDER O QUE ESTÁ ACONTECENDO!)




PASSO 1 - Criando a Instancia.



Código:
using UnityEngine;
using System.Collections;

public class GameController : MonoBehaviour {

    // Vamos criar uma váriavel do TIPO "GameController" e usar o modificador "static".
    // Para saber mais sobre o modificador "static": https://msdn.microsoft.com/pt-br/library/98f28cdx.aspx
    private static GameControllerinstance;

    // Vamos chamar o método "Awake", que é chamado antes do método "Start"
    private void Awake()
    {
        // Iremos checar se a instancia é nula
        if (instance == null)
        {
            // Se for, então, a instancia será a instancia desta classe.
            // Para saber mais sobre "this": https://msdn.microsoft.com/pt-br/library/dk1507sz.aspx
            instance = this;
            // Vamos dizer para que não destrua esse OBJETO caso carreguemos outra cena
            DontDestroyOnLoad(this);
        }
        else
        {
            // Agora, iremos checar se a INSTANCIA que criamos lá em cima não é igual a INSTANCIA desta CLASSE
            // Pois, se tivermos 2 INSTANCIAS IGUAIS, iremos deletar esta instancia.
            if (instance != this)
            {
                Debug.Log("INSTANCE ALREADY IN SCENE! LET'S DESTROY OURSELVES!");
                Destroy(this.gameObject);
            }
        }
    }
        
}


PASSO 2 - (Opcional, porém recomendado) - Criando uma forma de "Carregar" o Prefab para dentro da cena caso seja chamado.


Bom, este passo aqui serve para que voce evite de esquecer de colocar o PREFAB dentro da cena. Ele vai  carregar o prefab caso você chame a instancia do GameControlle através de outro Classe, assim evitando erros.
Primeiramente, voce deve criar um GameObject em branco, colocar o script nele com o MESMO nome do script, depois, voce vai criar uma pasta chama Resources dentro da pasta Assets, e salvar o PREFAB que você criou do GameController lá dentro.



PASSO 2.1 - Melhorando o Script




Código:
using UnityEngine;
using System.Collections;

public class UIController : MonoBehaviour {

    // Vamos criar uma váriavel do TIPO "UIController" e usar o modificador "static".
    // Para saber mais sobre o modificador "static": https://msdn.microsoft.com/pt-br/library/98f28cdx.aspx
    private static UIController instance;

    // Vamos criar um método Getter para ter acesso atraves de outras classes
    // Para saber mais sobre Getters e Setters: https://msdn.microsoft.com/pt-br/library/w86s7x04.aspx
    public static UIController Instance
    {
        get
        {
            // Vamos checar se a instancia esta nula, ou seja, sem nenhum valor atribuido a ela
            if (instance == null)
            {
                // Vamos tentar procurar  o objeto na cena, caso ache, a instancia vai receber o objeto, porem do tipo UIController
                instance = GameObject.FindObjectOfType<UIController>();

                // Caso eu não ache o GameObject na cena, entao vou ter que carregar este GameObject dos Assets...
                if (instance == null)
                {
                    // Vamos Criar um GameObject temporario para armazenar o Object instanciado
                    // Lembrando que, vou precisar fazer o cast do Object para GameObject
                    GameObject obj = (GameObject)Instantiate(Resources.Load("UIController"));
                    obj.name = "UIController";
                    // Agora, precisamos colocar dentro da instance a componente UIController.
                    // Pois não precisamos na realidade do GameObject, mas sim da componente UIController
                    instance = obj.GetComponent<UIController>();
                }
                // Agora vamos fazer com que o GameObject permaneça caso carregue outras cenas.
                DontDestroyOnLoad(instance.gameObject);
            }
            return instance;
        }
    }

    // Vamos chamar o método "Awake", que é chamado antes do método "Start"
    private void Awake()
    {
        // Iremos checar se a instancia é nula
        if (instance == null)
        {
            // Se for, então, a instancia será a instancia desta classe.
            // Para saber mais sobre "this": https://msdn.microsoft.com/pt-br/library/dk1507sz.aspx
            instance = this;
            // Vamos dizer para que não destrua esse OBJETO caso carreguemos outra cena
            DontDestroyOnLoad(this);
        }
        else
        {
            // Agora, iremos checar se a INSTANCIA que criamos lá em cima não é igual a INSTANCIA desta CLASSE
            // Pois, se tivermos 2 INSTANCIAS IGUAIS, iremos deletar esta instancia.
            if (instance != this)
            {
                Debug.Log("INSTANCE ALREADY IN SCENE! LET'S DESTROY OURSELVES!");
                Destroy(this.gameObject);
            }
        }
    }

    // Método para Exemplificar o uso da Instancia
    public void ResetGame()
    {
    }
        
}

PASSO 3 - Acessando o GameController em outra Classe.




Código:
// Este passo é o mais simples, toda vez que desejar chamar um método, ou uma variavel de dentro do GameController
// Use a seguinte linha: (Lembrando, desde que quem voce for acessar seja publico)

GameController.Instance.ResetGame();
avatar
dimmuo
ProgramadorMaster

Masculino PONTOS : 984
REPUTAÇÃO : 84
Áreas de atuação : C# / Java / Sketchup / Unity / Blender
Respeito as regras :

Ver perfil do usuário http://augustobrit.github.io

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL]Singleton, A melhor forma de acessar a classe!

Mensagem por weslleyFx em Qua Out 05, 2016 4:54 pm

bom tutorial
avatar
weslleyFx
Moderador

Masculino PONTOS : 2261
REPUTAÇÃO : 496
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL]Singleton, A melhor forma de acessar a classe!

Mensagem por dimmuo em Ter Nov 29, 2016 10:46 am

valeu =)
avatar
dimmuo
ProgramadorMaster

Masculino PONTOS : 984
REPUTAÇÃO : 84
Áreas de atuação : C# / Java / Sketchup / Unity / Blender
Respeito as regras :

Ver perfil do usuário http://augustobrit.github.io

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