Как сделать покупку машины?

Помогите пожалуйста как сделать покупку машины через поинты? Скрипт не мой взял из интернета тут машина открывается в том случае если Level 1 прошел на 3 звезды, а мне нужно к примеру - 500 поинты и машина открылась.

Скрипт Поинта они автоматически сохраняются.
a4c331e6ade249a69d6f5956a78b9945.pngec797203e1724e3eaea06e22bff22a22.png
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Shop : MonoBehaviour {

	public ScoreManager Pointt;
	
	public int scoreValue;

	public Image[] cars;
	public Button[] bttns;
	public Text[] carsText;
	public string[] levels;
	
	public GameObject Netudeneg;

	void Start () {
		Pointt = FindObjectOfType <ScoreManager> ();

		cars [PlayerPrefs.GetInt ("c")].color = Color.white;

		if (PlayerPrefs.GetInt(levels[0]) == 3)
		{
			bttns [0].interactable = true;
			carsText [0].gameObject.SetActive (false);
		} 

		/*if (ScoreManager.point >= 500) 
		{
			ScoreManager.point -= 500;
		} 
		else if (ScoreManager.point < 500) 
		{
			Netudeneg.SetActive (true);
		}*/
	}
	
	void Update ()
	{
	}
}
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
Для начала - что за чушь. Нельзя отнимать на старте каждый раз 500 очков у игрока.
первый раз он запустил игру с 600 очками и остался с сотней и открытой машиной. в следующий раз у него будет уже ноль очков и никакой машины.
Если именно набранные очки нужно потратить на открытие контента (в данном случае машины) - то как минимум сохранить (запомнить что он его уже открыл), в теже PlayerPrefs
Если же не тратить , а именно наличие 500 и более очков открывает машину, то по аналогии со звездами.(хотя вам похоже нужен именно первый вариант)

И на Update() сохранять в PlayerPrefs ?? серьезно? зачем каждый кадр писать, если мы точно знаем когда меняется количество очков ?

сохраняем в методе AddPoints() ну и в методе отнимания очков если он будет отдельным)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
if (ScoreManager.point >= 500)  {
      ScoreManager.point -= 500;
      bttns [0].interactable = true;
      carsText [0].gameObject.SetActive (false);
    } 
    else   {
      Netudeneg.SetActive (true);
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы