Camera gira errada no eixo z ao entrar no carro!!
3 participantes
Página 1 de 1
Camera gira errada no eixo z ao entrar no carro!!
Boa tarde !
Nao consigo resolver isso!!
toda vez q entro no carro ando e giro o eixo z a camera vai saindo do carro , parece q a camera gira mais rapido ou sei la deixei a ft no link gg!
pode me ajudar por favor obg!!
minha linha
camera.transform.position = new Vector3(transform.position.x , transform.position.y + 2, transform.position.z - 6);
ja tentei c eulerangles , com localposition etc e nada resolveu!
ft
https://drive.google.com/file/d/1_IalFO77Kkwzf0pkKwvWVGIMHwhkdlJh/view?usp=sharing
Nao consigo resolver isso!!
toda vez q entro no carro ando e giro o eixo z a camera vai saindo do carro , parece q a camera gira mais rapido ou sei la deixei a ft no link gg!
pode me ajudar por favor obg!!
minha linha
camera.transform.position = new Vector3(transform.position.x , transform.position.y + 2, transform.position.z - 6);
ja tentei c eulerangles , com localposition etc e nada resolveu!
ft
https://drive.google.com/file/d/1_IalFO77Kkwzf0pkKwvWVGIMHwhkdlJh/view?usp=sharing
capim22- Avançado
- PONTOS : 2045
REPUTAÇÃO : 20
Respeito as regras :
Re: Camera gira errada no eixo z ao entrar no carro!!
Presumo que essa linha de código que colocou ai seja de um script que está no carro correto ?
Como assim gira ? essa linha de codigo só está definindo a posição da camera, não tem nada de rotação nela.
Favor Enviar o script inteiro
- Código:
camera.transform.position = new Vector3(transform.position.x , transform.position.y + 2, transform.position.z - 6);
Como assim gira ? essa linha de codigo só está definindo a posição da camera, não tem nada de rotação nela.
Favor Enviar o script inteiro
Re: Camera gira errada no eixo z ao entrar no carro!!
opa foi mal!!dutrabr100 escreveu:Presumo que essa linha de código que colocou ai seja de um script que está no carro correto ?
- Código:
camera.transform.position = new Vector3(transform.position.x , transform.position.y + 2, transform.position.z - 6);
Como assim gira ? essa linha de codigo só está definindo a posição da camera, não tem nada de rotação nela.
Favor Enviar o script inteiro
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class carro : MonoBehaviour
{
public GameObject player;
private GameObject camera;
float acelerar = 0f;
public clicou Acelerar;
public static bool podeAndar = false;
public float torque, freio, friccao,volante;
public WheelCollider[] wcs;
public Transform[] rodas;
float acc = 0f;
Rigidbody rb;
public float forca;
void Start()
{
camera = GameObject.FindGameObjectWithTag("camera");
}
void update()
{
}
void updateRodas()
{
Vector3 pos;
Quaternion rot;
for (int i = 0; i < wcs.Length; i++)
{
if (podeAndar == true)
{
player.transform.parent = transform;
camera.transform.position = transform.localPosition + new Vector3(0, 2, -6);
camera.transform.localRotation = transform.localRotation;
if (Input.GetKeyDown("w"))
{
wcs[i].motorTorque =+ 300;
}
if (Input.GetKeyDown("s"))
{
wcs[i].motorTorque =- 200;
}
wcs[i].brakeTorque = (Input.GetKey(KeyCode.Space) ) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical")*friccao);
if (i < 2)
wcs[i].steerAngle = Mathf.Lerp(wcs[i].steerAngle, volante * UltimateJoystick.GetHorizontalAxis("manete"),Time.deltaTime *1);
wcs[i].GetWorldPose(out pos, out rot);
rodas[i].position = pos;
rodas[i].rotation = rot;
if (Acelerar.pressed)
{
acelerar = 1f * torque;
}
}
}
}
private void Update()
{
updateRodas();
}
public void acelerarando()
{
acelerar = 1f;
}
}
capim22- Avançado
- PONTOS : 2045
REPUTAÇÃO : 20
Respeito as regras :
Re: Camera gira errada no eixo z ao entrar no carro!!
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class carro : MonoBehaviour
{
public GameObject player;
private GameObject camera;
float acelerar = 0f;
public clicou Acelerar;
public static bool podeAndar = false;
public float torque, freio, friccao,volante;
public WheelCollider[] wcs;
public Transform[] rodas;
float acc = 0f;
Rigidbody rb;
public float forca;
void Start()
{
camera = GameObject.FindGameObjectWithTag("camera");
}
void update()
{
}
void updateRodas()
{
Vector3 pos;
Quaternion rot;
for (int i = 0; i < wcs.Length; i++)
{
if (podeAndar == true)
{
player.transform.parent = transform;
camera.transform.position = transform.localPosition + new Vector3(0, 2, -6);
camera.transform.localRotation = transform.localRotation;
if (Input.GetKeyDown("w"))
{
wcs[i].motorTorque =+ 300;
}
if (Input.GetKeyDown("s"))
{
wcs[i].motorTorque =- 200;
}
wcs[i].brakeTorque = (Input.GetKey(KeyCode.Space) ) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical")*friccao);
if (i < 2)
wcs[i].steerAngle = Mathf.Lerp(wcs[i].steerAngle, volante * UltimateJoystick.GetHorizontalAxis("manete"),Time.deltaTime *1);
wcs[i].GetWorldPose(out pos, out rot);
rodas[i].position = pos;
rodas[i].rotation = rot;
if (Acelerar.pressed)
{
acelerar = 1f * torque;
}
}
}
}
private void Update()
{
updateRodas();
}
public void acelerarando()
{
acelerar = 1f;
}
}
Re: Camera gira errada no eixo z ao entrar no carro!!
esse teu script está com 2 "updates".capim22 escreveu:opa foi mal!!dutrabr100 escreveu:Presumo que essa linha de código que colocou ai seja de um script que está no carro correto ?
- Código:
camera.transform.position = new Vector3(transform.position.x , transform.position.y + 2, transform.position.z - 6);
Como assim gira ? essa linha de codigo só está definindo a posição da camera, não tem nada de rotação nela.
Favor Enviar o script inteiro
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class carro : MonoBehaviour
{
public GameObject player;
private GameObject camera;
float acelerar = 0f;
public clicou Acelerar;
public static bool podeAndar = false;
public float torque, freio, friccao,volante;
public WheelCollider[] wcs;
public Transform[] rodas;
float acc = 0f;
Rigidbody rb;
public float forca;
void Start()
{
camera = GameObject.FindGameObjectWithTag("camera");
}
void update()
{
}
void updateRodas()
{
Vector3 pos;
Quaternion rot;
for (int i = 0; i < wcs.Length; i++)
{
if (podeAndar == true)
{
player.transform.parent = transform;
camera.transform.position = transform.localPosition + new Vector3(0, 2, -6);
camera.transform.localRotation = transform.localRotation;
if (Input.GetKeyDown("w"))
{
wcs[i].motorTorque =+ 300;
}
if (Input.GetKeyDown("s"))
{
wcs[i].motorTorque =- 200;
}
wcs[i].brakeTorque = (Input.GetKey(KeyCode.Space) ) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical")*friccao);
if (i < 2)
wcs[i].steerAngle = Mathf.Lerp(wcs[i].steerAngle, volante * UltimateJoystick.GetHorizontalAxis("manete"),Time.deltaTime *1);
wcs[i].GetWorldPose(out pos, out rot);
rodas[i].position = pos;
rodas[i].rotation = rot;
if (Acelerar.pressed)
{
acelerar = 1f * torque;
}
}
}
}
private void Update()
{
updateRodas();
}
public void acelerarando()
{
acelerar = 1f;
}
}
e porque tu esta usando a posição e rotação local ?
Re: Camera gira errada no eixo z ao entrar no carro!!
dutrabr100 escreveu:esse teu script está com 2 "updates".capim22 escreveu:opa foi mal!!dutrabr100 escreveu:Presumo que essa linha de código que colocou ai seja de um script que está no carro correto ?
- Código:
camera.transform.position = new Vector3(transform.position.x , transform.position.y + 2, transform.position.z - 6);
Como assim gira ? essa linha de codigo só está definindo a posição da camera, não tem nada de rotação nela.
Favor Enviar o script inteiro
opa removi update , e q fui testante local . position rotation ou so rotatio e position e fica sempre na msm !!using System.Collections;using System.Collections.Generic;using UnityEngine;public class carro : MonoBehaviour{public GameObject player;public GameObject camera;float acelerar = 0f;public clicou Acelerar;public static bool podeAndar = false;public float torque, freio, friccao,volante;public WheelCollider[] wcs;public Transform[] rodas;float acc = 0f;Rigidbody rb;public float forca;void Start(){}void updateRodas(){Vector3 pos;Quaternion rot;for (int i = 0; i < wcs.Length; i++){if (podeAndar == true){player.transform.parent = transform;camera.transform.position = transform.position + new Vector3(0, 2, -6);camera.transform.rotation = transform.rotation;if (Input.GetKeyDown("w")){wcs[i].motorTorque =+ 300;}if (Input.GetKeyDown("s")){wcs[i].motorTorque =- 200;}wcs[i].brakeTorque = (Input.GetKey(KeyCode.Space) ) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical")*friccao);if (i < 2)wcs[i].steerAngle = Mathf.Lerp(wcs[i].steerAngle, volante * UltimateJoystick.GetHorizontalAxis("manete"),Time.deltaTime *1);wcs[i].GetWorldPose(out pos, out rot);rodas[i].position = pos;rodas[i].rotation = rot;if (Acelerar.pressed){acelerar = 1f * torque;}}}}private void Update(){updateRodas();}public void acelerarando(){acelerar = 1f;}using System.Collections;}
using System.Collections.Generic;
using UnityEngine;
public class carro : MonoBehaviour
{
public GameObject player;
private GameObject camera;
float acelerar = 0f;
public clicou Acelerar;
public static bool podeAndar = false;
public float torque, freio, friccao,volante;
public WheelCollider[] wcs;
public Transform[] rodas;
float acc = 0f;
Rigidbody rb;
public float forca;
void Start()
{
camera = GameObject.FindGameObjectWithTag("camera");
}
void update()
{
}
void updateRodas()
{
Vector3 pos;
Quaternion rot;
for (int i = 0; i < wcs.Length; i++)
{
if (podeAndar == true)
{
player.transform.parent = transform;
camera.transform.position = transform.localPosition + new Vector3(0, 2, -6);
camera.transform.localRotation = transform.localRotation;
if (Input.GetKeyDown("w"))
{
wcs[i].motorTorque =+ 300;
}
if (Input.GetKeyDown("s"))
{
wcs[i].motorTorque =- 200;
}
wcs[i].brakeTorque = (Input.GetKey(KeyCode.Space) ) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical")*friccao);
if (i < 2)
wcs[i].steerAngle = Mathf.Lerp(wcs[i].steerAngle, volante * UltimateJoystick.GetHorizontalAxis("manete"),Time.deltaTime *1);
wcs[i].GetWorldPose(out pos, out rot);
rodas[i].position = pos;
rodas[i].rotation = rot;
if (Acelerar.pressed)
{
acelerar = 1f * torque;
}
}
}
}
private void Update()
{
updateRodas();
}
public void acelerarando()
{
acelerar = 1f;
}
}
e porque tu esta usando a posição e rotação local ?
capim22- Avançado
- PONTOS : 2045
REPUTAÇÃO : 20
Respeito as regras :
Re: Camera gira errada no eixo z ao entrar no carro!!
capim22 escreveu:dutrabr100 escreveu:esse teu script está com 2 "updates".capim22 escreveu:opa foi mal!!dutrabr100 escreveu:Presumo que essa linha de código que colocou ai seja de um script que está no carro correto ?
- Código:
camera.transform.position = new Vector3(transform.position.x , transform.position.y + 2, transform.position.z - 6);
Como assim gira ? essa linha de codigo só está definindo a posição da camera, não tem nada de rotação nela.
Favor Enviar o script inteiro
opa removi update , e q fui testante local . position rotation ou so rotatio e position e fica sempre na msm !!using System.Collections;using System.Collections.Generic;using UnityEngine;public class carro : MonoBehaviour{public GameObject player;public GameObject camera;float acelerar = 0f;public clicou Acelerar;public static bool podeAndar = false;public float torque, freio, friccao,volante;public WheelCollider[] wcs;public Transform[] rodas;float acc = 0f;Rigidbody rb;public float forca;void Start(){}void updateRodas(){Vector3 pos;Quaternion rot;for (int i = 0; i < wcs.Length; i++){if (podeAndar == true){player.transform.parent = transform;camera.transform.position = transform.position + new Vector3(0, 2, -6);camera.transform.rotation = transform.rotation;if (Input.GetKeyDown("w")){wcs[i].motorTorque =+ 300;}if (Input.GetKeyDown("s")){wcs[i].motorTorque =- 200;}wcs[i].brakeTorque = (Input.GetKey(KeyCode.Space) ) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical")*friccao);if (i < 2)wcs[i].steerAngle = Mathf.Lerp(wcs[i].steerAngle, volante * UltimateJoystick.GetHorizontalAxis("manete"),Time.deltaTime *1);wcs[i].GetWorldPose(out pos, out rot);rodas[i].position = pos;rodas[i].rotation = rot;if (Acelerar.pressed){acelerar = 1f * torque;}}}}private void Update(){updateRodas();}public void acelerarando(){acelerar = 1f;}using System.Collections;}
using System.Collections.Generic;
using UnityEngine;
public class carro : MonoBehaviour
{
public GameObject player;
private GameObject camera;
float acelerar = 0f;
public clicou Acelerar;
public static bool podeAndar = false;
public float torque, freio, friccao,volante;
public WheelCollider[] wcs;
public Transform[] rodas;
float acc = 0f;
Rigidbody rb;
public float forca;
void Start()
{
camera = GameObject.FindGameObjectWithTag("camera");
}
void update()
{
}
void updateRodas()
{
Vector3 pos;
Quaternion rot;
for (int i = 0; i < wcs.Length; i++)
{
if (podeAndar == true)
{
player.transform.parent = transform;
camera.transform.position = transform.localPosition + new Vector3(0, 2, -6);
camera.transform.localRotation = transform.localRotation;
if (Input.GetKeyDown("w"))
{
wcs[i].motorTorque =+ 300;
}
if (Input.GetKeyDown("s"))
{
wcs[i].motorTorque =- 200;
}
wcs[i].brakeTorque = (Input.GetKey(KeyCode.Space) ) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical")*friccao);
if (i < 2)
wcs[i].steerAngle = Mathf.Lerp(wcs[i].steerAngle, volante * UltimateJoystick.GetHorizontalAxis("manete"),Time.deltaTime *1);
wcs[i].GetWorldPose(out pos, out rot);
rodas[i].position = pos;
rodas[i].rotation = rot;
if (Acelerar.pressed)
{
acelerar = 1f * torque;
}
}
}
}
private void Update()
{
updateRodas();
}
public void acelerarando()
{
acelerar = 1f;
}
}
e porque tu esta usando a posição e rotação local ?
Pq tipo eu quero usar a msm camera do player no carro tipo gta passei a posicao da camera p o carro mas quero q a camera gira junto c o carro do jeito q esta o carro gira e fica de lado p camera!
capim22- Avançado
- PONTOS : 2045
REPUTAÇÃO : 20
Respeito as regras :
Re: Camera gira errada no eixo z ao entrar no carro!!
capim22 escreveu:capim22 escreveu:dutrabr100 escreveu:esse teu script está com 2 "updates".capim22 escreveu:opa foi mal!!dutrabr100 escreveu:Presumo que essa linha de código que colocou ai seja de um script que está no carro correto ?
- Código:
camera.transform.position = new Vector3(transform.position.x , transform.position.y + 2, transform.position.z - 6);
Como assim gira ? essa linha de codigo só está definindo a posição da camera, não tem nada de rotação nela.
Favor Enviar o script inteiro
opa removi update , e q fui testante local . position rotation ou so rotatio e position e fica sempre na msm !!using System.Collections;using System.Collections.Generic;using UnityEngine;public class carro : MonoBehaviour{public GameObject player;public GameObject camera;float acelerar = 0f;public clicou Acelerar;public static bool podeAndar = false;public float torque, freio, friccao,volante;public WheelCollider[] wcs;public Transform[] rodas;float acc = 0f;Rigidbody rb;public float forca;void Start(){}void updateRodas(){Vector3 pos;Quaternion rot;for (int i = 0; i < wcs.Length; i++){if (podeAndar == true){player.transform.parent = transform;camera.transform.position = transform.position + new Vector3(0, 2, -6);camera.transform.rotation = transform.rotation;if (Input.GetKeyDown("w")){wcs[i].motorTorque =+ 300;}if (Input.GetKeyDown("s")){wcs[i].motorTorque =- 200;}wcs[i].brakeTorque = (Input.GetKey(KeyCode.Space) ) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical")*friccao);if (i < 2)wcs[i].steerAngle = Mathf.Lerp(wcs[i].steerAngle, volante * UltimateJoystick.GetHorizontalAxis("manete"),Time.deltaTime *1);wcs[i].GetWorldPose(out pos, out rot);rodas[i].position = pos;rodas[i].rotation = rot;if (Acelerar.pressed){acelerar = 1f * torque;}}}}private void Update(){updateRodas();}public void acelerarando(){acelerar = 1f;}using System.Collections;}
using System.Collections.Generic;
using UnityEngine;
public class carro : MonoBehaviour
{
public GameObject player;
private GameObject camera;
float acelerar = 0f;
public clicou Acelerar;
public static bool podeAndar = false;
public float torque, freio, friccao,volante;
public WheelCollider[] wcs;
public Transform[] rodas;
float acc = 0f;
Rigidbody rb;
public float forca;
void Start()
{
camera = GameObject.FindGameObjectWithTag("camera");
}
void update()
{
}
void updateRodas()
{
Vector3 pos;
Quaternion rot;
for (int i = 0; i < wcs.Length; i++)
{
if (podeAndar == true)
{
player.transform.parent = transform;
camera.transform.position = transform.localPosition + new Vector3(0, 2, -6);
camera.transform.localRotation = transform.localRotation;
if (Input.GetKeyDown("w"))
{
wcs[i].motorTorque =+ 300;
}
if (Input.GetKeyDown("s"))
{
wcs[i].motorTorque =- 200;
}
wcs[i].brakeTorque = (Input.GetKey(KeyCode.Space) ) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical")*friccao);
if (i < 2)
wcs[i].steerAngle = Mathf.Lerp(wcs[i].steerAngle, volante * UltimateJoystick.GetHorizontalAxis("manete"),Time.deltaTime *1);
wcs[i].GetWorldPose(out pos, out rot);
rodas[i].position = pos;
rodas[i].rotation = rot;
if (Acelerar.pressed)
{
acelerar = 1f * torque;
}
}
}
}
private void Update()
{
updateRodas();
}
public void acelerarando()
{
acelerar = 1f;
}
}
e porque tu esta usando a posição e rotação local ?
Pq tipo eu quero usar a msm camera do player no carro tipo gta passei a posicao da camera p o carro mas quero q a camera gira junto c o carro do jeito q esta o carro gira e fica de lado p camera!
Up!
capim22- Avançado
- PONTOS : 2045
REPUTAÇÃO : 20
Respeito as regras :
Re: Camera gira errada no eixo z ao entrar no carro!!
O problema é que você tá passando uma posição relativo ao mundo. Quando você diz "transform.position.z - 6", você tá colocando a câmera na posição do carro, só que menos 6 metros no Z global.capim22 escreveu:Boa tarde !
Nao consigo resolver isso!!
camera.transform.position = new Vector3(transform.position.x , transform.position.y + 2, transform.position.z - 6);
ja tentei c eulerangles , com localposition etc e nada resolveu!
Assim, sempre que girar o carro, a posição vai ficar errada mesmo... pra conseguir o que você quer fazer, deveria ser assim:
- Código:
camera.transform.position = transform.position + transform.up * 2 - transform.forward * 6;
Passo primeiro a posição do carro, + 2 metros pra cima relativo AO CARRO e menos 6 metros pra trás do carro;
SteveRogers- Instrutor
- PONTOS : 2673
REPUTAÇÃO : 156
Respeito as regras :
Tópicos semelhantes
» Personagem Entrar No Carro (Com Primeira Pessoa Sem Animaçao De Entrar Em C#)
» Camera do FPSController so gira na horizontal
» Entrar no carro (Com Anim)
» Como faz a câmera seguir e gira em torno do jogador
» Entrar no carro com ThirdPerson [C#]
» Camera do FPSController so gira na horizontal
» Entrar no carro (Com Anim)
» Como faz a câmera seguir e gira em torno do jogador
» Entrar no carro com ThirdPerson [C#]
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos