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:
[ATUALIZAÇÃO] Projeto - Girl Blade
[TUTORIAL] Avião Script
Avaliem (Meu cenário)!!
Duvida Iluminação
[TUTORIAL] FAZENDO UM SITE PROFISSIONAL COMPLETO PARA SEU JOGO GRATIS
Ajuda com Script
Dúvida sobre terrenos em 3D
Verificar cena anterior?
Verificar se game object está habilitado ou desabilitado
Colisão no terreno
Pontos luminosos em objeto 3D
[Duvida] - Como criar um botao de sair com mensage?
[RESOLVIDO] DUVIDA COM SCRIPT DE DANO POR TRIGER ENTER
QUER UMA PEQUENA GAMEPLAY DO MEU GAME?
[RESOLVIDO] Instanciar em Posição "Y" Especifica
Shop UI
[Duvida] Como carregar cenas aleatoriamente?
save game
Alguns modelos low poly
Fui mexer denovo na minha lixeira do mediafire e olha no que deu..
(Dúvida) Wheel Joint 2D Rodas saindo do pivo
Faculdade de jogos digitais vale a pena?
GAMEPLAY DO JOGO 171 ESTILO GTA (não sou eu que estou fazendo)
Como Criar uma Loja Virtual e WebSite para Seu Jogo Gratis
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
Tocar Audio ao Colidir com Tag Player
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
ESSE EO MEU JOGO QUE EU ESTOU DESENVOLVENDO (VERSAO BETA)
Survive - atualização do jogo
Formação de Equipe Battle of Worlds
Pegar coisas do chao
Site Profissional Completo Gratis para Jogos
[Votação] Melhor sistema de drag na sua opinião ;-;
Como eu faço um "Sprint" para minha nave:
Personagem "Batendo" no limite da camera em 2D
Error No Console
[DÚVIDA] APERTAR 2 VAI PRA PRÓXIMA MÚSICA, APERTAR 1 VOLTA A MÚSICA ANTERIOR
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Site para Baixar Character em 3D
Cut Scene com video player
Só o networkIndetity é o suficiente para o que eu quero fazer? Como ele funciona?
O que acham dos meus modelos? (Prédios)
Como faz para colocar som nos passos do personagem?
[Pack de Modelos 3d] Kit Pau Pra Toda Obra [Low Poly]
Canvas UI
[Dúvida] tiro
Sombra preta
Transformar velocidade em forca
[DUVIDA] Shader
[RESOLVIDO] Mais scripts ou mais linhas de codigo????
Ponto na tela
Photon Duvida
(RESOLVIDO)Ajuda na animação do Mixamo
[Duvida] Como dar play e pausar uma animacao??
Como criar um timer?
Sistema de Sensibilidade Do Mouse X e Y!
Sistema multiplayer por Salas
Vender ideia de jogo para desenvolvedora
FORMAÇÃO DE EQUIPE PARA JOGO MULTIPLAYER DE SOBREVIVENCIA
eu preciso de um script de contagem para o me jogo alguem pode me ajudar?
Unity Congelando
Como pode ser feito um HUD?
Script sem erro, mas não funciona
Google VR
Ajuda sobre melhorar a Fricção no Wheel Collider
sombrancelha do mixamo
[RESOLVIDO]Oque significa "?"
Dúvida sobre jogo android...
OBJETO INSTANCIANDO EM POSIÇÃO ERRADA
[Duvida] NavMeshAgente se movendo muito rapido!
Alguma alternativa para os JOINT do unity
Projeto B
Script + Direção
Alguem quer ajudar em meu jogo???
[Resolvido] Como chamar uma void ou função, através de um botão.
[RESOLVIDO] Como subir escadas
For lista
[RESOLVIDO] Sistema de recarregamento Precário.
[Duvida] Com NavMesh;
[Duvida] Com LookAt
[Resolvido]Objeto não está sendo instanciado
[DUVIDA] - Pontuação e fim de jogo
Network Manager opção sumiu
PROBLEMA TEXTURA E TELA GAME
[Resolvido] Colisores nao colidem!!
Como colocar dano no inimigo? e vida no player?
O que falta??
QUEM AI TA DISPOSTO A DESENVOLVER UM GAME EM EQUIPE??
[TUTORIAL] FPSController nadar e mergulhar, junto com efeito submerso
Receber tiro(animação)
Limite de tela
[Resolvido]COMO CONSULTAR O PAINEL DE PREFERENÇIAS DA UNITY?
Alguém poderia me dizer o que estou fazendo de errado nesses scripts? (Vuforia SDK).
[RESOLVIDO] Como movimentar um objeto de um lado para o outro
Movimento de rotação entre dois objetos
[Duvida] script para criar um servidor automaticamente
Alguem Me Ajuda A Corrigir Um Erro Em Uma Conexão Com mysql
Como faz para pular?
Atingir inimigo e ele se destruir
Hoje à(s) 1:30 pm
Hoje à(s) 1:07 pm
Hoje à(s) 12:56 pm
Hoje à(s) 9:43 am
Hoje à(s) 9:36 am
Hoje à(s) 9:32 am
Hoje à(s) 9:28 am
Hoje à(s) 9:22 am
Hoje à(s) 8:59 am
Ontem à(s) 11:46 pm
Ontem à(s) 11:28 pm
Ontem à(s) 8:50 pm
Ontem à(s) 6:49 pm
Ontem à(s) 6:45 pm
Ontem à(s) 5:54 pm
Ontem à(s) 5:39 pm
Ontem à(s) 5:28 pm
Ontem à(s) 5:08 pm
Ontem à(s) 4:52 pm
Ontem à(s) 4:46 pm
Ontem à(s) 4:21 pm
Ontem à(s) 3:05 pm
Ontem à(s) 2:50 pm
Ontem à(s) 1:59 pm
Ontem à(s) 1:48 pm
Ontem à(s) 1:45 pm
Ontem à(s) 12:54 pm
Ontem à(s) 10:38 am
Ontem à(s) 1:59 am
Ontem à(s) 1:29 am
Ontem à(s) 12:37 am
Sex Maio 26, 2017 11:57 pm
Sex Maio 26, 2017 11:36 pm
Sex Maio 26, 2017 11:13 pm
Sex Maio 26, 2017 10:42 pm
Sex Maio 26, 2017 9:00 pm
Sex Maio 26, 2017 8:56 pm
Sex Maio 26, 2017 8:51 pm
Sex Maio 26, 2017 8:24 pm
Sex Maio 26, 2017 7:53 pm
Sex Maio 26, 2017 7:30 pm
Sex Maio 26, 2017 5:27 pm
Sex Maio 26, 2017 5:17 pm
Sex Maio 26, 2017 5:15 pm
Sex Maio 26, 2017 4:28 pm
Sex Maio 26, 2017 4:13 pm
Sex Maio 26, 2017 3:53 pm
Sex Maio 26, 2017 3:27 pm
Sex Maio 26, 2017 2:42 pm
Sex Maio 26, 2017 1:57 pm
Sex Maio 26, 2017 1:57 pm
Sex Maio 26, 2017 1:50 pm
Sex Maio 26, 2017 11:59 am
Sex Maio 26, 2017 11:49 am
Sex Maio 26, 2017 11:38 am
Sex Maio 26, 2017 10:08 am
Sex Maio 26, 2017 9:26 am
Sex Maio 26, 2017 2:49 am
Sex Maio 26, 2017 2:35 am
Sex Maio 26, 2017 12:58 am
Sex Maio 26, 2017 12:54 am
Qui Maio 25, 2017 10:49 pm
Qui Maio 25, 2017 10:39 pm
Qui Maio 25, 2017 10:03 pm
Qui Maio 25, 2017 8:55 pm
Qui Maio 25, 2017 8:51 pm
Qui Maio 25, 2017 8:46 pm
Qui Maio 25, 2017 7:31 pm
Qui Maio 25, 2017 6:15 pm
Qui Maio 25, 2017 5:54 pm
Qui Maio 25, 2017 5:48 pm
Qui Maio 25, 2017 5:17 pm
Qui Maio 25, 2017 3:08 pm
Qui Maio 25, 2017 1:08 pm
Qui Maio 25, 2017 11:51 am
Qui Maio 25, 2017 10:49 am
Qui Maio 25, 2017 10:08 am
Qui Maio 25, 2017 9:39 am
Qui Maio 25, 2017 9:00 am
Qua Maio 24, 2017 11:31 pm
Qua Maio 24, 2017 10:13 pm
Qua Maio 24, 2017 9:57 pm
Qua Maio 24, 2017 9:38 pm
Qua Maio 24, 2017 8:25 pm
Qua Maio 24, 2017 8:23 pm
Qua Maio 24, 2017 8:00 pm
Qua Maio 24, 2017 6:24 pm
Qua Maio 24, 2017 5:51 pm
Qua Maio 24, 2017 5:50 pm
Qua Maio 24, 2017 4:40 pm
Qua Maio 24, 2017 3:43 pm
Qua Maio 24, 2017 3:15 pm
Qua Maio 24, 2017 2:44 pm
Qua Maio 24, 2017 2:41 pm
Qua Maio 24, 2017 2:13 pm
Qua Maio 24, 2017 2:10 pm
Qua Maio 24, 2017 2:00 pm
Qua Maio 24, 2017 1:56 pm
Qua Maio 24, 2017 7:45 am
dstaroski
DuViDoSo34
Gabriel César O
Édipo
weslleyFx
weslleyFx
weslleyFx
weslleyFx
zZAndersonZz
PauloFR
Marc7
dstaroski
Unidade3d5
Gabriel César O
thiagograssi
bruxamissi
PauloFR
Callyde Jr
Mic4el
Mic4el
rafaelllsd
julioou
julioou
fecirineu
bruxamissi
bruxamissi
marcos4503
glauco
thiagograssi
Dom3000
Mikeofcoji
fecirineu
aleksander700
rafaelllsd
Ghosthy
PauloFR
PauloFR
marcos4503
AndyShow
hrr23
thiagograssi
DuViDoSo34
Gabriel César O
DuViDoSo34
Weverton Borges da Silva
aleksander700
aleksander700
dazentt55
Xurupitinha
dazentt55
John Rambo
LuizFixa3D
Zecandy
PauloFR
Callyde Jr
bruxamissi
weslleyFx
JoelMJunior
hen000
rafaelllsd
rafaelllsd
thiagograssi
wender
Henrique Ramires
dazentt55
916anderson
Matrirxp
marcos4503
bruxamissi
DuViDoSo34
dazentt55
julioou
Madness
felipefell
DuViDoSo34
DuViDoSo34
Chilinger
DuViDoSo34
DuViDoSo34
DuViDoSo34
thiagograssi
PauloFR
thiagograssi
Miss Talon
Junim
Manawydan
MarcosSchultz
Junim
JCLEON
aleksander700
Xurupitinha
marcos4503
WolfTheZelda
Games Indie
MarcosSchultz
MarcosSchultz
Bruninho
MarcosSchultz
dstaroski

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

