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:
DOTS - ECS + JOBS + Burst!
Atualização Obrigatória
Blender - Texture Paint Bugado
Como dividir 2 times de jogadores pvp online?
[RESOLVIDO] movimentação FPS COM ERRO
camera interativa
Selecionar Objeto Usando Outlined
Criar sprite multiplo de imagens de SVG no unity
duvida-refletir objeto na direçao q a camera olha
Objeto aparecer apenas uma Vez
Nevoa de Guerra
Alterar apenas um Material do Mesh Renderer
Rotacionar player conforme rotação do celular
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Erro na hora de dar Build.
Dicas Para Cenário De Jogo De Terror
Sistema de Pulo está dando erro.
Duvida sobre mesh colider
Eu to usando este skript recentemente mas ele ta dando esses erros tem como ajudar
problema com script de pula pula
Desligar abate de distancia...
Criação de terreno para jogo comercial
OnTrigger e OnColision deixa o jogo mais pesado?
Somar pontos quando matar um inimigo!!
sensibilidade do mouse
Especificações do Celular
Prévia de atualização do meu jogo - Generic Shooter Game
Controles mobile 2d game Kit
criação de tabela comm filtro
Sistema de câmera - SnakeCam
[RESOLVIDO] Desativar texto não funciona
[RESOLVIDO] Erro com bala ...AJUDA
[TUTORIAL] ScrollBar para menus ou inventários
Formação de Equipe
Animação bugada com Legacy
[RESOLVIDO] SetActive não esta funcionando com condiçoes if
Dicas para organização de projeto
SOU MODELADOR SE TIVER ALGUEM PRECISANDO AI ME CONTATE
[TUTORIAL] Geração de níveis randômicos
dar play e spawn começar esta dando erro
movimentação por posição
nao consigo abrir projetos na unity
[RESOLVIDO] Problema com script de random na scale de um objeto
Falha no comando
[RESOLVIDO] Sistema de Replay
AJUDA COM MOVIMENTAÇAO DE ARMAS
[Asset] Brincando no SketchUp fiz uma casa
[RESOLVIDO] Como destruir um objeto com colisor?
[RESOLVIDO] Nome de Teclas
[TUTORIAL] Unity 3D - Sol realista (SunShafts) ->> 2020 funcionando
[TUTORIAL] Sistema de FPS com Corpo
Live dos jogos do fórum
[RESOLVIDO] Pausa dentro do jogo
[RESOLVIDO] Player correndo e animação quando estiver colidindo
App Demo e Pago
Zoom da Câmera Orbital por Botões
FPS de Corpo Inteiro!
[TUTORIAL] FPS Controller com corpo completo!
Como posso criar um sistema de pulo para esse script que determina a gravidade.
Como posso configurar o NetworkManagerHud ?
Fear - Modern House The Game [WINDOWS - ANDROID]
sketchUP
ERRO NO SCRIPT UM UNICO ERRO
A animação não está funcionando bem.
Como eu posso fazer um player estilo GTA e que tenha uma câmera 360 como o GTA?
Pseudo 2D e algumas outras duvidas.
alquem me recomenda uma versao do unity que tenha tudo e que funcione bem e nao trave
[TUTORIAL] Sistema de visão para inimigos baseado em angulos
Compilando para Android
TOUCH
MenuPausa__Pedido
Ideia de como REPRESENTAR VELOCIDADE NA TELA
Erro no isLocalPlayer - Alguém?
Alguém que desenhe sprite 2d ?
Animação de morte
Posso limitar o "Instantiate" para instanciar até uma quantidade X?
Erro na troca de script do personagem
Duvída em relação ao UI em interações com objetos
Movimento helix jump
QUERIA SABER QUAL CODIGO PARA DESATIVAR UMA CAMERA E PASSAR PARA OUTRA
@MarcosSchultz tem como me enviar so o skript sunshafts
[TUTORIAL] AI Enemy ( Jogos de terror )
[ SUN SHAFTS ] nao encontro ele em lugar nenhum, estou usando a ultima versao do unity
PEDIDO - queria um script para entrar em um veiculo
Efeito Suave Ao Virar a Câmera
Quanto tempo o Google Play leva para analisar o app/ jogo e publicar ?
Fazer inimigo acompanhando rotação do player2D
Adicionar +1 ao colidir com objeto
Dark Dreams Reborn 1.7.2
OnAdFailedToLoad ADMOB
Duvida importante Sobre quando é exibido ANUNCIO NA TELA
Como Voltar um Objeto para a Posição Inicial?
Compartilhar a tela do jogo no facebook
Checar se tal objeto está em tal rotação
tamanho do brushes
Salvar cena
importa o caminhao do spintires para o bleand ou unit
Duvida sobre âncoras na UI
FPSController Buga ao Encostar em Porta com Colisor
Hoje à(s) 8:33 am
Hoje à(s) 7:28 am
Ontem à(s) 11:35 pm
Ontem à(s) 7:57 pm
Ontem à(s) 7:57 pm
Ontem à(s) 7:42 pm
Ontem à(s) 6:42 pm
Ontem à(s) 4:33 pm
Ontem à(s) 3:05 pm
Ontem à(s) 2:41 pm
Ontem à(s) 1:20 pm
Ontem à(s) 2:49 am
Ontem à(s) 2:36 am
Ontem à(s) 1:31 am
Qui Jan 23, 2020 11:07 pm
Qui Jan 23, 2020 11:06 pm
Qui Jan 23, 2020 10:53 pm
Qui Jan 23, 2020 10:43 pm
Qui Jan 23, 2020 10:32 pm
Qui Jan 23, 2020 10:24 pm
Qui Jan 23, 2020 10:18 pm
Qui Jan 23, 2020 10:11 pm
Qui Jan 23, 2020 10:09 pm
Qui Jan 23, 2020 10:06 pm
Qui Jan 23, 2020 6:39 pm
Qua Jan 22, 2020 6:12 pm
Qua Jan 22, 2020 3:57 pm
Qua Jan 22, 2020 12:40 pm
Ter Jan 21, 2020 9:20 pm
Ter Jan 21, 2020 7:34 pm
Ter Jan 21, 2020 6:07 pm
Ter Jan 21, 2020 4:27 pm
Ter Jan 21, 2020 2:35 pm
Seg Jan 20, 2020 11:49 pm
Seg Jan 20, 2020 12:43 pm
Seg Jan 20, 2020 12:28 pm
Dom Jan 19, 2020 7:41 pm
Dom Jan 19, 2020 5:33 pm
Dom Jan 19, 2020 5:28 pm
Dom Jan 19, 2020 2:24 pm
Dom Jan 19, 2020 1:59 am
Sab Jan 18, 2020 11:12 pm
Sab Jan 18, 2020 8:51 pm
Sab Jan 18, 2020 5:57 pm
Sab Jan 18, 2020 5:12 pm
Sab Jan 18, 2020 4:49 pm
Sex Jan 17, 2020 11:36 pm
Sex Jan 17, 2020 9:21 pm
Sex Jan 17, 2020 12:21 pm
Sex Jan 17, 2020 10:10 am
Sex Jan 17, 2020 12:44 am
Qui Jan 16, 2020 9:01 pm
Qui Jan 16, 2020 2:35 pm
Qui Jan 16, 2020 1:00 am
Qua Jan 15, 2020 11:05 pm
Qua Jan 15, 2020 8:22 pm
Qua Jan 15, 2020 6:04 pm
Qua Jan 15, 2020 6:03 pm
Qua Jan 15, 2020 5:41 pm
Qua Jan 15, 2020 12:30 pm
Qua Jan 15, 2020 2:05 am
Ter Jan 14, 2020 10:28 pm
Ter Jan 14, 2020 9:21 pm
Ter Jan 14, 2020 8:34 pm
Ter Jan 14, 2020 4:42 pm
Ter Jan 14, 2020 12:05 pm
Ter Jan 14, 2020 10:25 am
Seg Jan 13, 2020 8:10 pm
Seg Jan 13, 2020 7:51 pm
Seg Jan 13, 2020 5:45 pm
Seg Jan 13, 2020 4:40 pm
Seg Jan 13, 2020 4:31 pm
Seg Jan 13, 2020 2:44 pm
Seg Jan 13, 2020 1:42 am
Dom Jan 12, 2020 11:24 pm
Dom Jan 12, 2020 11:17 pm
Dom Jan 12, 2020 11:10 pm
Dom Jan 12, 2020 9:48 pm
Dom Jan 12, 2020 9:32 pm
Dom Jan 12, 2020 5:29 pm
Dom Jan 12, 2020 7:56 am
Dom Jan 12, 2020 2:59 am
Dom Jan 12, 2020 2:50 am
Sab Jan 11, 2020 10:18 pm
Sab Jan 11, 2020 8:23 pm
Sab Jan 11, 2020 7:54 pm
Sab Jan 11, 2020 1:30 pm
Sab Jan 11, 2020 12:15 pm
Sab Jan 11, 2020 1:42 am
Sex Jan 10, 2020 10:35 am
Sex Jan 10, 2020 8:16 am
Qui Jan 09, 2020 10:12 pm
Qui Jan 09, 2020 10:05 pm
Qui Jan 09, 2020 10:03 pm
Qui Jan 09, 2020 10:00 pm
Qui Jan 09, 2020 9:46 pm
Qui Jan 09, 2020 6:38 pm
Qui Jan 09, 2020 2:43 pm
Qui Jan 09, 2020 2:00 pm
Antônio T
Fagner
Fagner
Johann santos
Piewdie Mãe
Fagner
BlesseD
joffersoju
diegopds
mama2401
Socates
MarcosSchultz
MarcosSchultz
NKKF
skillMakarov
skillMakarov
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Piewdie Mãe
Fagner
Heltonlay
NKKF
MayLeone
Fagner
lucasluiz789
Piewdie Mãe
hendrick22
JhoowGamer
lesgoy
Kleber Lucas
Antônio T
LAGGAMES
AnderGames
nvndx
Antônio T
RafaelSquid1
nvndx
NKKF
Fagner
Piewdie Mãe
Fagner
Wahder
skillMakarov
MarceloYBP
LúcioHenrique098
LúcioHenrique098
RafaelSquid1
nvndx
lesgoy
mama2401
LúcioHenrique098
LúcioHenrique098
teos626
NKKF
RafaelSquid1
RafaelSquid1
Fagner
pwssantos
vibonito
Antônio T
lucasluiz789
hendrick22
BlesseD
hendrick22
Edu4rdogx
gtcmcsgo
RafaelSquid1
juansup
Edivandro2706
felipe jesus
Edivandro2706
Sherlock
Fagner
Felipe42
Felipe42
BlesseD
Felipe42
Felipe42
Magnatah
Antônio T
joffersoju
lucasluiz789
guimaraf
gtcmcsgo
gtcmcsgo
mama2401
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
bruno92
BlesseD
BlesseD

