Страница 1 из 1

Как записать рекорд?

СообщениеДобавлено: 20 ноя 2018, 19:48
Pavel_Ket
Здравствуйте!
В моей игре персонаж двигается по оси OY вверх, мне нужно записать рекорд и вывести его в сцену, которая появляется после поражения, и в главное меню, к тому же, чтобы этот рекорд оставался после выхода из игры.
Я не знаю как это всё объединить.
Пожалуйста, подробно объясните, что нужно сделать
P.s желательно с кодом, на примере.

Re: Как записать рекорд?

СообщениеДобавлено: 20 ноя 2018, 20:18
1max1

Re: Как записать рекорд?

СообщениеДобавлено: 21 ноя 2018, 07:36
DimaJoke
Переменная на счёт (a) переменная на рекорд(b)
Синтаксис:
Используется csharp
if(a >= b) b = a;
 

Ну а далее b сохраняем, это уже совсем другая история

Re: Как записать рекорд?

СообщениеДобавлено: 21 ноя 2018, 11:55
DimaJoke
Если что для сохранения используй этот ассет https://assetstore.unity.com/packages/tools/input-management/save-game-110382 там есть доки, разберёшься

Re: Как записать рекорд?

СообщениеДобавлено: 21 ноя 2018, 20:44
Pavel_Ket
DimaJoke писал(а):Переменная на счёт (a) переменная на рекорд(b)
Синтаксис:
Используется csharp
if(a >= b) b = a;
 

Ну а далее b сохраняем, это уже совсем другая история


Хорошо. Код написан так: рекорд = позиции игрока по оси OY, т.е в переменной float, а мне необходимо выводить текст и сохранять в переменной int

Re: Как записать рекорд?

СообщениеДобавлено: 22 ноя 2018, 10:19
DimaJoke
Pavel_Ket писал(а):
DimaJoke писал(а):Переменная на счёт (a) переменная на рекорд(b)
Синтаксис:
Используется csharp
if(a >= b) b = a;
 

Ну а далее b сохраняем, это уже совсем другая история


Хорошо. Код написан так: рекорд = позиции игрока по оси OY, т.е в переменной float, а мне необходимо выводить текст и сохранять в переменной int

Нене если тебе надо именно по позиции OY то
Синтаксис:
Используется csharp
public GameObject player;
public float score = player.transform.posituon.y;
public static float record;
public Text ScoreBar;
public Text RecordBar;

void Start()
{
score = SaveSystem.GetFloat("Score");//asset Save Game ссылку я тебе уже давал
}

void Update()
{
if(score >= record)record = score;
ScoreBar.GetComponent<Text>().text = "Score " + score.ToString();
RecordBar.Get Component<Text>().text = "Record " + record.ToString();
}
void OnApplicationQuit()
{
SaveSystem.SetFloat("Record", record);
}

 

Не сразу разобрался в вопросе, если надо объяснить, что тут за *#&$@ написанная, то просто напиши)

Re: Как записать рекорд?

СообщениеДобавлено: 23 ноя 2018, 14:22
Pavel_Ket
DimaJoke писал(а):
Pavel_Ket писал(а):
DimaJoke писал(а):Переменная на счёт (a) переменная на рекорд(b)
Синтаксис:
Используется csharp
if(a >= b) b = a;
 

Ну а далее b сохраняем, это уже совсем другая история


Хорошо. Код написан так: рекорд = позиции игрока по оси OY, т.е в переменной float, а мне необходимо выводить текст и сохранять в переменной int

Нене если тебе надо именно по позиции OY то
Синтаксис:
Используется csharp
public GameObject player;
public float score = player.transform.posituon.y;
public static float record;
public Text ScoreBar;
public Text RecordBar;

void Start()
{
score = SaveSystem.GetFloat("Score");//asset Save Game ссылку я тебе уже давал
}

void Update()
{
if(score >= record)record = score;
ScoreBar.GetComponent<Text>().text = "Score " + score.ToString();
RecordBar.Get Component<Text>().text = "Record " + record.ToString();
}
void OnApplicationQuit()
{
SaveSystem.SetFloat("Record", record);
}

 

Не сразу разобрался в вопросе, если надо объяснить, что тут за *#&$@ написанная, то просто напиши)



Выдает ошибку в public float score = player.transform.position.y;
Еще я добавил в
void Update()
{
SaveSystem.SaveToDisk();
}

Re: Как записать рекорд?

СообщениеДобавлено: 23 ноя 2018, 16:46
DimaJoke
Ну работает?

Re: Как записать рекорд?

СообщениеДобавлено: 25 ноя 2018, 13:47
Pavel_Ket
DimaJoke писал(а):Ну работает?

Не работает

Re: Как записать рекорд?

СообщениеДобавлено: 25 ноя 2018, 14:06
1max1
Выдает ошибку в public float score = player.transform.position.y;

Рановато за юнити взялся, не зная основ c# далеко не уедешь.

Re: Как записать рекорд?

СообщениеДобавлено: 29 ноя 2018, 14:04
DimaJoke
окей, тогда
public float score = player.transform.position.y;
перенеси в Update

Re: Как записать рекорд?

СообщениеДобавлено: 29 ноя 2018, 14:55
DimaJoke
Точнее даже
Public float Score;
void Update()
{
Score = transform.position.y;
}