arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

Unity

Unity integration

hashtag
Introduction

After the user purchases a Virtual Item, it is automatically added to the user's Inventory during the transaction process. It is possible also to add a virtual item to the user's inventory without going through the purchase process for non-NFT items.

chevron-rightInventoryItemhashtag
  • id (string): Unique inventory id for this item.

  • virtualItemId (string): Id of the virtual item stored in the inventory.

  • quantity (int): Amount of items store in this inventory slot.

hashtag
Retrieving inventory items with Virtual Items data

The following method gets all inventory items for the currently logged in player.

hashtag
Add to inventory

Add to inventory can be use to add regular virtual items into the player inventory. NFT's cannot be added to the inventory with this function.

hashtag
Set Properties

hashtag
Get properties

appIds (List<string>): List of project id where this item will be accessible.
  • tags (List<string>): List of tags used for filtering items.

  • properties (List<Property>): List of properties for this inventory item.

  • using System.Collections.Generic;
    using UnityEngine;
    using RGN.Modules.Inventory;
    
    public class InventoryExamples : MonoBehaviour
    {
        private async void GetUserInventory()
        {
            List<InventoryItemData> inventory = await InventoryModule.I.GetWithVirtualItemsDataForCurrentAppAsync();
            foreach (var inventoryItem in inventory)
            {
                Debug.Log($"Virtual item id : {inventoryItem.virtualItemId}");
                Debug.Log($"Virtual item name : {inventoryItem.virtualItem.name}");
            }
        }
    }
    using UnityEngine;
    using RGN.Modules.Inventory;
    
    public class InventoryExamples : MonoBehaviour
    {
        private async void AddToUserInventory()
        {
            string virtualItemId = "virtualItemToAdd";
            await InventoryModule.I.AddToInventoryAsync(virtualItemId);
        }
    }
    using UnityEngine;
    using RGN.Modules.Inventory;
    
    public struct MyCustomProperties
    {
        public int BonusHealth;
        public float DamageMultiplier;
    }
    
    public class InventoryExamples : MonoBehaviour
    {
        private async void SetPropertiesInInventory()
        {
            string inventoryItemId = "inventoryItemId";
    
            MyCustomProperties customProperties = new MyCustomProperties
            {
                BonusHealth = 50,
                DamageMultiplier = 1.5f
            };
            string jsonProperties = JsonUtility.ToJson(customProperties);
    
            await InventoryModule.I.SetPropertiesAsync(inventoryItemId, jsonProperties);
        }
    }
    using UnityEngine;
    using RGN.Modules.Inventory;
    
    public struct MyCustomProperties
    {
        public int BonusHealth;
        public float DamageMultiplier;
    }
    
    public class InventoryExamples : MonoBehaviour
    {
        private async void GetPropertiesInInventory()
        {
            string inventoryItemId = "inventoryItemId";
            string jsonProperties = await InventoryModule.I.GetPropertiesAsync(inventoryItemId);
            MyCustomProperties customProperties = JsonUtility.FromJson<MyCustomProperties>(jsonProperties);
            Debug.Log($"Bonus health : {customProperties.BonusHealth} \n" +
                $"Damage multiplier : {customProperties.DamageMultiplier}");
        }
    }