Войти
ПрограммированиеФорумГрафика

Сохранение игры помогите плиз! (3 стр)

Страницы: 1 2 3 4 5 Следующая »
#30
22:14, 25 апр. 2019

FlyOfFly
получилось спасибо а как бонусы в игре сохранить


#31
22:14, 25 апр. 2019

FlyOfFly
все числовые значения

#32
22:17, 25 апр. 2019

Zaven
>
> получилось спасибо а как бонусы в игре сохранить
так же как и очки сохраняешь, используешь
Для сохранение
PlayerPerf.SaveInt
PlayerPerf.SaveFloat
PlayerPerf.SaveString
Для загрузки
PlayerPerf.GetInt
PlayerPerf.GetFloat
PlayerPerf.GetString

#33
22:19, 25 апр. 2019

FlyOfFly
а куда их напиши плиз буду очень благодареннннн!!

#34
22:29, 25 апр. 2019
using UnityEngine; 
using UnityEngine.UI; 
public class Game : MonoBehaviour 
{ 
    public Text scoreText; 
    [Header("Магазин")] 
    public int[] shopcosts; 
    public int[] shopBonuses; 
    public Text[] ShopBttnsText; 
    public GameObject shopPan;

    private decimal score = 0.000m; 
    private int bonus;

    private void Start() 
    { 
        score = decimal.Parse (PlayerPrefs.GetString("score","0"));
        bonus = PlayerPrefs.GetInt("bonus",0);
    } 
    private void Update() 
    { 
        scoreText.text = score + "$"; 
    }

    public void _shopPan () 
    { 
        shopPan.SetActive(!shopPan.activeSelf); 
    }
    public void ShopBttn_addBonus(int index) 
    { 
        if (score >=shopcosts[index]) 
        { 
            bonus += shopBonuses[0]; 
            PlayerPrefs.SetInt("bonus",bonus);
            score -= shopcosts[index];
            PlayerPrefs.SetString("score", score.ToString ()); 
            shopcosts[index] *= 2; 
            ShopBttnsText[index].text = "Кликер\n" + shopcosts[index] + "$"; 
        } 
        else 
        { 
            Debug.Log("Недостаточно средств!"); 
        } 
    }

    public void OnClick () 
    { 
        score = score + 0.001m + bonus; 
        PlayerPrefs.SetString("score", score.ToString ()); 
    } 
}
https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
#35
22:57, 25 апр. 2019

FlyOfFly
спасибо большое брат а как сохранить цены то есть shopcosts заранее спасибо!)

#36
7:46, 26 апр. 2019

Zaven
> а как сохранить цены то есть shopcosts
Поскольку shopcosts это массив, то на данном этапе развития человечества - никак. Правда учёные обещают вот-вот разработать квантовые компьютеры. Там точно будет можно. Потерпи пару месяцев.

#37
(Правка: 8:33) 8:32, 26 апр. 2019

Загрузка

for(int i=0;i<shopcosts.Length;i++){
        shopcosts[i]= PlayerPrefs.GetInt("shopcosts"+i,shopcosts[i]);
}

Сохранение

for(int i=0;i<shopcosts.Length;i++){
        PlayerPrefs.SaveInt("shopcosts"+i,shopcosts[i]);
}

#38
9:53, 26 апр. 2019

FlyOfFly
Есть некоторая разница между "помогите" и "сделайте за меня".)

#39
(Правка: 10:01) 10:00, 26 апр. 2019

KaZuaL
>
> Есть некоторая разница между "помогите" и "сделайте за меня".)
Так, я не делаю всего за него

#40
15:20, 26 апр. 2019

FlyOfFly
Эти переменные движок созраняет в реестре винды или прочих осей, но, на мой взгляд, целесообразней все достижения, переменные и триггеры сохранять в save-файл в выбранном формате.

#41
15:28, 26 апр. 2019

MSA2
> Эти переменные движок созраняет в реестре винды или прочих осей, но, на мой
> взгляд, целесообразней все достижения, переменные и триггеры сохранять в
> save-файл в выбранном формате.
Можно конечно так

using UnityEngine; 
using UnityEngine.UI; 
using System; 
using System.IO; 
public class Game : MonoBehaviour 
{ 
    public Text scoreText; 
    [Header("Магазин")] 
    public int[] shopcosts; 
    public int[] shopBonuses; 
    public Text[] ShopBttnsText; 
    public GameObject shopPan;

    private decimal score = 0.000m; 
    private int bonus; 
    private Save sv = new Save(); 
    private string path;


    private void Start() 
    { 
#if UNITY_ANDROID && !UNITY_EDITOR 
        path = Path.Combine(Application.persistentDataPath, "Save.json"); 
#else 
        path = Path.Combine(Application.dataPath, "Save.json"); 
#endif 
        if(File.Exists(path)) 
        { 
            sv = JsonUtility.FromJson<Save>(File.ReadAllText(path)); 
        } 
    } 
    private void Update() 
    { 
        scoreText.text = score + "$"; 
    }

    private void OnApplicationQuit() 
    { 
        Save();
    }

    public void _shopPan () 
    { 
        shopPan.SetActive(!shopPan.activeSelf); 
    }
    public void Save(){
        
         if (File.Exists(path))
         {
             File.Delete(path);
         }
         string jsonString = JsonUtility.ToJson(sv);
         File.WriteAllText(path, jsonString);
    }
    public void ShopBttn_addBonus(int index) 
    { 
        if (score >=shopcosts[index]) 
        { 
            bonus += shopBonuses[0]; 
            score -= shopcosts[index]; 
            shopcosts[index] *= 2; 
            ShopBttnsText[index].text = "Кликер\n" + shopcosts[index] + "$"; 
        
            Save();
        } 
        else 
        { 
            Debug.Log("Недостаточно средств!"); 
        } 
    }

    public void OnClick () 
    { 
        score = score + 0.001m + bonus; 
        Save();
    }

#if UNITY_ANDROID && !UNITY_EDITOR 
    private void OnApplicationPause(bool pause) 
    { 
        if (pause) Save();
    } 
#endif 
} 
[Serializable] 
public class Save 
{ 
    public decimal score; 
    public int[] shopcosts; 
    public int[] shopBonuses; 
    public Text[] ShopBttnsText; 
    public GameObject shopPan; 
    public Text scoreText; 
    private int bonus;
}
Ну ему сначала надо разобраться, когда лучше сохранять данные, что бы сохранялась не каждое изменение, ну при этом и шанс сохранение был больше 90%. А Для этого PlayerPerfs будут проще
#42
18:11, 26 апр. 2019

Zaven
> вот ту money что это

FlyOfFly
> забыл переписать, измени на score

Мне кажется, если некий новичок не в состоянии хоть немного включить голову, самостоятельно сопоставить содержимое строки, в которой есть слово "GetString", и содержимое строки, в которой есть слово "SetString", и заметить в них несоответствие, то ему не стоит помогать, потому что дальше будет хуже.

#43
(Правка: 18:43) 18:41, 26 апр. 2019

1 frag / 2 deaths
>
> Мне кажется, если некий новичок не в состоянии хоть немного включить голову,
> самостоятельно сопоставить содержимое строки, в которой есть слово "GetString",
> и содержимое строки, в которой есть слово "SetString", и заметить в них
> несоответствие, то ему не стоит помогать, потому что дальше будет хуже.
Мне кажется, это норм для новичка . Мозг позже захочет ускорить процесс и убрать из цикла:"спросить", поэтому будет сам разбираться

#44
19:54, 26 апр. 2019

FlyOfFly
Привет!)Как дела?Поможешь!?Скажи пожалуйста как сделать чтобы каждую секунду обновлялся текст я знаю как это делают но он массивом как это сделать с массивом??

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумГрафика