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:
[____TÓPICO LIVRE____] FALE O QUE QUISER
[Modelo 3d] Machadinha
Dúvidas na estrutura de puzzle.
[TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Galera?, Vamos Trocar umas Musicas Favoritas?
Alguem que Conhece boas musicas para um game de suspense
É possivel aumentar a renderização de distancia da câmera?
Trocar Position Por Rotation
Script mira mouse?
Como fazer o personagem virar a cabeça junto com a camera, em jogo de terceira pessoa?
Check-in no facebook dentro da Unity
Adicionar arma em uma animação do Mixamo
Salvar vida do player por tempo
[TUTORIAL] Sistema de escolha de personagens
character collide
[Ajuda] Third Person subir degrau
[Socorro] Deu Um Erro Aqui e Eu Acho q Fiz Tudo Certo.
[Asset] Efeitos Realistas Pack V3 + Download
[Duvida]Como pegar todos os arquivos de uma pasta.
Tutorial PassarValor entre Scenas
Modelo HK SL8 (arma)
Compilar para Android
Problema com script para joystick virtual
CÂMERA ORBITAL PARA ANDROID
Script de Spawn Aleatório
Mudar de cana ao clicar numa tecla
Pack de arvores Lowpoly
[TUTORIAL] Banco de dados || MySQL
Mira de Third Person Shooter
Preciso de integrantes!
problema para acessar arquivos da pasta StreamingAssets
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Script para sistema de genética
Cenários Espaciais vs Escala
RESTAURAR A POSIÇÃO DO CARRO
-[COMO FAÇO O TOUCH PAD DO UNITY MOVER MINHA CAMERA?]-
-[ COMO FAÇO PARA MOVER UM OBJ NO EIXO "Y" COM UM BOTÃO? ]-
Spotlight Otimizada para Android
Problema em criar tiros múltiplos
Modelo AK-12 (Arma)
Clicar no botão
Alguém pode me indicar um site de tutorial de c# sem ser em videos
A.S TRUCK
[Tutorial]C# 1 variáveis.
Audio Player C#
[Duvida] NN consigo importar um asset
Qual o melhor pra vcs ?
TROCAR RODAS DO CARRO NA OFICINA
[Terrorista] Avaliem ae galerinha!
[Tutorial] Script de um animal!!!
[Ajuda]Apenas um simples favorzinho que vai me ajudar muito
ANIMAÇÃO DE TIRO NO UNITY
touch botão sair som
Problema com player e animação
[TUTORIAL] Multiplayer global em múltiplos dispositivos
[TUTORIAL] Como salvar dados em arquivos de texto .txt, .ini ou . qualquer coisa.
como q eu faço quando aperto um botão UI Aparece outro Canvas ?
Salvar dados do player ao trocar de cenas
Blender Duvida
(ATUALIZADO) Demo Jogo para testes...(ANDROID)
Erro
[ AJUDA] Eu estou tentando fazer uma movimentação diferente das usuais
[Dúvida] Erro ao tentar compilar jogo para android
Quais são as ferramentas que as grandes empresas usam para fazer o mult-player na unity?
Script para salva o jogo?
[____FÓRUM SEM PROPAGANDAS____]
Menu Marcos Não Fuinciona Em Android !
Micro escala
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
SCRIPT QUE, AO APERTAR O BOTÃO DIREITO DO MOUSE DÊ ZOOM NA CAMERA
Ajuda em animação mira
[Em teste] Jogo sem nome :/
como saber a versao que coloco em meu game
Nao quero um script novo quero aprender onde errei
Asset Architecture
[TUTORIAL] Sistema COMPLETO de câmeras
[Duvida] Como fasso para mover o objeto pra frente sempre que apertar w
Duvida sobre camera do controlador
TESTE inimigo anda por um trajeto definido, para ao ser iluminado, e segue seu caminho
MULTIPLAYER LAN
[____REGRAS DO FÓRUM____]
Duvida com NavMesh AJUDAAA
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Dúvida de publicação
[TUTORIAL] Arrastar Objetos com o mouse
COMO INSTANCIAR OBJETOS EM ANGULAÇÃO
Marcos, faz um tutorial de como ganhar dinheiro em um Jogo Unity para PC
Versão Unity
[TUTORIAL] Fazer um VOLANTE com UI, para Android
como usar o script de menu no android
[Duvida]Como instanciar um objeto da maneira descrita na mensagem abaixo.
Alguém poderia me ajudar a criar um Fps controle ?
[Dúvida]como fazer o wihle esperar um tempo antes de executar de novo?
[Duvida]o que tenho q aprender para ceiar um multyplayer?
Modelos Animados
[duvida] Easy Roads
Como ler e gravar arquivos .txt em js?
[TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
[_____CRONOGRAMA (ASSET DE VEÍCULOS)_____]
Ontem à(s) 10:53 pm
Ontem à(s) 10:12 pm
Ontem à(s) 10:09 pm
Ontem à(s) 10:09 pm
Ontem à(s) 9:50 pm
Ontem à(s) 9:21 pm
Ontem à(s) 8:56 pm
Ontem à(s) 8:49 pm
Ontem à(s) 8:39 pm
Ontem à(s) 8:24 pm
Ontem à(s) 8:20 pm
Ontem à(s) 7:54 pm
Ontem à(s) 7:44 pm
Ontem à(s) 7:24 pm
Ontem à(s) 7:05 pm
Ontem à(s) 6:20 pm
Ontem à(s) 6:19 pm
Ontem à(s) 6:10 pm
Ontem à(s) 5:12 pm
Ontem à(s) 3:52 pm
Ontem à(s) 2:25 pm
Ontem à(s) 2:23 pm
Ontem à(s) 12:06 pm
Ontem à(s) 11:47 am
Ontem à(s) 11:23 am
Ontem à(s) 10:54 am
Ontem à(s) 9:28 am
Ontem à(s) 2:07 am
Sab Abr 22, 2017 11:30 pm
Sab Abr 22, 2017 10:38 pm
Sab Abr 22, 2017 7:22 pm
Sab Abr 22, 2017 5:17 pm
Sab Abr 22, 2017 5:16 pm
Sab Abr 22, 2017 5:00 pm
Sab Abr 22, 2017 4:56 pm
Sab Abr 22, 2017 3:31 pm
Sab Abr 22, 2017 3:27 pm
Sab Abr 22, 2017 2:09 pm
Sab Abr 22, 2017 12:47 pm
Sab Abr 22, 2017 11:22 am
Sab Abr 22, 2017 11:19 am
Sab Abr 22, 2017 11:10 am
Sab Abr 22, 2017 12:29 am
Sex Abr 21, 2017 11:44 pm
Sex Abr 21, 2017 10:12 pm
Sex Abr 21, 2017 9:59 pm
Sex Abr 21, 2017 9:50 pm
Sex Abr 21, 2017 8:59 pm
Sex Abr 21, 2017 7:25 pm
Sex Abr 21, 2017 6:17 pm
Sex Abr 21, 2017 3:07 pm
Sex Abr 21, 2017 1:43 pm
Sex Abr 21, 2017 1:31 pm
Sex Abr 21, 2017 12:01 pm
Sex Abr 21, 2017 11:46 am
Sex Abr 21, 2017 11:32 am
Sex Abr 21, 2017 10:15 am
Sex Abr 21, 2017 5:46 am
Sex Abr 21, 2017 1:49 am
Qui Abr 20, 2017 11:45 pm
Qui Abr 20, 2017 11:37 pm
Qui Abr 20, 2017 9:57 pm
Qui Abr 20, 2017 8:42 pm
Qui Abr 20, 2017 8:38 pm
Qui Abr 20, 2017 8:34 pm
Qui Abr 20, 2017 8:21 pm
Qui Abr 20, 2017 8:15 pm
Qui Abr 20, 2017 7:40 pm
Qui Abr 20, 2017 1:08 pm
Qui Abr 20, 2017 1:03 pm
Qui Abr 20, 2017 12:58 pm
Qui Abr 20, 2017 12:56 pm
Qui Abr 20, 2017 12:51 pm
Qui Abr 20, 2017 8:56 am
Qua Abr 19, 2017 7:19 pm
Qua Abr 19, 2017 7:17 pm
Qua Abr 19, 2017 5:19 pm
Qua Abr 19, 2017 3:09 pm
Qua Abr 19, 2017 1:24 pm
Qua Abr 19, 2017 9:23 am
Qua Abr 19, 2017 2:28 am
Qua Abr 19, 2017 2:26 am
Qua Abr 19, 2017 2:24 am
Qua Abr 19, 2017 2:20 am
Qua Abr 19, 2017 2:14 am
Qua Abr 19, 2017 2:12 am
Qua Abr 19, 2017 2:10 am
Qua Abr 19, 2017 2:07 am
Qua Abr 19, 2017 2:02 am
Qua Abr 19, 2017 1:50 am
Qua Abr 19, 2017 1:17 am
Qua Abr 19, 2017 1:03 am
Qua Abr 19, 2017 12:59 am
Qua Abr 19, 2017 12:59 am
Qua Abr 19, 2017 12:58 am
Qua Abr 19, 2017 12:45 am
Qua Abr 19, 2017 12:43 am
Qua Abr 19, 2017 12:40 am
Qua Abr 19, 2017 12:36 am
MarcosSchultz
zZAndersonZz
hbesm
cody0033
DuViDoSo34
DuViDoSo34
Eric Vinicius
HeF Soft
Callyde Jr
Callyde Jr
Hardencio
thzin
Callyde Jr
HeF Soft
mtmateus
mtmateus
DuViDoSo34
weslleyFx
Matrirxp
Callyde Jr
DuViDoSo34
Ále Kauvy
dstaroski
HeF Soft
Ále Kauvy
dstaroski
Mic4el
NyanHeavyBR
916anderson
cody0033
erick.q.faria
MarcosSchultz
JoelMJunior
JohnSantosGamer
rafaelllsd
MrTFGamer1
MrTFGamer1
IanLuan
JailtonUnity
DuViDoSo34
weslleyFx
weslleyFx
Gabriel César O
Strogonoff
Matrirxp
JailtonUnity
PauloFR
PauloFR
thzin
sabbath
dstaroski
PauloFR
deikson
iagokennedyy
JailtonUnity
DuViDoSo34
John Rambo
Callyde Jr
Dom3000
iagokennedyy
WiredD
Ronmaster
JailtonUnity
artplayer
Callyde Jr
MarcosSchultz
HeF Soft
JohnSantosGamer
Gabriel César O
Gabriel César O
deikson
PauloFR
Encracker
weslleyFx
Callyde Jr
PauloFR
MarcosSchultz
PauloFR
Giulyo
JailtonUnity
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
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 : 1015
REPUTAÇÃO : 85
Á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 : 2356
REPUTAÇÃO : 518
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 : 1015
REPUTAÇÃO : 85
Á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