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:
Brasileiros podem usar o Unity ADS?
Recarregador de arms
Como colocar arvores configuradas pelo terrain?
Duvida de camera
Personagem em 3ª pessoa
dúvida com variáveis
Câmera tipo Uncharted
Como verificar se a animação términou no animator
Auxilio para script de Câmera
Como Que faço Para Quando Eu Reentrar no game o PlayerPrefs restaurar os dados salvos?
Desenvolvimento de game PokeGen MS - Vídeo e informações
[RESOLVIDO] Meu Script Sumiu!
[TUTORIAL] Sistema COMPLETO de câmeras
Criar varias funções de mesmo nome em um script
[____ADMINISTRADOR OFFLINE____]
JUMP no estilo Subwey surf
Iluminação unity 5
Projeto - IMU, terror de sobrevivência em primeira pessoa (estilo silent hill)
Procuro membros para minha Equipe (Programadores, designers, etc)
Galera aki tenho um site com muitos models 3d
(Dúvida) Objeto receber posição do Raycast.
COMO COLOCO LANTERNA DE LED NO MEU JOGO DE BUS
DUVIDA SCRIPT DO MARCOS SELEÇÃO DE PERSONAGEM !
[____TÓPICO LIVRE____] FALE O QUE QUISER
SOBRE "IK" INVERSE KINEMATICS
Objeto ir para raycast
Duvida como instância um game objeto com Raycast
Problema Com Virtual Buttons Help me ;-;
GALERA PRECISO DE MODELADORES ,DESIGNER E PROGAMADORES PARA A MINHA EQUIPE DE UNITY 5
sobre build run no Android
e algum bug??
Alguém Para Dar Uma Avaliada no Meu Jogo de Terror :)
Tela rosa em jogos
Ajuda na script
[ajuda] câmera puxada
Duvida de script de controle
Não carrega próxima cena após finalizar cutscene
Duvida de script avançada
[TUTORIAL] Derrubar arvores e dropar madeiras dela
Vocês poderiam avaliar meu jogo para Android? (30mb)
Ajuda com elementos UI
Ajuda com AI
Multiplayer com photon
[PEDIDO] Tutorial de Multiplayer
procuro equipe para meu jogo de bus
Formação de equipe para jogo estilo Days Gone (Campanha , Multiplayer) , (já está em criação)
AJUDA SCRIPT LUZ UNITY 5.5
3 Armas mediavais gratis, criada por min
Alguém poderia me ajudar a entender esse script
[TUTORIAL] Entrar no carro estilo GTA
Folha de Palmeira (Modelo 3D)
DESLIGAR E LIGAR O CARRO
Procuro programadores para meu jogo
Duvida sobre pulo
unity pack
PROCURO EQUIPE PARA DESENVOLVER UM GAME NO ESTILO BOMBERMAN (ANTIGOS) ENTRAR EM CONTATO
Formação de equipes Bus Brasil
[JOGO] Dead Age(Em desenvolvimento).
Vcs ja publicaram algum game ou aplicativo na playstore?
Ajuda para Criar Um Mapa que se passa em uma escola brasileira
[TUTORIAL] Sistema de inventário Sobrevivência
Novo Modelo de Espada Blender
[JOGO] The Park Life [DEMO DISPONIVEL]
Quero entrar para uma equipe.
Duvida sobre instantiate
Duvida passar de fase com objetos
[TUTORIAL] Como fazer uma Barra de Loading na Unity 5
[TUTORIAL] Alterar a velocidade de queda de um RigidBody
jogo 3D como fazer o personagem...
Problema ao atualizar o Unity 3D
[TUTORIAL] Camera orbital com zoom (scroll)
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Dúvida animation
WhellJoint 2D
Asset para estudo
Hoje à(s) 1:58 pm
Hoje à(s) 1:25 pm
Hoje à(s) 1:19 pm
Hoje à(s) 1:13 pm
Hoje à(s) 1:08 pm
Hoje à(s) 12:59 pm
Hoje à(s) 12:23 pm
Hoje à(s) 12:22 pm
Hoje à(s) 12:17 pm
Hoje à(s) 11:50 am
Hoje à(s) 10:10 am
Hoje à(s) 7:46 am
Hoje à(s) 4:58 am
Hoje à(s) 12:10 am
Hoje à(s) 12:06 am
Ontem à(s) 10:04 pm
Ontem à(s) 8:57 pm
Ontem à(s) 8:38 pm
Ontem à(s) 8:17 pm
Ontem à(s) 6:54 pm
Ontem à(s) 5:21 pm
Ontem à(s) 5:13 pm
Ontem à(s) 4:33 pm
Ontem à(s) 2:17 pm
Ontem à(s) 1:19 pm
Ontem à(s) 12:54 pm
Ontem à(s) 11:57 am
Ontem à(s) 10:16 am
Ontem à(s) 7:54 am
Ontem à(s) 7:46 am
Seg Jan 16, 2017 9:06 pm
Seg Jan 16, 2017 7:52 pm
Seg Jan 16, 2017 6:54 pm
Seg Jan 16, 2017 5:21 pm
Seg Jan 16, 2017 5:12 pm
Seg Jan 16, 2017 5:11 pm
Seg Jan 16, 2017 5:11 pm
Seg Jan 16, 2017 5:10 pm
Seg Jan 16, 2017 5:05 pm
Seg Jan 16, 2017 5:03 pm
Seg Jan 16, 2017 3:01 pm
Seg Jan 16, 2017 2:02 pm
Seg Jan 16, 2017 12:02 pm
Seg Jan 16, 2017 10:53 am
Dom Jan 15, 2017 10:14 pm
Dom Jan 15, 2017 6:31 pm
Dom Jan 15, 2017 6:03 pm
Dom Jan 15, 2017 5:54 pm
Dom Jan 15, 2017 5:17 pm
Dom Jan 15, 2017 4:30 pm
Dom Jan 15, 2017 4:24 pm
Dom Jan 15, 2017 4:16 pm
Dom Jan 15, 2017 2:52 pm
Dom Jan 15, 2017 9:40 am
Dom Jan 15, 2017 9:06 am
Dom Jan 15, 2017 12:01 am
Sab Jan 14, 2017 8:06 pm
Sab Jan 14, 2017 5:53 pm
Sab Jan 14, 2017 10:38 am
Sab Jan 14, 2017 9:06 am
Sab Jan 14, 2017 7:37 am
Sab Jan 14, 2017 7:25 am
Sab Jan 14, 2017 7:22 am
Sab Jan 14, 2017 7:21 am
Sex Jan 13, 2017 11:49 pm
Sex Jan 13, 2017 10:21 pm
Sex Jan 13, 2017 9:13 pm
Sex Jan 13, 2017 7:41 pm
Sex Jan 13, 2017 7:35 pm
Sex Jan 13, 2017 7:29 pm
Sex Jan 13, 2017 7:26 pm
Sex Jan 13, 2017 7:14 pm
Sex Jan 13, 2017 7:11 pm
Sex Jan 13, 2017 7:05 pm
Sex Jan 13, 2017 7:02 pm
Kenji Haruno
Callyde Jr
AndyShow
AndyShow
AndyShow
AndyShow
John Rambo
John Rambo
John Rambo
LegendGames
MonsaM
AndyShow
MonsaM
artplayer
John Rambo
rafaelllsd
John Rambo
mrariel2011
dstaroski
MonsaM
rafaelllsd
John Rambo
LuizFixa3D
joabr
XavezZ
lucasfera15
R R
anizioNoob
dstaroski
dstaroski
John Rambo
dstaroski
Igor Melim
MarcosSchultz
MarcosSchultz
MarcosSchultz
joabr
MarcosSchultz
MarcosSchultz
marcos4503
sabbath
Callyde Jr
artplayer
Chilinger
Manawydan
Willian Wii
Pedro Canassa Garcia
MateusWTP
Willian Wii
tom ramber
RenanMSV
tom ramber
Willian Wii
AndyShow
dstaroski
Kaiky leandro
Kaiky leandro
ismarspn
Willian Wii
GamersBR
hen000
Weverton Borges da Silva
Weverton Borges da Silva
hen000
John Rambo
Manawydan
bymaxbig
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz

[TUTORIAL] TRAVAR A CAMERA DO PERSONAGEM (FirstPersonController)

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

TUTORIAL [TUTORIAL] TRAVAR A CAMERA DO PERSONAGEM (FirstPersonController)

Mensagem por MarcosSchultz em Sex Set 19, 2014 1:35 am

ATENÇÃO, A PRIMEIRA PARTE DO TUTORIAL SERVE NA UNITY 3 OU UNITY 4... SE VOCÊ JÁ ESTIVER USANDO A UNITY 5, UTILIZE OS SCRIPTS DA SEGUNDA PARTE DO TUTORIAL, QUE SÃO ESPECIFICAMENTE DIRECIONADOS A UNITY 5, PARA EVITAR ERROS Very Happy


Então, já fazia temmmpos que eu tinha esta duvida más ninguém deste forum sabia a resposta, e passados 4 meses retomei o assunto, e com muita facilidade consegui fazer um simples sistema de pause que trava a camera...

DETALHE, ESTE TUTO SERVE PARA QUEM USA O 'FirstPersonController' o que é o caso de 99% das pessoas...

enfim, no seu Player e na sua camera existe um script em C# chamado MouseLock... é o mesmo script que vai em ambos... o que está na sua camera controla o movimento dela em Y e a rotação em X, dela mesma, e o que está no player controla a rotação da camera em X em relação ao player, de forma que possa alterar a rotação do player também... e para conseguir "travar" a camera de forma que afete os 2 objetos, você precisa alterar o script MouseLook que está na sua camera, ou no player ( é o mesmo ) para o conteúdo que está neste script:

Código:

using UnityEngine;
using System.Collections;
[AddComponentMenu("Camera-Control/Mouse Look")]
public class MouseLook : MonoBehaviour {
public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
public RotationAxes axes = RotationAxes.MouseXAndY;
public float sensitivityX = 15F;
public float sensitivityY = 15F;
public float minimumX = -360F;
public float maximumX = 360F;
public float minimumY = -60F;
public float maximumY = 60F;
float rotationY = 0F;
public static bool condPause;
void Update (){
if (condPause == false) {         // apenas adicionei uma condicão para o funcionamento do script
if (axes == RotationAxes.MouseXAndY) {
float rotationX = transform.localEulerAngles.y + Input.GetAxis ("Mouse X") * sensitivityX;
rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3 (-rotationY, rotationX, 0);
} else if (axes == RotationAxes.MouseX) {
transform.Rotate (0, Input.GetAxis ("Mouse X") * sensitivityX, 0);
} else {
rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3 (-rotationY, transform.localEulerAngles.y, 0);
}
}
}
void Start (){
if (rigidbody)
rigidbody.freezeRotation = true;
condPause = false;
}
}


salve o script, agora crie um novo script em C# com o nome "PAUSE" e coloque este codigo nele

Código:

using UnityEngine;
using System.Collections;
public class PAUSE : MonoBehaviour {
void Update () {
if (Input.GetKey (KeyCode.P)) {
if( MouseLook.condPause == false){
MouseLook.condPause = true;
}
else
MouseLook.condPause = false;
}
}
}

depois disso, jogue este script no seu player, e pronto... toda vez que você apertar "P" a camera trava, se apertar "P" denovo a camera volta ao normal...

@@@@@


SE VOCÊ QUISER UM SCRIPT QUE PAUSE SEU JOGO TAMBÉM, USE ESTE:

Código:

using UnityEngine;
using System.Collections;
public class PAUSE : MonoBehaviour {
void Start () {
Time.timeScale = 1;
}
void Update () {
if (Input.GetKeyDown (KeyCode.P)) {
if( MouseLook.condPause == false){
MouseLook.condPause = true;
}
else
MouseLook.condPause = false;
}
if (MouseLook.condPause == true) {
Time.timeScale = 0;
}
if (MouseLook.condPause == false) {
Time.timeScale = 1;
}
}
}


use este script no lugar do script "PAUSE" e ele irá fazer a mesma coisa com a camera, só com o efeito adicional de "travar o tempo" ou seja, pausar.





SE VOCÊ ESTIVER USANDO A UNITY 5:






Altere o seu script " MouseLook " para este código a seguir:

Código:
using UnityEngine;
using System.Collections;
[AddComponentMenu("Camera-Control/Mouse Look")]
public class MouseLook : MonoBehaviour {
 public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
 public RotationAxes axes = RotationAxes.MouseXAndY;
 public float sensitivityX = 15F;
 public float sensitivityY = 15F;
 public float minimumX = -360F;
 public float maximumX = 360F;
 public float minimumY = -60F;
 public float maximumY = 60F;
 public static bool condPause;
 float rotationY = 0F;
 void Update (){
 if (condPause == false) {
 if (axes == RotationAxes.MouseXAndY) {
 float rotationX = transform.localEulerAngles.y + Input.GetAxis ("Mouse X") * sensitivityX;
 rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
 rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
 transform.localEulerAngles = new Vector3 (-rotationY, rotationX, 0);
 } else if (axes == RotationAxes.MouseX) {
 transform.Rotate (0, Input.GetAxis ("Mouse X") * sensitivityX, 0);
 } else {
 rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
 rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
 transform.localEulerAngles = new Vector3 (-rotationY, transform.localEulerAngles.y, 0);
 }
 }
 }
 void Start (){
 if (GetComponent<Rigidbody>())
 GetComponent<Rigidbody>().freezeRotation = true;
 }
}


salve o script, agora crie um novo script em C# com o nome "PAUSE" e coloque este codigo nele

Código:
using UnityEngine;
using System.Collections;
public class PAUSE : MonoBehaviour {
 void Update () {
 if (Input.GetKey (KeyCode.P)) {
 if( MouseLook.condPause == false){
 MouseLook.condPause = true;
 }
 else
 MouseLook.condPause = false;
 }
 }
}


depois disso, jogue este script no seu player, e pronto... toda vez que você apertar "P" a camera trava, se apertar "P" denovo a camera volta ao normal...

@@@@@


SE VOCÊ QUISER UM SCRIPT QUE PAUSE SEU JOGO TAMBÉM, USE ESTE:

Código:
using UnityEngine;
using System.Collections;
public class PAUSE : MonoBehaviour {
 void Start () {
 Time.timeScale = 1;
 }
 void Update () {
 if (Input.GetKeyDown (KeyCode.P)) {
 if( MouseLook.condPause == false){
 MouseLook.condPause = true;
 }
 else
 MouseLook.condPause = false;
 }
 if (MouseLook.condPause == true) {
 Time.timeScale = 0;
 }
 if (MouseLook.condPause == false) {
 Time.timeScale = 1;
 }
 }
}


use este script no lugar do script "PAUSE" e ele irá fazer a mesma coisa com a camera, só com o efeito adicional de "travar o tempo" ou seja, pausar.


Última edição por MarcosSchultz em Ter Jun 07, 2016 9:30 pm, editado 1 vez(es)

MarcosSchultz
Administrador

Masculino PONTOS : 7526
REPUTAÇÃO : 995
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] TRAVAR A CAMERA DO PERSONAGEM (FirstPersonController)

Mensagem por Deiverson em Qua Abr 29, 2015 2:39 pm

Obrigado por compartilhar o codigo que funciona na Unity 5 tambem, estava com alguns problemas em tutoriais por causa dessas modificações da Unity 5 em relação a 4. Wink

Deiverson
Iniciante
Iniciante

