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:
[Duvida]3dwarehouse posso usar seus modelos e vender meu jogo ?
Novo tema fórum - Votação
Unity editor lento, mas game final não
Como usar o Getfloat no audio mixer?
[DUVIDA] Textura dentro do objeto com editor gráfico da unity
Blender p/ Unity - Objetos c/ 90º
[AJUDA]Como ativar/desativar todos os GameObjects de uma array
Asset MS Vehicle System
Dúvida NavMesh com UI
[ERRO UNITY] Unity 2017
[TUTORIAL] UNITY 5 - Efeito submerso (underwater effect), distorção da água e gotas na tela
Novo jogo em desenvolvimento para android
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Ajuda com script para enviar valores a uma list<> e depois seta-los de uma vez
Formação de equipe
Textura - Envelopamento de Cubos e outras Formas
colisão na particle
Quero fazer um jogo de terror estilo slender multiplayer
(Ajuda) PlayerPrefs
Salvar estado de bool com PlayerPrefsX.
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[Projeto] Line Battle
[TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Bug Animation
avaliem esse trabalho no scupt mode
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
Wheel joint 2d e problema com limite de velocidade
[RESOLVIDO]Text não recebe texto do inpult Field
Como criar uma conexão externa usando IP do host
[RESOLVIDO] Componente Button em um sprite.
Seleção de botão
GRAFICOS UNITY
Adaptação a Área de Desenvolvimento de Jogos
PRECISO DE UM ANIMADOR
[RESOLVIDO] Qual o Aspect Ratio do celular.
pack de animações
Como faço para o personagem entrar e sair do carro?
[DÚVIDA]Como sincronizar os kills e mortes com Unet
[RESOLVIDO]Licença 3d Warehouse
como criar um slime? como fazer para uma mesh ficar mole e colidir com o chao(tipo slime)?
[DÚVIDA]É possível instalar o Unity no Ubuntu e ser ativado sem internet?
[DÚVIDA]Materiais da Unity para objetos do Blender
[AJUDA]Quero Ajuda poque esse script so da erro!
[DÚVIDA]Tempo de espera fora do app
[RESOLVIDO]Script com um pequeno defeito
[RESOLVIDO]Erro com monodevelop
[RESOLVIDO]Como fazer o audio se sobrepor?
aVork - Física realista para veículos
Wheel Collider
Dúvida com void OnTriggerEnter
[DÚVIDA]Atributos Network UNET
[RESOLVIDO] erro no unity 2017 ao colocar scripts
[DÚVIDA]Problema com Multiplayer UNET
NOVO ANDROID STUDIO COM PROBLEMA NO SDK
Suzuki Srad 750
[RESOLVIDO]Tem Como eu Fazer uma Float com 2 Numeros após a virgula ?
[RESOLVIDO] Cálculo simples dando errado
Build Para IOS
[DEVLOG] Projeto - Pocket Girl Blade - Atualização
Movimentação no Espaço como Jet Pack
Como selecionar um único filho de um Gameobject?
Numero de itens iguais em uma lista
[RESOLVIDO]Alguém tem alguma dica sobre NavMeshAgent
Problemas com o Unity
[RESOLVIDO]Receber o nome do próprio objeto em uma string
Weslley GameDev
[DÚVIDA]Ajuda para como fazer esse script voltar a funcionar
[Duvida] Collab Excedeu o Seu Limite : Como posso transferir o projeto entre a equipe?
[DUVIDA] Sistema de diario/Livro de notas
[DÚVIDA](Multiplayer) Comando para non-Player object
é Possivel visualizar uma Variavel Estatica no Inspector ?
Physics2D para Physics?
Erro com lista
Como melhorar o desempenho mobile?
[DÚVIDA]Receber e setar texto em um objeto
[DÙVIDA]Problema ao criar build Android
[DÚVIDA]Como fazer um lerp de um determinado valor de maneira gradativa
[DÚVIDA]MULTIPLAYER Unet: Como sincronizar Variaveis(bool)
Banco de Dados Cotação
[RESOLVIDO] O fórum é só para Unity?
[RESOLVIDO] Button perdendo a instancia
[RESOLVIDO]UNITY NAO REPRODUZ AUDIO, problema do pc ou da unity?
Atualização do meu jogo estilo Resident Evil 4 + link do APK
Reproduzir vídeos do youtube
Necessito de sua ajuda para uma ideia...
(ARQUIVO) Leia aqui como obter sucesso com seu jogo independente?
Duvida com script !
Criar LAN via bluetooth
[RESOLVIDO]Estou Usando FindGameObjectWithTag Porem....
[TUTORIAL] Mover/Empurrar Objetos, Caixote,etc
Script de Movimentação não funciona
[RESOLVIDO] SDK NÃO FUNCIONA NO WINDOWS 10
Novo jogo - Stackx
Simular tecla com um botao ou touch
Botoes da unity no android e destruir um objeto em qualquer lugar da cena com touch
Dúvida Netwoking
[____ADERIR A UMA CATEGORIA NO FÓRUM____]
Hoje à(s) 6:13 pm
Hoje à(s) 5:49 pm
Hoje à(s) 5:11 pm
Hoje à(s) 5:07 pm
Hoje à(s) 4:59 pm
Hoje à(s) 4:38 pm
Hoje à(s) 4:36 pm
Hoje à(s) 4:30 pm
Hoje à(s) 4:30 pm
Hoje à(s) 4:28 pm
Hoje à(s) 4:27 pm
Hoje à(s) 4:04 pm
Hoje à(s) 3:50 pm
Hoje à(s) 3:40 pm
Hoje à(s) 3:36 pm
Hoje à(s) 3:32 pm
Hoje à(s) 3:09 pm
Hoje à(s) 3:07 pm
Hoje à(s) 1:58 pm
Hoje à(s) 12:19 pm
Hoje à(s) 11:46 am
Hoje à(s) 11:45 am
Hoje à(s) 10:10 am
Hoje à(s) 9:04 am
Hoje à(s) 8:52 am
Hoje à(s) 7:59 am
Hoje à(s) 7:50 am
Hoje à(s) 12:23 am
Ontem à(s) 10:35 pm
Ontem à(s) 9:22 pm
Ontem à(s) 7:55 pm
Ontem à(s) 7:51 pm
Ontem à(s) 7:31 pm
Ontem à(s) 6:22 pm
Ontem à(s) 2:03 pm
Ontem à(s) 1:13 pm
Ontem à(s) 12:31 pm
Ontem à(s) 9:12 am
Sab Jan 20, 2018 11:57 pm
Sab Jan 20, 2018 10:12 pm
Sab Jan 20, 2018 9:54 pm
Sab Jan 20, 2018 9:36 pm
Sab Jan 20, 2018 9:23 pm
Sab Jan 20, 2018 9:02 pm
Sab Jan 20, 2018 8:46 pm
Sab Jan 20, 2018 8:30 pm
Sab Jan 20, 2018 8:26 pm
Sab Jan 20, 2018 8:23 pm
Sab Jan 20, 2018 8:20 pm
Sab Jan 20, 2018 8:11 pm
Sab Jan 20, 2018 8:10 pm
Sab Jan 20, 2018 8:05 pm
Sab Jan 20, 2018 4:21 pm
Sab Jan 20, 2018 2:05 am
Sab Jan 20, 2018 1:34 am
Sex Jan 19, 2018 9:06 pm
Sex Jan 19, 2018 3:10 pm
Sex Jan 19, 2018 1:05 pm
Sex Jan 19, 2018 11:52 am
Sex Jan 19, 2018 10:17 am
Sex Jan 19, 2018 10:13 am
Sex Jan 19, 2018 1:11 am
Qui Jan 18, 2018 9:46 pm
Qui Jan 18, 2018 8:10 pm
Qui Jan 18, 2018 8:00 pm
Qui Jan 18, 2018 7:42 pm
Qui Jan 18, 2018 7:13 pm
Qui Jan 18, 2018 7:09 pm
Qui Jan 18, 2018 5:09 pm
Qui Jan 18, 2018 4:53 pm
Qui Jan 18, 2018 4:10 pm
Qui Jan 18, 2018 4:10 pm
Qui Jan 18, 2018 4:05 pm
Qui Jan 18, 2018 4:03 pm
Qui Jan 18, 2018 3:46 pm
Qui Jan 18, 2018 3:04 pm
Qui Jan 18, 2018 1:28 pm
Qui Jan 18, 2018 1:09 pm
Qui Jan 18, 2018 12:36 pm
Qui Jan 18, 2018 12:23 pm
Qui Jan 18, 2018 8:23 am
Qui Jan 18, 2018 8:11 am
Qui Jan 18, 2018 2:17 am
Qui Jan 18, 2018 2:14 am
Qua Jan 17, 2018 8:35 pm
Qua Jan 17, 2018 6:41 pm
Qua Jan 17, 2018 4:25 pm
Qua Jan 17, 2018 4:08 pm
Qua Jan 17, 2018 3:30 pm
Qua Jan 17, 2018 3:03 pm
Qua Jan 17, 2018 1:00 pm
Qua Jan 17, 2018 1:00 pm
Qua Jan 17, 2018 12:22 pm
Qua Jan 17, 2018 11:31 am
Qua Jan 17, 2018 10:40 am
Qua Jan 17, 2018 8:46 am
Ter Jan 16, 2018 11:17 pm
Ter Jan 16, 2018 11:04 pm
Ter Jan 16, 2018 10:45 pm
Xxxteem0xxX
M4theuz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
BRGC
MarcosSchultz
MarcosSchultz
acasoboss
Phph09
luiz12345
acasoboss
azool
Phph09
Phph09
felipehobs1
Ghosthy
dstaroski
dstaroski
BRGC
Phph09
M4theuz
TioUV
TioUV
mayke1040
Álefe Kauvyhtz
recagonlei
recagonlei
recagonlei
Mosqueiro
Before Dawn
Raphaels
Junim
recagonlei
dstaroski
mafersa
recagonlei
recagonlei
recagonlei
recagonlei
recagonlei
recagonlei
recagonlei
recagonlei
recagonlei
recagonlei
MarcosSchultz
MarcosSchultz
Água Sem Hidrogênio
recagonlei
recagonlei
recagonlei
marco.flautista
MRX
recagonlei
recagonlei
natanael.olimpio
dstaroski
MarcosSchultz
felipehobs1
recagonlei
recagonlei
dstaroski
recagonlei
DuViDoSo
MarcosSchultz
MarcosSchultz
Gwiisk
recagonlei
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MRX
YmKx
recagonlei
recagonlei
Phph09
John Rambo
recagonlei
recagonlei
thiagotmi
natanael.olimpio
cody0033
cody0033
jasondavin
Água Sem Hidrogênio
recagonlei
dstaroski
Água Sem Hidrogênio
recagonlei
googolepton
Phph09
fabriciorsz34
recagonlei
recagonlei

[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 : 1421
REPUTAÇÃO : 120
Áreas de atuação : C# / Java / XAML / Unity
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 Weslley em Qua Out 05, 2016 4:54 pm

bom tutorial
avatar
Weslley
Moderador

Masculino PONTOS : 2903
REPUTAÇÃO : 603
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 : 1421
REPUTAÇÃO : 120
Áreas de atuação : C# / Java / XAML / Unity
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