Como faço para Criar um sistema de touch em primeira pessoa na Unity2019?

Ir em baixo

DÚVIDA Como faço para Criar um sistema de touch em primeira pessoa na Unity2019?

Mensagem por ReDsScript em Sex Out 04, 2019 10:04 pm

Estou fazendo um game de terror mobile na Unity em primeira pessoa,usando a versão 2019.2.8f1.
Queria incrementar no jogo um Sistema que contivesse um joystick para movimentação do player e um sistema
que movesse a camera quando alguém tocasse na metade direita da tela Utilizando o Touch sem necessidade de nenhum joystick especifico para isso.
Encontrei alguns tutoriais na Internet porém eram de versões antigas e algumas coisas não funcionaram muito bem,principalmente nos scripts.
se alguém puder me ajudar agradeço.
o vídeo mais recente que achei sobre o assunto é este>>> https://www.youtube.com/watch?v=CmCVtEZUKIs&t=562s
Obs>>este eu também tentei mas não deu.

ReDsScript
Iniciante
Iniciante

PONTOS : 128
REPUTAÇÃO : 0
Respeito as regras : Como faço para Criar um sistema de touch em primeira pessoa na Unity2019? WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como faço para Criar um sistema de touch em primeira pessoa na Unity2019?

Mensagem por merike11 em Qui Dez 19, 2019 3:47 pm

Eu usei o mesmo tutorial e deu certo.   Espero que isso ajude um pouco!!

Primeiro não esqueça de deixar a Unity copilando para Android:
File -> Build Settings -> Android.

Também altere as variáveis padrão dos script MOUSE LOOK:

Crie as duas Variáveis float LookAxis.x e LookAxis.y

Código:
public void LookRotation(Transform character, Transform camera)
        {
            valorSensi = Sensibilidade.value;
            XSensitivity = valorSensi;
            YSensitivity= valorSensi;

            float yRot = LookAxis.x * XSensitivity;  //CrossPlatformInputManager.GetAxis("Mouse X") * XSensitivity;
            float xRot = LookAxis.y * YSensitivity; http://CrossPlatformInputManager.GetAxis("Mouse Y") * YSensitivity;

Usei esse script no botão:

Joystick
Código:
using System;
using UnityEngine;
using UnityEngine.EventSystems;

namespace UnityStandardAssets.CrossPlatformInput
{
 public class Joystick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler
 {
 public enum AxisOption
 {
 // Options for which axes to use
 Both, // Use both
 OnlyHorizontal, // Only horizontal
 OnlyVertical // Only vertical
 }

 public int MovementRange = 100;
 public AxisOption axesToUse = AxisOption.Both; // The options for the axes that the still will use
 public string horizontalAxisName = "Horizontal"; // The name given to the horizontal axis for the cross platform input
 public string verticalAxisName = "Vertical"; // The name given to the vertical axis for the cross platform input

 Vector3 m_StartPos;
 bool m_UseX; // Toggle for using the x axis
 bool m_UseY; // Toggle for using the Y axis
 CrossPlatformInputManager.VirtualAxis m_HorizontalVirtualAxis; // Reference to the joystick in the cross platform input
 CrossPlatformInputManager.VirtualAxis m_VerticalVirtualAxis; // Reference to the joystick in the cross platform input

 void OnEnable()
 {
 CreateVirtualAxes();
 }

        void Start()
        {
            m_StartPos = transform.position;
        }

 void UpdateVirtualAxes(Vector3 value)
 {
 var delta = m_StartPos - value;
 delta.y = -delta.y;
 delta /= MovementRange;
 if (m_UseX)
 {
 m_HorizontalVirtualAxis.Update(-delta.x);
 }

 if (m_UseY)
 {
 m_VerticalVirtualAxis.Update(delta.y);
 }
 }

 void CreateVirtualAxes()
 {
 // set axes to use
 m_UseX = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyHorizontal);
 m_UseY = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyVertical);

 // create new axes based on axes to use
 if (m_UseX)
 {
 m_HorizontalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(horizontalAxisName);
 CrossPlatformInputManager.RegisterVirtualAxis(m_HorizontalVirtualAxis);
 }
 if (m_UseY)
 {
 m_VerticalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(verticalAxisName);
 CrossPlatformInputManager.RegisterVirtualAxis(m_VerticalVirtualAxis);
 }
 }


 public void OnDrag(PointerEventData data)
 {
 Vector3 newPos = Vector3.zero;

 if (m_UseX)
 {
 int delta = (int)(data.position.x - m_StartPos.x);
 delta = Mathf.Clamp(delta, - MovementRange, MovementRange);
 newPos.x = delta;
 }

 if (m_UseY)
 {
 int delta = (int)(data.position.y - m_StartPos.y);
 delta = Mathf.Clamp(delta, -MovementRange, MovementRange);
 newPos.y = delta;
 }
 transform.position = new Vector3(m_StartPos.x + newPos.x, m_StartPos.y + newPos.y, m_StartPos.z + newPos.z);
 UpdateVirtualAxes(transform.position);
 }


 public void OnPointerUp(PointerEventData data)
 {
 transform.position = m_StartPos;
 UpdateVirtualAxes(m_StartPos);
 }


 public void OnPointerDown(PointerEventData data) { }

 void OnDisable()
 {
 // remove the joysticks from the cross platform input
 if (m_UseX)
 {
 m_HorizontalVirtualAxis.Remove();
 }
 if (m_UseY)
 {
 m_VerticalVirtualAxis.Remove();
 }
 }
 }
}

Esse no panel lá do canvas:
FixedTouchField

Código:
using UnityEngine;
using UnityEngine.EventSystems;

public class FixedTouchField : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
    [HideInInspector]
    public Vector2 TouchDist;
    [HideInInspector]
    public Vector2 PointerOld;
    [HideInInspector]
    protected int PointerId;
    [HideInInspector]
    public bool Pressed;

    void Update()
    {
        if (Pressed)
        {
            if (PointerId >= 0 && PointerId < Input.touches.Length)
            {
                TouchDist = Input.touches[PointerId].position - PointerOld;
                PointerOld = Input.touches[PointerId].position;
            }
            else
            {
                TouchDist = new Vector2(Input.mousePosition.x, Input.mousePosition.y) - PointerOld;
                PointerOld = Input.mousePosition;
            }
        }
        else
        {
            TouchDist = new Vector2();
        }
    }

    public void OnPointerDown(PointerEventData eventData)
    {
        Pressed = true;
        PointerId = eventData.pointerId;
        PointerOld = eventData.position;
    }


    public void OnPointerUp(PointerEventData eventData)
    {
        Pressed = false;
    }

}

E esse no canvas onde está o botão e o panel:
Mobile_Control
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.Characters.FirstPerson;

public class Mobile_Control : MonoBehaviour
{
    public FixedTouchField TouchField;

    // Update is called once per frame
    void Update()
    {
        var fps = GetComponent<FirstPersonController>();

        fps.m_MouseLook.LookAxis = TouchField.TouchDist;
    }
}
merike11
merike11
MembroAvançado

PONTOS : 234
REPUTAÇÃO : 5
Respeito as regras : Como faço para Criar um sistema de touch em primeira pessoa na Unity2019? WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como faço para Criar um sistema de touch em primeira pessoa na Unity2019?

Mensagem por verme1311 em Qui Dez 19, 2019 7:18 pm

Eu não consegui, infelizmente...
já assisti vários tutoriais, não sei aonde criar as duas Variáveis float LookAxis.x e LookAxis.y
em que parte do script

verme1311
Iniciante
Iniciante

PONTOS : 373
REPUTAÇÃO : 1
Respeito as regras : Como faço para Criar um sistema de touch em primeira pessoa na Unity2019? WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como faço para Criar um sistema de touch em primeira pessoa na Unity2019?

Mensagem por merike11 em Sex Jan 03, 2020 5:55 pm

Estava revendo o script aqui, você vai criar uma variavel normal dentro do script MouseLook 
Código:
public Vector2 LookAxis;

E dai você ainda dentro do script MouseLook acha a parte que eu falei 
Código:
 public void LookRotation(Transform character, Transform camera)
        {
            valorSensi = Sensibilidade.value;
            XSensitivity = valorSensi;
            YSensitivity= valorSensi;

            float yRot =  CrossPlatformInputManager.GetAxis("Mouse X") * XSensitivity;
            float xRot =  CrossPlatformInputManager.GetAxis("Mouse Y") * YSensitivity;

e substitui assim:
Código:
public void LookRotation(Transform character, Transform camera)
        {
            valorSensi = Sensibilidade.value;
            XSensitivity = valorSensi;
            YSensitivity= valorSensi;

            float yRot = LookAxis.x * XSensitivity; 
            float xRot = LookAxis.y * YSensitivity;

caso não de certo aqui está o script completo so substitui tudo
Código:
using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
using UnityEngine.UI;

namespace UnityStandardAssets.Characters.FirstPerson
{
    [Serializable]
    public class MouseLook
    {
        public float XSensitivity = 2f;
        public float YSensitivity = 2f;
        public bool clampVerticalRotation = true;
        public float MinimumX = -90F;
        public float MaximumX = 90F;
        public bool smooth;
        public float smoothTime = 5f;
        public bool lockCursor = true;


        private Quaternion m_CharacterTargetRot;
        private Quaternion m_CameraTargetRot;
        private bool m_cursorIsLocked = true;
        public Slider Sensibilidade;
        private float valorSensi;


        [HideInInspector] public Vector2 LookAxis;

        public void Init(Transform character, Transform camera)
        {
            m_CharacterTargetRot = character.localRotation;
            m_CameraTargetRot = camera.localRotation;
        }


        public void LookRotation(Transform character, Transform camera)
        {
            valorSensi = Sensibilidade.value;
            XSensitivity = valorSensi;
            YSensitivity= valorSensi;

            float yRot = LookAxis.x * XSensitivity; 
            float xRot = LookAxis.y * YSensitivity;

            m_CharacterTargetRot *= Quaternion.Euler(0f, yRot, 0f);
            m_CameraTargetRot *= Quaternion.Euler(-xRot, 0f, 0f);

            if (clampVerticalRotation)
                m_CameraTargetRot = ClampRotationAroundXAxis(m_CameraTargetRot);

            if (smooth)
            {
                character.localRotation = Quaternion.Slerp(character.localRotation, m_CharacterTargetRot,
                    smoothTime * Time.deltaTime);
                camera.localRotation = Quaternion.Slerp(camera.localRotation, m_CameraTargetRot,
                    smoothTime * Time.deltaTime);
            }
            else
            {
                character.localRotation = m_CharacterTargetRot;
                camera.localRotation = m_CameraTargetRot;
            }

            UpdateCursorLock();
        }

        public void SetCursorLock(bool value)
        {
            lockCursor = value;
            if (!lockCursor)
            {//we force unlock the cursor if the user disable the cursor locking helper
                Cursor.lockState = CursorLockMode.None;
                Cursor.visible = true;
            }
        }

        public void UpdateCursorLock()
        {
            //if the user set "lockCursor" we check & properly lock the cursos
            if (lockCursor)
                InternalLockUpdate();
        }

        private void InternalLockUpdate()
        {
            if (Input.GetKeyUp(KeyCode.Escape))
            {
                m_cursorIsLocked = false;
            }
            else if (Input.GetMouseButtonUp(0))
            {
                m_cursorIsLocked = true;
            }

            if (m_cursorIsLocked)
            {
                Cursor.lockState = CursorLockMode.Locked;
                Cursor.visible = false;
            }
            else if (!m_cursorIsLocked)
            {
                Cursor.lockState = CursorLockMode.None;
                Cursor.visible = true;
            }
        }

        Quaternion ClampRotationAroundXAxis(Quaternion q)
        {
            q.x /= q.w;
            q.y /= q.w;
            q.z /= q.w;
            q.w = 1.0f;

            float angleX = 2.0f * Mathf.Rad2Deg * Mathf.Atan(q.x);

            angleX = Mathf.Clamp(angleX, MinimumX, MaximumX);

            q.x = Mathf.Tan(0.5f * Mathf.Deg2Rad * angleX);

            return q;
        }

    }
}
merike11
merike11
MembroAvançado

PONTOS : 234
REPUTAÇÃO : 5
Respeito as regras : Como faço para Criar um sistema de touch em primeira pessoa na Unity2019? WvDYdlf

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