Добро пожаловать на сайт "Game Creating CommUnity"
Здравствуйте, уважаемый пользователь!

Возможно, вы впервые на этом сайте и мы очень надеемся, что вам у нас понравится. Администрация сайта сделает всё возможное, чтобы ваше пребывание на сайте было максимально комфортным. Спасибо за внимание!

P.S. Данное окно вас больше не потревожит
Сохранение параметров персонажа при переходе на новую сцену - Форум Игроделов
Пн, 21 Июл 2025, 04:25 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Сохранение параметров персонажа при переходе на новую сцену
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
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025
Войти Зарегистрироваться