How do I update the discord rich presence in Unity?

Viewed 80

The documentation they provide links to this example repository.

Well, I wrote this code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DiscordController : MonoBehaviour
{

    public Discord.Discord discord;

    void Start()
    {
        discord = new Discord.Discord(1009014665801633815, (System.UInt64)Discord.CreateFlags.Default);
        var activityManager = discord.GetActivityManager();
        var activity = new Discord.Activity() {
            Details = "Score: " + ScoreScript.instance.kills,
            State = "Level: " + PlayerScript.Instance.level,
            Assets = new Discord.ActivityAssets() { LargeImage = "pocpocpoc" },
        };
        activityManager.UpdateActivity(activity, (res) => {
            if (res == Discord.Result.Ok)
            {
                Debug.Log("up an running my guy");
            }
            else
            {
                Debug.Log("nope");
            }
        });
    }

    void Update()
    {
        discord.RunCallbacks();
    }
}

...and it will obviously only update it once, before the first frame. I tried adding the

var activityManager = discord.GetActivityManager();
        var activity = new Discord.Activity() {
            Details = "Score: " + ScoreScript.instance.kills,
            State = "Level: " + PlayerScript.Instance.level,
            Assets = new Discord.ActivityAssets() { LargeImage = "pocpocpoc" },
        };

...into void Update() but when I do so, the Unity editor crashes!

1 Answers
using UnityEngine;
using System;

public class DiscordController : MonoBehaviour
{
     Discord.Discord discord;

    void Start ()
    {
        try
        {
            discord = new Discord.Discord
            (
            id,
            (UInt64)Discord.CreateFlags.NoRequireDiscord
            );
        }

        catch(Discord.ResultException)
        {
            discord = null;
        }

        SetStatus("Playing ");
    }

    void OnApplicationQuit ()
    {
        if(discord==null)return;
        discord.Dispose();
    }

    void Update ()
    {
        if(discord==null) return;
        discord.RunCallbacks();
    }

    public void SetStatus (string Single)
    {
        if(discord==null)return;
        var activityManager = discord.GetActivityManager();
        var activity = new Discord.Activity
        {
            Details = Single
        };

        activityManager.UpdateActivity(activity,res => {});
    }
}

this is my code works on editor and builded

Related