Steamworks.NET
Steamworks.NET copied to clipboard
Callback number not found for struct Steamworks.SteamInventoryResult_t
Steps for Reproduction:
- New 3D project with Unity Version 2022.3.25f1
- Import Steamworks NET 20.2.0 with git url
- 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);
}
}
- Change appid in project directory/steam_appid.txt
- Create new scene
- Add game object with SteamManager and MyScript
- Play the scene
- 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)
The struct you are looking for is SteamInventoryResultReady_t.
SteamInventoryResult_t is an opaque integer type.