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 :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Tirar foto e exportar pro jogo
Maximizar view da cam
Tem como fazer o inimigo andar até dar de cara com o player?
Trocar de cena ao matar inimigo
Mudar qualidade das texturas por código?
[Projeto] Jogo Ambientado no Brasil para Android
Como criar um botãoUI que liga e desliga uma lista de objetos?
Unity - Imagem no formato de um triângulo?
Gráficos estilo Genshin
level system problema
Como calcular distância entre dois pontos
Posicao do objeto diferente do setado no codigo
Sistema de pulo 3D
Procuro programador Unity para jogo 2D
Pessoal saiu a versão de testes do meu novo jogo, o Sanatório Macabro
Cinemachine - trocar de camera usando uma tecla e mouse 'lockScreen'
Sistema completo de nivel com XP + PayTime
Limitar arrays e fazer sortear um valor apenas uma vez
Como faço para variável voltar para o valor inicial
Duvida com getAxis
Fazer um detetive para sair apenas 1 vez o resultado do sorteio
Jogos NTFs
Salvar variável temporária com PlayerPrefs!?
Alguém sabe fazer uma AI para o inimigo seguir o Player em um jogo Top Down
Bug com modelo ficando invisível
Erro em sistema de dialogo...
Terreno Procedural
sistema de estamina,vida,fome e sede
Posição do object diferente do código quando está em tempo real!?
FORMACAO DE EQUIPE
sistema de câmera + movimentação do player
Erro no Photon Pun 2 (InvalidCastException: Specified cast is not valid)
Procuro modelador 3D para futuro Game
A procura de um MODELADOR pra desenvolver jogo pra estudo.
Script do marcos (Como colocar um limite de Spawn)
Multiplayer
Photon 2 outros Players
QR Code + Unity + KinderOvo (Opinião)
Colisão 2d
Câmera Primeira pessoa / Movimentação
Polígonos do modelo são destorcidos ao importar na unity, como resolver?
Ativar luz e objeto sumir
duvida sobre servidor
Como converter um projeto da Unity para o PlayCanvas?
Sistema de inventario
Alguem me ajuda, minha animaçao depois de um tempo congela
COMO TROCAR FORMA DE ATAQUE DO (CLICK DO MOUSE para BOTÃO UI MOBILE)
problemas com rotacao da camera!!
Dúvida com Procedural mesh e Bezier Curves
Sols Like Projeto iniciando!
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
crowdfunding para jogos
Colisão realista?
Sobreposição de mapa de luz, gerar mapa de luz?
Script único para todos os veículos no jogo?
Como procurar um lugar vazio para spawnar monstro
Como eu posso fazer uma cutscene ilustrada com imagens?
Erro com rotacao de objeto
Veiculos Para o Unity!
Objetos de outras cenas
Como alterar a Speed da anim por código?
Verificar espaco se ocupado ou nao e limitar as instancias!!
pegar fiho de objeto instanciado!!!
alterar cor via script
[DÚVIDA] Câmera estilo FNAF
instanciar com rotacao!!
Problema com canvas/panel e objetos
ANIMAL fugir
Seguir ponto por trigger
Novo input system
Procuro programador para Sistema de Pets na Unity
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Dúvidas em geral - Como faço para colocar os gráficos estilo jogos antigos?
Movimentação PointerDown e PointerUp em peças spawn com botões UI
points linerenderer
Problemas em dividir controles em multiplayer
Jogador salvar controle
[TUTORIAL] State Machine mas simples do universo kkkk
Procuro programador para JOGO DE TERROR
Fazer pontuação aparecer momentaneamente e sumir dando erro
Alguém sabe reproduzir esse efeito do video na Unity?
Multiplayer com Unity + NOde
Clique duplo em um botão?
Como criar um objeto só quando colider com outro?
[TUTORIAL] Agachar, correr e sistema de estamina ( C# )
Objetos de outras cenas
O jogo bugou e os sliders e o joystick não estão funcionando, apenas botões
Component Cloth unity
Como reproduzir efeito "respirar" ao parar a camera
[TUTORIAL] Reconhecimento de dinheiro
Informações que ficam salvas para chamar em outras cenas (Idioma, Nick)
Limitar movimento da camera com imput android!!
Como fazer texto do Script entrar no UI
SOU MODELADOR DE MODELOS LOW POLY MEDIUM PRECISANDO E SO CHAMAR
jogo de corrida
[SCRIPT] Ler Texto em .TXT Por Chave
ajuda com sincronização jogo de botão
IA para multiplos inimigos
Como fazer um modo multiplayer em um jogo que está off-line?
Hoje à(s) 9:02 pm
Hoje à(s) 7:19 pm
Hoje à(s) 6:42 pm
Ontem à(s) 9:02 pm
Ontem à(s) 10:17 am
Ontem à(s) 8:21 am
Qui Dez 02, 2021 8:38 pm
Qui Dez 02, 2021 4:39 pm
Qui Dez 02, 2021 12:00 pm
Ter Nov 30, 2021 3:52 pm
Ter Nov 30, 2021 12:14 pm
Seg Nov 29, 2021 5:18 pm
Seg Nov 29, 2021 5:17 pm
Seg Nov 29, 2021 1:17 pm
Dom Nov 28, 2021 11:52 am
Dom Nov 28, 2021 1:30 am
Sab Nov 27, 2021 4:57 am
Sex Nov 26, 2021 5:53 pm
Sex Nov 26, 2021 12:16 pm
Qui Nov 25, 2021 6:15 pm
Qui Nov 25, 2021 3:31 pm
Qua Nov 24, 2021 2:01 am
Ter Nov 23, 2021 5:11 pm
Ter Nov 23, 2021 3:48 pm
Ter Nov 23, 2021 1:12 pm
Ter Nov 23, 2021 12:38 pm
Seg Nov 22, 2021 3:20 pm
Seg Nov 22, 2021 2:29 am
Dom Nov 21, 2021 12:52 pm
Dom Nov 21, 2021 11:02 am
Dom Nov 21, 2021 3:36 am
Sab Nov 20, 2021 10:35 pm
Sex Nov 19, 2021 11:54 pm
Sex Nov 19, 2021 11:51 pm
Sex Nov 19, 2021 11:08 pm
Sex Nov 19, 2021 7:08 pm
Sex Nov 19, 2021 5:23 pm
Sex Nov 19, 2021 12:57 pm
Qui Nov 18, 2021 7:12 pm
Qui Nov 18, 2021 10:37 am
Qui Nov 18, 2021 10:17 am
Seg Nov 15, 2021 11:18 pm
Seg Nov 15, 2021 11:15 pm
Seg Nov 15, 2021 10:13 am
Seg Nov 15, 2021 9:48 am
Qui Nov 11, 2021 8:49 pm
Qui Nov 11, 2021 1:31 pm
Qui Nov 11, 2021 7:31 am
Qua Nov 10, 2021 8:19 pm
Ter Nov 09, 2021 7:05 pm
Ter Nov 09, 2021 5:05 pm
Ter Nov 09, 2021 4:11 pm
Ter Nov 09, 2021 1:07 pm
Seg Nov 08, 2021 7:36 pm
Dom Nov 07, 2021 8:44 pm
Sab Nov 06, 2021 10:51 pm
Sex Nov 05, 2021 10:04 pm
Sex Nov 05, 2021 7:50 pm
Sex Nov 05, 2021 3:48 pm
Sex Nov 05, 2021 10:24 am
Sex Nov 05, 2021 2:13 am
Qui Nov 04, 2021 6:48 pm
Qui Nov 04, 2021 6:09 pm
Qui Nov 04, 2021 5:39 pm
Qui Nov 04, 2021 5:00 pm
Qui Nov 04, 2021 3:55 pm
Qui Nov 04, 2021 2:45 pm
Qui Nov 04, 2021 4:56 am
Qua Nov 03, 2021 4:04 pm
Qua Nov 03, 2021 3:54 pm
Qua Nov 03, 2021 11:48 am
Qua Nov 03, 2021 8:18 am
Ter Nov 02, 2021 6:02 pm
Ter Nov 02, 2021 5:42 pm
Ter Nov 02, 2021 10:55 am
Ter Nov 02, 2021 10:44 am
Seg Nov 01, 2021 9:40 pm
Seg Nov 01, 2021 7:32 pm
Seg Nov 01, 2021 1:01 pm
Seg Nov 01, 2021 11:21 am
Dom Out 31, 2021 2:39 pm
Sab Out 30, 2021 3:05 pm
Sab Out 30, 2021 2:43 pm
Sab Out 30, 2021 2:40 pm
Sab Out 30, 2021 11:23 am
Qui Out 28, 2021 12:04 pm
Qua Out 27, 2021 7:49 pm
Qua Out 27, 2021 7:47 pm
Qua Out 27, 2021 3:11 pm
Qua Out 27, 2021 2:51 pm
Ter Out 26, 2021 6:01 pm
Ter Out 26, 2021 5:49 pm
Seg Out 25, 2021 8:53 pm
Seg Out 25, 2021 8:17 pm
Seg Out 25, 2021 7:33 pm
Seg Out 25, 2021 1:57 am
Dom Out 24, 2021 8:10 pm
Dom Out 24, 2021 5:36 pm
Dom Out 24, 2021 12:48 pm
MayLeone
Joana
ryanmorj16
MayLeone
stratengine
Crash Psycho
verme1311
MayLeone
Gabriel M
Valakinhas
Xavier
JãoArts
JãoArts
joaozinpedrin
Patrick
jeronimo Collares
M4x
EricknhYT
Charlesoff
capim22
EricknhYT
artplayer
M4x
M4x
Charlesoff
NoctisDregon
SgtMatuto
Pkneves
M4x
classicandsimple
Pkneves
EricknhYT
SeTk
SeTk
verme1311
Gamergame
claudiano2020
heyviic
joaozinpedrin
Gamergame
Crash Psycho
Zack2
Zack2
Atho
igorobm
Fzinx
igorobm
capim22
AgrrgA
hellside
Zack2
Zack2
igorobm
NoctisDregon
ProBrStalker
igorobm
brunort1
Zack2
Herovine Hl
Zack2
igorobm
capim22
Zack2
Zack2
Zack2
Zack2
joaozinpedrin
MadCow
eduardonog30
Zack2
Etoeu
junio132sj
Pedro432Joao
HugoTavares
Charlesoff
Charlesoff
Zack2
hendrick22
Cristhofer Marques
eduardonog30
AmazingDeliciano
Vorzoolvan
M4x
FelipeSouza11
Herovine Hl
joaozinpedrin
JulioWinchester
capim22
Zack2
Zack2
TIKO
capim22
EricknhYT
claudiano2020
TIKO
FelipeSouza11
claudiano2020
Zack2
Dom3000

Câmera Primeira pessoa / Movimentação

3 participantes

Ir para baixo

DÚVIDA Câmera Primeira pessoa / Movimentação

Mensagem por Pkneves Qui Nov 11, 2021 12:25 am

olá,  comecei a usar o script de câmera do tutorial porem quando adiciono o script de movimentação do personagem e dou play ... o personagem se movimenta corretamente para frente e para trás, porem quando giro  para esquerda ou para direita a câmera sai do eixo e o personagem quando vai andar para frente novamente vai em diagonal e não segue a visualização do eixo correto da câmera..

obs: to usando o sistema (Input.GetAxis) para movimentar o player

Pkneves
Iniciante
Iniciante

PONTOS : 221
REPUTAÇÃO : 0
Respeito as regras : Câmera Primeira pessoa / Movimentação WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Câmera Primeira pessoa / Movimentação

Mensagem por igorobm Qui Nov 11, 2021 1:37 pm

Quando vc mexe a câmara, vc quer q o personagem acompanhe ela ou e câmera livre que quando vc mexe a câmera o personagem fica parado ai quando vc anda o personagem anda para frente não na direção da câmera?


Recomento pegar esse codigo aqui -> https://github.com/ElmarTalibzade/OpenPlayerController
igorobm
igorobm
MembroAvançado

Masculino PONTOS : 1744
REPUTAÇÃO : 38
Idade : 24
Áreas de atuação : Discord -> IgorOBM#7974
Respeito as regras : Câmera Primeira pessoa / Movimentação WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Câmera Primeira pessoa / Movimentação

Mensagem por Pkneves Qui Nov 11, 2021 4:24 pm

@igorobm escreveu:Quando vc mexe a câmara, vc quer q o personagem acompanhe ela ou e câmera livre que quando vc mexe a câmera o personagem fica parado ai quando vc anda o personagem anda para frente não na direção da câmera?


Recomento pegar esse codigo aqui -> https://github.com/ElmarTalibzade/OpenPlayerController
Sistema de camera do marcus:
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 ();
      }
   }
}

Script base de movimento:

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

public class Movimentaçao : MonoBehaviour
{
   float _velocidade;
   float _girar;

   void Start () {
      _velocidade = 20.0F;
      _girar = 60.0F;
   }

   // Update is called once per frame
   void Update ()
   {
      float translate = (Input.GetAxis ("Vertical") * _velocidade) * Time.deltaTime;
      float rotate = (Input.GetAxis ("Horizontal") * _girar) * Time.deltaTime;

      transform.Translate (0, 0, translate);
      transform.Rotate (0, rotate, 0);
   }
}


os scripts que to usando no player e na câmera sao esses ai, to usando somente a opcao da camera de primeira pessoa do script de camera porem quando coloco a movimentacao do player e do player a camera buga... quando movimento o player pra frente e tento rotacionar a camera o player acaba indo na direçao diagonal como se a camera tivesse puxando os proprios eixos e o player puxando os eixos dele mesmos

Pkneves
Iniciante
Iniciante

PONTOS : 221
REPUTAÇÃO : 0
Respeito as regras : Câmera Primeira pessoa / Movimentação WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Câmera Primeira pessoa / Movimentação

Mensagem por Gamergame Qui Nov 18, 2021 10:37 am

No caso da camera tente usar a da primeira pessoa do Standart Asset do Unity pode ser que funcione

Gamergame
Iniciante
Iniciante

PONTOS : 63
REPUTAÇÃO : 0
Respeito as regras : Câmera Primeira pessoa / Movimentação WvDYdlf

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste fórum
Você não pode responder aos tópicos