GSF.Ez implementation for Unity.
// 클라이언트 식별값
// 닉네임을 사용해도 무관
var uniqId = "pjc0247";
client = EzClient.Connect(
"ws://localhost:9916",
uniqId,
new Dictionary<string, object>() {
{"class", "oven-breaker"}
}),
GetAllPlayers
foreach(var player in client.players) {
var playerId = player.PlayerId;
var level = (int)player.Property["level"];
}
Join/Leave Events
client.onJoinPlayer += (JoinPlayer packet) => {
var player = packet.Player;
var playerId = player.PlayerId;
var level = (int)player.Property[level];
};
client.onLeavePlayer += (LeavePlayer packet) => {
var player = packet.Player;
var playerId = player.PlayerId;
var level = (int)player.Property[level];
};
Declaring Packet
public class PacketType {
public static readonly int Chat = 1;
}
Broadcasting
client.SendPacket(
PacketType.Chat,
new Dictionary<string, object>()
{
{"message", clientData.chatMessage}
});
Subscribing
client.onCustomPacket += (BroadcastPacket packet) =>
{
if (packet.Type == PacketType.Chat)
log += "[" + packet.Sender.PlayerId + "] " + packet.Data["message"] + "\r\n";
};
client.SetPlayerProperty(new Dictionary<string, object>() {
{"level", 10}
});
- 지정한 KEY는 VALUE로 덮어쓰기 됩니다.
- 지정하지 않은 KEY는 변동 사항이 없습니다.
월드 데이터는 서버 인스턴스 전체에 공유되는 데이터입니다.
GetWorldProperty
var mapId = (int)client.worldProperty["map_id"];
SetWorldProperty
client.SetWorldProperty(new Dictionary<string, object>() {
{"map_id", 11}
});
- 지정한 KEY는 VALUE로 덮어쓰기 됩니다.
- 지정하지 않은 KEY는 변동 사항이 없습니다.