sistema de estamina,vida,fome e sede
2 participantes
Página 1 de 1
sistema de estamina,vida,fome e sede
olá to precisando de uma ajuda aqui, bom dei uma modificada básica no script para que puxe informações do meu scripts (movimentação) porem esta dando algo erro alguém pode me ajudar e mudei alguns detalhes também!!
https://www.schultzgames.com/t740-tutorial-sistema-de-fome-sede-barra-de-vida-barra-de-estamina-itens-e-dano-por-queda?highlight=sistema+de+estamina usei o script do @MarcosSchultz porfavor se alguem puder ajudar agradeço desde já.
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityAssets.Scripts.Player.Movimentaçao;
public class Controle : MonoBehaviour {
private CharacterController controlador;
private GameObject Jogador;
private float UltimaPosicaoEmY,DistanciaDeQueda;
[Range(1,15)]
public float AlturaQueda = 4,DanoPorMetro = 5 ;
public Image BarraVida, BarraEstamina, BarraFome, BarraSede;
[Range(20,500)]
public GameObject DIEMenu;
public float VidaCheia = 100, EstaminaCheia = 100, FomeCheia = 100, SedeCheia = 100,velocidadeEstamina = 250;
[HideInInspector]
public float VidaAtual, EstaminaAtual, FomeAtual, SedeAtual;
private bool semEstamina = false;
private float cronometroFome,cronometroSede,velocidadeCaminhando,velocidadeCorrendo;
void Start (){
controlador = GetComponent <CharacterController> ();
VidaAtual = VidaCheia;
EstaminaAtual = EstaminaCheia;
FomeAtual = FomeCheia;
SedeAtual = SedeCheia;
Jogador = GameObject.FindWithTag ("Player");
velocidadeCaminhando = Jogador.GetComponent<Movimentaçao> ().speed;
velocidadeCorrendo = Jogador.GetComponent<Movimentaçao> ().RunSpeed;
}
void Update (){
SistemaDeQueda ();
SistemaDeVida ();
SistemaDeEstamina ();
SistemaDeFome ();
SistemaDeSede ();
AplicarBarras ();
}
void SistemaDeQueda(){
if (UltimaPosicaoEmY > Jogador.transform.position.y && controlador.velocity.y < 0) {
DistanciaDeQueda += UltimaPosicaoEmY-Jogador.transform.position.y;
}
UltimaPosicaoEmY = Jogador.transform.position.y;
if (DistanciaDeQueda >= AlturaQueda && controlador.isGrounded) {
VidaAtual = VidaAtual - DanoPorMetro*DistanciaDeQueda;
DistanciaDeQueda = 0;
UltimaPosicaoEmY = 0;
}
if (DistanciaDeQueda < AlturaQueda && controlador.isGrounded) {
DistanciaDeQueda = 0;
UltimaPosicaoEmY = 0;
}
}
void SistemaDeFome(){
FomeAtual -= Time.deltaTime;
if (FomeAtual >= FomeCheia) {
FomeAtual = FomeCheia;
}
if (FomeAtual <= 0) {
FomeAtual = 0;
cronometroFome += Time.deltaTime;
if (cronometroFome >= 3) {
VidaAtual -= (VidaCheia * 0.005f);
EstaminaAtual -= (EstaminaCheia * 0.1f);
cronometroFome = 0;
}
} else {
cronometroFome = 0;
}
}
void SistemaDeSede(){
SedeAtual -= Time.deltaTime;
if (SedeAtual >= SedeCheia) {
SedeAtual = SedeCheia;
}
if (SedeAtual <= 0) {
SedeAtual = 0;
cronometroSede += Time.deltaTime;
if (cronometroSede >= 3) {
EstaminaAtual -= (EstaminaCheia * 0.1f);
cronometroSede = 0;
}
} else {
cronometroSede = 0;
}
}
void SistemaDeEstamina(){
float multEuler = ((1/EstaminaCheia) * EstaminaAtual)*((1/FomeCheia) * FomeAtual);
if (EstaminaAtual >= EstaminaCheia) {
EstaminaAtual = EstaminaCheia;
} else {
EstaminaAtual += Time.deltaTime*(velocidadeEstamina/40)*Mathf.Pow(2.718f,multEuler);
}
if (EstaminaAtual <= 0) {
EstaminaAtual = 0;
Jogador.GetComponent<FirstPersonController> ().speed = velocidadeCaminhando;
semEstamina = true;
}
if (semEstamina == true && EstaminaAtual >= (EstaminaCheia * 0.15f)) {
Jogador.GetComponent<Movimentaçao> ().RunSpeed = velocidadeCorrendo;
semEstamina = false;
}
if (Input.GetKey (KeyCode.LeftShift) && semEstamina == false) {
EstaminaAtual -= Time.deltaTime*(velocidadeEstamina/15)*Mathf.Pow(2.718f,multEuler);
}
}
void SistemaDeVida(){
if (VidaAtual >= VidaCheia) {
VidaAtual = VidaCheia;
} else if (VidaAtual <= 0) {
VidaAtual = 0;
Morreu ();
}
}
void AplicarBarras(){
BarraVida.fillAmount = ((1/VidaCheia) * VidaAtual);
BarraEstamina.fillAmount = ((1/EstaminaCheia) * EstaminaAtual);
BarraFome.fillAmount = ((1/FomeCheia) * FomeAtual);
BarraSede.fillAmount = ((1/SedeCheia) * SedeAtual);
}
void Morreu (){
DIEMenu.active = true;
}
public void reiniciar(){
PlayerPrefs.DeleteKey ("");
PlayerPrefs.DeleteKey ("");
Application.LoadLevel (1);
}
public void Sair(){
Application.Quit ();
}
}
https://www.schultzgames.com/t740-tutorial-sistema-de-fome-sede-barra-de-vida-barra-de-estamina-itens-e-dano-por-queda?highlight=sistema+de+estamina usei o script do @MarcosSchultz porfavor se alguem puder ajudar agradeço desde já.
Pkneves- Avançado
- PONTOS : 1027
REPUTAÇÃO : 10
Respeito as regras :
Re: sistema de estamina,vida,fome e sede
Olá boa noite! será mais fácil se poder disponibilizar o erro que está recebendo e a linha onde se encontra, assim é mas fácil localizar seu problema!
Re: sistema de estamina,vida,fome e sede
olá, boa noite...MRX escreveu:Olá boa noite! será mais fácil se poder disponibilizar o erro que está recebendo e a linha onde se encontra, assim é mas fácil localizar seu problema!
este é o erro que aparece:
Assets\Scripts\Barras Fome e vida\ControleAlpha.cs(4,7): error CS0246: The type or namespace name 'UnityScripts' could not be found (are you missing a using directive or an assembly reference?)
Pkneves- Avançado
- PONTOS : 1027
REPUTAÇÃO : 10
Respeito as regras :

» ERRO NO SCRIPT FOME E SEDE ETC
» [TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
» SISTEMA DE ESTAMINA PARA CORRER E VOAR O LINK NO TÓPICO
» [RESOLVIDO] ERRO NO SISTEMA DE FOME, VIDA, STAMINA ETC... DO MARCOS
» (Dúvida) Sistema de vida por tempo (estilo candy crush)
» [TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
» SISTEMA DE ESTAMINA PARA CORRER E VOAR O LINK NO TÓPICO
» [RESOLVIDO] ERRO NO SISTEMA DE FOME, VIDA, STAMINA ETC... DO MARCOS
» (Dúvida) Sistema de vida por tempo (estilo candy crush)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos