Steamworks.NET icon indicating copy to clipboard operation
Steamworks.NET copied to clipboard

Callback number not found for struct Steamworks.SteamInventoryResult_t

Open NathanInbar opened this issue 1 year ago • 1 comments

Steps for Reproduction:

  1. New 3D project with Unity Version 2022.3.25f1
  2. Import Steamworks NET 20.2.0 with git url
  3. Create the following script: MyScript.cs
using UnityEngine;
using Steamworks;

public class MyScript : MonoBehaviour
{
    protected Callback<SteamInventoryResult_t> m_SteamInventoryResult;
    
    private void OnEnable()
    {
        if (SteamManager.Initialized)
        {
            m_SteamInventoryResult = Callback<SteamInventoryResult_t>.Create(OnSteamInventoryResult); // this line throws exception
        }
        else
            throw new System.Exception("Steam Manager not initialized!");
    }

    private void Start()
    {
        SteamInventory.GetAllItems(out SteamInventoryResult_t handle);
    }

    private void OnSteamInventoryResult(SteamInventoryResult_t p_callback)
    {
        print("method pass");
        SteamInventory.DestroyResult(p_callback);
    }
}
  1. Change appid in project directory/steam_appid.txt
  2. Create new scene
  3. Add game object with SteamManager and MyScript
  4. Play the scene
  5. Exception:
Exception: Callback number not found for struct Steamworks.SteamInventoryResult_t
Steamworks.CallbackIdentities.GetCallbackIdentity (System.Type callbackStruct) (at ./Library/PackageCache/com.rlabrecque.steamworks.net@a3fe8091f7/Runtime/CallbackIdentity.cs:22)
Steamworks.CallbackDispatcher.Register (Steamworks.Callback cb) (at ./Library/PackageCache/com.rlabrecque.steamworks.net@a3fe8091f7/Runtime/CallbackDispatcher.cs:78)
Steamworks.Callback`1[T].Register (Steamworks.Callback`1+DispatchDelegate[T] func) (at ./Library/PackageCache/com.rlabrecque.steamworks.net@a3fe8091f7/Runtime/CallbackDispatcher.cs:272)
Steamworks.Callback`1[T]..ctor (Steamworks.Callback`1+DispatchDelegate[T] func, System.Boolean bGameServer) (at ./Library/PackageCache/com.rlabrecque.steamworks.net@a3fe8091f7/Runtime/CallbackDispatcher.cs:240)
Steamworks.Callback`1[T].Create (Steamworks.Callback`1+DispatchDelegate[T] func) (at ./Library/PackageCache/com.rlabrecque.steamworks.net@a3fe8091f7/Runtime/CallbackDispatcher.cs:226)
MyScript.OnEnable () (at Assets/Scripts/MyScript.cs:12)

NathanInbar avatar Jun 19 '24 19:06 NathanInbar

The struct you are looking for is SteamInventoryResultReady_t.

SteamInventoryResult_t is an opaque integer type.

BenLubar avatar Jun 19 '24 20:06 BenLubar