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:
Ajuda rapida!
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
Carro capotando?
Como posso Passar este valor para inteiro
Estamos precisando de um Programador que Programe em C# para Unity
Compilar pra Android
OBJETOS FICAM INVISÍVEIS NA CENA
Como não perder qualidade nas texturas 2d?
Não estou conseguindo criar uma conta na unity?
[TUTORIAL] Sistema de inventário Sobrevivência
Seguir um raio no raycast a partir do ponto da tela clicado
Deixar botão invisível parecendo toque na região da tela
Baixos Brasil - Jogo de Carro Brasileiro!
Contar a quantidade total instanciados em um array
[RESOLVIDO] Contar pontos não faz a soma e tambem não atualiza
UNITY ADS
1º SDP (Seleção de Projetos) - Games Indie 2017
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
IDB JAM #10
O software Revit é uma boa ferramenta para criação de cenários para unity?
[TUTORIAL] Lanterna
como deixar ativos os botões Escape/Home/Menu?
MOVIMENTAÇÃO EM 8 DIREÇÕES.
Auto-Complete do Visual Studios
[TUTORIAL] Mostrar Data e Hora atual do Computador em um texto
Verificar inventario
[Teste]Testem Meu Jogo - Geometry Destroy Beta
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[TUTORIAL] Como fazer uma Barra de Loading na Unity 5
[TUTORIAL] Derrubar arvores e dropar madeiras dela
Detectar Hit
[DUVIDA] Trocar botoes no teclado por joystick UI
Me ajudem, com a criação de terreno !
[RESOLVIDO]animações não sendo reproduzidas
DUVIDA : Raycast
Como fazer Escudo seguir a movimentação do Player?
Como fazer para o tiro ir para a direção onde o cano está apontado e não para cima
Unity Ads ou AdMob!
Render texture invertida
Como fazer barco estilo minecraft ou estilo navio que da pra andar dentro
Como locomover um trem
Pequeno problema com no Debug
Building System
TELEPORT 2D
Adicionar linhas no TXT pelo codigo
Formação De Equipe Pra Criar RPG
Personagem morrer ao cair da tela
Deixar objeto invisível.
Divulgaçao de Battle of Worlds
[Resolvido]Problema nesse pequeno script
Movimentação
Puzzle para jogo de terror , abrir portas etc..
Script para mudar posição do personagem
Como saber quando minha animação terminou?
system inventory , craft
ajuda
Aplicar roupa no Rig do blender...
Project Valley of Trees - Primeiro nome que faz sentido KK
A.S TRUCK
Som de correr não para de tocar
Reproduzir audio no if c## e musica continuar tocando entre cenas.
Como Colocar Pontuação Final na GUI de GAME OVER
Unity 2017 Iluminação RealTime VS Baked [Comparaçâo]
Programador para equipe
Da pra colocar sisteminha em um jogo da unity pra trolar quem for piratear o jogo?
Como colocar musicas em sequencia para tocar?
Trajetória da bala com predição
Ajudinha com Bug
[RESOLVIDO] Poblema com Rigidbody
Erro ao bulidar para Windows(.exe)
Mudar a gravidade com rotação (sensores do smartphone)
Problemas na detecção de colisão
Trabalhar simultaneamente na Unity
Movimetaçao infinita
(duvida)pq isso acontece com o inimigo?
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
[DUVIDA] Como alterar a intensidade do ChromaticAberration do PostProcessing?
Joystick VR não funciona no ios
Problema na minha animação feita na Unity
[TUTORIAL] Unity 5 - Como criar o próprio FPS Controller
IA para inimigo seguir o jogador ( Plataforma )
Tirar Fotos no Unity 5 FPS
[TUTORIAL] Cena inicial de CARREGAMENTO, creditos, logo, etc [UNITY 5]
Como Limitar Spawn de Hordas
Desmembramento
Exemplo de UI com abas - utilizando toggles e toggle group.
Ajuda Blender
Quando Instancio botão ele não aparece no canvas
Sistema de pesca 2D
Metroidvania - procuro membros
Criação de Update para Seus jogos?
Blender, animação + Unity
Preciso de alguém que desenvolva Craft, e Inventario com sistema de Bolsas, Pago bem
[MODELADOR] Procurando Projetos
Carákas que Tops WO.OW
Anexar GameObject por scrit
Como cria um sistema de seve game
Efeito de Audio
Bug de sumir todas as modelagens 3D na unity 2017
Hoje à(s) 12:40 pm
Hoje à(s) 12:35 pm
Hoje à(s) 10:40 am
Hoje à(s) 3:46 am
Hoje à(s) 12:33 am
Ontem à(s) 11:00 pm
Ontem à(s) 10:46 pm
Ontem à(s) 10:11 pm
Ontem à(s) 9:22 pm
Ontem à(s) 7:43 pm
Ontem à(s) 6:07 pm
Ontem à(s) 5:25 pm
Ontem à(s) 4:49 pm
Ontem à(s) 3:57 pm
Ontem à(s) 2:08 pm
Ontem à(s) 11:58 am
Ontem à(s) 8:52 am
Ontem à(s) 2:14 am
Ontem à(s) 12:19 am
Ontem à(s) 12:13 am
Sex Set 22, 2017 11:50 pm
Sex Set 22, 2017 11:24 pm
Sex Set 22, 2017 10:10 pm
Sex Set 22, 2017 10:09 pm
Sex Set 22, 2017 9:57 pm
Sex Set 22, 2017 9:49 pm
Sex Set 22, 2017 8:27 pm
Sex Set 22, 2017 8:17 pm
Sex Set 22, 2017 6:57 pm
Sex Set 22, 2017 6:46 pm
Sex Set 22, 2017 6:44 pm
Sex Set 22, 2017 6:41 pm
Sex Set 22, 2017 4:12 pm
Sex Set 22, 2017 1:35 pm
Sex Set 22, 2017 1:09 pm
Sex Set 22, 2017 12:29 pm
Sex Set 22, 2017 12:22 pm
Qui Set 21, 2017 10:03 pm
Qui Set 21, 2017 9:37 pm
Qui Set 21, 2017 9:36 pm
Qui Set 21, 2017 7:17 pm
Qui Set 21, 2017 5:37 pm
Qui Set 21, 2017 3:54 pm
Qui Set 21, 2017 12:19 pm
Qui Set 21, 2017 12:17 pm
Qui Set 21, 2017 9:00 am
Qua Set 20, 2017 9:57 am
Qua Set 20, 2017 7:07 am
Ter Set 19, 2017 11:53 pm
Ter Set 19, 2017 10:15 pm
Ter Set 19, 2017 8:34 pm
Ter Set 19, 2017 7:40 pm
Ter Set 19, 2017 4:29 pm
Ter Set 19, 2017 12:14 pm
Ter Set 19, 2017 10:55 am
Ter Set 19, 2017 10:26 am
Ter Set 19, 2017 8:21 am
Ter Set 19, 2017 2:42 am
Seg Set 18, 2017 10:20 pm
Seg Set 18, 2017 9:16 pm
Seg Set 18, 2017 8:40 pm
Seg Set 18, 2017 8:39 pm
Seg Set 18, 2017 8:08 pm
Seg Set 18, 2017 2:22 pm
Seg Set 18, 2017 12:15 pm
Seg Set 18, 2017 9:33 am
Seg Set 18, 2017 8:21 am
Seg Set 18, 2017 12:59 am
Dom Set 17, 2017 5:04 pm
Dom Set 17, 2017 10:49 am
Sab Set 16, 2017 11:18 pm
Sab Set 16, 2017 5:57 pm
Sab Set 16, 2017 4:10 pm
Sab Set 16, 2017 3:05 pm
Sab Set 16, 2017 2:23 pm
Sab Set 16, 2017 12:40 pm
Sab Set 16, 2017 12:16 pm
Sab Set 16, 2017 10:17 am
Sab Set 16, 2017 9:53 am
Sab Set 16, 2017 9:26 am
Sab Set 16, 2017 9:10 am
Sex Set 15, 2017 11:51 pm
Sex Set 15, 2017 8:27 pm
Sex Set 15, 2017 7:27 pm
Sex Set 15, 2017 6:17 pm
Sex Set 15, 2017 3:08 pm
Sex Set 15, 2017 11:19 am
Sex Set 15, 2017 9:43 am
Qui Set 14, 2017 11:50 pm
Qui Set 14, 2017 1:55 pm
Qui Set 14, 2017 12:13 pm
Qui Set 14, 2017 10:07 am
Qua Set 13, 2017 9:52 pm
Ter Set 12, 2017 10:33 pm
Ter Set 12, 2017 10:21 pm
Ter Set 12, 2017 9:34 pm
Ter Set 12, 2017 8:52 pm
Ter Set 12, 2017 7:05 pm
Ter Set 12, 2017 6:53 pm
zZAndersonZz
zZAndersonZz
Callyde Jr
Fagner
hen000
Gabriel César CORINTHIANS
osiasbezerra
LucasRangel
UnityDeveloper
Phph09
Phph09
g
Duarte
Jmspp
Jmspp
guimaraf
LukkaFA
HeroSword
dimmuo
André Gomes
walibaka
Weslley
Weslley
Weslley
JorgeLuizxd
Weslley
dstaroski
dstaroski
raulframos
MarcosSchultz
MarcosSchultz
MarcosSchultz
EndStarsProgramming2
Phph09
Phph09
RobinF
Jmspp
Duarte
g
Unidade3d5
Zecandy
ManoTrevor
AndyShow
Weslley
Weslley
Bruno
Bruno
GabriG07
Dom3000
g
Weslley
Zecandy
Weslley
artplayer
PatifeCraft
Lteo
Fagner
Madness
PatifeCraft
dstaroski
eduu10
JorgeLuizxd
MateusWTP
Brunotrinkss
guimaraf
Weslley
guimaraf
ManoTrevor
PedroL123
GabriG07
Brgs886
Madness
Fagner
PedroL123
glauco
Callyde Jr
JorgeLuizxd
Henrique Ramires
Weslley
Weslley
Weslley
Weslley
Weslley
Weslley
916anderson
rafaelllsd
Fagner
Fagner
rafaelllsd
Carlin
artplayer
Ronnisz
Jhonatham1
mrariel2011
AndyShow
Fagner
PatifeCraft
AndyShow
AndyShow

