Сохранение параметров персонажа при переходе на новую сцену - Форум Игроделов
Пт, 17 Май 2024, 09:52 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Сохранение параметров персонажа при переходе на новую сцену (Сохранение параметров)
Сохранение параметров персонажа при переходе на новую сцену
ZylaksДата: Вс, 13 Апр 2014, 19:17 | Сообщение # 1
Нет аватара
 
Сообщений: 10
Награды: 0
Репутация: 15
Статус: Offline
Здравствуйте, дорогие форумчане. Подскажите, как сделать, чтобы при переходе на другую сцену сохранялось, например, количество здоровья персонажа?

Код
private int curHealthPoint = 53;


Сообщение отредактировал Zylaks - Вс, 13 Апр 2014, 19:17
 
СообщениеЗдравствуйте, дорогие форумчане. Подскажите, как сделать, чтобы при переходе на другую сцену сохранялось, например, количество здоровья персонажа?

Код
private int curHealthPoint = 53;

Автор - Zylaks
Дата добавления - 13 Апр 2014 в 19:17
ЛевшаДата: Вс, 13 Апр 2014, 20:11 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
DontDestroyOnLoad();
Или сохранять параметры в PlayerPrefs и в новой сцене загружать их от туда.


X.cor.R (Prologue)
 
СообщениеDontDestroyOnLoad();
Или сохранять параметры в PlayerPrefs и в новой сцене загружать их от туда.

Автор - Левша
Дата добавления - 13 Апр 2014 в 20:11
VolkOrievithДата: Пн, 14 Апр 2014, 19:45 | Сообщение # 3
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Левша, А можно поподробнее про PlayerPrefs?
 
СообщениеЛевша, А можно поподробнее про PlayerPrefs?

Автор - VolkOrievith
Дата добавления - 14 Апр 2014 в 19:45
ЛевшаДата: Пн, 14 Апр 2014, 20:32 | Сообщение # 4
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата VolkOrievith ()
поподробнее про PlayerPrefs?

Подробнее в манулах: http://docs.unity3d.com/Documen....erPrefs


X.cor.R (Prologue)
 
Сообщение
Цитата VolkOrievith ()
поподробнее про PlayerPrefs?

Подробнее в манулах: http://docs.unity3d.com/Documen....erPrefs

Автор - Левша
Дата добавления - 14 Апр 2014 в 20:32
dostalitionДата: Чт, 24 Апр 2014, 17:34 | Сообщение # 5
 
Сообщений: 155
Награды: 0
Репутация: 9
Статус: Offline
Код
// СОХРАНЕНИЕ И ЗАГРУЗКА С ПЕРЕХОДОМ ПО СЦЕНАМ, позицией и поворотом игрока

using UnityEngine;
using System.Collections;

public class SaveLoad_C : MonoBehaviour
{

public Transform CurrentPlayerPosition;
void Update ()
{
if(Input.GetKeyDown(KeyCode.X))
savePosition();
if(Input.GetKeyDown(KeyCode.Z))
if (PlayerPrefs.HasKey("PosX")) // проверяем, есть ли в сохранении подобная информация
loadPosition();

if(Input.GetKeyDown(KeyCode.C))
PlayerPrefs.DeleteAll();    // очистка всей информации для этого приложения
}
public void savePosition()
{
Transform CurrentPlayerPosition = this.gameObject.transform;
PlayerPrefs.SetFloat("PosX", CurrentPlayerPosition.position.x); // т.к. автоматической работы
PlayerPrefs.SetFloat("PosY", CurrentPlayerPosition.position.y); // с массивами нет, разбиваем на
PlayerPrefs.SetFloat("PosZ", CurrentPlayerPosition.position.z); // отдельные float и записываем
PlayerPrefs.SetFloat("AngX", CurrentPlayerPosition.eulerAngles.x);
PlayerPrefs.SetFloat("AngY", CurrentPlayerPosition.eulerAngles.y);
//PlayerPrefs.SetString("level", Application.loadedLevelName); // ещё можно писать/читать строки
PlayerPrefs.SetInt("level_id", Application.loadedLevel); // и целые
}
public void loadPosition()
{
Transform CurrentPlayerPosition = this.gameObject.transform;
Vector3 PlayerPosition = new Vector3(PlayerPrefs.GetFloat("PosX"), PlayerPrefs.GetFloat("PosY"), PlayerPrefs.GetFloat("PosZ"));
Vector3 PlayerDirection = new Vector3(PlayerPrefs.GetFloat("AngX"), PlayerPrefs.GetFloat("AngY"), 0); // генерируем новые вектора на основе загруженных данных
CurrentPlayerPosition.position = PlayerPosition; // и применяем их
CurrentPlayerPosition.eulerAngles = PlayerDirection;

//Application.loadedLevel = PlayerPrefs.GetInt("level_id");
if(PlayerPrefs.GetInt("level_id") != 1)
{
Application.LoadLevel(PlayerPrefs.GetInt("level_id"));
}
else { Application.LoadLevel(3);}

print (Application.loadedLevelName);

}
}


Сообщение отредактировал dostalition - Чт, 24 Апр 2014, 17:35
 
Сообщение
Код
// СОХРАНЕНИЕ И ЗАГРУЗКА С ПЕРЕХОДОМ ПО СЦЕНАМ, позицией и поворотом игрока

using UnityEngine;
using System.Collections;

public class SaveLoad_C : MonoBehaviour
{

public Transform CurrentPlayerPosition;
void Update ()
{
if(Input.GetKeyDown(KeyCode.X))
savePosition();
if(Input.GetKeyDown(KeyCode.Z))
if (PlayerPrefs.HasKey("PosX")) // проверяем, есть ли в сохранении подобная информация
loadPosition();

if(Input.GetKeyDown(KeyCode.C))
PlayerPrefs.DeleteAll();    // очистка всей информации для этого приложения
}
public void savePosition()
{
Transform CurrentPlayerPosition = this.gameObject.transform;
PlayerPrefs.SetFloat("PosX", CurrentPlayerPosition.position.x); // т.к. автоматической работы
PlayerPrefs.SetFloat("PosY", CurrentPlayerPosition.position.y); // с массивами нет, разбиваем на
PlayerPrefs.SetFloat("PosZ", CurrentPlayerPosition.position.z); // отдельные float и записываем
PlayerPrefs.SetFloat("AngX", CurrentPlayerPosition.eulerAngles.x);
PlayerPrefs.SetFloat("AngY", CurrentPlayerPosition.eulerAngles.y);
//PlayerPrefs.SetString("level", Application.loadedLevelName); // ещё можно писать/читать строки
PlayerPrefs.SetInt("level_id", Application.loadedLevel); // и целые
}
public void loadPosition()
{
Transform CurrentPlayerPosition = this.gameObject.transform;
Vector3 PlayerPosition = new Vector3(PlayerPrefs.GetFloat("PosX"), PlayerPrefs.GetFloat("PosY"), PlayerPrefs.GetFloat("PosZ"));
Vector3 PlayerDirection = new Vector3(PlayerPrefs.GetFloat("AngX"), PlayerPrefs.GetFloat("AngY"), 0); // генерируем новые вектора на основе загруженных данных
CurrentPlayerPosition.position = PlayerPosition; // и применяем их
CurrentPlayerPosition.eulerAngles = PlayerDirection;

//Application.loadedLevel = PlayerPrefs.GetInt("level_id");
if(PlayerPrefs.GetInt("level_id") != 1)
{
Application.LoadLevel(PlayerPrefs.GetInt("level_id"));
}
else { Application.LoadLevel(3);}

print (Application.loadedLevelName);

}
}

Автор - dostalition
Дата добавления - 24 Апр 2014 в 17:34
Форум Игроделов » UNITY3D » СКРИПТИНГ » Сохранение параметров персонажа при переходе на новую сцену (Сохранение параметров)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024