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:
[Alpha Android] - Night Hunter DevLog - Action RPG (Baixe e avalie por favor!)
COMO FAZER UM SISTEMA DE VIAGEM IGUAL (No Man's Sky)
Script não detecta certos comandos como "Input" e "GetKeyDown"
Procurar um Índice em uma lista
Gerador de mesh procedual
[TUTORIAL] Script de arma automatica
Nova atualização do meu rpg De açao Opinioes
[TUTORIAL] Sistema de escolha de personagens
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Como puxar várias animações ao mesmo tempo
[TUTORIAL] C# .NET | Visual Studio - conexão com banco de dados MySQL
PESSOAL PRA VOCÊS OQUE TEM QUE TER EM UM JOGO DE SOBREVIVENCIA?
[TUTORIAL] C# .NET | Launcher simples que acessa um site.
[TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
Bug Unity ?
Variavel UI
Bugs na textura
Duvida com Transform.position
Apk Google Play
[DICA] - Traduzir o assistente de downloads do "Google Play OBB Downloader"
Duvidas sobre programação em C#
Problema ao renderizar dois lado de uma malha (blender)
como reconhecer a ''face'' de uma mesh da agua
Como coloco video do youtube
Novo jogo survival sendo feito por mim
Queda de FPS unity 5
Marcos Elias Proton Bus Simulator AJUDA COM SISTEMA DE MAPA CONTÍNUO
[TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)
[TUTORIAL] Como criar suas texturas Normal Map, Displacement Map e Bump Map (Photoshop)
MS Vehicles Free em vídeo de melhores assets
[DIVULGAÇÃO]Avaliem Meu Jogo Na Play Store!
Estudo Game da Carro Mobile
[TUTORIAL] C# .NET| Instalar Cargas de trabalho/Componentes Individuais no Visual Studio
Instanciar objetos na mão do Player
Ajuda com scripts de inimigo e player'' interação de zumbi e player''
[____EFICIÊNCIA DO FÓRUM____]
[TUTORIAL] Aprenda a programar em C# des do começo :D
[TUTORIAL] ENVIAR A OPINIÃO DO SEU JOGADOR, PARA UM SERVIDOR
[TUTORIAL] Objeto flutuar como se estivesse no espaço ou na água
[DESENVOLVEDORES MOBILE] - NOVA AREA DO FÓRUM DEDICADA AO MOBILE! (Android e iOS)
[DESENVOLVIMENTO C# .NET] - NOVA AREA DO FÓRUM DEDICADA AO C# .NET!
Versão Unity
Como fazer um FAQ?
Desativar Terrain
[RESOLVIDO] PLAYER ANDAR MAIS DEVAGAR AO APERTAR SHIFT
[Tutorial]Movimento simples para objetos filiados ao FPSController da Unity por código.
[Resolvido] Como animar a camera do FPSController da unity ? sem dar bug...
Tiro sistema dano
Duvida em Disparo em jogo de Fps.
Divulgaçao de Battle of Worlds
[duvida] Easy Roads
Sistema de corrida
[DÚVIDA] TOCAR ANIMAÇÕES EM SEU TEMPO CORRETO
(DUVIDA)PlayerPrefs
[____ADMINISTRAÇÃO____] Alterações IMPORTANTES no fórum.
[TUTORIAL] Como fazer porta malas do carro abrir atravez de um botão? Clica aq e veja
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
gravidade está agindo de forma estranha em objetos diferentes
[ASSET] 2D Terrain Creator para Unity 3D
Como resolver
[DÚVIDA] SISTEMA DE CARGAS
Banco de dados Mysql e PHP?
duvida coletar itens e mudar de fase
Vagas na equipe do BR Bus
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
Como fazer inventário estilo minecraft?
Jogo de Moto no Unity 3D
MonoDevelop não esta abrindo.
[DEVLOG] Projeto - Girl Blade
DUVIDA INIMIGO ZOMBIE
Busco Equipes !
[Votação] - Avalie o Remake do cenario do meu jogo!
Como faço para detectar Swipe em dois dedos simultaneamente?
Fighters for honor(Jogo da segunda guerra mundial)
[RESOLVIDO] Erro No Script error CS0019: Operator `==' cannot be applied to operands
Dúvidas Script
Alguem sabe me Dizer porque Minha Unity ads está assim ? :(
[TUTORIAL] FAZENDO UM SITE PROFISSIONAL COMPLETO PARA SEU JOGO GRATIS
Movimento Duelist of the roses
Simulador que estou criando :)
Formação de Equipe Battle of Worlds
3D, Player gruda na parede
Projeto B
[TUTORIAL] Script de pulo para jogos 3D em geral (Unity - C#)
[TUTORIAL] Unity 2017 - Cores aleatórias em um material
[TUTORIAL] Camera orbital com zoom (scroll)
Atirando com uma arma
problemas com rb.velocity e gravidade
Arquivo de download Unity
Problemas com iluminação em tempo de execução
Iniciar o jogo com a mesma quantidade de vida em que foi fechado
Trocar Roupas
Como acessar variável de um script usando outro script (Entre e entenda).
[Resolvido]Como faz pra ativar um "objeto" depois de um tempo
[Dúvida] Unity multiplayer conectar no server
Como Pegar um GameObject dentro do Getcomponentschild?
[DÚVIDA] Como desabilitar key sensitive Unity ?
[Dúvida] Botões e variáveis estáticas
Hoje à(s) 1:35 pm
Hoje à(s) 1:34 pm
Hoje à(s) 1:33 pm
Hoje à(s) 11:53 am
Hoje à(s) 10:25 am
Hoje à(s) 8:01 am
Hoje à(s) 7:35 am
Ontem à(s) 11:48 pm
Ontem à(s) 11:48 pm
Ontem à(s) 11:42 pm
Ontem à(s) 11:40 pm
Ontem à(s) 10:24 pm
Ontem à(s) 7:32 pm
Ontem à(s) 7:26 pm
Ontem à(s) 7:07 pm
Ontem à(s) 6:36 pm
Ontem à(s) 6:30 pm
Ontem à(s) 6:20 pm
Ontem à(s) 4:45 pm
Ontem à(s) 4:43 pm
Ontem à(s) 4:36 pm
Ontem à(s) 4:26 pm
Ontem à(s) 4:20 pm
Ontem à(s) 3:14 pm
Ontem à(s) 2:50 pm
Ontem à(s) 1:45 pm
Ontem à(s) 10:44 am
Ontem à(s) 10:03 am
Ontem à(s) 9:07 am
Ontem à(s) 1:41 am
Qua Jul 19, 2017 11:42 pm
Qua Jul 19, 2017 10:31 pm
Qua Jul 19, 2017 10:12 pm
Qua Jul 19, 2017 9:40 pm
Qua Jul 19, 2017 8:42 pm
Qua Jul 19, 2017 7:26 pm
Qua Jul 19, 2017 6:28 pm
Qua Jul 19, 2017 6:14 pm
Qua Jul 19, 2017 5:48 pm
Qua Jul 19, 2017 2:26 pm
Qua Jul 19, 2017 2:21 pm
Qua Jul 19, 2017 11:49 am
Qua Jul 19, 2017 6:04 am
Ter Jul 18, 2017 9:38 pm
Ter Jul 18, 2017 9:31 pm
Ter Jul 18, 2017 9:03 pm
Ter Jul 18, 2017 8:56 pm
Ter Jul 18, 2017 8:37 pm
Ter Jul 18, 2017 8:25 pm
Ter Jul 18, 2017 6:13 pm
Ter Jul 18, 2017 5:17 pm
Ter Jul 18, 2017 5:09 pm
Ter Jul 18, 2017 4:55 pm
Ter Jul 18, 2017 1:40 pm
Ter Jul 18, 2017 1:16 pm
Ter Jul 18, 2017 12:54 pm
Ter Jul 18, 2017 11:45 am
Ter Jul 18, 2017 11:43 am
Ter Jul 18, 2017 9:54 am
Ter Jul 18, 2017 9:27 am
Ter Jul 18, 2017 6:17 am
Ter Jul 18, 2017 5:37 am
Seg Jul 17, 2017 11:17 pm
Seg Jul 17, 2017 10:43 pm
Seg Jul 17, 2017 10:37 pm
Seg Jul 17, 2017 7:32 pm
Seg Jul 17, 2017 7:24 pm
Seg Jul 17, 2017 5:52 pm
Seg Jul 17, 2017 4:19 pm
Seg Jul 17, 2017 4:13 pm
Seg Jul 17, 2017 3:42 pm
Seg Jul 17, 2017 7:13 am
Seg Jul 17, 2017 6:55 am
Seg Jul 17, 2017 5:53 am
Seg Jul 17, 2017 5:46 am
Dom Jul 16, 2017 10:37 pm
Dom Jul 16, 2017 7:58 pm
Dom Jul 16, 2017 6:07 pm
Dom Jul 16, 2017 2:34 pm
Dom Jul 16, 2017 2:19 pm
Dom Jul 16, 2017 2:05 pm
Dom Jul 16, 2017 1:46 pm
Dom Jul 16, 2017 9:12 am
Dom Jul 16, 2017 6:24 am
Dom Jul 16, 2017 6:22 am
Dom Jul 16, 2017 6:19 am
Dom Jul 16, 2017 5:08 am
Dom Jul 16, 2017 1:47 am
Dom Jul 16, 2017 1:35 am
Sab Jul 15, 2017 8:34 pm
Sab Jul 15, 2017 8:25 pm
Sab Jul 15, 2017 8:12 pm
Sab Jul 15, 2017 5:47 pm
Sab Jul 15, 2017 4:36 pm
Sab Jul 15, 2017 2:54 pm
Sab Jul 15, 2017 12:48 pm
Sab Jul 15, 2017 12:26 pm
Sab Jul 15, 2017 10:06 am
Sab Jul 15, 2017 2:51 am
xXGianlucksXx
marcos4503
marcos4503
Joaopm1
Madness
Gabriel César O
dstaroski
PauloFR
MarcosSchultz
ffabim
PauloFR
Virtus
Mateus2583
ubroly
sidney1234
marcos4503
marcos4503
zZAndersonZz
marcos4503
marcos4503
poyser
hetrodo_gamer
Extreme Craft
ffabim
zMicael
Yagogomes
lucasfera15
Édipo
Madness
Madness
marcos4503
Gabriel César O
PauloFR
Dom3000
Robinsandi
PauloFR
Callyde Jr
Callyde Jr
ManoTrevor
marcos4503
marcos4503
Weverton Borges da Silva
marcos4503
PauloFR
Gabriel César O
PauloFR
PauloFR
Bruno
Duarte
Dom3000
Gabriel César O
Valakinhas
Gabriel César O
Zecandy
MarcosSchultz
Gabriel César O
dstaroski
dstaroski
Gabriel César O
arthearthutr
Gabriel César O
Callyde Jr
kalel013
Kelvyn_Feitosa
Diego Felix
Gabriel César O
Gabriel César O
Gabriel César O
dstaroski
dstaroski
Diego Felix
thzin
thzin
Gabriel César O
Gabriel César O
DenisKth
michelly
marcos4503
Callyde Jr
bitgames
Extreme Craft
Dom3000
Valakinhas
Mic4el
Gabriel César O
Gabriel César O
Gabriel César O
Ruan Cardoso
Ruan Cardoso
Callyde Jr
hetrodo_gamer
fabiano.leonidio@gmail.co
thzin
Callyde Jr
ffabim
rafaelllsd
Dom3000
ScorpionG4mer
JoelMJunior

[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 : 1111
REPUTAÇÃO : 86
Á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 : 2554
REPUTAÇÃO : 559
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 : 1111
REPUTAÇÃO : 86
Á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