Vrienden

Vrienden

Verbind spelers via verzoeken en vriendenlijsten.

Gratis starten

Vrienden

Verbind spelers via verzoeken en vriendenlijsten.

SDK’s en REST

Integreer Unity, Godot of Unreal of gebruik de REST-interface.

Projectdashboard

Stel elke functie in en beheer de actuele gegevens in je project.

Snelle Integratie

Snelle Integratie

Vrienden
Video volgt binnenkort

Vrienden, verzoeken en blokkades in het gekozen project.

Snelle Integratie
Unity (C#)
using UnityEngine;
using PM.horizOn.Cloud.Manager;

var userId = UserManager.Instance.CurrentUser.UserId;
var manager = FriendsManager.Instance;
var loaded = await manager.GetFriends(userId);
if (!loaded.IsSuccess) { Debug.LogWarning(loaded.ErrorCode); return; }
Debug.Log(loaded.Data.friendCode); // Public identifier, not a credential.
foreach (var friend in loaded.Data.friends)
    Debug.Log(friend.display.name + ": " + (friend.lastActiveAt ?? "unknown"));

// Invoke only after the player explicitly reviews this snapshot and chooses an action.
async System.Threading.Tasks.Task ApplyReviewed(string action, string targetUserId,
    long expectedRevision, string requestId = null)
{
    var result = action switch {
        "request" => await manager.SendRequest(userId, targetUserId, expectedRevision),
        "accept" => await manager.AcceptRequest(userId, targetUserId, expectedRevision, requestId),
        "decline" => await manager.DeclineRequest(userId, targetUserId, expectedRevision, requestId),
        "cancel" => await manager.CancelRequest(userId, targetUserId, expectedRevision, requestId),
        "remove" => await manager.RemoveFriend(userId, targetUserId, expectedRevision),
        "block" => await manager.BlockPlayer(userId, targetUserId, expectedRevision),
        "unblock" => await manager.UnblockPlayer(userId, targetUserId, expectedRevision),
        _ => throw new System.ArgumentException("Unknown action")
    };
    if (!result.IsSuccess) {
        Debug.LogWarning(result.ErrorCode); // Timeout/409: reload and reconcile; do not repeat automatically.
        return;
    }
    Debug.Log(result.Data.revision); // Replace the whole displayed snapshot.
}
// Accept/decline: original incoming requestId. Cancel: original outgoing requestId.
// Never replace expectedRevision on an uncertain retry. A new request is a new identity.
// FindPlayer(userId, exactUuidOrHCode) never searches names or emails.
// Last login is nullable, never an online flag. No hidden polling timer.

Deze voorbeelden gebruiken de Unity SDK (C#) en de REST API. Godot en Unreal hebben dezelfde aanroepen in hun eigen SDK's: zie de quickstart

Veelgestelde Vragen

Veelgestelde Vragen

Klaar om te integreren?

Begin vandaag nog met horizOn. Free Tier inbegrepen.