[RESOLVIDO] Unity - Movendo a Câmera na Horizontal/Vertical com Touch
Página 1 de 1
[RESOLVIDO] Unity - Movendo a Câmera na Horizontal/Vertical com Touch
-------------------------------------------
Editado:
Gente, eu estava tendando fazer um deslize na tela com o touch movendo a Câmera. Não estava conseguindo, mas depois de várias tentativas e erros, consegui! Está assim pra quem precisar:
Método do deslize na Horizontal
Método do deslize na Vertical:
Método que gerencia os deslizes na tela nas direções Horizontal e Vertical
As Variáveis são declaradas nos Atributos, são globais.
Está funcionando Maravilhosamente bem^^ Fica aí pra quem tiver o mesmo problema
Editado:
Gente, eu estava tendando fazer um deslize na tela com o touch movendo a Câmera. Não estava conseguindo, mas depois de várias tentativas e erros, consegui! Está assim pra quem precisar:
Método do deslize na Horizontal
- Código:
if(Input.touchCount == 1) {
Touch touch = Input.GetTouch(0);
if(touch.phase == TouchPhase.Moved) {
posicaoDeslizeHorizontal = (Vector3) touch.deltaPosition * 0.75f * Time.deltaTime;
posicaoDeslizeHorizontal.y = 0;
_camera.transform.position -= posicaoDeslizeHorizontal;
// Os valores "-60 e 60" vc coloca o que desejar
if(_camera.transform.position.x < -60f || _camera.transform.position.x > 60f) {
_camera.transform.position += posicaoDeslizeHorizontal;
}
}
}
Método do deslize na Vertical:
- Código:
if(Input.touchCount == 1) {
Touch touch = Input.GetTouch(0);
if(touch.phase == TouchPhase.Moved) {
posicaoDeslizeVertical.z = touch.deltaPosition.y * 1f * Time.deltaTime;
posicaoDeslizeVertical.x = 0;
posicaoDeslizeVertical.y = 0;
Vector3.Normalize(posicaoDeslizeVertical);
_camera.transform.position -= posicaoDeslizeVertical;
// Os valores "-33 e 33" vc coloca o que desejar
if( _camera.transform.position.z < -33f || _camera.transform.position.z > 33f) {
_camera.transform.position += posicaoDeslizeVertical;
}
}
}
Método que gerencia os deslizes na tela nas direções Horizontal e Vertical
- Código:
if(Input.touchCount == 1) {
Touch touch = Input.GetTouch(0);
if(touch.phase == TouchPhase.Moved) {
posicaoFinalDoDeslize = touch.deltaPosition;
if(Vector2.Distance(posicaoInicialDoDeslize, posicaoFinalDoDeslize) > 0) {
xPosicaoDoDeslize = posicaoFinalDoDeslize.x - posicaoInicialDoDeslize.x;
yPosicaoDoDeslize = posicaoFinalDoDeslize.y - posicaoInicialDoDeslize.y;
if(Mathf.Abs(xPosicaoDoDeslize) > Mathf.Abs(yPosicaoDoDeslize)) {
deslizeVisaoDeCimaDoTabuleiro_Horizontal();
}
else {
deslizeVisaoDeCimaDoTabuleiro_Vertical();
}
}
}
}
As Variáveis são declaradas nos Atributos, são globais.
Está funcionando Maravilhosamente bem^^ Fica aí pra quem tiver o mesmo problema
WLCS22- MembroAvançado
- PONTOS : 1926
REPUTAÇÃO : 60
Respeito as regras :
Tópicos semelhantes
» -[COMO FAÇO O TOUCH PAD DO UNITY MOVER MINHA CAMERA?]-
» (Duvida) Jogo na horizontal e vertical.
» Como usar o GetButton(¨Vertical¨) e o GetButton(¨Horizontal¨)
» Touch movendo objeto através duma Layer
» [RESOLVIDO] Camera Touch Mobile sem atrapalhar os botoes UI
» (Duvida) Jogo na horizontal e vertical.
» Como usar o GetButton(¨Vertical¨) e o GetButton(¨Horizontal¨)
» Touch movendo objeto através duma Layer
» [RESOLVIDO] Camera Touch Mobile sem atrapalhar os botoes UI
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos