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:
Machado PBR | 3D Axe with PBR textures.
Rigidbody2D AddForce - Como adicionar uma força oneshot.
duvida
Em breve Ilhas Multiplayer, sobrevivencia PVP E PVM
Text multiplayer
[TUTORIAL] Avião Script
Duvida sobre o Unet
Colocar Gifs em uma UI Unity 5?
Como faço para a musica continuar tocando quando muda de cena?
MANTER TELA DO CELULAR LIGADA
Tirar Fotos no Unity 5 FPS
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
como posso colocar tempo em qualquer script?
SCRIPT ISOMETRICO PARA ROTACIONAR O PLAYER COM MOUSE
Mesmo material mas objeto mais claro
MEU JOGO DE TERROR EM DESENVOLVIMENTO E BLOGGUER
Alguém pode fazer um rig pra mão do meu personagem?
Verificar quantos objetos tem a seguinte tag na scena
visualizador de ritmo
the ŞỮŘVƗVΔŁ ƗŞŁΔŇĐ [Lançamento]
Time
Unity Banco de Dados
Grave no Som da Unity!
ESSE EO MEU JOGO QUE EU ESTOU DESENVOLVENDO (VERSAO ALPHA)
Assesar Script De Outra Script
Camera FPS atravessa paredes
R7 - GOOH (resident evil 7)
Formação de equipa para o Jogo Until the last
Suspensão carro com raycast
como criar um botao dentro do if() (em C# pq quero padronizar tudo na mesma linguagem)
Arquivos de Expanssão OBB
Formação de equipe para jogo estilo Rust/DayZ
[DUVIDA]como girar sprite somente no eixo X em direção do mouse
GRAVIDADE não é compatível com Camera.main.ScreenToViewportPoint ?
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
[SUPER ATUALIZAÇÃO] - Android - Night Hunter RPG, Faça um teste e avalie! Alpha #5
✖ Projeto HOSPICE Horror Game !! ✖
Recrutamento para jogo de sobrevivencia estilo DayZ/Rust/H1Z1
-[SCRIPT DE POSIÇÕES ]-
[Duvida] Unity5 - Physics2D.Raycast não obedece distância máxima.
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
como posso fazer sons dos passos do inimigo
Unity - Car engine sound - Primeiro teste
Dúvida sobre particulas
[RESOLVIDO] Executar animação após um X segundos
Como indentificar que estou escrevendo [Unity.UI inputField]
[RESOLVIDO] Blender - Mesh com ossos bugados
[RESOLVIDO] OntriggerEnter Bugado
[RESOLVIDO] Problema com o Reimport e atualização do modelo
Como fazer o raycast ignorar a primeira colisao?
[RESOLVIDO] Animações no script
Transição de Cores Entre Cenas!
Sistema de corrida
Como Detectar toques e destruir objetos no jogo
Terreno procedural com blocos para baixo
alguem poderia me ajudar??
[TUTORIAL] Spawn de objetos aleatorios em lugares aleatorios
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
alguem sabe um sistema/ideia/tutorial de nicknames/indentificaçao para NETWORK local???
Jogo na Play Store e atualmente tem 40 downloads.
Translate.rotate ( 0, 0, Erro )
[Duvida] Time.TimeScale em jogo multiplayer
Aplicativo Reseta o Banco de Dados - Sqlite
7 erros no script conectar
Audio Player C#
Divulgaçao de Battle of Worlds
Duvida sobre Screenshot e share
Sistema de Buscar o Inimigo Mais Perto
[TUTORIAL] Criar um Array ( lista de objetos )
Casa do CJ Remake unity 2017 + Blender
Fazer um objeto brilhar
criação de terreno realista
Navmesh em mapa gerado aleatoriamente existe?
Linkar Objetos FIlhos!
Seguir um raio no raycast a partir do ponto da tela clicado
Destruir Objetos Filhos
Como fazer um jogo Isometrico com Unity ?
[Duvida] Prefab instanciado não esta indo na direção correta
Sistema De dois Players
Formação de uma equipe pequena
Terreno Procedural
quero instanciar um obj vazio como faço?
[Dúvida] Bugs nos tiros de um jogo 2d
[Dúvida] Cena ficando escura
[RESOLVIDO] Destacar objetos com uma outline
[RESOLVIDO] Algum modo de usar a câmera do android
[RESOLVIDO] Limitar visão em um cenário 2d
Link Torrent Unity 5
Erro CS0118 e CS0131 em script de save.
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
[RESOLVIDO]Flip network
Erro em script do Photon Voice
erro de build do jogo
unity ele nao carrega os assets
[____ADMINISTRAÇÃO____] Problemas ao se cadastrar no fórum
[TUTORIAL]fazer os vidros quebrarem!
[RESOLVIDO]Animação importada do 3d Max muda de lugar na Unity
[TUTORIAL] Derrubar arvores e dropar madeiras dela
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Hoje à(s) 8:06 pm
Hoje à(s) 8:05 pm
Hoje à(s) 5:48 pm
Hoje à(s) 5:27 pm
Hoje à(s) 4:26 pm
Hoje à(s) 3:08 pm
Hoje à(s) 1:44 pm
Hoje à(s) 12:52 pm
Hoje à(s) 10:38 am
Hoje à(s) 10:36 am
Hoje à(s) 10:07 am
Hoje à(s) 9:44 am
Hoje à(s) 6:53 am
Hoje à(s) 12:53 am
Ontem à(s) 9:14 pm
Ontem à(s) 9:00 pm
Ontem à(s) 8:42 pm
Ontem à(s) 8:35 pm
Ontem à(s) 8:17 pm
Ontem à(s) 7:23 pm
Ontem à(s) 7:05 pm
Ontem à(s) 6:36 pm
Ontem à(s) 6:06 pm
Ontem à(s) 5:59 pm
Ontem à(s) 5:41 pm
Ontem à(s) 5:08 pm
Ontem à(s) 4:57 pm
Ontem à(s) 4:11 pm
Ontem à(s) 4:04 pm
Ontem à(s) 3:29 pm
Ontem à(s) 2:44 pm
Ontem à(s) 1:59 pm
Ontem à(s) 1:42 pm
Ontem à(s) 1:37 pm
Ontem à(s) 1:21 pm
Ontem à(s) 1:18 pm
Ontem à(s) 1:07 pm
Ontem à(s) 12:44 pm
Ontem à(s) 11:25 am
Ontem à(s) 10:03 am
Ontem à(s) 9:19 am
Ontem à(s) 9:19 am
Ontem à(s) 9:09 am
Ontem à(s) 8:23 am
Ontem à(s) 1:39 am
Ontem à(s) 11:57 pm
Ontem à(s) 11:30 pm
Sab Out 14, 2017 7:07 pm
Sab Out 14, 2017 6:01 pm
Sab Out 14, 2017 5:55 pm
Sab Out 14, 2017 4:25 pm
Sab Out 14, 2017 12:50 pm
Sab Out 14, 2017 12:46 pm
Sex Out 13, 2017 11:58 pm
Sex Out 13, 2017 11:05 pm
Sex Out 13, 2017 9:21 pm
Sex Out 13, 2017 9:20 pm
Sex Out 13, 2017 8:27 pm
Sex Out 13, 2017 5:45 pm
Sex Out 13, 2017 5:37 pm
Sex Out 13, 2017 3:31 pm
Sex Out 13, 2017 2:59 pm
Sex Out 13, 2017 2:02 pm
Sex Out 13, 2017 11:17 am
Sex Out 13, 2017 9:27 am
Sex Out 13, 2017 2:17 am
Qui Out 12, 2017 11:57 pm
Qui Out 12, 2017 11:26 pm
Qui Out 12, 2017 11:23 pm
Qui Out 12, 2017 8:32 pm
Qui Out 12, 2017 7:23 pm
Qui Out 12, 2017 2:58 pm
Qui Out 12, 2017 12:51 pm
Qui Out 12, 2017 11:58 am
Qui Out 12, 2017 6:49 am
Qua Out 11, 2017 11:37 pm
Qua Out 11, 2017 10:01 pm
Qua Out 11, 2017 3:52 pm
Qua Out 11, 2017 12:45 pm
Qua Out 11, 2017 12:42 pm
Qua Out 11, 2017 8:38 am
Qua Out 11, 2017 12:31 am
Ter Out 10, 2017 11:43 pm
Ter Out 10, 2017 11:42 pm
Ter Out 10, 2017 11:39 pm
Ter Out 10, 2017 11:31 pm
Ter Out 10, 2017 11:29 pm
Ter Out 10, 2017 11:24 pm
Ter Out 10, 2017 11:12 pm
Ter Out 10, 2017 11:10 pm
Ter Out 10, 2017 11:06 pm
Ter Out 10, 2017 10:37 pm
Ter Out 10, 2017 9:06 pm
Ter Out 10, 2017 7:56 pm
Ter Out 10, 2017 7:42 pm
Ter Out 10, 2017 6:11 pm
Ter Out 10, 2017 11:03 am
Ter Out 10, 2017 10:24 am
Ter Out 10, 2017 7:45 am
ScorpionG4mer
ScorpionG4mer
Fagner
Unidade3d5
richerd
Matrirxp
Phph09
Callyde Jr
colosso16
colosso16
Encracker
Joao07
Callyde Jr
EvertonSantos
Fagner
EvertonSantos
Ghosthy
felipehobs1
Weslley
MRX
Callyde Jr
Callyde Jr
Duarte
glauco
luis gustavo
Encracker
thales.ulisses
heliab125
marcelinodns
luis gustavo
Duarte
CodeZone
contaska
contaska
MRX
dstaroski
dstaroski
thales.ulisses
Weslley
dimmuo
dstaroski
glauco
dstaroski
Phph09
eusouoglaydson
Weslley
Fagner
alxgames
Fagner
Fagner
MRX
Callyde Jr
Callyde Jr
TrevorCrazy
luizmauro123
Madness
natanael.olimpio
glauco
luiz12345
Fagner
Felipe Costa
Phph09
ubroly
PatifeCraft
dstaroski
Dom3000
raulframos
fecirineu
fecirineu
MateusWTP
Phph09
PatifeCraft
luizmauro123
Duarte
Phph09
dimmuo
EvertonSantos
BRGC
Callyde Jr
fecirineu
PatifeCraft
Dom3000
PauloFR
PauloFR
PauloFR
PauloFR
PauloFR
TylerDurden
PauloFR
PauloFR
PauloFR
PatifeCraft
felipehobs1
ryan55br
MarcosSchultz
fabriciorsz34
Claudio Ferreira
PatifeCraft
John Rambo

[TUTORIAL] Camera orbital com zoom (scroll)

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

TUTORIAL [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por MarcosSchultz em Sab Jul 09, 2016 1:15 pm

Fala galera, elaborei este sistema simples para uma câmera orbital... basta criar um script em C# chamado "CameraOrbital" e usar este código nele:

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 ("Mouse X") * (sensibilidade * distanciaCameraOrbit)/(distanciaCameraOrbit*0.5f);
 yOrbit  -= Input.GetAxis ("Mouse 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);
 }
}

Este script deve ir no seu jogador, e a única coisa que você tem que fazer é jogar a câmera variável "Objeto Camera" do script, e pronto, terá uma câmera orbital, com zoom e rotação, além de ajustes Very Happy
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9737
REPUTAÇÃO : 1678
Idade : 21
Á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] Camera orbital com zoom (scroll)

Mensagem por Chilinger em Dom Jul 10, 2016 3:57 pm

O que seria essa camera orbital?Zoom de sniper ?

Chilinger
MembroAvançado

Masculino PONTOS : 1405
REPUTAÇÃO : 32
Idade : 23
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por MarcosSchultz em Dom Jul 10, 2016 11:36 pm

Chilinger escreveu:O que seria essa camera orbital?Zoom de sniper ?
Camera orbital é tipo camera de jogo RPG, que você pode orbitar ao redor do jogador.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9737
REPUTAÇÃO : 1678
Idade : 21
Á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] Camera orbital com zoom (scroll)

Mensagem por GustavoMaster em Seg Jan 09, 2017 10:09 pm

O meu começa a se distânciar do objeto, o que posso fazer ?
avatar
GustavoMaster
Avançado
Avançado

Masculino PONTOS : 1178
REPUTAÇÃO : 14
Idade : 14
Áreas de atuação : ; )
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por LucioHenrique em Ter Jan 10, 2017 8:52 pm

Opa pessoal queria saber como faço para inves de ser o scroll do mouse ser a letra "C"

LucioHenrique
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por AndyShow em Ter Jan 10, 2017 10:55 pm

LucioHenrique escreveu:Opa pessoal queria saber como faço para inves de ser o scroll do mouse ser a letra "C"

Usa um Math.Lerp no Lugar do Scroll e chama ele no Input.GetKey
avatar
AndyShow
Instrutor

Masculino PONTOS : 2314
REPUTAÇÃO : 550
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] Camera orbital com zoom (scroll)

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

LucioHenrique escreveu:Opa pessoal queria saber como faço para inves de ser o scroll do mouse ser a letra "C"

Usa um Math.Lerp no Lugar do Scroll e chama ele no Input.GetKey


como faço isso

LucioHenrique
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por MarcosSchultz em Sex Jan 13, 2017 7:26 pm

Código:
using UnityEngine;
using System.Collections;
using System;

[Serializable]
public class ConfigsDaCameraOrbital {
   [Range(0.01f,2.0f)] public float sensibilidade = 0.8f, 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;
   bool zoom;
   void Start () {
      zoom = false;
      distanciaCameraOrbit = Configuracoes.distanciaMinima;
      xOrbit = ObjetoCamera.transform.eulerAngles.x;
      yOrbit = ObjetoCamera.transform.eulerAngles.y;
      transform.gameObject.layer = 2;
   }

   void Update(){
      if (Input.GetKeyDown (KeyCode.C)) {
         zoom = !zoom;
      }
      if (zoom) {
         distanciaCameraOrbit = Configuracoes.distanciaMinima;
      } else {
         distanciaCameraOrbit = Configuracoes.distanciaMaxima;
      }
   }

   void LateUpdate () {
      float velocidadeTimeScale = 1.0f / Time.timeScale;
      float sensibilidade = Configuracoes.sensibilidade;
      float distMin = Configuracoes.distanciaMinima;
      float distMax = Configuracoes.distanciaMaxima;
      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 ("Mouse X") * (sensibilidade * distanciaCameraOrbit)/(distanciaCameraOrbit*0.5f);
      yOrbit  -= Input.GetAxis ("Mouse Y") * sensibilidade * sensYMouse;
      yOrbit  = ClampAngle (yOrbit, 0.0f, 85.0f);
      Quaternion rotation = Quaternion.Euler (yOrbit, xOrbit , 0);
      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);
   }
}
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9737
REPUTAÇÃO : 1678
Idade : 21
Á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] Camera orbital com zoom (scroll)

Mensagem por Gabriel César O em Sex Jul 14, 2017 1:46 pm

esse tuto é 100/10
avatar
Gabriel César O
Programador

Masculino PONTOS : 1407
REPUTAÇÃO : 210
Idade : 16
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por zZAndersonZz em Sex Jul 14, 2017 5:16 pm

Eu tinha feito um bem simples pro meu personagem:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraLivre : MonoBehaviour {

    public GameObject Alvo;
    public int Tempo;

    private float VelocidadeHorizontal = 20f;
    private float VelocidadeVertical = 20f;
    private float VelocidadeDeZoom = 0f;


    void Update ()
    {
        transform.LookAt(Alvo.transform);
        var VelHorizontal = VelocidadeHorizontal * Input.GetAxis("Mouse X");
        var VelVertical = VelocidadeVertical * Input.GetAxis("Mouse Y");
        var Zoom = VelocidadeDeZoom * Input.GetAxis("Mouse ScrollWheel");
        transform.RotateAround(Alvo.transform.position, new Vector3(VelVertical, VelHorizontal, Zoom), Tempo * Time.deltaTime);
    }
}
Esse ai de cima volta e meia dá uma tremida Shocked

Depois um fiz um bem melhor pro barco, com limites pro zoom do scroll e tudo mais.
avatar
zZAndersonZz
Avançado
Avançado

Masculino PONTOS : 575
REPUTAÇÃO : 117
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por Gabriel César O em Sex Jul 14, 2017 5:17 pm

^^
avatar
Gabriel César O
Programador

Masculino PONTOS : 1407
REPUTAÇÃO : 210
Idade : 16
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por lidio133 em Sab Jul 15, 2017 10:56 pm

Teria como eu fazer a camera movimentar em volta do personagem com o mouse ?

lidio133
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por Gabriel César O em Dom Jul 16, 2017 5:08 am

lidio133 escreveu:Teria como eu fazer a camera movimentar em volta do personagem com o mouse ?
MAS A CÂMERA ORBITAL FAZ ISSO, COPIE E COLE O SCRIPT DESSE TÓPICO E PRONTO.
avatar
Gabriel César O
Programador

Masculino PONTOS : 1407
REPUTAÇÃO : 210
Idade : 16
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por Gregory2017 em Dom Jul 23, 2017 9:02 pm

MarcosSchultz escreveu:Fala galera, elaborei este sistema simples para uma câmera orbital... basta criar um script em C# chamado "CameraOrbital" e usar este código nele:

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 ("Mouse X") * (sensibilidade * distanciaCameraOrbit)/(distanciaCameraOrbit*0.5f);
 yOrbit  -= Input.GetAxis ("Mouse 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);
 }
}

Este script deve ir no seu jogador, e a única coisa que você tem que fazer é jogar a câmera variável "Objeto Camera" do script, e pronto, terá uma câmera orbital, com zoom e rotação, além de ajustes Very Happy
Quando eu clico no botão de acelera pelo android a camera vira sozinha, oque eu faço para nao ficar virando quando clicar no acelerador?

Gregory2017
Iniciante
Iniciante

Masculino PONTOS : 220
REPUTAÇÃO : 1
Idade : 18
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Camera orbital com zoom (scroll)

Mensagem por MarcosSchultz em Qua Jul 26, 2017 3:12 pm

Ai você tem que meio que refazer este script para ele detectar se algum botão está sendo pressionado ou não... 

Ou trabalhar com layers
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9737
REPUTAÇÃO : 1678
Idade : 21
Á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] Camera orbital com zoom (scroll)

Mensagem por Gregory2017 em Qui Jul 27, 2017 10:38 pm

MarcosSchultz escreveu:Ai você tem que meio que refazer este script para ele detectar se algum botão está sendo pressionado ou não... 

Ou trabalhar com layers
Cm que eu faço isso?

Gregory2017
Iniciante
Iniciante

Masculino PONTOS : 220
REPUTAÇÃO : 1
Idade : 18
Respeito as regras :

Ver perfil do usuário

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