Ver o tópico anterior Ver o tópico seguinte 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)
avatar
marcos4503
ProgramadorMaster

Masculino PONTOS : 1311
REPUTAÇÃO : 204
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

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 Dom Abr 30, 2017 3:34 am

marcos4503 escreveu: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!
avatar
Gabriel César O
Programador

Masculino PONTOS : 796
REPUTAÇÃO : 107
Idade : 15
Á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 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..


avatar
fecirineu
Avançado
Avançado

Masculino PONTOS : 348
REPUTAÇÃO : 26
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 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
avatar
fecirineu
Avançado
Avançado

Masculino PONTOS : 348
REPUTAÇÃO : 26
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 6:15 am

Kkkkkk ainda bem que deu certo!!
avatar
marcos4503
ProgramadorMaster

Masculino PONTOS : 1311
REPUTAÇÃO : 204
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

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!
avatar
dstaroski
Instrutor

Masculino PONTOS : 1312
REPUTAÇÃO : 337
Idade : 27
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Desenvolvimento 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 IanLuan em Ter Maio 09, 2017 10:30 am

Que isso cara, que tutorial lindo hehe. Parabéns e OBRIGADO !
avatar
IanLuan
MembroAvançado

Masculino PONTOS : 385
REPUTAÇÃO : 56
Idade : 17
Áreas de atuação : Programação, Modelagem Intermediária e Design (Ilustrator e Photsohop)
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!
avatar
marcos4503
ProgramadorMaster

Masculino PONTOS : 1311
REPUTAÇÃO : 204
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

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 Very Happy
avatar
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 1814
REPUTAÇÃO : 249
Idade : 16
Áreas de atuação : Programação C#.
Modelagem Básica.
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
avatar
marcos4503
ProgramadorMaster

Masculino PONTOS : 1311
REPUTAÇÃO : 204
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

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
avatar
IanLuan
MembroAvançado

Masculino PONTOS : 385
REPUTAÇÃO : 56
Idade : 17
Áreas de atuação : Programação, Modelagem Intermediária e Design (Ilustrator e Photsohop)
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!
avatar
Gabriel César O
Programador

Masculino PONTOS : 796
REPUTAÇÃO : 107
Idade : 15
Á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
avatar
fecirineu
Avançado
Avançado

Masculino PONTOS : 348
REPUTAÇÃO : 26
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 Sex Maio 19, 2017 3:04 pm

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

Masculino PONTOS : 1311
REPUTAÇÃO : 204
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

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
avatar
fecirineu
Avançado
Avançado

Masculino PONTOS : 348
REPUTAÇÃO : 26
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 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..
avatar
marcos4503
ProgramadorMaster

Masculino PONTOS : 1311
REPUTAÇÃO : 204
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

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