using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//pega a parte de cenas gerenciamento
using UnityEngine.SceneManagement;
public class controledojp : MonoBehaviour, Imatavel
{
//mascara tudo menos o chao
public LayerMask chaocamada;
public GameObject textdefim;
private Vector3 direcao;
public controlainterface scriptdecontrolainterface;
public AudioClip SomDeDano;
private movijogador meumovimentojg;
private animacaopersona minhaanimacao;
private movimentapersona meumovimento;
public status statusdojp;
private void Start()
{
//timescale e a escala de tempo do jogo
//por padra e 1 mas pode alterar e fazer pasar mais rapido ou pausar
Time.timeScale = 1;
meumovimentojg = GetComponent<movijogador>();
minhaanimacao = GetComponent<animacaopersona>();
meumovimento = GetComponent<movimentapersona>();
statusdojp = GetComponent<status>();
}
// Update is called once per frame
void Update()
{
//getaxis pega um eixo vai pegar o eixo x
float eixoX = Input.GetAxis("Horizontal");
//getaxis pega um eixo vai pegar o eixo z
float eixoz = Input.GetAxis("Vertical");
//vector3 tem os eixos, forward pega um eixo so
direcao = new Vector3(eixoX,0,eixoz);
//magnitude significa o tamanho dele pega o tamanho e soma eles ex 1x 0y 0z o valor fica 1
minhaanimacao.movimentarjg(direcao.magnitude);
if(statusdojp.vida <= 0)
{
if(Input.GetButtonDown("Fire1"))
{
//scenemanager gerenciador de cena load scene para recaregar a cena
SceneManager.LoadScene(0);
}
}
}
//o fixedupdate roda diferente do update ele roda a cada 0.01
void FixedUpdate()
{
meumovimento.movimenta(direcao,statusdojp.velocidade);
meumovimentojg.rotacaojogador(chaocamada);
}
public void tiravida(int dano)
{
statusdojp.vida -= dano;
scriptdecontrolainterface.atualislidervida();
//vai no script de controlaaudio vai na var instancia e pega um metodo do audiosource playoneshot que toca o som 1 vez
controlaaudio.instancia.PlayOneShot(SomDeDano);
if(statusdojp.vida <= 0)
{
morer();
}
}
public void morer()
{
//timescale e a escala de tempo do jogo
//por padra e 1 mas pode alterar e fazer pasar mais rapido ou pausar
Time.timeScale = 0;
//setactive usado para desavivar ou atvar algo
textdefim.SetActive(true);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//pega a parte de interface
using UnityEngine.UI;
public class controlainterface : MonoBehaviour
{
//isso aqui e uma variavel
private controledojp scriptcontrolajogador;
// um valor tipo slider que vai receber
public Slider Slidervidajogador;
// Start is called before the first frame update
void Start()
{
//vai no jogador no componente controledojp
scriptcontrolajogador = GameObject.FindWithTag("jogador").GetComponent<controledojp>();
//o slider max value recebe a vida de jogador
Slidervidajogador.maxValue = scriptcontrolajogador.statusdojp.vida;
}
// Update is called once per frame
void Update()
{
}
public void atualislidervida()
{
Slidervidajogador.value = scriptcontrolajogador.statusdojp.vida;
}
}
`
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class status : MonoBehaviour { public int vidainicial = 100;
//hideinspector esconde no espetor a var
[HideInInspector]
public int vida;
public float velocidade = 5;
void Start()
{
vida = vidainicial;
}
}
`