0% acharam este documento útil (0 voto)
18 visualizações20 páginas

Revisão Jogos II

O documento fornece uma série de códigos e conceitos fundamentais para o desenvolvimento de jogos no Unity, incluindo o bloqueio do cursor, controle de movimento, manipulação de animações e uso de variáveis como Time.deltaTime. Também aborda termos técnicos como Quaternion, Lerp e Slerp, além de explicar a diferença entre métodos de atualização como Update, FixedUpdate e LateUpdate. Por fim, discute a importância de Scriptable Objects e do sistema de navegação NavMesh para a criação de jogos eficientes.

Enviado por

alexuss367
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
18 visualizações20 páginas

Revisão Jogos II

O documento fornece uma série de códigos e conceitos fundamentais para o desenvolvimento de jogos no Unity, incluindo o bloqueio do cursor, controle de movimento, manipulação de animações e uso de variáveis como Time.deltaTime. Também aborda termos técnicos como Quaternion, Lerp e Slerp, além de explicar a diferença entre métodos de atualização como Update, FixedUpdate e LateUpdate. Por fim, discute a importância de Scriptable Objects e do sistema de navegação NavMesh para a criação de jogos eficientes.

Enviado por

alexuss367
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Revisão

Códigos para lembrar


Cursor.lockState = CursorLockMode.Locked;

- Esse comando no Unity bloqueia o cursor do mouse no centro da tela,


impedindo que ele se mova para fora da janela do jogo.

Outros relacionados :

CursorLockMode.None → O cursor é livre para se mover.

CursorLockMode.Confined → O cursor fica preso dentro da janela do jogo, mas


pode se mover dentro dela.
Códigos para lembrar
Input.GetAxis("Mouse X") (Y) Ou GetKey

Captura o movimento do mouse no eixo X e multiplica pela velocidade de rotação


para rotacionar a câmera ou personagem
Códigos para lembrar
[SerializeField]

Atributo permite que uma variável privada apareça no Inspector do Unity, sem
precisar torná-la pública.

Isso ajuda a manter boas práticas de encapsulamento enquanto permite ajustes no


editor.
Códigos para lembrar
private void OnTriggerEnter(Collider other) {
other.transform.SetParent(transform); }

Esse código faz com que um objeto que entre no Trigger seja anexado ao objeto
pai.

private void OnTriggerExit(Collider other) {


other.transform.SetParent(null); }

Aqui, o objeto se desprende ao sair da área do Trigger, permitindo que ele se mova
independentemente novamente.

private void OnTriggerEnter(Collider other){


if (other.CompareTag("Player")) {

Esse código verifica se um objeto com a tag "Player" entrou na área do Trigger
Códigos para lembrar
elapsedPercentage

Essa variável geralmente representa o progresso de uma interpolação, variando


entre 0 (início) e 1 (fim). É usada em cálculos de Lerp e Slerp para suavizar
animações e transições.
Códigos para lembrar
Time.timeScale

Controla a velocidade do tempo no jogo.


Time.timeScale = 0f; → Pausa o jogo.
Time.timeScale = 2f; → Dobra a velocidade do tempo.
Códigos para lembrar
Time.deltaTime

Multiplicar um valor por Time.deltaTime garante que a ação ocorra de forma


uniforme, independente do FPS.

EX: float move = speed * Time.deltaTime;


Códigos para lembrar
Physics.gravity
Representa a gravidade global do Unity.
Códigos para lembrar
controller.Move
Controla o movimento de um personagem usando CharacterController.
Diferente de Rigidbody, ele não usa física para se mover.
Códigos para lembrar
Physics.OverlapSphere
Verifica quais objetos estão dentro de uma esfera invisível. Útil para detectar
inimigos próximos.

private void OnDrawGizmosSelected(){


Gizmos.color = Color.yellow;
Gizmos.DrawWireSphere(transform.position, interactionRange); }

Desenha gizmos no editor do Unity para visualização de alcance.


Códigos para lembrar
Animate.SetBool("isGrounded", controller.isGrounded);
Define um parâmetro no Animator baseado no estado do personagem. Se
controller.isGrounded for verdadeiro, ativa a animação correspondente.
Termos mais difíceis
Quaternion
Quaternion é uma estrutura matemática usada no Unity para representar rotações em 3D.
Ele é preferido em relação aos ângulos de Euler porque evita o problema do Gimbal Lock.

O que é Gimbal Lock?


O Gimbal Lock ocorre quando duas rotações se sobrepõem, eliminando um grau de
liberdade e tornando a rotação imprevisível. Isso acontece quando usamos ângulos de
Euler (Vector3(x, y, z)), pois eles rotacionam os eixos separadamente.
Em vez de usar três valores (x, y, z), Quaternion usa quatro (x, y, z, w).
As rotações são armazenadas como uma transformação no espaço tridimensional,
permitindo interpolação suave.
Termos mais difíceis
Quaternion.Euler

Quaternion.Euler(x, y, z) converte um vetor de ângulos de Euler para um


Quaternion. Como o Unity não permite modificar diretamente a rotação com um
Vector3, usamos esse método para converter os valores.
Útil para definir rotações manualmente sem precisar manipular quaternions
diretamente.

Quaternion.Slerp

Quaternion.Slerp (Spherical Linear Interpolation) interpola suavemente entre duas


rotações, garantindo uma transição mais realista.
Termos mais difíceis
Lerp (Linear Interpolation)
Lerp (Linear Interpolation) interpola linearmente entre dois valores com base em
um fator t (entre 0 e 1). Isso suaviza a movimentação do objeto.

Slerp (Spherical Linear Interpolation)


Slerp é a versão esférica do Lerp para rotações. Ele interpola entre dois quaternions,
garantindo suavidade na transição.Isso faz com que a rotação aconteça em um
arco, em vez de um movimento linear.

Diferença entre Lerp e Slerp


Lerp (Linear Interpolation) cria uma transição reta entre dois pontos, mas não é
ideal para rotações.

Slerp faz uma interpolação esférica, que mantém a velocidade de rotação


constante e natural.
Termos mais difíceis
FixedUpdate, Update e LateUpdate
Diferenças:
Update() → Chamado a cada frame. Ideal para lógica de jogo e entradas do jogador.

FixedUpdate() → Chamado a intervalos fixos. Usado para cálculos de física


(Rigidbody).

LateUpdate() → Chamado após Update(). Usado para ajustes finais, como seguir um
objeto.
Termos mais difíceis
O NavMesh (Navigation Mesh) é um sistema de navegação integrado ao Unity que
permite que personagens e NPCs se movam de maneira inteligente dentro de um
ambiente 3D. Ele calcula automaticamente caminhos, evita obstáculos e pode ser
configurado para diferentes tipos de terrenos e agentes.

O NavMesh é uma malha de navegação gerada com base na geometria da cena,


permitindo que agentes naveguem pelo ambiente de forma (quase) eficiente.
Além disso é responsável por controlar a movimentação dos personagens no
NavMesh, fornecendo funcionalidades como desvio de obstáculos e ajuste
automático de velocidade.
Termos mais difíceis
Scriptable Objects são uma maneira de armazenar e gerenciar dados sem
depender de GameObjects na cena. Eles são objetos serializáveis que podem ser
criados como ativos (Assets) no projeto e reutilizados em diferentes partes do jogo.

Diferente de MonoBehaviour, os ScriptableObjects não precisam estar anexados a


um GameObject para existirem. Isso os torna ideais para armazenar dados
persistentes e compartilháveis, como estatísticas de personagens, configurações de
jogo ou bancos de dados de itens.

Scriptable Objects permitem a criação de dados que podem ser compartilhados


entre diferentes cenas e objetos no Unity, sem a necessidade de instanciá-los
diretamente na cena pois são armazenados como assets no projeto, o que os torna
ideais para configurar informações que precisam ser acessíveis globalmente, como
itens de inventário ou configurações de personagens.
Interfaces
O Canvas é o elemento raiz da UI no Unity. Ele contém todos os elementos gráficos
(botões, texto, imagens, sliders etc.).

O EventSystem gerencia eventos de UI como cliques e interações.

Componentes principais:
EventSystem → Controla eventos da interface.
StandaloneInputModule → Captura entrada de mouse/teclado.
GraphicRaycaster → Permite que elementos de UI detectem cliques.

O Event System no Unity gerencia entradas de usuário, como cliques e toques, e


direciona esses eventos para os elementos UI apropriados, como botões e sliders.
Outras coisas
Animator
O Animator controla animações no Unity. Ele usa um Animator Controller para
gerenciar transições e estados de animação.

Layers
São usadas para categorizar objetos e otimizar interações como:

Filtragem de Câmeras → Uma câmera pode renderizar apenas objetos de certas


camadas.
Detecção de Colisões → Podemos definir quais camadas colidem entre si.
Raycasts → Podemos fazer um Raycast ignorar objetos de certas camadas.

Layers ajudam a organizar objetos e otimizar interações como colisões e


renderização

Você também pode gostar