Ajuda Script Movimentação
Página 1 de 1
Ajuda Script Movimentação
Olá gente, eu to tentando fazendo um script para movimentar meu personagem que usa a visão da câmera como base, então tem um script na câmera com um Rotate Around no jogador, e no jogador eu leio o angulo da câmera e uso o seno e cosseno desse angulo para movimentar o jogador.
O axisZ funciona normalmente, já no axisX só funciona em alguns angulos.
Eu queria saber se alguém sabe o pq dessa movimentação estranha?
Script Câmera:
Script Player:
O axisZ funciona normalmente, já no axisX só funciona em alguns angulos.
Eu queria saber se alguém sabe o pq dessa movimentação estranha?
Script Câmera:
- Código:
using System.Collections.Generic;
using UnityEngine;
public class CameraVirar : MonoBehaviour {
public Transform player;
public float anguloVirar;
void Start () {
}
void Update () {
if (Input.mousePosition.x < Screen.width / 4) {
transform.RotateAround (player.position, Vector3.up, anguloVirar * Time.deltaTime);
}
if (Input.mousePosition.x > Screen.width / 4 * 3) {
transform.RotateAround (player.position, Vector3.up, -anguloVirar * Time.deltaTime);
}
}
}
Script Player:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent (typeof(Rigidbody))]
public class Movimentacao : MonoBehaviour {
Vector3 moverPersonagem;
Vector3 anguloCamera;
GameObject usarCamera;
private Rigidbody rbPlayer;
int chao;
float axisZ, axisX;
public float velocidade;
public float forcaPulo;
void Start () {
rbPlayer = GetComponent <Rigidbody> ();
usarCamera = GameObject.FindGameObjectWithTag ("MainCamera");
}
void Update () {
axisX = Input.GetAxis ("Horizontal") * velocidade;
axisZ = Input.GetAxis ("Vertical") * velocidade;
Add ();
}
void Add () {
anguloCamera = usarCamera.transform.eulerAngles;
moverPersonagem = new Vector3
(transform.position.x + (axisZ * Mathf.Sin (anguloCamera.y * Mathf.Deg2Rad) + axisX * Mathf.Cos (anguloCamera.y * Mathf.Deg2Rad)) * Time.deltaTime,
transform.position.y,
transform.position.z + (axisZ * Mathf.Cos (anguloCamera.y * Mathf.Deg2Rad) + axisX * Mathf.Sin (anguloCamera.y * Mathf.Deg2Rad)) * Time.deltaTime);
rbPlayer.MovePosition (moverPersonagem);
if (chao >= 1 && Input.GetKeyDown (KeyCode.Space)) {
rbPlayer.velocity += Vector3.up * forcaPulo;
}
}
}
lucaslbatista- Iniciante
- PONTOS : 2743
REPUTAÇÃO : 2
Idade : 30
Respeito as regras :
Tópicos semelhantes
» [ajuda] Movimentação 3° third person
» Preciso de ajuda com um script de movimentação !
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» [AJUDA]Quero Ajuda poque esse script so da erro!
» Preciso de ajuda com um script de movimentação !
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» [AJUDA]Quero Ajuda poque esse script so da erro!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos