Movimentação
2 participantes
Página 1 de 1
Movimentação
Eu estou usando o analógico do tutorial do ismarspn.
E queria um script de movimentação em que quando eu arrastar o analógico pra cima, o personagem também ande pra cima.
Se eu arrastar o analógico pra esquerda, o personagem também ande pra esquerda.
E do mesmo jeito para as outras direções
Mas que ele ande sempre de frente pra direção em que ele está andando
E queria um script de movimentação em que quando eu arrastar o analógico pra cima, o personagem também ande pra cima.
Se eu arrastar o analógico pra esquerda, o personagem também ande pra esquerda.
E do mesmo jeito para as outras direções
Mas que ele ande sempre de frente pra direção em que ele está andando
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
É só você mesmo mudar a direção no script, tipo: up= cima, down= baixo, forward = frente, back = trás, left = esquerda, right = direita...
você muda esse código:
dá pra ver q ele tem Vector3.right, quer dizer q ele ta na direção direita, é só mudar esse right pra qualquer outra direção, isso também conta com os outros trechos no script
você muda esse código:
- Código:
player.transform.Translate(Vector3.right * speed * Time.deltaTime);
dá pra ver q ele tem Vector3.right, quer dizer q ele ta na direção direita, é só mudar esse right pra qualquer outra direção, isso também conta com os outros trechos no script
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
Sim, mas eu queria que ele andase de frente para essas diréções
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
Cara, fiz uns testes aqui e funcionou, mas tem que usar um rigidbody no seu player... adiciona um rogidbody, ai vai lá no seu script d joystick e coloca esse código:
aumenta o speed bastante, entre 800 ou mais, depois é só setar seu player de novo, aqui deu certo assim, ta olhando pro lado onde anda...
- Código:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
public class VirtualJoystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IPointerDownHandler {
private Image bgImg;
private Image joystickImg;
private Vector3 inputVector;
public Rigidbody player;
public float speed;
private void Start(){
bgImg = GetComponent<Image> ();
joystickImg = transform.GetChild (0).GetComponent<Image> ();
}
public virtual void OnDrag(PointerEventData ped){
Vector2 pos;
if (RectTransformUtility.ScreenPointToLocalPointInRectangle (bgImg.rectTransform
, ped.position
, ped.pressEventCamera
, out pos))
{
pos.x = (pos.x / bgImg.rectTransform.sizeDelta.x);
pos.y = (pos.y / bgImg.rectTransform.sizeDelta.y);
inputVector = new Vector3(pos.x*3,0, pos.y*3);
inputVector = (inputVector.magnitude > 1.0f)?inputVector.normalized:inputVector;
// Move Joystick IMG
joystickImg.rectTransform.anchoredPosition =
new Vector3(inputVector.x * (bgImg.rectTransform.sizeDelta.x/3)
,inputVector.z * (bgImg.rectTransform.sizeDelta.y/3));
}
}
public virtual void OnPointerDown(PointerEventData ped){
OnDrag (ped);
}
public virtual void OnPointerUp(PointerEventData ped){
inputVector = Vector3.zero;
joystickImg.rectTransform.anchoredPosition = Vector3.zero;
}
void Update(){
if (joystickImg.transform.localPosition.x > 20) {
player.transform.GetComponent<Rigidbody> ().AddForce (Vector3.right * speed * Time.deltaTime);
player.transform.eulerAngles = new Vector3 (0, 90, 0);
}
if (joystickImg.transform.localPosition.x < -20) {
player.transform.GetComponent<Rigidbody> ().AddForce (Vector3.left * speed * Time.deltaTime);
player.transform.eulerAngles = new Vector3 (0, -90, 0);
}
if (joystickImg.transform.localPosition.y > 20) {
player.transform.GetComponent<Rigidbody> ().AddForce (Vector3.forward * speed * Time.deltaTime);
player.transform.eulerAngles = new Vector3 (0, 0, 0);
}
if (joystickImg.transform.localPosition.y < -20) {
player.transform.GetComponent<Rigidbody> ().AddForce (Vector3.back * speed * Time.deltaTime);
player.transform.eulerAngles = new Vector3 (0, 180, 0);
}
}
}
aumenta o speed bastante, entre 800 ou mais, depois é só setar seu player de novo, aqui deu certo assim, ta olhando pro lado onde anda...
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
Aki tá bugando quando eu aperto play câmera fica subindo e descendo
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
A câmera? o.O aí eu não sei, esse script nem mexe na câmera
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
Você fez alguma mudança no rigidbody?
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
eu selecionei esses 3 eixos só pro objeto não virar
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
Ainda tá dando erro aki
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
você ta usando a camera como filho do player?
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
Então como que a camera fica bugando? ela tem algum follow no player?
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
algum script para a camera seguir o player
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
então tem follow sim
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
poste um print da Hierarchy do seu player e manda o script do follow da camera
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
Esse é um script do Marcos de um vídeo dele
- Código:
using UnityEngine;
using System.Collections;
public class Camera : MonoBehaviour {
public GameObject cabeca;
public GameObject[] posicoes;
private int indice = 0;
public float VelocidadeDeMovimento = 2;
private RaycastHit hit;
void FixedUpdate () {
transform.LookAt (cabeca.transform);
//CHECAR SE TEM COLISOR
if (!Physics.Linecast (cabeca.transform.position, posicoes[indice].transform.position)) {
transform.position = Vector3.Lerp(transform.position, posicoes[indice].transform.position,VelocidadeDeMovimento*Time.deltaTime);
Debug.DrawLine(cabeca.transform.position, posicoes[indice].transform.position);
}
else if(Physics.Linecast(cabeca.transform.position, posicoes[indice].transform.position,out hit)){
transform.position = Vector3.Lerp(transform.position, hit.point,(VelocidadeDeMovimento*2)*Time.deltaTime);
Debug.DrawLine(cabeca.transform.position, hit.point);
}
}
}
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
Cara, aqui está funcionando perfeitamente... não sei porquê está acontecendo esse bug
a Hierarchy que eu falo é isso:
a Hierarchy que eu falo é isso:
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
Não tem nenhum collider no player?
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
Tem que adicionar pelo menos um Capsule collider para o player não cair no limbo, cara, porquê ele está com um rigidbory, e adicionar um colisor no terraço também.
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
Até que funcionou mas agora o player não anda só fica virando pros lados
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
acho que tem que aumentar mais a speed até ele conseguir andar
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
o player não tá se movendo mas a camera se distancia
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
Cara, tem como upar seu projeto no MEGA e mandar o link para eu dar uma olhada no que está errado?
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
cara, conseguiu ?
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
Estou esperando você mandar seu projeto para eu dar uma olhada
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Movimentação
eu mandei uma mp com o link do projeto
Renan Arruda- Membro
- PONTOS : 3344
REPUTAÇÃO : 3
Idade : 28
Respeito as regras :
Re: Movimentação
Está pedindo uma chave para descriptografar
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos