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:
Jogo Mobile - Ultimate Flight Simulator - Real World SDK
Unity - FPS e CPU ???
Usar microfone na Unity
Jogo ficando escuro quando faço a Build pela cena menu
Dúvida sobre movimentação do personagem
[RESOLVIDO] ACESSAR SCRIPT DE OUTRO GAMEOBJECT
Para eu ter shader em meu projeto eu tenho que usar o hdrp ou o 3d padrao?
Rotate Camera Mobile
Sou modelador 3d (!!! Arquitetonico!!!) Disponivel !!!!!!
Preciso de alguém que saiba programação e Raycast
Servidor/cliente usando sockets
Assets carregados com addressables causando erro na versão "buildada"
Jogo multiplayer com salas - não vai para o lobby
Texto - Não escreve no 'play'. Clica mais não digita.
Error Unity Vulkan - Out of memory! (allocating memory for image)
Câmera Não esta renderizando na segunda janela.
Movimento da Câmera No Android
[RESOLVIDO] - Unity não está mais funcionando o "Build and Run"
Precisa de modelador com ou sem experiência
Duvida com "mesclagem" de animação
[TUTORIAL] Como fazer uma gota de água na Unity
Missoes Aparecerem aleatoriamente do nada
Dúvida pafra IOS
botoes não esta funcionando corretamente nem a fisica?
Duvida com NavMeshAgent
COMO AUMENTAR E DIMINUÍ A SENSIBILIDADE DO TOQUE POR CÓDICO (MOBILE)
A Licença da Unity só funciona se eu tiver Internet
Problema com OnTriggerEnter
Transparência ao colidir
bool para evitar de salvar frames repetido
Unity - Transições no AnimatorController rodando errado
problemas com "wall Jump" , atribuir força ao eixo X
Meu Jogo ja Esta Pronto! EXPERIMENTEM!!
JOSTICK NAO SE MOVE
botoes para mobile
ERRO NO SCRIPT FOME E SEDE ETC
CORTAR ARVORES E DROPAR
Configurar sistema
Unity - Sugestões da Loja
Standard Assets para UNITY 5 em ".unitypackage"
Problema com o Shader
[TUTORIAL] Sistema Simples de Falas
Velocímetro Bugado
Como faço para alinhar uma textura na posição absoluta do mundo no shader
Sobre o Tutorial de Cortar Arvores
Erro Mov Player
[TUTORIAL] VELOCIMETRO DE PONTEIRO
[TUTORIAL] Ligar/Desligar luz por Interruptor
Sistema de lampadas
Conversor de movimento do Unity para o MMD [Ajuda]
Script de configurações não esta funcionando corretamente
CAMERA BUGANDO NA TRANSIÇÃO DE CENA
Volante girando errado [AJUDA]
Novo Asset Sistema de Portas e Chaves
ERRO NAS RODAS DO CARRO
[TUTORIAL] Sistema de câmera em primeira pessoa SIMPLES
AJUDA PARA UM SISTEMA DE CHECKPOINT
Jogo offline com Loja?
Unity -TextMeshProUGUI- 1 das coisas q estão deixando a scene lenta p abrir
Detectar quando o animation curve chega no final
Problema com compilação para Android na Unity 2019.4.35
Aplicativo para IOS
Árvores feitas na Unity
RECRUTAMENTO WAR CORE FPS
[RESOLVIDO] Unity - Scrollbar não funciona
[TUTORIAL] AI que cria scripts para você, inclusive scripts para Unity !!!!
[RESOLVIDO] Animando Image na Unity não funciona
Hospedar um jogo multiplay na itch.io
Script para detetectar o movimento do player
Alguém ajuda com um erro por favor? PSDImporter.cs
[RESOLVIDO] - Unity - Rotação da Câmera - Mathf.Clamp não funciona
Alterar textura .unity3d
Comportamento do movimento do inimigo. Sair do caminho e Fugir
Procuro uma equipe
Ajuda Com Sala de Jogo Multiplayer
COMO FAZER A PORTA ABRIR SÓ EMPURRANDO ELA COM O PLAYER?
Visual Studio - Vend os Scripts na Aba "Modo de Exibição de Classe" soltos
app fica fechendo após mobile notification
[RESOLVIDO] Controlar dois player dentro de um jogo multiplay usando mirror
Unity - O Jogo fecha quando vai abrir a Scene
[TUTORIAL] Mudando material
Procuro programador Unity para jogo 2D
AJUDA REALISTIC CAR CONTROLLER
Chama para isqueiro
[RESOLVIDO] Ajuda para destruir objeto
Unity - Sistema de Giro da Tela - Ajuda pfv!
Unity - Touch na Tela do Celular
Dawn Of Hell - Horror Game BR (2022-2023)
Unity - Jogo online ou offline?
ANIMAÇÃO INIMIGO ESTÁ INDO PRA TUDO QUANTO É LADO
[RESOLVIDO] Erro de Script no Android
Bundle Assets, Resources, e Addressables
Jogo online (qual a melhor opção?)
Dúvida sobre como criar o inimigo IA!
Unity dando pause no jogo a cada 4 segundos
bom dia amigos eu sou meio lego nos scripts será que alguem pode me ajudar
JOGO "CHALLENGE" FINALIZADO E DISPONÍVEL PARA BAIXAR.
error CS0246
[TUTORIAL]Como Chamar Um Método Usando Uma String como Parametro
Ontem à(s) 2:41 pm
Ter maio 30, 2023 7:28 pm
Ter maio 30, 2023 6:04 am
Seg maio 29, 2023 7:53 pm
Sáb maio 27, 2023 3:11 pm
Sex maio 26, 2023 4:59 pm
Sex maio 26, 2023 11:27 am
Qui maio 25, 2023 10:33 am
Sáb maio 20, 2023 12:25 pm
Ter maio 16, 2023 5:43 pm
Ter maio 16, 2023 5:42 pm
Ter maio 09, 2023 7:42 pm
Seg maio 08, 2023 7:13 am
Seg maio 08, 2023 6:38 am
Seg maio 08, 2023 1:49 am
Sáb maio 06, 2023 11:44 pm
Sáb maio 06, 2023 6:42 pm
Sáb maio 06, 2023 1:35 am
Qua maio 03, 2023 12:32 pm
Seg maio 01, 2023 8:51 pm
Seg maio 01, 2023 12:29 pm
Dom Abr 30, 2023 8:49 pm
Dom Abr 30, 2023 5:06 pm
Sáb Abr 29, 2023 4:05 pm
Qui Abr 27, 2023 4:39 pm
Qui Abr 27, 2023 12:40 am
Ter Abr 25, 2023 5:33 pm
Ter Abr 25, 2023 10:23 am
Dom Abr 23, 2023 12:11 am
Sáb Abr 22, 2023 4:27 am
Sex Abr 21, 2023 11:38 pm
Sex Abr 21, 2023 10:21 pm
Qui Abr 20, 2023 4:57 pm
Qui Abr 20, 2023 12:28 pm
Qua Abr 19, 2023 3:03 pm
Qua Abr 19, 2023 1:52 pm
Qua Abr 19, 2023 11:59 am
Qua Abr 19, 2023 11:54 am
Sáb Abr 15, 2023 8:13 pm
Sex Abr 14, 2023 7:43 am
Qui Abr 13, 2023 4:36 pm
Qui Abr 13, 2023 4:36 pm
Qua Abr 12, 2023 6:05 pm
Ter Abr 11, 2023 6:22 pm
Seg Abr 10, 2023 7:33 pm
Seg Abr 10, 2023 3:25 pm
Dom Abr 09, 2023 8:53 pm
Dom Abr 09, 2023 7:26 pm
Dom Abr 09, 2023 5:59 pm
Dom Abr 09, 2023 12:06 am
Sex Abr 07, 2023 7:24 pm
Qui Abr 06, 2023 6:45 am
Qua Abr 05, 2023 9:24 am
Ter Abr 04, 2023 4:55 pm
Ter Abr 04, 2023 1:00 pm
Dom Abr 02, 2023 11:52 pm
Sex Mar 31, 2023 12:50 pm
Sex Mar 31, 2023 11:03 am
Sex Mar 31, 2023 10:05 am
Qua Mar 29, 2023 7:48 pm
Ter Mar 28, 2023 10:50 pm
Ter Mar 28, 2023 9:19 am
Seg Mar 27, 2023 10:16 am
Dom Mar 26, 2023 7:39 pm
Qui Mar 23, 2023 4:52 pm
Ter Mar 21, 2023 11:20 pm
Ter Mar 21, 2023 8:52 pm
Sáb Mar 18, 2023 8:41 pm
Sex Mar 17, 2023 3:12 pm
Sex Mar 17, 2023 1:24 pm
Seg Mar 13, 2023 10:45 pm
Seg Mar 13, 2023 9:48 pm
Seg Mar 13, 2023 8:24 pm
Seg Mar 13, 2023 7:17 pm
Dom Mar 12, 2023 10:27 pm
Dom Mar 12, 2023 7:22 pm
Sex Mar 10, 2023 8:26 pm
Sex Mar 10, 2023 8:00 pm
Qui Mar 09, 2023 9:05 am
Ter Mar 07, 2023 2:27 pm
Sex Mar 03, 2023 6:47 pm
Sex Mar 03, 2023 12:01 am
Qui Mar 02, 2023 4:00 pm
Qui Mar 02, 2023 1:35 pm
Qua Mar 01, 2023 5:47 pm
Qua Mar 01, 2023 2:11 am
Seg Fev 27, 2023 11:08 pm
Seg Fev 27, 2023 7:19 pm
Dom Fev 26, 2023 11:49 pm
Dom Fev 26, 2023 8:29 pm
Dom Fev 26, 2023 7:47 pm
Dom Fev 26, 2023 7:46 pm
Dom Fev 26, 2023 6:08 pm
Sáb Fev 25, 2023 8:16 pm
Seg Fev 13, 2023 7:02 pm
Seg Fev 13, 2023 2:44 am
Dom Fev 12, 2023 9:57 pm
Dom Fev 12, 2023 2:19 pm
Sáb Fev 11, 2023 1:01 pm



































































































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
Avançado
Avançado

PONTOS : 845
REPUTAÇÃO : 10
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 : 2291
REPUTAÇÃO : 38
Idade : 26
Á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
Avançado
Avançado

PONTOS : 845
REPUTAÇÃO : 10
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
Membro
Membro

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

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos