Camera
2 participantes
Página 1 de 1
Camera
Precisava de um incremento pra esse script, para ele não passar de um certo ponto de deslocamento para baixo ou para cima tentei de algumas formas mas nem uma funcionou, tentei colocar colisão em objetos mas o meu objeto passa por dentro dos outros mesmo com colisor :lol!: :
- Código:
#pragma strict
static var movimentoX : float ;
static var movimentoY : float ;
//var balaCanhao : GameObject ;
var contagemBala : int ;
var maxRotacaoX : float ;
function Start () {
contagemBala = 10 ;
movimentoX = 20*Time.deltaTime ;
}
function Update () {
/*if (maxRotacaoX<20)
{
maxRotacaoX = 20 ;
}*/
movimentoY = 20*Time.deltaTime ;
if (Input.GetKey(KeyCode.UpArrow))
{
transform.Rotate(-movimentoX,0,0) ;
Debug.Log("UpArrow");
}
if(Input.GetKey(KeyCode.DownArrow))
{
transform.Rotate(movimentoX,0,0);
Debug.Log("DownArrow");
}
if (Input.GetKey(KeyCode.RightArrow))
{
transform.Rotate(0,movimentoY,0) ;
Debug.Log("RightArrow");
}
if(Input.GetKey(KeyCode.LeftArrow))
{
transform.Rotate(0,-movimentoY,0);
Debug.Log("LeftArrow");
}
}
Hu3_bR- Iniciante
- PONTOS : 3467
REPUTAÇÃO : 1
Idade : 28
Respeito as regras :
Re: Camera
você pode fazer um simples IF perguntando a posição, e nomalizando ela caso necessário,
neste exemplo vou normalizar a posição em Y de algum objeto:
no caso eu estabeleço 2 limites de altura, um para altura máxima "MaxY" e um para altura minima "MinY"
se o limite superior por exemplo for quebrado, eu estabeleço um novo ponto para onde a camera deve tetornar:
transform.position.x e transform.position.z farão com que a camera mantenha as posições em X e Z, então estas posições não serão alteradas. más o MaxY fará com que o ponto de retorno em Y seja o valor que você colocou como limite.
agora eu faço o deslocamento da posição atual até a posição destino que você acabou de criar de forma suave:
e está feito um sistema de controle de posição... basta jogar o script na camera e já terá algum controle em Y... agora é só brincar com os outros eixos
neste exemplo vou normalizar a posição em Y de algum objeto:
- Código:
using UnityEngine;
using System.Collections;
public class CameraPos : MonoBehaviour {
public float dampTime = 0.15f;
private Vector3 velocity = Vector3.zero;
public int MaxY = 10,MinY = -10;
void Update () {
if (transform.position.y > MaxY) { //SE PASSOU DO LIMITE SUPERIOR
Vector3 destination = new Vector3(transform.position.x,MaxY,transform.position.z);
transform.position = Vector3.SmoothDamp (transform.position, destination, ref velocity, dampTime);
}
else if (transform.position.y < MinY) { //SE PASSOU DO LIMITE INFERIOR
Vector3 destination = new Vector3(transform.position.x,MinY,transform.position.z);
transform.position = Vector3.SmoothDamp (transform.position, destination, ref velocity, dampTime);
}
}
}
no caso eu estabeleço 2 limites de altura, um para altura máxima "MaxY" e um para altura minima "MinY"
se o limite superior por exemplo for quebrado, eu estabeleço um novo ponto para onde a camera deve tetornar:
- Código:
Vector3 destination = new Vector3(transform.position.x,MaxY,transform.position.z);
transform.position.x e transform.position.z farão com que a camera mantenha as posições em X e Z, então estas posições não serão alteradas. más o MaxY fará com que o ponto de retorno em Y seja o valor que você colocou como limite.
agora eu faço o deslocamento da posição atual até a posição destino que você acabou de criar de forma suave:
- Código:
transform.position = Vector3.SmoothDamp (transform.position, destination, ref velocity, dampTime);
e está feito um sistema de controle de posição... basta jogar o script na camera e já terá algum controle em Y... agora é só brincar com os outros eixos
Tópicos semelhantes
» No script da "Câmera estilo Gta" como faço para o mouse mover a câmera ?
» COMO FAZER CAMERA ORBITAR O PLAYER/CAMERA LIVRE!
» Camera
» Camera
» Camera 2.5d
» COMO FAZER CAMERA ORBITAR O PLAYER/CAMERA LIVRE!
» Camera
» Camera
» Camera 2.5d
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos