Unity - camera externa (touch)
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Unity - camera externa (touch)
glr como eu faço uma camera externa tipo a do euro truck simulator para ela girar em torno do meu veiculo me ajudem pf
FernandoPRB- Membro
- PONTOS : 3057
REPUTAÇÃO : 4
Idade : 22
Áreas de atuação : Modelagem
Respeito as regras :
Re: Unity - camera externa (touch)
Já tentou usar a aba de "busca" do fórum??
https://www.schultzgames.com/t1854-tutorial-camera-orbital-com-zoom-scroll?highlight=orbital
https://www.schultzgames.com/t1854-tutorial-camera-orbital-com-zoom-scroll?highlight=orbital
Re: Unity - camera externa (touch)
Mas esqueci de falar que é pra android
FernandoPRB- Membro
- PONTOS : 3057
REPUTAÇÃO : 4
Idade : 22
Áreas de atuação : Modelagem
Respeito as regras :
Re: Unity - camera externa (touch)
Bom, o princípio é totalmente o mesmo, só que em vez de você usar o input mouse X e Y, você vai usar o input touch X e Y
FernandoPRB- Membro
- PONTOS : 3057
REPUTAÇÃO : 4
Idade : 22
Áreas de atuação : Modelagem
Respeito as regras :
Re: Unity - camera externa (touch)
man eu tentei mas não deu certo
- Código:
using UnityEngine;
using System.Collections;
using System;
[Serializable]
public class ConfigsDaCameraOrbital {
[Range(0.01f,2.0f)] public float sensibilidade = 0.8f, velocidadeScrool = 1.0f, velocidadeY = 0.5f;
[Range(3.0f,20.0f)] public float distanciaMinima = 5.0f;
[Range(20.0f,200.0f)] public float distanciaMaxima = 50.0f;
}
public class CameraOrbital : MonoBehaviour {
float xOrbit, yOrbit, distanciaCameraOrbit;
public GameObject ObjetoCamera;
public ConfigsDaCameraOrbital Configuracoes;
void Start () {
distanciaCameraOrbit = Configuracoes.distanciaMinima;
xOrbit = ObjetoCamera.transform.eulerAngles.x;
yOrbit = ObjetoCamera.transform.eulerAngles.y;
transform.gameObject.layer = 2;
}
void LateUpdate () {
float velocidadeTimeScale = 1.0f / Time.timeScale;
float sensibilidade = Configuracoes.sensibilidade;
float distMin = Configuracoes.distanciaMinima;
float distMax = Configuracoes.distanciaMaxima;
float velocidadeScrool = Configuracoes.velocidadeScrool * 50.0f;
float sensYMouse = Configuracoes.velocidadeY * 10.0f;
//
RaycastHit hit;
if (!Physics.Linecast (transform.position, ObjetoCamera.transform.position)) {
} else if (Physics.Linecast (transform.position, ObjetoCamera.transform.position, out hit)) {
distanciaCameraOrbit = Vector3.Distance (transform.position, hit.point);
distMin = Mathf.Clamp ((Vector3.Distance (transform.position, hit.point)), distMin * 0.5f, distMax);
}
//
xOrbit += Input.GetAxis ("Touch X") * (sensibilidade * distanciaCameraOrbit)/(distanciaCameraOrbit*0.5f);
yOrbit -= Input.GetAxis ("Touch Y") * sensibilidade * sensYMouse;
yOrbit = ClampAngle (yOrbit, 0.0f, 85.0f);
Quaternion rotation = Quaternion.Euler (yOrbit, xOrbit , 0);
distanciaCameraOrbit = Mathf.Clamp (distanciaCameraOrbit - Input.GetAxis ("Mouse ScrollWheel") * velocidadeScrool, distMin, distMax);
Vector3 negDistance = new Vector3 (0.0f, 0.0f, -distanciaCameraOrbit);
Vector3 position = rotation * negDistance + transform.position;
Vector3 posicAtual = ObjetoCamera.transform.position;
Quaternion rotacAtual = ObjetoCamera.transform.rotation;
ObjetoCamera.transform.rotation = Quaternion.Lerp(rotacAtual,rotation,Time.deltaTime*5.0f*velocidadeTimeScale);
ObjetoCamera.transform.position = Vector3.Lerp(posicAtual,position,Time.deltaTime*5.0f*velocidadeTimeScale);
}
public static float ClampAngle (float angulo, float min, float max){
if (angulo < -360F) { angulo += 360F; }
if (angulo > 360F) { angulo -= 360F; }
return Mathf.Clamp (angulo, min, max);
}
}
FernandoPRB- Membro
- PONTOS : 3057
REPUTAÇÃO : 4
Idade : 22
Áreas de atuação : Modelagem
Respeito as regras :
Re: Unity - camera externa (touch)
vlw obg
Última edição por FernandoPRB em Sex Set 23, 2016 3:00 pm, editado 1 vez(es) (Motivo da edição : escrevi errado)
FernandoPRB- Membro
- PONTOS : 3057
REPUTAÇÃO : 4
Idade : 22
Áreas de atuação : Modelagem
Respeito as regras :
Tópicos semelhantes
» [Resolvido] - Rotacionar a camera com touch screen
» [RESOLVIDO] Camera Touch Mobile sem atrapalhar os botoes UI
» Mexer a camera com touch
» [TUTORIAL] Mover câmera em 2D com TOUCH
» Simple Touch Camera Script
» [RESOLVIDO] Camera Touch Mobile sem atrapalhar os botoes UI
» Mexer a camera com touch
» [TUTORIAL] Mover câmera em 2D com TOUCH
» Simple Touch Camera Script
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos