Witam. Staram się zrobić grę testową w unity na androida. Aktualnie mam coś takiego i wszystko działa , ale nie wiem jak podejść do kwestii zapisu i wczytywania. chciałbym, aby gra zapisywała na bieżąco, w którym aktualnie obiekcie się znajduję i mogła od tego momentu wczytać . Próbowałem za pomocą PlayerPrefs, ale nie wiem jak podpiąć to pod obiekty. Starałem się wrzucić wszystkie obiekty razem to tablicy i zapisywać aktualne miejsce w tablicy, ale coś nie poszło :D.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
class StoryBlock
{
public string story;
public string option1Text;
public string option2Text;
public StoryBlock option1Block;
public StoryBlock option2Block;
public StoryBlock(string story,string option1Text="",string option2Text="",StoryBlock option1Block=null,StoryBlock option2Block=null)
{
this.story=story;
this.option1Text=option1Text;
this.option2Text=option2Text;
this.option1Block=option1Block;
this.option2Block=option2Block;
}
}
public class StoryMenager : MonoBehaviour
{
[SerializeField] Text mainText;
[SerializeField] Button option1;
[SerializeField] Button option2;
StoryBlock currentBlock;
static StoryBlock block7=new StoryBlock("Zakonczenie-4");//2.2
static StoryBlock block6=new StoryBlock("Zakonczenie-3");//2.1
static StoryBlock block5=new StoryBlock("Text","Wybor1", "Wybor2",block6,block7);//2
static StoryBlock block4=new StoryBlock("Zakonczenie-2");//1.2
static StoryBlock block3=new StoryBlock("Zakonczenie-1");//1.1
static StoryBlock block2=new StoryBlock("Text","Wybor1", "Wybor2",block3,block4);//1
static StoryBlock block1=new StoryBlock("Text","Wybor1", "Wybor2",block2,block5);//0
void Start()
{
DisplayBlock(block1);
}
void DisplayBlock(StoryBlock block)
{
mainText.text=block.story;
option1.GetComponentInChildren<Text>().text=block.option1Text;
option2.GetComponentInChildren<Text>().text=block.option2Text;
currentBlock=block;
}
public void Button1Clicked()
{
DisplayBlock(currentBlock.option1Block);
}
public void Button2Clicked()
{
DisplayBlock(currentBlock.option2Block);
}
void Update()
{
if (Input.GetKey("escape"))
{
Application.Quit();
}
}
}