SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
PARTICULAS PLAY/STOP
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Criação de uma mensagem notificação em objeto 3d no unity
ABRIR E FECHAR PORTA!
Fazer a camera seguir o personagem porem quando ela chegar na parede ela pare de se movimenta
Tocar som ao andar.
Verificar se é a primeira vez que joga
COMO POSSO FAZER O INIMIGO MORRER COM TIRO?
Dúvida sobre multiplayer!
Unity Microfone
OBJETO GIRAR QUANDO ARRASTAR O MOUSE
Instanciar objetos aonde mira
disolver/ desintegrar um objeto
Fazer objeto preview andar de gridsize em gridsize
BARRINHA PARA REBAIXAR O CARRO!
Chamar Metodo
Gerador de códigos
Duvida sobre patrulha aleatória
[TUTORIAL] Ligar e Desligar Lanterna
[TUTORIAL] ARMA NO UNITY 3D
TOP SECRET - Programador iniciante com experiencia em 2D
SOM DO TIRO
Como usar uma animação de uma arma animada na Unity...
[Tutorial] Porta ativada por alavanca
[DUVIDA] "encostar" em um GameObject e Tomar Dano
MIRA PARA JOGO DE FPS ESTILO CSGO
Game Resistência
Parede ocas
Modificar uma barrinha!
[Quase Pronto] Survival Block. Testem e mandem os bugs pra mim.
[ME AJUDA] O player não se movimenta...
SIRENE ESTILO POLÍCIA MILITAR
Movimentaçao player
Cena Loading para carregar proximo Level
SITE MODELOS 3D PARA USO COMERCIAL
Home Simulator 2017 (Estilo The Sims em 1ª Pessoa) (Download Grátis)
MUDAR FLOAT NO FIM DE UMA ANIMAÇÃO
RagDoll + Download Free -- feito por um gringo
[TUTORIAL] Criar Analógico Virtual UI Para Mobile.
[AJUDA] Cronometro
[PEDIDO] Designers ou Entendedores (Capa,Menu e ToolTip) 3 Imagens
[RESOLVIDO] Publicando Apk Parte 2
[TUTORIAL] IA Simples
[TUTORIAL] Ajustar o Brilho do LensFlare de Acordo com a Distância
CONTROLE ARCADE PARA JOGO DE CORRIDA
[TUTORIAL] IA Simples Parte 2 (Atirar)
[DEMO] Survival Block
Aprimoramento IA Inimiga
Batalha de Canhão
[RESOLVIDO] Camera Collider
Todos os inimigos morrem
[____TÓPICO LIVRE____] FALE O QUE QUISER
Canal de tutoriais android
Area Para modeladores
Inimigo ao seguir flutua [ajuda]
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Demo de jogo para testarem...
[TUTORIAL] Fazer um VOLANTE com UI, para Android
[DUVIDA] Como destruir um GameObject (cubo etc...) sem destruir seus "afilhados"
[Duvida] Como fazer uma luz se desativar ao ficar longe dela
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
GRAFICO BUGADO [MOBILE]
Duvida sobre array de gameobject
ERRO NO APK
ANIMAÇÃO
sincronizar um Variável String multiplayer
DUVIDAS VARIADAS
Publicando Apk na PlayStore
Curar vida ao coletar itens
(Dúvida) Rotacionar roda
Sistema de tráfego
ObjetoCair
Existe alguma forma de fazer multiplayer por lan ou por bluethooth?
Duvida Script
converter para C#
Animação de movimento
Modelos 3D para uso gratuito ou comercial
Ajuda com jogos em flash
[RESOLVIDO] Dano No Player Ajuda erro
Como fazer parar de seguir em uma distancia determinada
Meus modelos 3D em fase de experimento
Lampião Vs Zombies - FORMAÇÃO DE EQUIPE - Jogo 2D
Criando Inteligencia Artificial Para BOSS.
Problema Com Menu Inicial !!
Tutorial rpg?
Criar um objeto preso em apenas um lado
Inventario equipando roupas - Leia mas para saber
Animação não esta ativando na hora do pulo
COMO POSSO FAZER UM MULTIPLAYER?
Menu principal não funciona no mobile
tenho que alterar os scripts para transfomar um game para Android????
Movimentação, sem Rigidbody
dash estilo megaman x, suavizar
[TUTORIAL] Mensagem aparecer na tela conforme a distância do jogador (Unity 5)
Como criar um sistema d interação cm objetos atraves do raycasthit?
RESOLVIDO Script de ligar/desligar lanterna Unity 5 Ultima Versao
Script para recarregar cena
como chamar void do objeto em que o RayCast bateu?
modificar a agua (Tsunami e outros)
Hoje à(s) 1:43 am
Hoje à(s) 1:37 am
Hoje à(s) 12:53 am
Hoje à(s) 12:53 am
Hoje à(s) 12:52 am
Hoje à(s) 12:49 am
Hoje à(s) 12:46 am
Hoje à(s) 12:45 am
Hoje à(s) 12:37 am
Hoje à(s) 12:34 am
Hoje à(s) 12:30 am
Hoje à(s) 12:22 am
Hoje à(s) 12:20 am
Hoje à(s) 12:16 am
Hoje à(s) 12:15 am
Hoje à(s) 12:05 am
Ontem à(s) 11:59 pm
Ontem à(s) 11:58 pm
Ontem à(s) 8:59 pm
Ontem à(s) 6:50 pm
Ontem à(s) 5:16 pm
Ontem à(s) 3:37 pm
Ontem à(s) 1:51 am
Ontem à(s) 1:31 am
Ontem à(s) 12:31 am
Sex Mar 24, 2017 8:54 pm
Sex Mar 24, 2017 8:05 pm
Sex Mar 24, 2017 7:43 pm
Sex Mar 24, 2017 7:18 pm
Sex Mar 24, 2017 6:52 pm
Sex Mar 24, 2017 6:48 pm
Sex Mar 24, 2017 3:46 pm
Sex Mar 24, 2017 1:50 pm
Sex Mar 24, 2017 12:29 pm
Sex Mar 24, 2017 10:05 am
Qui Mar 23, 2017 10:13 pm
Qui Mar 23, 2017 6:55 pm
Qui Mar 23, 2017 4:50 pm
Qui Mar 23, 2017 4:38 pm
Qui Mar 23, 2017 4:33 pm
Qui Mar 23, 2017 12:46 pm
Qui Mar 23, 2017 8:56 am
Qua Mar 22, 2017 7:47 pm
Qua Mar 22, 2017 7:35 pm
Qua Mar 22, 2017 7:30 pm
Qua Mar 22, 2017 3:28 pm
Ter Mar 21, 2017 11:50 pm
Ter Mar 21, 2017 10:14 pm
Ter Mar 21, 2017 7:22 pm
Ter Mar 21, 2017 6:08 pm
Ter Mar 21, 2017 5:00 pm
Ter Mar 21, 2017 4:43 pm
Ter Mar 21, 2017 3:22 pm
Ter Mar 21, 2017 3:08 pm
Ter Mar 21, 2017 2:13 pm
Ter Mar 21, 2017 10:53 am
Ter Mar 21, 2017 10:13 am
Ter Mar 21, 2017 12:26 am
Ter Mar 21, 2017 12:10 am
Ter Mar 21, 2017 12:09 am
Ter Mar 21, 2017 12:05 am
Ter Mar 21, 2017 12:02 am
Seg Mar 20, 2017 11:58 pm
Seg Mar 20, 2017 11:55 pm
Seg Mar 20, 2017 9:10 pm
Seg Mar 20, 2017 7:57 pm
Seg Mar 20, 2017 6:41 pm
Seg Mar 20, 2017 4:31 pm
Seg Mar 20, 2017 8:10 am
Dom Mar 19, 2017 11:32 pm
Dom Mar 19, 2017 8:50 pm
Dom Mar 19, 2017 8:20 pm
Dom Mar 19, 2017 12:06 pm
Sab Mar 18, 2017 10:31 pm
Sab Mar 18, 2017 10:01 pm
Sab Mar 18, 2017 8:26 pm
Sab Mar 18, 2017 8:06 pm
Sab Mar 18, 2017 6:53 pm
Sab Mar 18, 2017 5:31 pm
Sab Mar 18, 2017 9:41 am
Sab Mar 18, 2017 7:23 am
Sex Mar 17, 2017 10:02 pm
Sex Mar 17, 2017 3:21 pm
Sex Mar 17, 2017 12:42 pm
Sex Mar 17, 2017 10:47 am
Qui Mar 16, 2017 11:16 pm
Qui Mar 16, 2017 9:33 pm
Qui Mar 16, 2017 9:32 pm
Qui Mar 16, 2017 9:28 pm
Qui Mar 16, 2017 9:18 pm
Qui Mar 16, 2017 9:16 pm
Qui Mar 16, 2017 9:09 pm
Qui Mar 16, 2017 9:08 pm
Qui Mar 16, 2017 9:07 pm
Qui Mar 16, 2017 9:06 pm
Qui Mar 16, 2017 8:59 pm
Qui Mar 16, 2017 8:56 pm
Qui Mar 16, 2017 8:52 pm
Qui Mar 16, 2017 8:48 pm
Atiradogamer
Atiradogamer
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
wender
MarcosSchultz
MarcosSchultz
MarcosSchultz
MateusWTP
Gabriel César O
mafipt
Gabriel César O
Sheyk
PauloFR
wender
Gabriel César O
Weverton Borges da Silva
maikonluis
HeF Software
Junim
Junim
wender
bravoent
Marc7
Callyde Jr
hen000
rafaelllsd
MateusWTP
Gabriel César O
Gabriel César O
Madness
Paizudo
Gabriel César O
AnderGames
Gabriel César O
Matrirxp
rafaelllsd
Matrirxp
AndyShow
ffabim
rafaelllsd
PauloFR
MikaelSteam
PauloFR
bravoent
DuViDoSo34
Édipo
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
lucasfera15
Khilua
PauloFR
Paizudo
willtuck
rafaelllsd
rafaelllsd
IanLuan
John Rambo
kalielson
willtuck
MikaelSteam
joabr
Luiz Mauro TCC
bravoent
AndyShow
joabr
BatataName
Callyde Jr
John Rambo
Callyde Jr
IanLuan
MarcosSchultz
Junim
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Phillip
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz

[TUTORIAL] Sistema COMPLETO de câmeras

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

TUTORIAL [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por MarcosSchultz em Qua Jan 11, 2017 3:59 pm

Olá galera, desenvolvi este sistema completo de câmeras para o meu asset de veículos, e estou disponibilizando para vocês Very Happy

Vídeo:





//A camera "OlharParaOPlayer" fica olhando para o objeto que contém o script. Não necessita estar filiada ao jogador
//A camera "primeiraPessoa" funciona como um MouseLook, e necessita estar filiada ao jogador
//A camera "SeguirPlayer" segue o objeto que contém o script.
//A camera "orbital" orbita o objeto que contém o script
//A camera "parada" não possui função alguma além de ser ativada ou desativada. Pode estar em qualquer lugar
//A camera "paradaRetilinea" fica sempre na mesma posição e rotação, mas mantém o horizonte sempre reto. Ideal para visão de veículos.
//A camera "OrbitalQueSeque" é uma camera orbital que assume a função de seguir o player caso não exista nenhum input do Mouse

//A camera "CameraEstiloETS" é uma câmera em primeira pessoa que funciona como um MouseLook, mas se desloca para fora do veículo quando olhamos para a esquerda.


Script utilizado:
Código:
using UnityEngine;
using System;

//
//A camera "OlharParaOPlayer" fica olhando para o objeto que contém o script. Não necessita estar filiada ao jogador
//A camera "primeiraPessoa" funciona como um MouseLook, e necessita estar filiada ao jogador
//A camera "SeguirPlayer" segue o objeto que contém o script.
//A camera "orbital" orbita o objeto que contém o script
//A camera "parada" não possui função alguma além de ser ativada ou desativada. Pode estar em qualquer lugar
//A camera "paradaRetilinea" fica sempre na mesma posição e rotação, mas mantém o horizonte sempre reto. Ideal para visão de veículos.
//A camera "OrbitalQueSeque" é uma camera orbital que assume a função de seguir o player caso não exista nenhum input do Mouse
//A camera "CameraEstiloETS" é uma câmera em primeira pessoa que funciona como um MouseLook, mas se desloca para fora do veículo quando olhamos para a esquerda.
//

[Serializable]
public class TipoDeCam {
 public Camera _camera;
 public enum TipoRotac{OlharParaOPlayer, primeiraPessoa, SeguirPlayer, orbital, parada, paradaRetilinea, OrbitalQueSegue, CameraEstiloETS}
 public TipoRotac TipoDeRotacao = TipoRotac.OlharParaOPlayer;
 [Range(0.0f,1.0f)] public float volume = 1;
}
[Serializable]
public class ConfigsCamera {
 public KeyCode TeclaTrocarDeCamera = KeyCode.C;
 [Range(1,20)] public float sensibilidade = 10.0f;
 [Range(0,360)] public float anguloHorizntal = 65.0f;
 [Range(0,85)] public float anguloVertical = 20.0f;
 [Range(1,20)] public float velocidadeCameraSeguir = 5.0f;
 [Range(1,30)] public float velocidadeCameraGirar = 15.0f;
 [Range(0.5f,3.0f)] public float deslocamentoCameraETS = 2.0f;
 public ConfigsCameraOrbital cameraOrbital;
}
[Serializable]
public class ConfigsCameraOrbital {
 [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,1000.0f)] public float distanciaMaxima = 50.0f;
}

public class Cameras : MonoBehaviour {

 public TipoDeCam[] cameras;
 public ConfigsCamera ConfiguracoesCameras;

 private int indiceCameras = 0;
 private float rotacaoX = 0.0f,rotacaoY = 0.0f, tempoOrbit = 0.0f, rotacaoXETS = 0.0f, rotacaoYETS = 0.0f;
 private GameObject[] objetosPosicCamerasParadasRetilineas;
 private Quaternion[] rotacaoOriginalCameras;
 private GameObject[] posicaoOriginalCameras;
 private float[] xOrbit,yOrbit,distanciaCameraOrbit;
 private bool orbitalAtiv;
 Vector3[] posicOriginalCameraETS;
 void Awake(){
 objetosPosicCamerasParadasRetilineas = new GameObject[cameras.Length];
 rotacaoOriginalCameras = new Quaternion[cameras.Length];
 posicaoOriginalCameras = new GameObject[cameras.Length];
 posicOriginalCameraETS = new Vector3[cameras.Length];
 xOrbit = new float[cameras.Length];
 yOrbit = new float[cameras.Length];
 distanciaCameraOrbit = new float[cameras.Length];
 for (int x = 0; x < cameras.Length; x++) {
 distanciaCameraOrbit[x] = ConfiguracoesCameras.cameraOrbital.distanciaMinima;
 if (cameras [x]._camera == null) {
 Debug.LogError ("Não existe nenhuma camera linkada no indice  " + x);
 }
 if (cameras [x].TipoDeRotacao == TipoDeCam.TipoRotac.paradaRetilinea) {
 objetosPosicCamerasParadasRetilineas [x] = new GameObject ("posicaoDaCameraParadaRetilinea"+x);
 objetosPosicCamerasParadasRetilineas [x].transform.parent = cameras [x]._camera.transform;
 objetosPosicCamerasParadasRetilineas [x].transform.localPosition = new Vector3 (0, 0, 1.0f);
 objetosPosicCamerasParadasRetilineas [x].transform.parent = transform;
 }
 if (cameras [x].TipoDeRotacao == TipoDeCam.TipoRotac.primeiraPessoa) {
 rotacaoOriginalCameras [x] = cameras [x]._camera.transform.localRotation;
 }
 if (cameras [x].TipoDeRotacao == TipoDeCam.TipoRotac.SeguirPlayer) {
 posicaoOriginalCameras [x] = new GameObject ("posicaoDaCameraSeguir" + x);
 posicaoOriginalCameras [x].transform.parent = transform;
 posicaoOriginalCameras [x].transform.localPosition = cameras [x]._camera.transform.localPosition;
 transform.gameObject.layer = 2;
 foreach (Transform trans in this.gameObject.GetComponentsInChildren<Transform>(true)) {
 trans.gameObject.layer = 2;
 }
 }
 if (cameras [x].TipoDeRotacao == TipoDeCam.TipoRotac.orbital) {
 xOrbit [x] = cameras [x]._camera.transform.eulerAngles.x;
 yOrbit [x] = cameras [x]._camera.transform.eulerAngles.y;
 transform.gameObject.layer = 2;
 foreach (Transform trans in this.gameObject.GetComponentsInChildren<Transform>(true)) {
 trans.gameObject.layer = 2;
 }
 }
 if (cameras [x].TipoDeRotacao == TipoDeCam.TipoRotac.OrbitalQueSegue) {
 xOrbit [x] = cameras [x]._camera.transform.eulerAngles.x;
 yOrbit [x] = cameras [x]._camera.transform.eulerAngles.y;
 //
 posicaoOriginalCameras [x] = new GameObject ("posicaoDaCameraSeguir" + x);
 posicaoOriginalCameras [x].transform.parent = transform;
 posicaoOriginalCameras [x].transform.localPosition = cameras [x]._camera.transform.localPosition;
 //
 transform.gameObject.layer = 2;
 foreach (Transform trans in this.gameObject.GetComponentsInChildren<Transform>(true)) {
 trans.gameObject.layer = 2;
 }
 }
 if (cameras [x].TipoDeRotacao == TipoDeCam.TipoRotac.CameraEstiloETS) {
 rotacaoOriginalCameras [x] = cameras [x]._camera.transform.localRotation;
 posicOriginalCameraETS [x] = cameras [x]._camera.transform.localPosition;
 }
 AudioListener captadorDeSom = cameras [x]._camera.GetComponent<AudioListener> ();
 if (captadorDeSom == null) {
 cameras [x]._camera.transform.gameObject.AddComponent (typeof(AudioListener));
 }
 }
 }

 void Start(){
 AtivarCameras (indiceCameras);
 }

 void AtivarCameras (int indicePedido){
 if (cameras.Length > 0) {
 for (int x = 0; x < cameras.Length; x++) {
 if (x == indicePedido) {
 cameras [x]._camera.gameObject.SetActive (true);
 } else {
 cameras [x]._camera.gameObject.SetActive (false);
 }
 }
 }
 }

 void GerenciarCameras(){
 for (int x = 0; x < cameras.Length; x++) {
 if (cameras [x].TipoDeRotacao == TipoDeCam.TipoRotac.SeguirPlayer) {
 if (cameras [x]._camera.isActiveAndEnabled) {
 cameras [x]._camera.transform.parent = null;
 } else {
 cameras [x]._camera.transform.parent = transform;
 }
 }
 }
 //
 AudioListener.volume = cameras [indiceCameras].volume;
 //
 float velocidadeTimeScale = 1.0f / Time.timeScale;
 switch (cameras[indiceCameras].TipoDeRotacao ) {
 case TipoDeCam.TipoRotac.parada:
 //camera parada, nao faz nada
 break;
 case TipoDeCam.TipoRotac.paradaRetilinea:
 var newRotationDest = Quaternion.LookRotation(objetosPosicCamerasParadasRetilineas[indiceCameras].transform.position - cameras [indiceCameras]._camera.transform.position, Vector3.up);
 cameras [indiceCameras]._camera.transform.rotation = Quaternion.Slerp(cameras [indiceCameras]._camera.transform.rotation, newRotationDest, Time.deltaTime * 15.0f);
 break;
 case TipoDeCam.TipoRotac.OlharParaOPlayer:
 cameras [indiceCameras]._camera.transform.LookAt (transform.position);
 break;
 case TipoDeCam.TipoRotac.primeiraPessoa:
 rotacaoX += Input.GetAxis ("Mouse X") * ConfiguracoesCameras.sensibilidade;
 rotacaoY += Input.GetAxis ("Mouse Y") * ConfiguracoesCameras.sensibilidade;
 rotacaoX = ClampAngle (rotacaoX, -ConfiguracoesCameras.anguloHorizntal, ConfiguracoesCameras.anguloHorizntal);
 rotacaoY = ClampAngle (rotacaoY, -ConfiguracoesCameras.anguloVertical, ConfiguracoesCameras.anguloVertical);
 Quaternion xQuaternion = Quaternion.AngleAxis (rotacaoX, Vector3.up);
 Quaternion yQuaternion = Quaternion.AngleAxis (rotacaoY, -Vector3.right);
 Quaternion rotacFinal = rotacaoOriginalCameras [indiceCameras] * xQuaternion * yQuaternion;
 cameras [indiceCameras]._camera.transform.localRotation = Quaternion.Lerp (cameras [indiceCameras]._camera.transform.localRotation, rotacFinal, Time.deltaTime*10.0f*velocidadeTimeScale);
 break;
 case TipoDeCam.TipoRotac.SeguirPlayer:
 //camera seguir
 RaycastHit hit;
 float velocidade = ConfiguracoesCameras.velocidadeCameraSeguir;
 if (!Physics.Linecast (transform.position, posicaoOriginalCameras [indiceCameras].transform.position)) {
 cameras [indiceCameras]._camera.transform.position = Vector3.Lerp (cameras [indiceCameras]._camera.transform.position, posicaoOriginalCameras [indiceCameras].transform.position, Time.deltaTime * velocidade);
 }
 else if(Physics.Linecast(transform.position, posicaoOriginalCameras [indiceCameras].transform.position,out hit)){
 cameras [indiceCameras]._camera.transform.position = Vector3.Lerp(cameras [indiceCameras]._camera.transform.position, hit.point,Time.deltaTime * velocidade);
 }
 //camera rodar
 float velocidadeGir = ConfiguracoesCameras.velocidadeCameraGirar;
 var newRotation = Quaternion.LookRotation(transform.position - cameras [indiceCameras]._camera.transform.position, Vector3.up);
 cameras [indiceCameras]._camera.transform.rotation = Quaternion.Slerp(cameras [indiceCameras]._camera.transform.rotation, newRotation, Time.deltaTime * velocidadeGir);
 break;
 case TipoDeCam.TipoRotac.orbital:
 float sensibilidade = ConfiguracoesCameras.cameraOrbital.sensibilidade;
 float distMin = ConfiguracoesCameras.cameraOrbital.distanciaMinima;
 float distMax = ConfiguracoesCameras.cameraOrbital.distanciaMaxima;
 float velocidadeScrool = ConfiguracoesCameras.cameraOrbital.velocidadeScrool * 50.0f;
 float sensYMouse = ConfiguracoesCameras.cameraOrbital.velocidadeY * 10.0f;
 //
 RaycastHit hit2;
 if (!Physics.Linecast (transform.position, cameras [indiceCameras]._camera.transform.position)) {

 } else if (Physics.Linecast (transform.position, cameras [indiceCameras]._camera.transform.position, out hit2)) {
 distanciaCameraOrbit [indiceCameras] = Vector3.Distance (transform.position, hit2.point);
 distMin = Mathf.Clamp ((Vector3.Distance (transform.position, hit2.point)), distMin * 0.5f, distMax);
 }
 //
 xOrbit [indiceCameras] += Input.GetAxis ("Mouse X") * (sensibilidade * distanciaCameraOrbit [indiceCameras])/(distanciaCameraOrbit [indiceCameras]*0.5f);
 yOrbit [indiceCameras] -= Input.GetAxis ("Mouse Y") * sensibilidade * sensYMouse;
 yOrbit [indiceCameras] = ClampAngle (yOrbit [indiceCameras], 0.0f, 85.0f);
 Quaternion rotation = Quaternion.Euler (yOrbit [indiceCameras], xOrbit [indiceCameras], 0);
 distanciaCameraOrbit [indiceCameras] = Mathf.Clamp (distanciaCameraOrbit [indiceCameras] - Input.GetAxis ("Mouse ScrollWheel") * velocidadeScrool, distMin, distMax);
 Vector3 negDistance = new Vector3 (0.0f, 0.0f, -distanciaCameraOrbit [indiceCameras]);
 Vector3 position = rotation * negDistance + transform.position;
 Vector3 posicAtual = cameras [indiceCameras]._camera.transform.position;
 Quaternion rotacAtual = cameras [indiceCameras]._camera.transform.rotation;
 cameras [indiceCameras]._camera.transform.rotation = Quaternion.Lerp(rotacAtual,rotation,Time.deltaTime*5.0f*velocidadeTimeScale);
 cameras [indiceCameras]._camera.transform.position = Vector3.Lerp(posicAtual,position,Time.deltaTime*5.0f*velocidadeTimeScale);
 break;
 case TipoDeCam.TipoRotac.OrbitalQueSegue:
 float movX = Input.GetAxis ("Mouse X");
 float movY = Input.GetAxis ("Mouse Y");
 float movZ = Input.GetAxis ("Mouse ScrollWheel");

 if (movX > 0.0f || movY > 0.0f || movZ > 0.0f) {
 orbitalAtiv = true;
 tempoOrbit = 0.0f;
 } else {
 tempoOrbit += Time.deltaTime;
 }
 if (tempoOrbit > 3.0f) {
 tempoOrbit = 3.1f;
 orbitalAtiv = false;
 }
 if(orbitalAtiv == true){
 float _sensibilidade = ConfiguracoesCameras.cameraOrbital.sensibilidade;
 float _distMin = ConfiguracoesCameras.cameraOrbital.distanciaMinima;
 float _distMax = ConfiguracoesCameras.cameraOrbital.distanciaMaxima;
 float _velocidadeScrool = ConfiguracoesCameras.cameraOrbital.velocidadeScrool * 50.0f;
 float _sensYMouse = ConfiguracoesCameras.cameraOrbital.velocidadeY * 10.0f;
 //
 RaycastHit _hit;
 if (!Physics.Linecast (transform.position, cameras [indiceCameras]._camera.transform.position)) {

 } else if (Physics.Linecast (transform.position, cameras [indiceCameras]._camera.transform.position, out _hit)) {
 distanciaCameraOrbit [indiceCameras] = Vector3.Distance (transform.position, _hit.point);
 _distMin = Mathf.Clamp ((Vector3.Distance (transform.position, _hit.point)), _distMin * 0.5f, _distMax);
 }
 //
 xOrbit [indiceCameras] += movX * (_sensibilidade * distanciaCameraOrbit [indiceCameras]) / (distanciaCameraOrbit [indiceCameras] * 0.5f);
 yOrbit [indiceCameras] -= movY * _sensibilidade * _sensYMouse;
 yOrbit [indiceCameras] = ClampAngle (yOrbit [indiceCameras], 0.0f, 85.0f);
 Quaternion _rotation = Quaternion.Euler (yOrbit [indiceCameras], xOrbit [indiceCameras], 0);
 distanciaCameraOrbit [indiceCameras] = Mathf.Clamp (distanciaCameraOrbit [indiceCameras] - movZ * _velocidadeScrool, _distMin, _distMax);
 Vector3 _negDistance = new Vector3 (0.0f, 0.0f, -distanciaCameraOrbit [indiceCameras]);
 Vector3 _position = _rotation * _negDistance + transform.position;
 Vector3 _posicAtual = cameras [indiceCameras]._camera.transform.position;
 Quaternion _rotacAtual = cameras [indiceCameras]._camera.transform.rotation;
 cameras [indiceCameras]._camera.transform.rotation = Quaternion.Lerp (_rotacAtual, _rotation, Time.deltaTime * 5.0f * velocidadeTimeScale);
 cameras [indiceCameras]._camera.transform.position = Vector3.Lerp (_posicAtual, _position, Time.deltaTime * 5.0f * velocidadeTimeScale);
 } else {
 RaycastHit __hit;
 float __velocidade = ConfiguracoesCameras.velocidadeCameraSeguir;
 if (!Physics.Linecast (transform.position, posicaoOriginalCameras [indiceCameras].transform.position)) {
 cameras [indiceCameras]._camera.transform.position = Vector3.Lerp (cameras [indiceCameras]._camera.transform.position, posicaoOriginalCameras [indiceCameras].transform.position, Time.deltaTime * __velocidade);
 }
 else if(Physics.Linecast(transform.position, posicaoOriginalCameras [indiceCameras].transform.position,out __hit)){
 cameras [indiceCameras]._camera.transform.position = Vector3.Lerp(cameras [indiceCameras]._camera.transform.position, __hit.point,Time.deltaTime * __velocidade);
 }
 //camera rodar
 float __velocidadeGir = ConfiguracoesCameras.velocidadeCameraGirar;
 var __newRotation = Quaternion.LookRotation(transform.position - cameras [indiceCameras]._camera.transform.position, Vector3.up);
 cameras [indiceCameras]._camera.transform.rotation = Quaternion.Slerp(cameras [indiceCameras]._camera.transform.rotation, __newRotation, Time.deltaTime * __velocidadeGir);
 }
 break;
 case TipoDeCam.TipoRotac.CameraEstiloETS:
 rotacaoXETS += Input.GetAxis ("Mouse X") * ConfiguracoesCameras.sensibilidade;
 rotacaoYETS += Input.GetAxis ("Mouse Y") * ConfiguracoesCameras.sensibilidade;
 Vector3 novaPosicao = new Vector3 (posicOriginalCameraETS [indiceCameras].x + Mathf.Clamp (rotacaoXETS / 50 + (ConfiguracoesCameras.deslocamentoCameraETS/3.0f), -ConfiguracoesCameras.deslocamentoCameraETS, 0), posicOriginalCameraETS [indiceCameras].y, posicOriginalCameraETS [indiceCameras].z);
 cameras [indiceCameras]._camera.transform.localPosition = Vector3.Lerp (cameras [indiceCameras]._camera.transform.localPosition, novaPosicao, Time.deltaTime * 10.0f);
 rotacaoXETS = ClampAngle (rotacaoXETS, -180, 80);
 rotacaoYETS = ClampAngle (rotacaoYETS, -60, 60);
 Quaternion _xQuaternionETS = Quaternion.AngleAxis (rotacaoXETS, Vector3.up);
 Quaternion _yQuaternionETS = Quaternion.AngleAxis (rotacaoYETS, -Vector3.right);
 Quaternion _rotacFinalETS = rotacaoOriginalCameras [indiceCameras] * _xQuaternionETS * _yQuaternionETS;
 cameras [indiceCameras]._camera.transform.localRotation = Quaternion.Lerp (cameras [indiceCameras]._camera.transform.localRotation, _rotacFinalETS, Time.deltaTime * 10.0f * velocidadeTimeScale);
 break;
 }
 }

 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);
 }

 void Update(){
 if (Input.GetKeyDown (ConfiguracoesCameras.TeclaTrocarDeCamera) && indiceCameras < (cameras.Length - 1)) {
 indiceCameras++;
 AtivarCameras (indiceCameras);
 } else if (Input.GetKeyDown (ConfiguracoesCameras.TeclaTrocarDeCamera) && indiceCameras >= (cameras.Length - 1)) {
 indiceCameras = 0;
 AtivarCameras (indiceCameras);
 }
 }

 void LateUpdate(){
 if (cameras.Length > 0) {
 GerenciarCameras ();
 }
 }
}


Última edição por MarcosSchultz em Sex Jan 13, 2017 2:52 pm, editado 3 vez(es)
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8118
REPUTAÇÃO : 1140
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por dstaroski em Qua Jan 11, 2017 4:29 pm

Parabéns cara! Excelente tutorial! Irá ajudar muita gente! Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 918
REPUTAÇÃO : 228
Idade : 27
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Desenvolvimento Android

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por AndyShow em Qua Jan 11, 2017 7:08 pm

Muito Bom, Vai Ajudar Varias pessoas!
avatar
AndyShow
Instrutor

Masculino PONTOS : 1796
REPUTAÇÃO : 417
Idade : 34
Áreas de atuação : Blender e Unity
Respeito as regras :

Ver perfil do usuário http://mundounity3d.forumbom.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por MarcosSchultz em Qua Jan 11, 2017 7:20 pm

Vlw Very Happy

Ahh, lembrando que se alguém sentir falta de algum sistema, pode comentar ai... se for possível, editarei o script e o adicionarei ao sistema Very Happy
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8118
REPUTAÇÃO : 1140
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por LucioHenrique em Qua Jan 11, 2017 8:05 pm

marcos  o meu deu erro
diz que precisa estar derivada de um
 monobehaviour

LucioHenrique
Iniciante
Iniciante

PONTOS : 86
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por MarcosSchultz em Qua Jan 11, 2017 8:28 pm

LucioHenrique escreveu:marcos  o meu deu erro
diz que precisa estar derivada de um
 monobehaviour

Então você não copiou o script todo
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8118
REPUTAÇÃO : 1140
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL 3rd Camera para carros estilo GTA

Mensagem por AnderGames em Qua Jan 11, 2017 8:58 pm

Olá!
Estou precisando de ajuda em um script.
Eu queria um que quando o jogador estiver movendo o mouse, a camera se comportasse como uma orbital, mas quando o mouse estiver parado, ela lentamente começa a se comportar como uma "CarCamera"
Alguém pode me ajudar?
avatar
AnderGames
MembroAvançado

Masculino PONTOS : 309
REPUTAÇÃO : 1
Áreas de atuação : design, modelagem
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/user/MarcoAnderGames

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por MarcosSchultz em Qua Jan 11, 2017 9:02 pm

AnderGames escreveu:Olá!
Estou precisando de ajuda em um script.
Eu queria um que quando o jogador estiver movendo o mouse, a camera se comportasse como uma orbital, mas quando o mouse estiver parado, ela lentamente começa a se comportar como uma "CarCamera"
Alguém pode me ajudar?

Vou ver se implemento isto no sistema
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8118
REPUTAÇÃO : 1140
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por AnderGames em Qua Jan 11, 2017 9:36 pm

MarcosSchultz escreveu:
AnderGames escreveu:Olá!
Estou precisando de ajuda em um script.
Eu queria um que quando o jogador estiver movendo o mouse, a camera se comportasse como uma orbital, mas quando o mouse estiver parado, ela lentamente começa a se comportar como uma "CarCamera"
Alguém pode me ajudar?

Vou ver se implemento isto no sistema

Obrigado ^^
avatar
AnderGames
MembroAvançado

Masculino PONTOS : 309
REPUTAÇÃO : 1
Áreas de atuação : design, modelagem
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/user/MarcoAnderGames

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por MarcosSchultz em Sex Jan 13, 2017 12:27 am

Script atualizado... um novo sistema chamado "OrbitalQueSegue" foi adicionado.

Várias outras atualizações para este script ainda virão.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8118
REPUTAÇÃO : 1140
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por Chilinger em Sex Jan 13, 2017 9:20 am

Marcos vc usou a minha ideia de script kkkkk

Chilinger
MembroAvançado

Masculino PONTOS : 1125
REPUTAÇÃO : 26
Idade : 22
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por MarcosSchultz em Sex Jan 13, 2017 2:35 pm

usei é?


@@ mais um estilo de câmera implementado... Agora temos "CameraEstiloETS", que funciona como uma camera do EuroTruckSimulador... Básicamente é uma camera em primeira pessoa, com MouseLook, mas caso você olhe para a esquerda, a câmera se desloca também, como se você estivesse olhando para fora do veículo.

Mais sugestões, é só pedir Very Happy
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8118
REPUTAÇÃO : 1140
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por Xenguei em Seg Jan 16, 2017 7:54 am

Não consegui colocar, aparece isso:

Xenguei
Iniciante
Iniciante

PONTOS : 71
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por Xenguei em Seg Jan 16, 2017 8:15 am

Arrumei já

Xenguei
Iniciante
Iniciante

PONTOS : 71
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por Chilinger em Seg Jan 16, 2017 10:48 am

As class mas adianta bastante.

Chilinger
MembroAvançado

Masculino PONTOS : 1125
REPUTAÇÃO : 26
Idade : 22
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por MonsaM em Ter Jan 17, 2017 6:05 pm

eu queria uma câmera que fosse orbital mais quando eu mexer o mouse e câmera rodar queria que o player rodasse também
avatar
MonsaM
Membro
Membro

PONTOS : 116
REPUTAÇÃO : 2
Idade : 15
Áreas de atuação : Tudo oque puder tentarei kkkkk
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por MonsaM em Qua Jan 18, 2017 4:58 am

tem como se fazer um tutorial
avatar
MonsaM
Membro
Membro

PONTOS : 116
REPUTAÇÃO : 2
Idade : 15
Áreas de atuação : Tudo oque puder tentarei kkkkk
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por LuizFixa3D em Seg Jan 23, 2017 12:50 pm

[img][/img] Dando Erro:(
avatar
LuizFixa3D
Membro
Membro

Masculino PONTOS : 422
REPUTAÇÃO : 6
Idade : 16
Áreas de atuação : Inciante C# , Desing , Criador de Games
Respeito as regras :

Ver perfil do usuário https://play.google.com/store/apps/details?id=com.Company.rodand

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por weslleyFx em Seg Jan 23, 2017 1:55 pm

seu script precisa derivar de MonoBehaviour
avatar
weslleyFx
Moderador

Masculino PONTOS : 2261
REPUTAÇÃO : 496
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Sistema COMPLETO de câmeras

Mensagem por MarcosSchultz em Seg Jan 23, 2017 5:42 pm

LuizFixa3D escreveu:" /> Dando Erro:(

Você não está copiando o script completo.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8118
REPUTAÇÃO : 1140
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum