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:
Importar imagem animada do After Affects para Unity
Pontos luminosos em objeto 3D
Dúvida sobre terrenos em 3D
[TUTORIAL] FAZENDO UM SITE PROFISSIONAL COMPLETO PARA SEU JOGO GRATIS
COMO POSSO COLOCAR A CHUVA NO CENARIO TODO E FAZER COLIDIR
[TUTORIAL] MOVIMENTO NA ARMA PARA FICAR MAIS REAL!
Animacao da M16
[Duvida]Relacionada a RayCast
Ajuda com Script
[Duvida] Problema em relação ao transform.rotate
(Dúvida) Wheel Joint 2D Rodas saindo do pivo
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Error No Console
Ponto na tela
OBJETO INSTANCIANDO EM POSIÇÃO ERRADA
Transformar velocidade em forca
Sombra preta
Alguma alternativa para os JOINT do unity
Sistema de Sensibilidade Do Mouse X e Y!
Unity Congelando
Dúvida sobre jogo android...
For lista
PROBLEMA TEXTURA E TELA GAME
[TUTORIAL] FPSController nadar e mergulhar, junto com efeito submerso
Receber tiro(animação)
Limite de tela
O que vocês acham de um jogo com formato de capitulos?
Animacao da Colt
Problema com NetworkServer.spawn
Procuro modelador para projeto similar à My summer Car
[TUTORIAL] Avião Script
Duvida Iluminação
PROCURO ANIMADOR + PROGRAMADOR
[ATUALIZAÇÃO] Projeto - Girl Blade
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
Avaliem (Meu cenário)!!
Verificar cena anterior?
Verificar se game object está habilitado ou desabilitado
Colisão no terreno
[Duvida] - Como criar um botao de sair com mensage?
[RESOLVIDO] DUVIDA COM SCRIPT DE DANO POR TRIGER ENTER
QUER UMA PEQUENA GAMEPLAY DO MEU GAME?
[RESOLVIDO] Instanciar em Posição "Y" Especifica
Shop UI
[Duvida] Como carregar cenas aleatoriamente?
save game
Alguns modelos low poly
Fui mexer denovo na minha lixeira do mediafire e olha no que deu..
Faculdade de jogos digitais vale a pena?
GAMEPLAY DO JOGO 171 ESTILO GTA (não sou eu que estou fazendo)
Como Criar uma Loja Virtual e WebSite para Seu Jogo Gratis
[Resolvido]Tocar Audio ao Colidir com Tag Player
ESSE EO MEU JOGO QUE EU ESTOU DESENVOLVENDO (VERSAO BETA)
Survive - atualização do jogo
Formação de Equipe Battle of Worlds
Pegar coisas do chao
Site Profissional Completo Gratis para Jogos
Como eu faço um "Sprint" para minha nave:
[DÚVIDA] APERTAR 2 VAI PRA PRÓXIMA MÚSICA, APERTAR 1 VOLTA A MÚSICA ANTERIOR
Site para Baixar Character em 3D
Cut Scene com video player
Só o networkIndetity é o suficiente para o que eu quero fazer? Como ele funciona?
O que acham dos meus modelos? (Prédios)
Como faz para colocar som nos passos do personagem?
[Pack de Modelos 3d] Kit Pau Pra Toda Obra [Low Poly]
Canvas UI
[Dúvida] tiro
[DUVIDA] Shader
[RESOLVIDO] Mais scripts ou mais linhas de codigo????
Photon Duvida
(RESOLVIDO)Ajuda na animação do Mixamo
[Duvida] Como dar play e pausar uma animacao??
Como criar um timer?
Sistema multiplayer por Salas
Vender ideia de jogo para desenvolvedora
FORMAÇÃO DE EQUIPE PARA JOGO MULTIPLAYER DE SOBREVIVENCIA
eu preciso de um script de contagem para o me jogo alguem pode me ajudar?
[Resolvido]Como pode ser feito um HUD?
Script sem erro, mas não funciona
Google VR
Ajuda sobre melhorar a Fricção no Wheel Collider
sombrancelha do mixamo
[RESOLVIDO]Oque significa "?"
[Duvida] NavMeshAgente se movendo muito rapido!
Projeto B
Script + Direção
Alguem quer ajudar em meu jogo???
[Resolvido] Como chamar uma void ou função, através de um botão.
[RESOLVIDO] Como subir escadas
[RESOLVIDO] Sistema de recarregamento Precário.
[Duvida] Com NavMesh;
[Duvida] Com LookAt
[Resolvido]Objeto não está sendo instanciado
[DUVIDA] - Pontuação e fim de jogo
Network Manager opção sumiu
[Resolvido] Colisores nao colidem!!
Como colocar dano no inimigo? e vida no player?
QUEM AI TA DISPOSTO A DESENVOLVER UM GAME EM EQUIPE??
Hoje à(s) 3:57 pm
Hoje à(s) 3:57 pm
Hoje à(s) 3:54 pm
Hoje à(s) 3:23 pm
Hoje à(s) 3:20 pm
Hoje à(s) 3:20 pm
Hoje à(s) 3:10 pm
Hoje à(s) 2:49 pm
Hoje à(s) 2:20 pm
Hoje à(s) 1:53 pm
Hoje à(s) 1:45 pm
Hoje à(s) 1:42 pm
Hoje à(s) 1:39 pm
Hoje à(s) 1:37 pm
Hoje à(s) 1:26 pm
Hoje à(s) 1:24 pm
Hoje à(s) 1:24 pm
Hoje à(s) 1:21 pm
Hoje à(s) 1:21 pm
Hoje à(s) 1:18 pm
Hoje à(s) 1:14 pm
Hoje à(s) 1:13 pm
Hoje à(s) 1:01 pm
Hoje à(s) 12:57 pm
Hoje à(s) 12:55 pm
Hoje à(s) 12:53 pm
Hoje à(s) 12:50 pm
Hoje à(s) 12:20 pm
Hoje à(s) 12:08 pm
Hoje à(s) 12:04 pm
Hoje à(s) 7:41 am
Hoje à(s) 7:40 am
Hoje à(s) 7:39 am
Hoje à(s) 7:38 am
Hoje à(s) 7:26 am
Ontem à(s) 4:21 pm
Ontem à(s) 2:54 pm
Ontem à(s) 9:22 am
Ontem à(s) 8:59 am
Sab Maio 27, 2017 11:46 pm
Sab Maio 27, 2017 8:50 pm
Sab Maio 27, 2017 6:49 pm
Sab Maio 27, 2017 6:45 pm
Sab Maio 27, 2017 5:54 pm
Sab Maio 27, 2017 5:39 pm
Sab Maio 27, 2017 5:28 pm
Sab Maio 27, 2017 5:08 pm
Sab Maio 27, 2017 4:52 pm
Sab Maio 27, 2017 4:46 pm
Sab Maio 27, 2017 3:05 pm
Sab Maio 27, 2017 2:50 pm
Sab Maio 27, 2017 1:59 pm
Sab Maio 27, 2017 1:45 pm
Sab Maio 27, 2017 10:38 am
Sab Maio 27, 2017 1:59 am
Sab Maio 27, 2017 1:29 am
Sab Maio 27, 2017 12:37 am
Sex Maio 26, 2017 11:57 pm
Sex Maio 26, 2017 11:13 pm
Sex Maio 26, 2017 8:56 pm
Sex Maio 26, 2017 8:24 pm
Sex Maio 26, 2017 7:53 pm
Sex Maio 26, 2017 7:30 pm
Sex Maio 26, 2017 5:27 pm
Sex Maio 26, 2017 5:17 pm
Sex Maio 26, 2017 5:15 pm
Sex Maio 26, 2017 4:28 pm
Sex Maio 26, 2017 4:13 pm
Sex Maio 26, 2017 2:42 pm
Sex Maio 26, 2017 1:57 pm
Sex Maio 26, 2017 1:50 pm
Sex Maio 26, 2017 11:59 am
Sex Maio 26, 2017 11:49 am
Sex Maio 26, 2017 11:38 am
Sex Maio 26, 2017 9:26 am
Sex Maio 26, 2017 2:49 am
Sex Maio 26, 2017 2:35 am
Sex Maio 26, 2017 12:58 am
Qui Maio 25, 2017 10:49 pm
Qui Maio 25, 2017 10:39 pm
Qui Maio 25, 2017 10:03 pm
Qui Maio 25, 2017 8:55 pm
Qui Maio 25, 2017 8:51 pm
Qui Maio 25, 2017 8:46 pm
Qui Maio 25, 2017 5:54 pm
Qui Maio 25, 2017 5:17 pm
Qui Maio 25, 2017 3:08 pm
Qui Maio 25, 2017 1:08 pm
Qui Maio 25, 2017 11:51 am
Qui Maio 25, 2017 10:49 am
Qui Maio 25, 2017 9:39 am
Qui Maio 25, 2017 9:00 am
Qua Maio 24, 2017 11:31 pm
Qua Maio 24, 2017 10:13 pm
Qua Maio 24, 2017 9:57 pm
Qua Maio 24, 2017 9:38 pm
Qua Maio 24, 2017 8:23 pm
Qua Maio 24, 2017 8:00 pm
Qua Maio 24, 2017 5:51 pm
Marc7
dstaroski
Marc7
fecirineu
marcos4503
Gabriel César O
Gabriel César O
DuViDoSo34
Mikeofcoji
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
bruxamissi
MarcosSchultz
MarcosSchultz
AndyShow
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
marcos4503
Ramon Davidson
als260502
dstaroski
dstaroski
dstaroski
dstaroski
dstaroski
Mic4el
Zecandy
weslleyFx
zZAndersonZz
PauloFR
dstaroski
Unidade3d5
Gabriel César O
thiagograssi
bruxamissi
PauloFR
Callyde Jr
Mic4el
Mic4el
julioou
julioou
fecirineu
bruxamissi
glauco
thiagograssi
Dom3000
Mikeofcoji
fecirineu
rafaelllsd
PauloFR
AndyShow
hrr23
thiagograssi
DuViDoSo34
Gabriel César O
DuViDoSo34
Weverton Borges da Silva
aleksander700
Xurupitinha
dazentt55
LuizFixa3D
Zecandy
PauloFR
Callyde Jr
weslleyFx
JoelMJunior
hen000
rafaelllsd
thiagograssi
wender
Henrique Ramires
dazentt55
916anderson
Matrirxp
DuViDoSo34
julioou
Madness
felipefell
DuViDoSo34
DuViDoSo34
DuViDoSo34
DuViDoSo34
DuViDoSo34
thiagograssi
PauloFR
thiagograssi
Junim
Manawydan
Junim

[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 : 8755
REPUTAÇÃO : 1350
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 : 1319
REPUTAÇÃO : 338
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 : 2044
REPUTAÇÃO : 503
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 : 8755
REPUTAÇÃO : 1350
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 : 150
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 : 8755
REPUTAÇÃO : 1350
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 : 387
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 : 8755
REPUTAÇÃO : 1350
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 : 387
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 : 8755
REPUTAÇÃO : 1350
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 : 1205
REPUTAÇÃO : 26
Idade : 23
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 : 8755
REPUTAÇÃO : 1350
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 : 135
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 : 135
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 : 1205
REPUTAÇÃO : 26
Idade : 23
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 : 192
REPUTAÇÃO : 3
Idade : 16
Á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 : 192
REPUTAÇÃO : 3
Idade : 16
Á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
Avançado
Avançado

Masculino PONTOS : 529
REPUTAÇÃO : 9
Idade : 16
Áreas de atuação : Iniciante 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 weslleyFx em Seg Jan 23, 2017 1:55 pm

seu script precisa derivar de MonoBehaviour
avatar
weslleyFx
Moderador

Masculino PONTOS : 2454
REPUTAÇÃO : 541
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 : 8755
REPUTAÇÃO : 1350
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 silva75 em Qua Abr 19, 2017 6:33 pm

Olá Marcos voce tem algum tutorial que ensina como compilar um jogo para android, pois baixei o UnitySetup-Android-Support-for-Editor- 5.6, mas quando coloco para compilar aparece esta mensagem: Select Android SDK root Folder ou seja (Selecione a pasta raiz do Android SDK) pode me dizer o que é isto.     Desde já agradeço

Obrigado

silva75
Iniciante
Iniciante

PONTOS : 396
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

Mensagem por PauloFR em Qua Abr 19, 2017 7:17 pm

silva75 escreveu:Olá Marcos voce tem algum tutorial que ensina como compilar um jogo para android, pois baixei o UnitySetup-Android-Support-for-Editor- 5.6, mas quando coloco para compilar aparece esta mensagem: Select Android SDK root Folder ou seja (Selecione a pasta raiz do Android SDK) pode me dizer o que é isto.     Desde já agradeço

Obrigado

http://www.schultzgames.com/search?search_keywords=build
avatar
PauloFR
Instrutor

Masculino PONTOS : 827
REPUTAÇÃO : 220
Idade : 14
Áreas de atuação : Programação,Modelagem,Pixel Art,Dev alone,Coisas que devs alones fazem...
Respeito as regras :

Ver perfil do usuário http://ppaulofr.blogspot.com.br

Voltar ao Topo Ir em baixo

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

Mensagem por silva75 em Qua Abr 26, 2017 9:23 pm

olá marcos você tem algum tutorial sobre relogio digita para unity 3D, se souber me fale por favor.
 Abraços

silva75
Iniciante
Iniciante

PONTOS : 396
REPUTAÇÃO : 1
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 Abr 28, 2017 1:35 pm

silva75 escreveu:olá marcos você tem algum tutorial sobre relogio digita para unity 3D, se souber me fale por favor.
 Abraços

Crie um tópico com esta dúvida especificando bem certo o relógio... se pa da pra fazer um scriptzinho simples pra UI
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8755
REPUTAÇÃO : 1350
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