Główny edytor:
Drugi edytor:
Pojedynki: być może
Skype: Pomógł: 5 razy Posty: 187
2933 Prestiż
Wysłany: 04-02-2018, 16:27 [Ogólne] Zapisywanie stanu "zebrania" obiektu
W mojej grze odpoczywamy co jakiś czas co reloaduje mapę (dzięki czemu potwory się respawnują) ale za to respawnują się także itemy które umieszczam na mapie, czego nie chcę.
Zastanawiam się jak mogę zapisać prosto w mojej grze czy przedmiot na ziemi był zebrany
i zrobić to tak, abym nie musiał dopisywać kodu przy każdym nowym dodanym na mapę obiekcie
daję przykład zapisywania i wczytywania, abyście mieli podgląd na czym pracuję...
Spoiler (C#):
Kod:
//ładowanie zapisu
if (PlayerPrefs.GetInt(sv_exist) == 1)
{
transform.position = new Vector3(
PlayerPrefs.GetFloat(sv_posx),
PlayerPrefs.GetFloat(sv_posy),
0);
mana = PlayerPrefs.GetFloat(sv_mp);
health = PlayerPrefs.GetFloat(sv_hp);
stamina = PlayerPrefs.GetFloat(sv_sp);
maxMana = PlayerPrefs.GetFloat(sv_maxmp);
maxHealth = PlayerPrefs.GetFloat(sv_maxhp);
money = PlayerPrefs.GetInt(sv_money);
Camera.main.transform.position = new Vector3(PlayerPrefs.GetFloat(sv_camx), PlayerPrefs.GetFloat(sv_camy), -10);
}
Chcę zaznaczyć że nie mam zamiaru korzystać z Serializacji bo pod to musiałbym edytować całą klasę gracza (tzn. od razu pisać pod serializację i zapis)
Główny edytor:
Drugi edytor: Pomógł: 82 razy Posty: 1731
37283 Prestiż
Wysłany: 04-02-2018, 17:05
Na szybko pomysł:
Zrób kopię pliku z mapą, i na tym pliku wprowadzaj zmiany, tzn. jak gracz coś podniesie, to usuń z mapy na zawsze.
Przy wczytywaniu musisz potem tylko sprawdzić, czy gracz chce zacząć nową grę, czy kontynuować poprzednią i zależnie od tego wczytać oryginał lub kopię.
Główny edytor:
Drugi edytor: Pomógł: 76 razy Posty: 1411
40080 Prestiż
Wysłany: 04-02-2018, 18:25
Źródło: Greg Lukosek - Learning C# by Developing Games with Unity 5.x
Rozdział o klasach i dziedziczeniu: https://www.dropbox.com/s...zenie1.pdf?dl=1
Krótko mówiąc: MUSISZ dopisać kod do każdego nowego obiektu. Czy zrobisz to tradycyjnie, jako odziedziczenie zachowań opisanych w klasie nadrzędnej czy dodając "skrypt" czy tam "behavior" do nowo powstałego obiektu - twoja sprawa. Nie jest to duży wysiłek - w zasadzie znikomy.
A teraz do faktycznego przechowywania danych po restarcie poziomu.
Źródło: Alan Thorn - Unity 5.x By Example
Rozdział, gdzie do gry przygodowej dodano system questów z trzema stanami zmiennych publicznych: https://www.dropbox.com/s...uesty1.pdf?dl=1
Źródło: Matt Smith - Unity 5.x Cookbook
Zapisywanie mapy - proponuję zamieścić tam informację o znajdźkach i aktualizować ją po zebraniu: https://www.dropbox.com/s...ysave2.pdf?dl=1
Miałem stąd wydrukować jeszcze info o używaniu Resource files, ale uznałem za zbędne.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum