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

Controle de Jogador em Unity: Arma e Esfera

O código define um controlador de jogador em Unity que gerencia a interação com uma arma e uma esfera. O jogador pode desbloquear a arma ao interagir com um item no chão, equipá-la e disparar a esfera, que pode ser fixada em objetos específicos. O controlador também lida com animações para diferentes estados do jogador, como disparo, idle e movimento.
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 DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
8 visualizações5 páginas

Controle de Jogador em Unity: Arma e Esfera

O código define um controlador de jogador em Unity que gerencia a interação com uma arma e uma esfera. O jogador pode desbloquear a arma ao interagir com um item no chão, equipá-la e disparar a esfera, que pode ser fixada em objetos específicos. O controlador também lida com animações para diferentes estados do jogador, como disparo, idle e movimento.
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 DOCX, PDF, TXT ou leia on-line no Scribd

using UnityEngine;

public class PlayerController : MonoBehaviour

public GameObject arma; // Objeto da arma

public GameObject esfera; // Objeto da esfera

public float velocidadeEsfera = 10f; // Velocidade de movimento da esfera

public float distanciaMaximaEsfera = 10f; // Distância máxima para o raycast da esfera

public GameObject objetoC; // Objeto que terá a esfera fixada

public GameObject objetoD; // Objeto que define a nova aparência

public string nomeAnimacaoDisparo = "Disparo"; // Nome da animação de disparo

public string nomeAnimacaoIdle = "Idle"; // Nome da animação de idle

public string nomeAnimacaoAndando = "Andando"; // Nome da animação de andando

public float distanciaInteracao = 2f; // Distância para interagir com o item no chão

private bool armaDesbloqueada = false; // Variável para controlar se a arma está


desbloqueada

private bool armaEquipada = false; // Variável para controlar se a arma está equipada

private Vector3 posicaoOriginalEsfera; // Posição original da esfera

private Animator animadorArma; // Componente Animator da arma

private GameObject itemNoChao; // Referência ao item no chão para desbloqueio

void Start()

posicaoOriginalEsfera = [Link]; // Guarda a posição original da esfera

[Link](false); // Desativa a arma no início do jogo

animadorArma = [Link]<Animator>(); // Obtém o componente Animator


da arma

void Update()

{
// Verifica se o jogador interagiu com o item no chão

if (itemNoChao != null && [Link]([Link],


[Link]) <= distanciaInteracao)

armaDesbloqueada = true;

Destroy(itemNoChao); // Remove o item do chão

itemNoChao = null;

// Equipa a arma se a tecla "2" for pressionada e a arma estiver desbloqueada

if ([Link](KeyCode.Alpha2) && armaDesbloqueada)

armaEquipada = !armaEquipada;

[Link](armaEquipada);

[Link](nomeAnimacaoEquipando);

yield return new WaitForSeconds(2f);

// Define a animação de idle se a arma for equipada

if (armaEquipada)

[Link](nomeAnimacaoIdle);

//desequipa a arma

if ([Link](KeyCode.Alpha1) && armaEquipada)

armaEquipada = false;

[Link](false);

}
// Se a arma estiver equipada, permite o disparo

if (armaEquipada)

// Define a animação de andando se o jogador estiver se movendo

if ([Link]("Horizontal") != 0 || [Link]("Vertical") != 0)

[Link](nomeAnimacaoAndando);

else

[Link](nomeAnimacaoIdle);

// Dispara a esfera se o botão esquerdo do mouse for pressionado

if ([Link](0))

AtirarEsfera();

void OnTriggerEnter(Collider other)

// Verifica se o jogador interagiu com o item no chão

if ([Link]("ItemDesbloqueio"))

itemNoChao = [Link];

void AtirarEsfera()
{

Ray raio = [Link]([Link]);

RaycastHit hit;

if ([Link](raio, out hit, distanciaMaximaEsfera))

// Move a esfera para o ponto de impacto

[Link] = [Link];

// Verifica se a esfera atingiu o objeto C

if ([Link] == objetoC)

// Fixa a esfera no objeto C

[Link] = [Link];

// Verifica se a esfera atingiu o objeto D

else if ([Link] == objetoD)

// Fixa o objeto C no objeto D

[Link] = [Link];

// Retorna a esfera para a posição original após um tempo

Invoke("RetornarEsferaParaPosicaoOriginal", 2f);

// Inicia a animação de disparo

[Link](nomeAnimacaoDisparo);

void RetornarEsferaParaPosicaoOriginal()
{

// Retorna a esfera para a posição original

[Link] = [Link];

[Link] = posicaoOriginalEsfera;

Você também pode gostar