PONTOS : 650
REPUTAÇÃO : 3
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] TRAVAR A CAMERA DO PERSONAGEM (FirstPersonController)

Mensagem por MarcosSchultz em Qua Abr 29, 2015 3:31 pm

caso esteja utilizando o novo FPS Controller pode usar este metodo:



MarcosSchultz
Administrador

Masculino PONTOS : 7526
REPUTAÇÃO : 995
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] TRAVAR A CAMERA DO PERSONAGEM (FirstPersonController)

Mensagem por poliver216 em Ter Jul 12, 2016 6:26 pm

Eu estava com esta dúvida de como travar a câmera em jogos fps quando for pausado o jogo... Aí apenas marquei a opção Smooth que está dentro do script do mouse Look e funcionou... será que não dará problemas no ao gerar o jogo, sem fazer todos estes passos no vídeo acima?

poliver216
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] TRAVAR A CAMERA DO PERSONAGEM (FirstPersonController)

Mensagem por MarcosSchultz em Qua Jul 13, 2016 6:53 pm

poliver216 escreveu:Eu estava com esta dúvida de como travar a câmera em jogos fps quando for pausado o jogo... Aí apenas marquei a opção Smooth que está dentro do script do mouse Look e funcionou... será que não dará problemas no ao gerar o jogo, sem fazer todos estes passos no vídeo acima?

Tem que seguir os passos para travar a camera O.o

O Smooth apenas causa uma "lentião", como se fosse uma suavização no movimento da camera, nada além disso.

MarcosSchultz
Administrador

Masculino PONTOS : 7526
REPUTAÇÃO : 995
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] TRAVAR A CAMERA DO PERSONAGEM (FirstPersonController)

Mensagem por poliver216 em Sex Jul 15, 2016 10:24 am

Obrigado pela rapidez da resposta, e peço desculpas por não ter sido muito específico na minha pergunta ou se estou errado, mas é que fiquei curioso com esta situação. O que eu queria ter perguntado na verdade, é que quando já estiver no pause do jogo, quando o time.timescale está igual 0. Eu testei com a opção Smooth desativada, pressionei Esc para pausar, o jogo pausou, mas a câmera do FPS continuava se movimentando, aí testei com a opção Smooth ativa, fiz o mesmo procedimento, só que desta vez a câmera também paralizou com o jogo. Será que pode ser porque da algum conflito entre os códigos? pois o smooth também utiliza a classe Time. Ou se zerando a variavel timeScale pode fazer o código de suavização do movimento da câmera parar com a opção smooth ativa, travando também a câmera?

Desde já agradeço Marcos, você me ajuda muito com este fórum e os tutoriais... abrçs

poliver216
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] TRAVAR A CAMERA DO PERSONAGEM (FirstPersonController)

Mensagem por Maloke em Sex Jul 15, 2016 11:53 am

poliver216 escreveu:Será que pode ser porque da algum conflito entre os códigos? pois o smooth também utiliza a classe Time. Ou se zerando a variavel timeScale pode fazer o código de suavização do movimento da câmera parar com a opção smooth ativa, travando também a câmera?

Tanto com o Smooth ligado ou não, os códigos de movimento estão calculando e mandando a camera se mover a cada frame!
A única diferença é que como o smooth usa o tempo no calculo, com o timeScale em 0 ele acaba multiplicando tudo por zero.

Seguindo os passos do vídeo vc consegue travar a camera quando quiser/precisar, independentemente do jogo estar pausado ou não!

A principio não teria problema usar o smooth para travar, mas pode acontecer sim conflitos de funcionalidades mais para frente...
Por exemplo, não daria para fazer o player estar paralisado/amarrado e o resto do jogo continuar rodando normal, mas com o script do video seria possível fazer isso a qualquer momento!

Maloke
Programador

Masculino PONTOS : 214
REPUTAÇÃO : 8
Áreas de atuação : C# Unity
Respeito as regras :

Ver perfil do usuário http://bit.ly/MalokeGames

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