Search Results for

    Show / Hide Table of Contents

    Interface INetworkPlayer

    Defines a network player.

    Namespace: Evergine.Networking.Players
    Assembly: Evergine.Networking.dll
    Syntax
    public interface INetworkPlayer

    Properties

    CustomProperties

    Gets the custom properties of the player. Those properties are synchronized by the server automatically.

    Declaration
    NetworkPropertiesTable CustomProperties { get; }
    Property Value
    Type Description
    NetworkPropertiesTable
    Remarks

    Only the local player may change their own custom properties in a room. Setting properties in this table updates the server and other players.

    Keys in the table are bytes to reduce network traffic. It is recommended to use a custom enumerator for better clarity.

    Examples
    var matchmakingClient = Evergine.GetService<MatchmakingClientService>();
    var playerProperties = matchmakingClient.LocalPlayer.CustomProperties;
    playerProperties.Set((byte)CustomEnum.PlayerPosition, Vector3.Zero);
    var position = playerProperties.GetVector3((byte)CustomEnum.PlayerPosition);

    Id

    Gets an identifier of this player in the current room. It's -1 outside of rooms.

    Declaration
    int Id { get; }
    Property Value
    Type Description
    int
    Remarks

    The Id is assigned per room and is only valid in that context. It will change upon leaving and re-joining. Ids are never re-used within a room.

    IsInLobby

    Gets a value indicating whether this player is in the lobby (not in a room).

    Declaration
    bool IsInLobby { get; }
    Property Value
    Type Description
    bool

    IsLocalPlayer

    Gets a value indicating whether this player is the local player.

    Declaration
    bool IsLocalPlayer { get; }
    Property Value
    Type Description
    bool

    IsMasterClient

    Gets a value indicating whether this player is the Master Client of the current room or not.

    Declaration
    bool IsMasterClient { get; }
    Property Value
    Type Description
    bool
    Remarks

    Can be used as an "authoritative" client/player to make decisions, run AI, or other tasks. If the current Master Client leaves the room (leaves/disconnects), the server will quickly assign someone else. If the current Master Client times out (closed app, lost connection, etc.), messages sent to this client are effectively lost for the others.

    Nickname

    Gets a non-unique nickname of this player. Synced automatically in a room.

    Declaration
    string Nickname { get; }
    Property Value
    Type Description
    string
    Remarks

    A player might change their own nickname in a room. Setting this value updates the server and other players.

    Room

    Gets the room where the player is. It is null if the player is in the lobby.

    Declaration
    INetworkRoom Room { get; }
    Property Value
    Type Description
    INetworkRoom

    TagObject

    Gets or sets an object that can be used to store a reference useful for knowing "by player". This property is not synchronized by the server.

    Declaration
    object TagObject { get; set; }
    Property Value
    Type Description
    object
    Remarks

    Example: Set a player's character as Tag by assigning its Entity or EntityPath.

    Events

    OnCustomPropertiesChanged

    Event raised when the server updates the custom properties.

    Declaration
    event EventHandler OnCustomPropertiesChanged
    Event Type
    Type Description
    EventHandler

    OnNicknameChanged

    Event raised when the server updates a player's nickname.

    Declaration
    event EventHandler OnNicknameChanged
    Event Type
    Type Description
    EventHandler

    Extension Methods

    ReflectionHelper.GetMemberAssembly(object)
    ReflectionHelper.GetTypeName(object)
    In this article
    Back to top
    Generated by DocFX