[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
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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 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
Programador

Masculino PONTOS : 683
REPUTAÇÃO : 83
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
avatar
fecirineu
Programador

Masculino PONTOS : 683
REPUTAÇÃO : 83
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!!
avatar
marcos4503
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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 : 2043
REPUTAÇÃO : 517
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

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
Programador

Masculino PONTOS : 613
REPUTAÇÃO : 87
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
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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 : 2131
REPUTAÇÃO : 325
Idade : 17
Á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
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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
Programador

Masculino PONTOS : 613
REPUTAÇÃO : 87
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 : 1382
REPUTAÇÃO : 207
Idade : 16
Á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
Programador

Masculino PONTOS : 683
REPUTAÇÃO : 83
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?
avatar
marcos4503
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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
Programador

Masculino PONTOS : 683
REPUTAÇÃO : 83
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..
avatar
marcos4503
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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 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 : 886
REPUTAÇÃO : 1
Idade : 17
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?
avatar
marcos4503
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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 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 : 886
REPUTAÇÃO : 1
Idade : 17
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!
avatar
marcos4503
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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 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?
avatar
Duarte
MembroAvançado

Masculino PONTOS : 482
REPUTAÇÃO : 70
Idade : 17
Á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);
avatar
marcos4503
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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 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.
avatar
Duarte
MembroAvançado

Masculino PONTOS : 482
REPUTAÇÃO : 70
Idade : 17
Á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!
avatar
fecirineu
Programador

Masculino PONTOS : 683
REPUTAÇÃO : 83
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.
avatar
marcos4503
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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 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
avatar
thiagograssi
MembroAvançado

Masculino PONTOS : 660
REPUTAÇÃO : 36
Idade : 13
Á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?
avatar
marcos4503
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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 thiagograssi em Qua Jul 26, 2017 5:29 pm


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

Masculino PONTOS : 660
REPUTAÇÃO : 36
Idade : 13
Á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
Iniciante
Iniciante

PONTOS : 405
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.
avatar
marcos4503
Instrutor

Masculino PONTOS : 2182
REPUTAÇÃO : 454
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