[RESOLVIDO] Eixos X e Z nao rotaciona junto com o play
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Eixos X e Z nao rotaciona junto com o play
tenho um controle mobile com dois joysticks um pra movimentar e outro rotacionar, quando dou play o personagem vai pra frente e pra tras normal só que quando giro pra esquerda ele nao vai pra frente.. só vai pro eixo que ele iniciou no caso o Z..e notei no modo de ediçao que o problema é porque os eixos Z e X nao rotaciona junto com o personagem ou seja fica parados , quero saber como faz pra esses eixos da unity acompanharem a rotaçao do personagem igual quando eu giro? Lembrando que nao marquei nada em freeze rotation e position do rigidbody.
francisco barroso- Programador
- PONTOS : 2613
REPUTAÇÃO : 59
Respeito as regras :
Re: [RESOLVIDO] Eixos X e Z nao rotaciona junto com o play
Use a forma:
Onde a direcao é o input do seu jogador.
Esse método meio que retorna para onde o seu player deve ir.
Deve funcionar.
Referência:
https://docs.unity3d.com/ScriptReference/Transform.TransformDirection.html
- Código:
transform.TransformDirection (Vector3 direcao);
Onde a direcao é o input do seu jogador.
Esse método meio que retorna para onde o seu player deve ir.
Deve funcionar.
Referência:
https://docs.unity3d.com/ScriptReference/Transform.TransformDirection.html
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Eixos X e Z nao rotaciona junto com o play
Mas direcao é uma variavel int ou um Vector3?NKKF escreveu:Use a forma:
- Código:
transform.TransformDirection (Vector3 direcao);
Onde a direcao é o input do seu jogador.
Esse método meio que retorna para onde o seu player deve ir.
Deve funcionar.
Referência:
https://docs.unity3d.com/ScriptReference/Transform.TransformDirection.html
Última edição por francisco barroso em Qua Dez 05, 2018 10:07 pm, editado 1 vez(es)
francisco barroso- Programador
- PONTOS : 2613
REPUTAÇÃO : 59
Respeito as regras :
Re: [RESOLVIDO] Eixos X e Z nao rotaciona junto com o play
NKKF escreveu:Use a forma:
- Código:
transform.TransformDirection (Vector3 direcao);
Onde a direcao é o input do seu jogador.
Esse método meio que retorna para onde o seu player deve ir.
Deve funcionar.
Referência:
https://docs.unity3d.com/ScriptReference/Transform.TransformDirection.html
O script é esse
- Código:
using System.Collections;
using UnityEngine;
using System.Collections.Generics;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public Joystick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler {
public int MovimentRange = 100;
Vector3 StartPos;
public Vector3 InputDirection;
public Image BgImage;
private Image thisImage;
public OnDrag(PointerEventData data)
{
Vector3 newPos = Vector3.zero;
int delta = (int)(eventData.position.x - StartPos.x);
delta = Mathf.Clamp(delta, -MovimentRange, MovimentRange);
newPos.x delta;
int delta2 = (int)(eventData.position.x - StartPos.y);
delta2 = Mathf.Clamp(delta2, -MovimentRange, MovimentRange);
newPos.y delta2;
transform.position = new Vector3(StartPos.x + newPos.x, StartPos.y + newPos.y, StartPos.z + newPos.z);
UpdateVirtualAxes(new Vector3(newPos.x * 1f / MovimentRange, 0, newPos.y * 1 / MovimentRange));
}
public OnPointerUp(EventSystems.PointerEventData eventData)
{
transform.position = StartPos;
UpdateVirtualAxes(Vector3(0, 0, 0));
}
public OnPointerDown(PointerEventData eventData)
{
throw new System.NotImplementedExepction();
}
void Start() {
thisImage = GetComponent<Image>();
StartPos = transform.position;
}
void UpdateVirtualAxes(Vector3 value)
{
var delta = StartPos - value;
delta.y = -delta.y;
delta /= MovimentRange;
InputDirection = value;
}
}
francisco barroso- Programador
- PONTOS : 2613
REPUTAÇÃO : 59
Respeito as regras :
Re: [RESOLVIDO] Eixos X e Z nao rotaciona junto com o play
A direção é o input/entrada do seu jogador.francisco barroso escreveu:Mas direcao é uma variavel int ou um Vector3?NKKF escreveu:Use a forma:
- Código:
transform.TransformDirection (Vector3 direcao);
Onde a direcao é o input do seu jogador.
Esse método meio que retorna para onde o seu player deve ir.
Deve funcionar.
Referência:
https://docs.unity3d.com/ScriptReference/Transform.TransformDirection.html
(Exemplo:
- Código:
Vector2 input = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
transform.position += transform.TransformDirection(new Vector3(input.x, 0, input.y));
Lembrando: Não recomendo que você use transform.position para se movimentar, use de preferência Rigidbody ou Character Controller.
(Dado que você mudando a posição, a engine ignora a colisão na física)
Referências:
https://docs.unity3d.com/ScriptReference/Input.html - Input
https://docs.unity3d.com/ScriptReference/Rigidbody.html - Rigidbody
https://docs.unity3d.com/Manual/class-CharacterController.html - Character Controller
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
francisco barroso- Programador
- PONTOS : 2613
REPUTAÇÃO : 59
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como dar play em duas animações juntas?
» [RESOLVIDO] Como eu coloco um limite em dar play em Audio
» [RESOLVIDO] Duvida sobre o unity IAP (compras na google play)
» [RESOLVIDO] Botão para ver conquistas e ranking do Google Play Games não funciona.
» [RESOLVIDO] Após atualizar unity collider entra em sleep mode sempre q dou play
» [RESOLVIDO] Como eu coloco um limite em dar play em Audio
» [RESOLVIDO] Duvida sobre o unity IAP (compras na google play)
» [RESOLVIDO] Botão para ver conquistas e ranking do Google Play Games não funciona.
» [RESOLVIDO] Após atualizar unity collider entra em sleep mode sempre q dou play
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos