Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
+5
rafaelllsd
dstaroski
Guilherme_cj852
AndyShow
LardosJogos
9 participantes
Página 1 de 1
Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
Gostaria de um script pronto de uma camera que rodasse o personagem :roll: , tipo gta sabe? estou trabalhando em um jogo do estilo. inclusive interessados em programação e quiser ajudar só falar
Re: Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
Usa a Pesquisa do Fórum Amigo, o Marcos fez uma Camera Orbit Dessas!
Re: Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
O marcos ja fez um tutorial parecido: https://youtu.be/6y8yZYuWFAQ
Re: Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
Guilherme_cj852 escreveu:O marcos ja fez um tutorial parecido: https://youtu.be/6y8yZYuWFAQ
o unity ja vem com um pronto. e eu ja estou usando. mas eu preciso de Rodar a camera em volta do personagem. não seguir! Entende? ;/
Re: Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
Boa tarde brow! Mano, como o nosso mano Andy falou cara, procure na busca do fórum, olha o que eu achei lá, certinho o que você precisa: https://www.schultzgames.com/t282-tutorial-camera-que-segue-o-player-estilo-gta .
Abraço!
Abraço!
Re: Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
Para camera rodar em volta do player você pode usar o Look At como mostra o video:
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
Camera orbital!!
camera collider
camera collider
luKkaSs- MembroAvançado
- PONTOS : 3352
REPUTAÇÃO : 19
Idade : 28
Respeito as regras :
Re: Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
Se usar um transform.Rotate eu acho que dava certo, você cria um empty(o ponto que a câmera irá seguir, como demonstrado no script do marcos), linka ele em um script(de preferência em um índice(GameObject[Int]), pois assim você poderá controlar o empty ativo com uma sequência básica de inputs e transform.Rotate, se tiver qualquer dúvida, pode perguntar.
matusalemHD216- Iniciante
- PONTOS : 3040
REPUTAÇÃO : 0
Respeito as regras :
Re: Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
LardosJogos escreveu:Guilherme_cj852 escreveu:O marcos ja fez um tutorial parecido: https://youtu.be/6y8yZYuWFAQ
o unity ja vem com um pronto. e eu ja estou usando. mas eu preciso de Rodar a camera em volta do personagem. não seguir! Entende? ;/
Mas no unity ja vem com essa que vc quer tbm, de rodar em torno do personagem.
MeverPlays- Mestre
- PONTOS : 3867
REPUTAÇÃO : 48
Áreas de atuação : SketchUp, Unity.
Respeito as regras :
Re: Alguem sabe um script de camera ''orbitavel'' em torno do personagem? tipo GTA
- Código:
#pragma strict
public var TargetLookAt : Transform;
public var Distance : float = 5.0;
public var DistanceMin : float = 3.0;
public var DistanceMax : float = 10.0;
private var mouseX : float = 0.0;
private var mouseY : float = 0.0;
private var startingDistance : float = 0.0;
private var desiredDistance : float = 0.0;
public var X_MouseSensitivity : float = 5.0;
public var Y_MouseSensitivity : float = 5.0;
public var MouseWheelSensitivity : float = 5.0;
public var Y_MinLimit : float = -40.0;
public var Y_MaxLimit : float = 80.0;
public var DistanceSmooth : float = 0.05;
private var velocityDistance : float = 0.0;
private var desiredPosition : Vector3 = Vector3.zero;
public var X_Smooth : float = 0.05;
public var Y_Smooth : float = 0.1;
private var velX : float = 0.0;
private var velY : float = 0.0;
private var velZ : float = 0.0;
private var position : Vector3 = Vector3.zero;
function Start()
{
Distance = Mathf.Clamp(Distance, DistanceMin, DistanceMax);
startingDistance = Distance;
Reset();
}
function LateUpdate()
{
if (TargetLookAt == null)
return;
HandlePlayerInput();
CalculateDesiredPosition();
UpdatePosition();
}
function HandlePlayerInput()
{
var deadZone = 0.01; // mousewheel deadZone
//if (Input.GetMouseButton(1))
//{
mouseX += Input.GetAxis("Mouse X") * X_MouseSensitivity;
mouseY -= Input.GetAxis("Mouse Y") * Y_MouseSensitivity;
//}
// this is where the mouseY is limited - Helper script
mouseY = ClampAngle(mouseY, Y_MinLimit, Y_MaxLimit);
// get Mouse Wheel Input
if (Input.GetAxis("Mouse ScrollWheel") < -deadZone || Input.GetAxis("Mouse ScrollWheel") > deadZone)
{
desiredDistance = Mathf.Clamp(Distance - (Input.GetAxis("Mouse ScrollWheel") * MouseWheelSensitivity),
DistanceMin, DistanceMax);
}
}
function CalculateDesiredPosition()
{
// Evaluate distance
Distance = Mathf.SmoothDamp(Distance, desiredDistance, velocityDistance, DistanceSmooth);
// Calculate desired position -> Note : mouse inputs reversed to align to WorldSpace Axis
desiredPosition = CalculatePosition(mouseY, mouseX, Distance);
}
function CalculatePosition(rotationX : float, rotationY : float, distance : float)
{
var direction : Vector3 = Vector3(0, 0, -distance);
var rotation : Quaternion = Quaternion.Euler(rotationX, rotationY, 0);
return TargetLookAt.position + (rotation * direction);
}
function UpdatePosition()
{
var posX = Mathf.SmoothDamp(position.x, desiredPosition.x, velX, X_Smooth);
var posY = Mathf.SmoothDamp(position.y, desiredPosition.y, velY, Y_Smooth);
var posZ = Mathf.SmoothDamp(position.z, desiredPosition.z, velZ, X_Smooth);
position = Vector3(posX, posY, posZ);
transform.position = position;
transform.LookAt(TargetLookAt);
}
function Reset()
{
mouseX = 0;
mouseY = 10;
Distance = startingDistance;
desiredDistance = Distance;
}
function ClampAngle(angle : float, min : float, max : float)
{
while (angle < -360 || angle > 360)
{
if (angle < -360)
angle += 360;
if (angle > 360)
angle -= 360;
}
return Mathf.Clamp(angle, min, max);
}
e esse da camera do ta para a camera ter colisão com os objetos solidos, eudei uma modificada no codigo para ter um sistema de mira é só programar direitinho pelo inspector, quLQUER DIVIDA EU MNDO UM PRINT de como organizar os objetos
- Código:
using UnityEngine;
using System.Collections;
public class CameraGTA : MonoBehaviour {
public GameObject cabeca, mira;
public GameObject posicoes;
public float VelocidadeDeMovimento = 2;
private RaycastHit hit;
private bool mirando = false;
public bool DesativarCursor;
void Start () {
if (DesativarCursor == true) {
Cursor.visible = false;
Screen.lockCursor = true;
}
}
void Update () {
if (Input.GetButtonDown (buttonName: "Fire2")) {
mirando = true;
}
if (Input.GetButtonUp (buttonName: "Fire2")) {
mirando = false;
}
}
void FixedUpdate () {
// transform.LookAt (cabeca.transform);
//CHECAR SE TEM COLISOR
if (mirando == false) {
transform.rotation = posicoes .transform.rotation;
if (!Physics.Linecast (cabeca.transform.position, posicoes .transform.position)) {
transform.position = Vector3.Lerp (transform.position, posicoes .transform.position, VelocidadeDeMovimento * Time.deltaTime);
Debug.DrawLine (cabeca.transform.position, posicoes .transform.position);
} else if (Physics.Linecast (cabeca.transform.position, posicoes.transform.position, out hit)) {
transform.position = Vector3.Lerp (transform.position, hit.point, (VelocidadeDeMovimento * 2) * Time.deltaTime);
Debug.DrawLine (cabeca.transform.position, hit.point);
}
}
if (mirando == true) {
transform.rotation = mira.transform.rotation;
if (!Physics.Linecast (cabeca.transform.position, mira.transform.position)) {
transform.position = Vector3.Lerp (transform.position, mira.transform.position, VelocidadeDeMovimento * Time.deltaTime);
Debug.DrawLine (cabeca.transform.position, mira.transform.position);
} else if (Physics.Linecast (cabeca.transform.position, mira.transform.position, out hit)) {
transform.position = Vector3.Lerp (transform.position, hit.point, (VelocidadeDeMovimento * 2) * Time.deltaTime);
Debug.DrawLine (cabeca.transform.position, hit.point);
}
}
}
}
Yuri Heinz- Avançado
- PONTOS : 3613
REPUTAÇÃO : 38
Idade : 28
Respeito as regras :
Tópicos semelhantes
» [Duvida] Alguem sabe oq eu tenho que acrescentar nesse script?
» alguem sabe como fazer as operaçoes do tipo exponencial?e na raiz?
» alguem sabe como eu posso colocar um joystick para mover a camera
» alguem sabe como fazer uma troca de camera logo apos um certo tempo?
» Alguem sabe um site que forneça script de graça?
» alguem sabe como fazer as operaçoes do tipo exponencial?e na raiz?
» alguem sabe como eu posso colocar um joystick para mover a camera
» alguem sabe como fazer uma troca de camera logo apos um certo tempo?
» Alguem sabe um site que forneça script de graça?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos