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 :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Unity - Executar Pagina Web Dentro De Um Programa
Rádio para programadores
Detecta o fim da animação e conjura um novo evento.
StreamWriter... ajuda rapida no salvamento
Efeito Glowing
Detectar distância de objetos
Salvar Cores com Json
Pack de áudio/ efeitos sonoros gratuitos.
2 JOGOS EM ANDAMENTO:
Software para testar AR no PC
Fazer cada Scene em uma orientação
[TUTORIAL] Compilar para Android
Asset de paint com lag
Utilizar movimento de plataforma na UI
COMO MOVER UM OBJETO OU PERSONAGEM
[TUTORIAL] CONFIGURANDO O UNITY PARA COMPILAR PARA ANDROID
Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
texto com rolamento pela seta
[RESOLVIDO] Rotacionar Personagem De Acordo Com a Direção Do Analógico
Dúvida Com Conta Matematica
[RESOLVIDO] Colocar uma condição para remover uma variavel do inspector?
APK trava com Admob
Conectar ao wifi
Celular dentro do game
[TUTORIAL] Como fazer um TELEPORTE
[RESOLVICO] Colisor que ao atravessar ele eu mudo minha cena no Unity2D ?
[TUTORIAL] Mover, arremessar e girar objetos com o mouse
Objeto sempre ocupando toda a camera
Transições de Animações de Sprites
[RESOLVIDO] Sprites mudando posição
Renderização no blender
[RESOLVIDO] AJUDA ERRO COM INIMIGO
Unity - Erro ao Salvar
Duvida resolucao
Mecânica de destruição de parte de um sprite
[RESOLVIDO] Reconhecimento de Joystick e Teclado
convert byte[] em texture2D
[TUTORIAL] Mover objetos 2D e conectar em lugares específicos
Captura de imagem
Como fazer variáveis se ocultarem no Editor?
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
paredes
OnTriggerExit2D detectando collider desativado
[TUTORIAL] Wheel Collider - como configurar corretamente.
posição de cubos..
[RESOLVIDO] Movimentar personagem por grade com clique do mouse. (Isométrico)
[RESOLVIDO] Data e hora atual no android
Como faz para o jogo saber se e windows, android,tablet , mac e ios?
Game Engine
Dúvida Sobre o lucky patcher
[TUTORIAL] Converter uma variável String em Vetores
Tem como reproduzir vídeo em android?
Preferência em Games
[TUTORIAL] Singleton, A melhor forma de acessar a classe!
[RESOLVIDO] Acessar Scripts de Objetos Que Estão Como "DontDestroyOnLoad()" ?
[TUTORIAL] Arma tipo a do call of duty
[TUTORIAL] Double Jumping para games em 2D
[TUTORIAL] Unity 2019 - Lanterna e pilhas, com UI
GameJam valendo 15 mil reais em bitcoin!!
Combinar prefabs?!?
[TUTORIAL] Como usar FREE EASY CRIATURA CONTROLE IA
[TUTORIAL] MOVIMENTO NA ARMA PARA FICAR MAIS REAL!
Multiplayer será tirado da Unity?
Como dar o mesmo valor a varias variaveis ?
Procurando modelador de personagens!
Conta playstore
[TUTORIAL] Sistema de "Entrar" em locais
[TUTORIAL] Sistema de Lanterna com Pilhas
Como mudar cor do botao UI
[RESOLVIDO] Set Materials
Uma duvida sobre colliders 2d
Efeito 'vai e volta'
Tiro do IA direcionado a posição atual do Player
CircleCast
[RESOLVIDO] MoveTowards
Como mudar variaveis de uma [Serializable]
[TUTORIAL] Plataforma Tangente 2D
como criar um sistema de concorrência finaceira para jogo tycon
Salvando screenshot na galeria do Ipad (IOS)
Grama de terreno mudou textura e não consigo identificar o motivo
Como usar o Unity Monetization 3.0.1?
Marcha
Paint
[Asset Grátis] - Key gratuita para "Easy Mesh Combiner" para quem avalia-lo!
problemas com admob no Android Studio
Coroutine ou Invoke - qual tem melhor desempenho
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
[RESOLVIDO] Movimentação RigidBody 2D visto de cima
[RESOLVIDO] Gerador de senha
[RESOLVIDO] Ajustar movimentação da câmera
[RESOLVIDO] Alterar função no Event Trigger
[RESOLVIDO] pivot do sprite camera (objeto nao aparece)
gerar score por movimento
[RESOLVIDO] Como encontrar um script em um determinado objeto
[Sorteio] - Sorteio de uma Key gratuita para um dos meus assets!
Transparência em múltiplos sprites
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
Hoje à(s) 1:46 am
Ontem à(s) 11:13 pm
Ontem à(s) 11:02 pm
Ontem à(s) 11:01 pm
Ontem à(s) 9:22 pm
Ontem à(s) 5:10 pm
Ontem à(s) 5:01 pm
Ontem à(s) 4:58 pm
Ontem à(s) 3:38 pm
Ontem à(s) 1:53 pm
Ontem à(s) 11:52 am
Ontem à(s) 10:18 am
Qua Mar 20, 2019 9:29 pm
Qua Mar 20, 2019 9:19 pm
Qua Mar 20, 2019 8:39 pm
Qua Mar 20, 2019 8:33 pm
Ter Mar 19, 2019 10:03 pm
Ter Mar 19, 2019 1:50 pm
Ter Mar 19, 2019 7:03 am
Ter Mar 19, 2019 6:23 am
Ter Mar 19, 2019 6:02 am
Seg Mar 18, 2019 6:48 pm
Seg Mar 18, 2019 3:39 pm
Seg Mar 18, 2019 3:28 pm
Seg Mar 18, 2019 1:00 pm
Seg Mar 18, 2019 4:31 am
Dom Mar 17, 2019 3:43 pm
Sab Mar 16, 2019 5:11 pm
Sab Mar 16, 2019 4:37 pm
Sab Mar 16, 2019 3:48 pm
Sex Mar 15, 2019 6:40 pm
Sex Mar 15, 2019 3:09 pm
Sex Mar 15, 2019 9:32 am
Sex Mar 15, 2019 9:27 am
Qui Mar 14, 2019 9:55 pm
Qui Mar 14, 2019 9:50 pm
Qui Mar 14, 2019 9:45 pm
Qui Mar 14, 2019 9:44 pm
Qui Mar 14, 2019 9:42 pm
Qui Mar 14, 2019 9:38 pm
Qui Mar 14, 2019 9:00 pm
Qui Mar 14, 2019 8:54 pm
Qui Mar 14, 2019 8:33 pm
Qui Mar 14, 2019 8:29 pm
Qui Mar 14, 2019 5:06 pm
Qui Mar 14, 2019 3:39 pm
Qua Mar 13, 2019 5:30 pm
Ter Mar 12, 2019 2:54 pm
Ter Mar 12, 2019 1:08 am
Seg Mar 11, 2019 10:21 pm
Seg Mar 11, 2019 1:25 pm
Seg Mar 11, 2019 11:51 am
Seg Mar 11, 2019 12:35 am
Dom Mar 10, 2019 9:49 pm
Dom Mar 10, 2019 8:20 pm
Dom Mar 10, 2019 5:47 pm
Dom Mar 10, 2019 5:21 pm
Dom Mar 10, 2019 2:12 pm
Sab Mar 09, 2019 7:50 pm
Sab Mar 09, 2019 12:18 pm
Sex Mar 08, 2019 6:55 pm
Sex Mar 08, 2019 2:40 pm
Qui Mar 07, 2019 12:19 pm
Qui Mar 07, 2019 12:12 pm
Qui Mar 07, 2019 11:59 am
Qui Mar 07, 2019 11:12 am
Qui Mar 07, 2019 1:29 am
Qua Mar 06, 2019 10:32 pm
Qua Mar 06, 2019 5:37 pm
Qua Mar 06, 2019 1:21 pm
Ter Mar 05, 2019 2:53 pm
Seg Mar 04, 2019 7:39 pm
Seg Mar 04, 2019 5:44 pm
Seg Mar 04, 2019 2:38 pm
Dom Mar 03, 2019 7:45 pm
Sab Mar 02, 2019 8:34 pm
Sab Mar 02, 2019 7:45 pm
Sab Mar 02, 2019 12:46 am
Sex Mar 01, 2019 10:52 pm
Sex Mar 01, 2019 4:43 pm
Sex Mar 01, 2019 4:31 pm
Sex Mar 01, 2019 12:52 pm
Qui Fev 28, 2019 9:30 pm
Qua Fev 27, 2019 8:30 pm
Qua Fev 27, 2019 11:05 am
Qua Fev 27, 2019 10:57 am
Ter Fev 26, 2019 6:33 pm
Ter Fev 26, 2019 10:37 am
Seg Fev 25, 2019 9:08 pm
Seg Fev 25, 2019 5:12 pm
Seg Fev 25, 2019 3:44 pm
Seg Fev 25, 2019 10:56 am
Sab Fev 23, 2019 5:41 pm
Sab Fev 23, 2019 5:26 pm
Sex Fev 22, 2019 6:39 pm
Sex Fev 22, 2019 3:40 pm
Qua Fev 20, 2019 4:48 pm
Qua Fev 20, 2019 4:42 pm
Qua Fev 20, 2019 4:41 pm
MarcosSchultz
Magnatah
Magnatah
Magnatah
Encracker
michelly
numb123
NKKF
RCGames Oficial
RCGames Oficial
Magnatah
joffersoju
fabricadegame
MarcosSchultz
MarcosSchultz
MarcosSchultz
fabricadegame
Akuma97
Magnatah
Magnatah
Magnatah
luiz12345
rejão
Zack2
Zack2
MarcosSchultz
luiz12345
henriquegames501
lesgoy
MiguelLuiz
Lteo
diegopds
Diego Felix
Magnatah
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Isabela
Isabela
Annko
juniorhotes
MarcosSchultz
Weslley
Daniel Dória
juniorhotes
lesgoy
lucaslbatista
Flávio
Magnatah
diegopds
MayLeone
glauco
dimmuo
AnderGames
Unidade3d5
arthurunity
artplayer
diegopds
zeca urubu
Daniel Dória
AnderGames
MarcosSchultz
Alanigma
ffabim
Flávio
Flávio
Manawydan
rafaelllsd
Lteo
dimmuo
MateusPignatti
Madness
dstaroski
dstaroski
dstaroski
Madness
Madness
marcos4503
marcos4503
Flávio
kirito37
DuViDoSo
Flávio
rafaelholanda
numb123
adenilson romao
adenilson romao
adenilson romao
marcos4503
Selzler
dstaroski
dstaroski

[TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Ir em baixo

TUTORIAL [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Dom Abr 30, 2017 3:07 am

OPAAAAAA! Eaí véééééééééééi! Bêles? Marcos aqui! Dessa vez to trazendo meu primeiro tutorial (bem explicado) aqui para o fórum, e resolvi começar com algo que pode ajudar bastante gente, e que eu levei tempos quebrando a cabeça e pesquisando bastante pra desenvolver. Que é uma mecânica legal para jogos de tiro em terceira pessoa ou para primeira pessoa(se você souber adaptar).

A mecânica resumidamente seria isso..


  • Um joystick, que rotaciona o Personagem na direção em que o joystick esta rotacionado, e tambem move o personagem, obviamente
  • Camera, que pode ser rotacionada (para cima e para os lados) usando o Swipe do touch (movimento de arrastar com o dedo)
  • Rotações suaves
  • O personagem sempre olha para onde a mira esta, quando o jogador para de andar
  • Camera inteligente que detecta quando há paredes atras dela, assim ela não buga e entra dentro de modelos 3d por exemplo (Aquele esquema do GTA San Andreas)
  • Sensibilidade, inversão de camera configuraveis


Bom. Vale lembrar que isso é um prototipo, que esta em experiemento, então não é nada 100% perfeito, mais já esta funcional! Se você conhece uma forma para melhorar o código, ou algo a mais, sinta-se a vontade para comentar!

Abaixo uma pequena gameplay de 48 segundos, já rodando em meu celular, ao som de Avicii - True Believer. (kkkkkkkj)


PS: Não animei o personagem porque isso é apenas um prototipo, por favor, não reparem!





Antes de mais nada.. Eu estou utilizando o Unity 5.6.0f3 nesse tutorial. Tambem sugiro que entenda pelo menos um pouco de programação em C# antes de faze-lo. Eu vou postar todos os scripts, comenta-los e tal, mais é sempre bom entender um pouco do que voce esta vendo, assim voce vai poder personaliza-lo e fazer variantes de acordo com a proposta do seu game. Eu estou oferecendo apenas a base.

Sem mais delongas, vamos a ação.

Parte 1 - Preparando o terreno com os Standard Assets do Unity


Bom.. Vamos começar importando os Assets "Cross Plataform Input" do Unity. Para isso, vá até a Guia "Assets" depois clique em "Import Package" e por fim, "CrossPlataformInput". Espere extrair todo o conteudo e então clique em "Import".


Feito isso, você já tera um Pack de controles Touch, oferecidos pela Unity. O Joystick que estou utilizando é desse Asset. Mais só usaremos o Joystick.


Parte 2 - Preparando a UI


Ok.. Agora iremos colocar o Joystick na tela, o configurar, posicionar e fazer aquela custimização básica.


Passo 1 - Crie um Canvas


(Irei colocar todas as explicações dos passos dentro de Spoilers, pra reduzir o tamanho do tópico. Basta clicar nos spoilers se precisar de ajuda.)

Ajuda:
Clique na guia "GameObject" > "UI" > "Canvas".

Passo 2 - Pegue o Prefab "MobileSingleJoystickControl" e o adicione a sua cena. Pegue o "MobileJoystick" que esta dentro do prefab, e o arraste para dentro da Canvas que voce acabou de criar. Agora você pode deletar o prefab, pois o resto é inutil para nós.

Ajuda:
O prefab "MobileSingleJoystickControl" se encontra na pasta "Standard Assets" > "CrossPlataformInput" > "Prefabs". Ele adiciona um joystick, e um botão de "Jump". Imagem mostrando o diretório abaixo. Feito isso, seu canvas devera estar parecido com isso...  Voce tambem pode alterar a imagem do joystick. Eu alterarei a minha para um circulo branco.

Passo 3 - Crie uma imagem, que cubra  70% da tela, a mesma deve começar no lado direito da tela. Ela servira para detectar, quando o player tira o dedo da tela. Explicarei mais abaixo.

Ajuda:
A imagem deve ficar parecida com isso...  Você pode modificar o Alpha da imagem para deixa-la 100% transparente, como mostrado aqui...  Ao terminar, devera estar parecido com isso...


Parte 3 - Preparando o Personagem, sua malha, e a Camera




Passo 1 - Crie um GameObject vazio, adicione um "Capsule Collider" e um "Rigid Body" a ele, chame-o de Player, Dentro de Player, Crie outro GameObject, chame-o de Malha. Malha, deve ter uma posição de X = 0, Y = 0, Z = 0. Pegue o modelo 3D de seu personagem, e coloque-o dentro de Malha, a posição do modelo tambem deve ser igual a X = 0, Y = Altura, varia de acordo com a altura da sua malha, Z = 0.




Ajuda:
Crie um GameObject vazio, adicione um Capsule Collider ao mesmo, e um RigidBody. O nomeie de "Player"  Crie um GameObject vazio dentro de Player e o chame de Malha.  o mesmo deve ter a posição em X, Y e Z igual  0. Dentro da malha, adicione o modelo 3d de seu personagem, e regule a altura dele em Y de acordo com a altura dele, para que ele não fique bugado dentro do chão. A posição em X e Z deve ser 0.  ajuste o capsule collider que voce colocou no Player, até que ele fique nas proporções do seu modelo 3d.




Passo 2 - Dentro de Player crie um GameObject vazio e o chame de "Pivot Camera". A sua posição deve ser X = 0, Z = 0. A posição em Y pode ser ajustada, para ter a altura que voce desejar na camera. Mova sua Main Camera, para dentro de Pivot Camera. Altere a posição da camera para X = 1.66, Y = 0, Z = -9.93. Voce pode alterar o X de acordo com a quantidade que voce quer que o personagem fique de lado. Altere o Z para mudar a distancia entre a camera e o personagem. Crie outro GameObject vazio, e o nomeie para "PontoPadrao" esse sera o ponto padrão para o qual a camera irá retornar após sair de uma colisão com algo. O ponto padrão deve ter a mesma posição da camera, ao qual voce acabou de configurar.




Ajuda:
Deverá ficar parecido com isso...
Parte 4 - Analisando e adicionando os scripts


Ok.. Vamos começar com o Script do Swiper, que vai mandar os dados do touch. O chamaremos de Mouse, ele deve ser adicionado a imagem que voce criou no Canvas.


LEMBRETE: Não esqueça de que o nome do arquivo do Script, deve ser o mesmo nome que eu dei.



Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class Mouse : MonoBehaviour, IPointerDownHandler, IPointerUpHandler{

    public static Vector2 TouchPad; //Variavel que ira transmitir o quanto o player moveu seu dedo, para que assim possa rotacionar a camera.
    public static bool MovendoMira; //Variavel que indica se o player esta com o dedo na tela, controlando a camera.

    public int sensibilidadeX = 350; //Variavel que configura a sensibilidade no vetor X
    public int sensibilidadeY = 350; //Variavel que configura a sensibilidade no vetor Y
    public int inverterX = 1; //Variavel que inverte o eixo X, sendo 1 = sem inversão e -1 = com inversão
    public int inverterY = 1; //Variavel que ivnerte o eixo Y, sendo 1= sem inversão e -1 com inversão

    private bool PrimeiroToque;
    private int ID = -1;
    private bool Movendo;
    private float TempoParado;

    void Start()
    {
        Input.multiTouchEnabled = true; //Variavel que ativa o multitouch, caso ele esteja desativad por algum motivo
    }

    void Update() //Usaremos o Update, porque ele reconhecerá o toque do usuario em todas as vezes, sendo que o FixedUpdate, poderá falhar algumas
//vezes

    {
        if (Input.touchCount > 0) //Verificamos se existe um toque
        {
            foreach (Touch touch in Input.touches)
            {

                if (touch.position.x > Screen.width / 2.7f && touch.phase == TouchPhase.Began && PrimeiroToque == false) //Aqui verificamos se o
//o jogador esta tocando o lado direito da tela. Para isso usamos um calculo em que pegamos a largura da tela e dividimos por uma quantia. Eu
//dividi por 2.7, o que da por volta de 70% da tela. Por exemplo, numa tela com largura de 960 pixels, ele ira calcular e dividir por 2.7, o que
//sobra por volta de 355, esses 355 pixels de largura, serão a area em que o swipe sera ignorado. Voce pode alterar o valor para aumentar ou reduzir
//a area em que o touch sera ignorado, ou reconhecido.
                {
                    ID = touch.fingerId; //Aqui damos um ID ao dedo que o jogador esta usando para tocar, para não confundir com o dedo do Joystick
                    MovendoMira = true; //Aqui fazemos uma verificação e marcamos a booleana que informa que o jogador esta com o dedo na tela
                    PrimeiroToque = true; //Aqui fazemos uma verificação interna, que informa que o jogador esta dando seu primeiro toque
                }

                if (touch.phase == TouchPhase.Moved && PrimeiroToque == true && touch.fingerId == ID) //Aqui verificamos se o jogador esta movendo
//seu dedo pela tela
                {
                    TouchPad.x = touch.deltaPosition.x; //Aqui reconhecemos o quanto o jogador moveu seu dedo pelo eixo X no ultimo tempo
                    TouchPad.y = touch.deltaPosition.y; //Aqui reconhecemos o quanto o jogador moveu seu dedo pelo eixo Y no ultimo tempo

                    TouchPad.x *= sensibilidadeX * Time.deltaTime * inverterX; //Aqui acrescentamos a sensibilidade, multiplicamos por
http://Time.deltaTime, para que ele tenha uma velocidade fixa, e multiplicamos tambem pela variavel de inversão.
                    TouchPad.y *= sensibilidadeY * Time.deltaTime * inverterY;

                    TempoParado = 0; //Aqui informamos que o jogador esta movendo o dedo ainda
                    Movendo = true; //Aqui tambem
                    MovendoMira = true; //E aqui tambem
                }

                if(touch.phase == TouchPhase.Stationary && Movendo == true && touch.fingerId == ID) //Aqui verificamos se o jogador esta com o dedo
//parado.
                {
                    TempoParado += Time.deltaTime; //Caso ele esteja com o dedo parado, iremos começar a contar por quanto tempo ele esta parado

                    if (TempoParado >= 0.1f) //Caso ele esteja com o dedo parado por mais de 0.1 milisegundos, a variavel de controle, sera zerada
//para a camera parar de girar.
                    {
                        TouchPad = Vector2.zero;
                        TempoParado = 0; //O tempo tambem sera resetado para que o codigo continue verificando se o player continua com o dedo parado
                    }
                }

                if (touch.phase == TouchPhase.Ended && PrimeiroToque == true && touch.fingerId == ID) //Aqui fazemos uma checagem se o jogador
//tirou o dedo da tela
                {
                    MovendoMira = false; //Aqui informamos ao codigo que ele parou de mover a mira
                    Movendo = false; //Aqui tambem
                    ID = -1; //Aqui resetamos o ID de seu dedo
                    PrimeiroToque = false; //Aqui informamos que o primeiro toque acabou
                    TouchPad = Vector2.zero; //Aqui resetamos a variavel, para que a camera pare de girar.
                }
            }
        }
    }

    public void OnPointerDown(PointerEventData data)
    {

    }

    public void OnPointerUp(PointerEventData data) //Esse é apenas mais uma checagem de segurança para informar se o jogador parou de tocar.
//Caso a ultima chegagem não funcione, essa deverá entrar em ação, para parar a giração frenetica da camera.
    {
        MovendoMira = false;
        ID = -1;
        PrimeiroToque = false;
        TouchPad = Vector2.zero;
        Movendo = false;
        TempoParado = 0;
    }
}




Agora vamos ao codigo do personagem, que deve ser adicionado ao objeto Player. Chamaremos esse script de teste



Código:
using System.Collections;
using System.Collections.Generic;
using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;

public class teste : MonoBehaviour {
    public LayerMask Camadas; //Aqui escolhemos a camada que sera verificada pelo colisor de camera
    public Rigidbody Char; //Aqui adicionamos o Rigid Body do personagem
    public Transform MalhaChar; //Aqui adicionamos o Transform do gameobject MALHA
    public Transform Cam; //Aqui adicionamos o Transform do gameobject PIVOT CAMERA
    public Transform PosCam; //Aqui adicionamos o Transform do gameobject POSICAO PADRAO
    public Transform Camera; //Aqui adicionamos o Transform da Camera
    private Vector3 lookVec;
    private Vector3 moveVec;
    private Vector3 camVec;
    private RaycastHit CameraHit;
    private float CameraDistancia;

    private float EixoV;
    private float EixoH;
    private float MouseY;
    private float MouseX;

    void Start () {
        RaycastHit distanciaCamera;

        if (Physics.Linecast(-Cam.position, PosCam.position, out distanciaCamera)) //Aqui fazemos uma checagem rapida da distancia do ponto padrao
//para o centro da malha, isso pode ser util, caso voce queira aumentar a distancia da camera em relação ao player, assim ira alterar automaticamente
//a distancia da camera.
        {
            Debug.DrawLine(Cam.position, PosCam.position);
            CameraDistancia = distanciaCamera.distance + 3; //Aqui pegamos a distancia e guardamos numa variavel
        }
    }

    void FixedUpdate () {
        CameraConfiguracao();
        Andar();
        Mira();

        
    }

    private void CameraConfiguracao()
    {
        if (Physics.Raycast(Cam.position, -Cam.forward, out CameraHit, CameraDistancia, Camadas)) //Aqui emitimos um raycast do centro da malha até
//para tras, numa distancia determinada pela verificação anterior. Caso esse raio colida com alguma coisa, a camera, sera movida até lá
//assim ela não ira bugar dentro de nada. O objeto deve ter um colisor para que essa checagem aconteça com sucesso.
        {
            Camera.position = Vector3.Lerp(Camera.position, CameraHit.point, 18 * Time.deltaTime); //A camera é movida suavemente, graças ao Lerp.
            Debug.DrawLine(Cam.position, CameraHit.point);
        }
        else //Caso o raio não esteja colidindo com nada, a camera ira apenas seguir o seu ponto padrão suavemente.
        {
            Camera.position = Vector3.Lerp(Camera.position, PosCam.position, 18 * Time.deltaTime);
        }
    }

    private void Andar()
    {
        EixoH = CrossPlatformInputManager.GetAxis("Horizontal"); //Aqui pegamos os dados do Joystick e armazenamos numa variavel
        EixoV = CrossPlatformInputManager.GetAxis("Vertical"); //Aqui tambem

        lookVec = new Vector3(EixoH, 0, EixoV);
        moveVec = new Vector3(EixoH, 0, EixoV);

        //Joystick
        if (EixoV != 0 || EixoH != 0) //Aqui fazemos uma verificação para ver se o player esta ou não movendo o joystick
        {
            Char.velocity = transform.TransformVector(moveVec) * 18; //Caso ele esteja movendo, o player sera movido. O gameobject Player, é movido
//Na horizontal e vertical, ele não é rotacionado.
            MalhaChar.localRotation = Quaternion.Slerp(MalhaChar.localRotation, Quaternion.LookRotation(lookVec, Vector3.up), 14 * Time.deltaTime);
//Aqui ja rotacionamos a malha de acordo com o joystick, criando a ilusão de que o Joystick esta rotacionando o Player tambem.
        }

        if (EixoV == 0 && EixoH == 0) //Quando o jogador soltar o joystick, o personagem para de se mover.
        {
            Char.velocity = Vector3.zero;
        }
    }

    private void Mira()
    {
        if (Mouse.MovendoMira == true && EixoV == 0 && EixoH == 0) //Aqui fazemos uma checagem se o player esta com o dedo na tela, mais não esta se
//movendo. Então se isso estiver acontecendo, o personagem irá olhar para a mira.
        {
            MalhaChar.localRotation = Quaternion.Slerp(MalhaChar.localRotation, Quaternion.Euler(0, 0, 0), 12 * Time.deltaTime);
        }

        MouseX += Mouse.TouchPad.x * Time.deltaTime; //Aqui pegamos o valor da variavel do Mouse e armazenamos.
        MouseY += Mouse.TouchPad.y * Time.deltaTime; //Aqui tambem

        MouseY = Mathf.Clamp(MouseY, -20, 20); //Aqui limitamos a rotação em Y da camera, para que a camera não de cambalhotas.

        transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(0, MouseX, 0), 25 * Time.deltaTime); //Quando o jogador move os
//dedos no eixo X, o Player é rotacionado.
        Cam.localRotation = Quaternion.Slerp(Cam.localRotation, Quaternion.Euler(MouseY, 0, 0), 25 * Time.deltaTime); //Quando o jogador move os dedos
//em Y, o pivot da camera, é rotacionado para cima e para baixo.
    }
}


Agora alguns prints de como deve ficar a configuração...






Bom pessoal.. Era isso.. Me desculpem se ficou algo confuso.. São 3 da manhã e eu to com muito sono kkk, talvez não tenha conseguido deixar varias coisas claro... Mais nos proximos dias estarei a disposição para responder feedbacks e duvidas... Obrigado e não usem drogas!


Última edição por marcos4503 em Dom Abr 30, 2017 10:59 am, editado 3 vez(es)
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por fecirineu em Ter Maio 09, 2017 2:25 am

aqui não funcionou, amigo, mais tbm não deu erro kk não sei qual e o pior..


acredito que fiz tudo certo mesmo assim não funcionou..


fecirineu
fecirineu
ProgramadorMaster

Masculino PONTOS : 1486
REPUTAÇÃO : 135
Áreas de atuação : Programação C#,VB,VBNET,MySQL,HTML,CSS,PHP.

Respeito as regras :

Ver perfil do usuário http://gamesbr.cf/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por fecirineu em Ter Maio 09, 2017 3:10 am

@fecirineu escreveu:aqui não funcionou, amigo, mais tbm não deu erro kk não sei qual e o pior..


acredito que fiz tudo certo mesmo assim não funcionou..



precisava soo por na plataforma android kk
fecirineu
fecirineu
ProgramadorMaster

Masculino PONTOS : 1486
REPUTAÇÃO : 135
Áreas de atuação : Programação C#,VB,VBNET,MySQL,HTML,CSS,PHP.

Respeito as regras :

Ver perfil do usuário http://gamesbr.cf/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Ter Maio 09, 2017 6:15 am

Kkkkkk ainda bem que deu certo!!
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por dstaroski em Ter Maio 09, 2017 7:41 am

Parabéns cara! vai ajudar muito a galera!
dstaroski
dstaroski
Instrutor

Masculino PONTOS : 4119
REPUTAÇÃO : 1057
Idade : 29
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Asp .NET, HTML, CSS, Unity 3D

Respeito as regras :

Ver perfil do usuário http://diegodeoliveira.gamejolt.io/defeattheilluminatis

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por IanLuan em Ter Maio 09, 2017 10:30 am

Que isso cara, que tutorial lindo hehe. Parabéns e OBRIGADO !
IanLuan
IanLuan
Programador

Masculino PONTOS : 1176
REPUTAÇÃO : 98
Idade : 19
Áreas de atuação : Programação C#
Básico Design (Blender / Photoshop)
Desenvolvimento Web e Apps.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Ter Maio 09, 2017 12:02 pm

Valeus!
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por rafaelllsd em Ter Maio 09, 2017 12:06 pm

Fico muito bom :D
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3028
REPUTAÇÃO : 440
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Ter Maio 09, 2017 12:07 pm

Sera que to fazendo jus a minha classe de programador? kkkkkkk
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por IanLuan em Ter Maio 09, 2017 12:36 pm

Kkkkk tá sim
IanLuan
IanLuan
Programador

Masculino PONTOS : 1176
REPUTAÇÃO : 98
Idade : 19
Áreas de atuação : Programação C#
Básico Design (Blender / Photoshop)
Desenvolvimento Web e Apps.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por Gabriel César O em Ter Maio 09, 2017 1:32 pm


MANERÃO EM GOSTEI!
Gabriel César O
Gabriel César O
Profissional
Profissional

Masculino PONTOS : 1926
REPUTAÇÃO : 214
Idade : 17
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por fecirineu em Sex Maio 19, 2017 2:54 pm

@marcos4503 escreveu:Sera que to fazendo jus a minha classe de programador? kkkkkkk
a parte da camera não ta funcionando pq sera?

o joystick funciona perfeitamente porem a camera nao vira e não tem mira = o seu
fecirineu
fecirineu
ProgramadorMaster

Masculino PONTOS : 1486
REPUTAÇÃO : 135
Áreas de atuação : Programação C#,VB,VBNET,MySQL,HTML,CSS,PHP.

Respeito as regras :

Ver perfil do usuário http://gamesbr.cf/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Sex Maio 19, 2017 3:04 pm

Você colocou tudo certo? Cada objeto como parente dos objetos certos etc?
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por fecirineu em Sab Maio 20, 2017 8:13 pm

@marcos4503 escreveu:Você colocou tudo certo? Cada objeto como parente dos objetos certos etc?
sim porem não ta funcionando a camera nem o a bolinha aparece poderia vereficar o toturial e ver se tem algo errado? que faltou
fecirineu
fecirineu
ProgramadorMaster

Masculino PONTOS : 1486
REPUTAÇÃO : 135
Áreas de atuação : Programação C#,VB,VBNET,MySQL,HTML,CSS,PHP.

Respeito as regras :

Ver perfil do usuário http://gamesbr.cf/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Sab Maio 20, 2017 8:17 pm

Aquela bolinha branca é do meu celular. Você pode ativala nas configurações de desenvolvedor do android. Eu testei os scripts, se você colocou cada objeto em seu lugar e entendeu o que os scripts fazem certinho, isso tem que funcionar... tenta verificar tudo denovo.. Ou testar em um projeto novo..
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por Dark_The_King em Ter Jun 20, 2017 7:29 pm

Ola amigo ficou muito bom só que no meu projeto deu um problema e a câmera fica indo pra longe do player tem alguma dica do que pode ser?

Dark_The_King
Membro
Membro

Masculino PONTOS : 1430
REPUTAÇÃO : 1
Idade : 19
Respeito as regras :

Ver perfil do usuário http://organizacaox.comunidades.net/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Ter Jun 20, 2017 9:55 pm

Mais o que foi pra longe? O Pivô? a camera? Qual componente? E você verificou se colocou todos os objetos como filhos dos outros corretamente e tal?
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por Dark_The_King em Qua Jun 21, 2017 2:02 pm

@marcos4503 escreveu:Mais o que foi pra longe? O Pivô? a camera? Qual componente? E você verificou se colocou todos os objetos como filhos dos outros corretamente e tal?
ss a câmera msm mais eu ja arrumei era um erro na minha cena muito obg msm assim féis um ótimo tutorial Laughing

Dark_The_King
Membro
Membro

Masculino PONTOS : 1430
REPUTAÇÃO : 1
Idade : 19
Respeito as regras :

Ver perfil do usuário http://organizacaox.comunidades.net/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Qua Jun 21, 2017 2:12 pm

Ah, sim! Perfeito!
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por Duarte em Qua Jul 05, 2017 11:11 pm

Estou com um probleminha na fisica do meu personagem acho que esse script nao é apropriado para pulo, ou altura, porque ele cai lentamente quando esta no alto a fisica nao fica realista, teria como arrumar?
Duarte
Duarte
Programador

Masculino PONTOS : 1260
REPUTAÇÃO : 90
Idade : 18
Áreas de atuação : Programação
Desenvolvedor Android
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Qua Jul 05, 2017 11:15 pm

Só alterar a linha que faz o movimento pra isso:

Código:
Char.velocity = transform.TransformVector(moveVec.x * 18, Physics.gravity.y, moveVec.z * 18);
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por Duarte em Qua Jul 05, 2017 11:19 pm

@marcos4503 escreveu:Só alterar a linha que faz o movimento pra isso:

Código:
Char.velocity = transform.TransformVector(moveVec.x * 18, Physics.gravity.y, moveVec.z * 18);
Alterei ele so reconhece a fisica quando esta movendo o JoyStick.
Duarte
Duarte
Programador

Masculino PONTOS : 1260
REPUTAÇÃO : 90
Idade : 18
Áreas de atuação : Programação
Desenvolvedor Android
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por fecirineu em Qua Jul 05, 2017 11:57 pm

Muito Bom Parabens!
fecirineu
fecirineu
ProgramadorMaster

Masculino PONTOS : 1486
REPUTAÇÃO : 135
Áreas de atuação : Programação C#,VB,VBNET,MySQL,HTML,CSS,PHP.

Respeito as regras :

Ver perfil do usuário http://gamesbr.cf/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Qui Jul 06, 2017 6:23 am

É só substituir o Vector3.zero pra Vector3(0, Physics.gravity.y, 0) na linha que faz ele parar de andar.
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por thiagograssi em Ter Jul 25, 2017 10:50 pm

meu personagem quando eu ando com ele pra qualquer lado ele anda inclinado e não reto
thiagograssi
thiagograssi
MembroAvançado

Masculino PONTOS : 1270
REPUTAÇÃO : 40
Idade : 14
Áreas de atuação : Unity 3D;
Unity 2D;
Cinema 4D;
SketchUp;
C#(intermedario);

Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UClxaKPltt6jTWhxcfTqJ0AA

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Ter Jul 25, 2017 11:13 pm

Como assim inclinado? Poderia postar um print?
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por thiagograssi em Qua Jul 26, 2017 5:29 pm


O engraçado é que o personagem chega a voar tbm kkkk
thiagograssi
thiagograssi
MembroAvançado

Masculino PONTOS : 1270
REPUTAÇÃO : 40
Idade : 14
Áreas de atuação : Unity 3D;
Unity 2D;
Cinema 4D;
SketchUp;
C#(intermedario);

Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UClxaKPltt6jTWhxcfTqJ0AA

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por Henrique0102 em Qui Ago 03, 2017 9:28 pm

como eu faço para girar somente a camera em vez de girar o personagem junto com a camera??

Henrique0102
Membro
Membro

PONTOS : 954
REPUTAÇÃO : 3
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por marcos4503 em Qui Ago 03, 2017 9:29 pm

Você pode editar o script pra girar somente a camera.
marcos4503
marcos4503
Instrutor

Masculino PONTOS : 2966
REPUTAÇÃO : 551
Idade : 19
Áreas de atuação :
Programação, Mobile, Web e Design.

Veja meus assets para Unity!
https://windsoft.xyz/mtassets


Respeito as regras :

Ver perfil do usuário http://windsoft.xyz

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por cryvirus em Sex Fev 02, 2018 5:10 pm

Ola pode me ajudar o meu problema eo  mesmo desse aqui só que o meu Joystick não funciona.

cryvirus
Iniciante
Iniciante

PONTOS : 451
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera

Mensagem por NKKF em Sex Fev 02, 2018 6:28 pm

Poxa.. Uma pena que eu não vou poder colocar isso no meu projeto, já que eu queria só o Swipe Camera  Sad.

Mas parabéns ae man  :D.
NKKF
NKKF
ProgramadorMaster

Masculino PONTOS : 2277
REPUTAÇÃO : 439
Idade : 14
Áreas de atuação : Error 404 Not Found.
Respeito as regras :

Ver perfil do usuário http://www.projetounity.esy.es

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

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