A comunidade brasileira de desenvolvimento e programação de jogos.
Bem-vindo: Seg Nov 30, 2020 7:30 pm

Todos os horários são GMT - 3 horas




Criar novo tópico Responder  [ 1 mensagem ] 
Autor Mensagem
 Título: Third Person Camera
MensagemEnviado: Qua Out 09, 2019 12:19 am 
Offline
Membro novo

Registrado em: Ter Out 08, 2019 11:55 pm
Mensagens: 3
Estou com um problema na criação de código para movimentação da câmera... O códio abaixo a câmera segue o personagem perfeitamente, quando eu rotaciono ele com as teclas A e D (através do LookAt(head), em visto que a movimentação está em outro código), agora o LookAt(head) não respeita a rotação dele... O código altera a rotação do objeto HEAD (GameObject vazio), tanto é que eu vejo os valores de Rotation Y alterando. Porém nada acontece com a câmera e se eu coloco a camera como filha de HEAD não obtenho o resultado desejado...

public class CamFollow : MonoBehaviour

{



public Transform head;

public Transform[] pos;

public int id;

public Vector3 speed = Vector3.zero;

public RaycastHit hit;

public float scroll;

private float rotSpeed, rotation;



// Start is called before the first frame update

void Start()

{

rotSpeed = 100;

id = 0;

}



void Update()

{

CameraAdjust();

CameraRotation();

}



// Update is called once per frame

void LateUpdate()

{

transform.LookAt(head);

if (!Physics.Linecast(head.position,pos[id].position))

{

transform.position = Vector3.SmoothDamp(transform.position,pos[id].position, ref speed, 0.1f);

Debug.DrawLine(head.position, pos[id].position);

}

else if (Physics.Linecast(head.position, pos[id].position, out hit))

{

transform.position = Vector3.SmoothDamp(transform.position, hit.point, ref speed, 0.1f);

Debug.DrawLine(head.position, pos[id].position);

}

}



void CameraAdjust()

{

scroll = Input.GetAxis("Mouse ScrollWheel");

if ((Input.GetAxis("Mouse ScrollWheel") < 0) && (id < 2))

{

id++;

}

else if ((Input.GetAxis("Mouse ScrollWheel") > 0) && ((id <= 2) && (id > 0)))

{

id--;

}

}



void CameraRotation()

{

rotation += Input.GetAxis("Mouse X") * rotSpeed;

rotation *= Time.deltaTime;

head.Rotate(0,rotation,0);

}



}


Voltar ao topo
 Perfil  
 
Exibir mensagens anteriores:  Ordenar por  
Criar novo tópico Responder  [ 1 mensagem ] 

Todos os horários são GMT - 3 horas


Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes


Enviar mensagens: Proibido
Responder mensagens: Proibido
Editar mensagens: Proibido
Excluir mensagens: Proibido
Enviar anexos: Proibido

Ir para:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por: Suporte phpBB