[RESOLVIDO] Ajustar movimentação da câmera
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Ajustar movimentação da câmera
Eu queria uma ajuda com o meu código, o problema é o seguinte, toda vez que eu toco na tela, sem que seja no joystick, ele muda a posição da câmera, mas eu não queria que isso ocorresse, queria que a câmera ficasse estática somente a trás do personagem, coisa que eu já tentei colocando ela em uma posição fixa no inspector, mas quando inicia o jogo ela muda de posição. Resumindo queria corrigir o erro de a câmera mudar a de posição quando toca em outro lugar da tela, queria que fosse somente quando tocasse no joystick, e queria que ela ficasse em uma posição fixa a trás do personagem e se movesse somente no eixo Y(horizontal). Se puderem me ajudar corrigindo o código ou me indicando um material que eu consiga aproveitar para corrigir os erros ficarei agradecido.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
public class Motor : MonoBehaviour
{
public float runSpeed = 5.0f;
public float walkSpeed = 1.5f;
private CharacterController controller;
private Transform cameraTransform;
private Animator anim;
private Vector3 moveVector;
private void Start()
{
controller = GetComponent<CharacterController>();
anim = GetComponent<Animator>();
}
private void Update()
{
moveVector = Vector3.zero;
//(T ? X : Y) = se o teste T for avaliado como verdadeiro, então ele avaliará e retornará X;
//caso contrário, avaliará e retornará Y
//float speed = (Input.GetKey(KeyCode.LeftShift) ? runSpeed : walkSpeed);//original
float speed = runSpeed;//modificado
//original
//moveVector.x = Input.GetAxis("Horizontal");
//moveVector.z = Input.GetAxis("Vertical");
//modificado
moveVector.x = CrossPlatformInputManager.GetAxis("Horizontal");
moveVector.z = CrossPlatformInputManager.GetAxis("Vertical");
moveVector = RotateWithView();
controller.Move(moveVector * speed * Time.deltaTime);
if (controller.velocity != Vector3.zero)
transform.forward = controller.velocity;
anim.SetFloat("Speed", controller.velocity.magnitude);
}
private Vector3 RotateWithView()
{
if (cameraTransform != null)
{
Vector3 dir = cameraTransform.TransformDirection(moveVector);
dir.Set(dir.x, 0, dir.z);
return dir.normalized * moveVector.magnitude;
}
else
{
cameraTransform = Camera.main.transform;
return moveVector;
}
}
}
rafaelholanda- Iniciante
- PONTOS : 2164
REPUTAÇÃO : 1
Idade : 28
Respeito as regras :
Re: [RESOLVIDO] Ajustar movimentação da câmera
Esse código é do seu personagem ou da câmera? Se a câmera conter qualquer script, poste aqui porque é mais provavel que o problema seja lá. Se não tiver, tem alguma linha nesse codigo que muda a posição da câmera ou algo do tipo?
Daniel Pires da Silva- Avançado
- PONTOS : 2754
REPUTAÇÃO : 37
Idade : 20
Áreas de atuação : Cursando C#
Respeito as regras :
Re: [RESOLVIDO] Ajustar movimentação da câmera
O código que eu mandei é do personagem, mas a câmera tem um código também, vou postar ele a baixo.Daniel Pires da Silva escreveu:Esse código é do seu personagem ou da câmera? Se a câmera conter qualquer script, poste aqui porque é mais provavel que o problema seja lá. Se não tiver, tem alguma linha nesse codigo que muda a posição da câmera ou algo do tipo?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour
{
private const float Y_ANGLE_MIN = 0.0f;
private const float Y_ANGLE_MAX = 50.0f;
public Transform lookAt;
public Transform camTransform;
public float distance = 10.0f;
private float currentX = 0.0f;
private float currentY = 45.0f;
private float sensitivityX = 4.0f;
private float sensitivityY = 1.0f;
private void Start()
{
camTransform = transform;
}
private void Update()
{
currentX += Input.GetAxis("Mouse X");
currentY += Input.GetAxis("Mouse Y");
currentY = Mathf.Clamp(currentY, Y_ANGLE_MIN, Y_ANGLE_MAX);
}
private void LateUpdate()
{
Vector3 dir = new Vector3(0, 0, -distance);
Quaternion rotation = Quaternion.Euler(currentY, currentX, 0);
camTransform.position = lookAt.position + rotation * dir;
camTransform.LookAt(lookAt.position);
}
}
rafaelholanda- Iniciante
- PONTOS : 2164
REPUTAÇÃO : 1
Idade : 28
Respeito as regras :
Re: [RESOLVIDO] Ajustar movimentação da câmera
Você estava certo, o erro estava no código da câmera, foi só trocar orafaelholanda escreveu:O código que eu mandei é do personagem, mas a câmera tem um código também, vou postar ele a baixo.Daniel Pires da Silva escreveu:Esse código é do seu personagem ou da câmera? Se a câmera conter qualquer script, poste aqui porque é mais provavel que o problema seja lá. Se não tiver, tem alguma linha nesse codigo que muda a posição da câmera ou algo do tipo?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour
{
private const float Y_ANGLE_MIN = 0.0f;
private const float Y_ANGLE_MAX = 50.0f;
public Transform lookAt;
public Transform camTransform;
public float distance = 10.0f;
private float currentX = 0.0f;
private float currentY = 45.0f;
private float sensitivityX = 4.0f;
private float sensitivityY = 1.0f;
private void Start()
{
camTransform = transform;
}
private void Update()
{
currentX += Input.GetAxis("Mouse X");
currentY += Input.GetAxis("Mouse Y");
currentY = Mathf.Clamp(currentY, Y_ANGLE_MIN, Y_ANGLE_MAX);
}
private void LateUpdate()
{
Vector3 dir = new Vector3(0, 0, -distance);
Quaternion rotation = Quaternion.Euler(currentY, currentX, 0);
camTransform.position = lookAt.position + rotation * dir;
camTransform.LookAt(lookAt.position);
}
}
- Código:
currentX += Input.GetAxis("Mouse X");
currentY += Input.GetAxis("Mouse Y");
por,
- Código:
currentX += CrossPlatformInputManager.GetAxis("Mouse X");
currentY += CrossPlatformInputManager.GetAxis("Mouse Y");
rafaelholanda- Iniciante
- PONTOS : 2164
REPUTAÇÃO : 1
Idade : 28
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Ajustar Posição e Rotação da Câmera do Veículo
» [RESOLVIDO] Como ajustar o volume em todo o jogo
» movimentação e camera?
» SCRIPT DE MOVIMENTAÇÃO E CÂMERA
» Duvida de movimentação de câmera 2D (Sem personagem)
» [RESOLVIDO] Como ajustar o volume em todo o jogo
» movimentação e camera?
» SCRIPT DE MOVIMENTAÇÃO E CÂMERA
» Duvida de movimentação de câmera 2D (Sem personagem)
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos