跳到主要内容

IPlayerData

Contract for accessing player state from game code.

Namespace: OpenMon.MCE.SDK

定义

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

属性

PlayerRoster

The player's current party of monsters.

Type: Roster

A Roster holds up to 6 MonsterInstance objects. Access individual members by index:

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

Money

The player's current money balance.

Type: int

PlayerName

The player's display name (set during new game or name entry).

Type: string

BadgeCount

The number of gym badges the player has earned.

Type: 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";
}
}
Stale References

Do not cache PlayerRoster long-term. The roster reference may change after save/load operations. Query player.PlayerRoster each time you need it.