Int de dinheiro fica com numeros negativos em vez de travar no "0"
2 participantes
Página 1 de 1
Int de dinheiro fica com numeros negativos em vez de travar no "0"
Quando o player compra algum item muito caro com o dinheiro do game a public int que contabiliza o money fica negativo.
Exemplo: caso o item seja 200 Moedas e o player tenha so 100 ele desconta os 200 fica com a int -100 em vez de parar no "0".
MoneySystem:
loja
Agradeço ja para todos que poderem ajudar neste sistema de vendas de itens !
Exemplo: caso o item seja 200 Moedas e o player tenha so 100 ele desconta os 200 fica com a int -100 em vez de parar no "0".
MoneySystem:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class MoneySystem : MonoBehaviour
{
public int Money;
public GameObject Text;
void Start()
{
Money = PlayerPrefs.GetInt("ValorDinheiro", (int)Money);
}
void Update()
{
PlayerPrefs.SetInt("ValorDinheiro", (int)Money);
Text.GetComponent<TMPro.TextMeshProUGUI>().text = (Money.ToString("0"));
}
}
loja
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UploadDrives : MonoBehaviour
{
public GameObject Jogador;
public GameObject Money;
public KeyCode TeclaInteragir = KeyCode.P;
//
[Range(1,100)]
public int ValorObj;
[Range(1,100)]
public float DistanciaDoItem1 = 3;
//
bool Permitido;
bool DentroArea;
//
public GameObject Avisos;
void Start()
{
}
void Update()
{
float distancia = Vector3.Distance (transform.position, Jogador.gameObject.transform.position);
if (distancia < DistanciaDoItem1)
{
DentroArea = true;
}
else
{
DentroArea = false;
}
if (Input.GetKeyDown (TeclaInteragir) && DentroArea)
{
if (Permitido = true) {
Money.GetComponent<MoneySystem> ().Money -= ValorObj;
Avisos.GetComponent<TMPro.TextMeshProUGUI> ().text = ("Comprado!");
Destroy (gameObject);
}
else if (Permitido = false)
{
Avisos.GetComponent<TMPro.TextMeshProUGUI> ().text = ("Sem Saldo!");
}
}
}
void OnGUI()
{
if (DentroArea == true)
{
GUIStyle stylez = new GUIStyle ();
stylez.alignment = TextAnchor.MiddleCenter;
GUI.skin.label.fontSize = 20;
GUI.Label (new Rect (Screen.width / 2 - 50, Screen.height / 2 + 50, 200, 30), "Pressione: " + TeclaInteragir);
if (ValorObj <= Money.GetComponent<MoneySystem> ().Money)
{
Permitido = true;
}
else
{
if(ValorObj > Money.GetComponent<MoneySystem> ().Money)
{
Permitido = false;
}
}
}
}
}
Agradeço ja para todos que poderem ajudar neste sistema de vendas de itens !
Pkneves- MembroAvançado
- PONTOS : 1384
REPUTAÇÃO : 11
Respeito as regras :
Re: Int de dinheiro fica com numeros negativos em vez de travar no "0"
Opa é um problema no if vc esta permitindo que o player compre para em seguida validar por isso o erro.
Espero que ajude.
Espero que ajude.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UploadDrives : MonoBehaviour
{
public GameObject Jogador;
public GameObject Money;
public KeyCode TeclaInteragir = KeyCode.P;
//
[Range(1, 100)]
public int ValorObj;
[Range(1, 100)]
public float DistanciaDoItem1 = 3;
//
bool Permitido;
bool DentroArea;
//
public GameObject Avisos;
void Update()
{
float distancia = Vector3.Distance(transform.position, Jogador.gameObject.transform.position);
if (distancia < DistanciaDoItem1)
{
DentroArea = true;
}
else
{
DentroArea = false;
}
if (Input.GetKeyDown(TeclaInteragir) && DentroArea)
{
validarMoney(ValorObj);
}
}
// PRIMEIRO SE VERIFICA SE O PREÇO É MAIOR QUE O SALDO DO JOGADOR SE SIM NÃO PERMITE A COMPRA
private void validarMoney(int precio)
{
if (precio > Money.GetComponent<MoneySystem>().Money)
{
Avisos.GetComponent<TMPro.TextMeshProUGUI>().text = ("Sem Saldo!");
} else {
Money.GetComponent<MoneySystem>().Money -= ValorObj;
Avisos.GetComponent<TMPro.TextMeshProUGUI>().text = ("Comprado!");
Destroy(gameObject);
}
}
void OnGUI()
{
if (DentroArea == true)
{
GUIStyle stylez = new GUIStyle();
stylez.alignment = TextAnchor.MiddleCenter;
GUI.skin.label.fontSize = 20;
GUI.Label(new Rect(Screen.width / 2 - 50, Screen.height / 2 + 50, 200, 30), "Pressione: " + TeclaInteragir);
}
}
}
Tópicos semelhantes
» Travar movimento pra frente
» Problema ao rotacionar valores negativos.
» Travar a camera do FirstPersoController
» Travar animação
» [RESOLVIDO] Travar o Objeto
» Problema ao rotacionar valores negativos.
» Travar a camera do FirstPersoController
» Travar animação
» [RESOLVIDO] Travar o Objeto
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos