Перейти к основному содержимому

IPlayerData

Контракт для доступа к состоянию игрока из игрового кода.

Пространство имён: OpenMon.MCE.SDK

Определение

public interface IPlayerData
{
Roster PlayerRoster { get; }
int Money { get; }
string PlayerName { get; }
int BadgeCount { get; }
}

Свойства

PlayerRoster

Текущий отряд монстров игрока.

Тип: Roster

Roster содержит до 6 объектов MonsterInstance. Доступ к отдельным членам по индексу:

Roster roster = player.PlayerRoster;
MonsterInstance first = roster[0]; // Lead monster
int teamSize = roster.Count; // How many monsters in the party

Money

Текущий баланс денег игрока.

Тип: int

PlayerName

Отображаемое имя игрока (устанавливается при создании новой игры или вводе имени).

Тип: string

BadgeCount

Количество заработанных значков залов.

Тип: int

Пример использования

using OpenMon.MCE.SDK;
using Zenject;

public class PlayerHUD : MonoBehaviour
{
[Inject] private IPlayerData player;

[SerializeField] private Text nameLabel;
[SerializeField] private Text moneyLabel;
[SerializeField] private Text badgeLabel;
[SerializeField] private Text teamLabel;

private void Update()
{
nameLabel.text = player.PlayerName;
moneyLabel.text = $"${player.Money:N0}";
badgeLabel.text = $"Badges: {player.BadgeCount}/8";

var roster = player.PlayerRoster;
teamLabel.text = $"Team: {roster.Count}/6";
}
}
Устаревшие ссылки

Не кэшируйте PlayerRoster долгосрочно. Ссылка на ростер может измениться после операций сохранения/загрузки. Запрашивайте player.PlayerRoster каждый раз, когда нужны актуальные данные.