플레이어 인벤토리
Use the SDK to manage player inventory items including adding, updating, and deleting items.
읽는 시간 1분최근 업데이트: 17일 전
PlayerInventoryGetInventoryAsync
현재 로그인된 플레이어와 연결된 현재 인벤토리 아이템 인스턴스를 가져옵니다. 이 메서드는 필요에 따라GetInventoryOptionsPlayersInventoryItemPlayersInventoryItem다음 샘플 코드는 플레이어의// Optional, defaults to 20GetInventoryOptions options = new GetInventoryOptions{ ItemsPerFetch = 5};GetInventoryResult inventoryResult = await EconomyService.Instance.PlayerInventory.GetInventoryAsync(options);List<PlayersInventoryItem> firstFiveItems = inventoryResult.PlayersInventoryItems;// do something with your itemsif (inventoryResult.HasNext) { inventoryResult = await inventoryResult.GetNextAsync(5); List<PlayersInventoryItem> nextFiveItems = inventoryResult.PlayersInventoryItems; // do something with your items}
SWORD이 메서드는GetInventoryOptions options = new GetInventoryOptions{ InventoryItemIds = new List<string>() { "SWORD" }};GetInventoryResult inventoryResult = await EconomyService.Instance.PlayerInventory.GetInventoryAsync(options);List<PlayersInventoryItem> listOfItems = inventoryResult.PlayersInventoryItems;// ... etc
GetInventoryResultGetInventoryOptions
GetInventoryAsync- : 문자열 목록입니다. 기본값은
PlayersInventoryItemIds입니다. 플레이어 인벤토리에서 가져오려는 아이템의nullID입니다.PlayersInventoryItem - : 문자열 목록입니다. 기본값은
InventoryItemIds입니다. 가져오려는 아이템의 구성 ID입니다.null - : 정수입니다. 기본값은 20입니다. 이를 통해 1~100까지 호출당 가져올 최대 아이템 수를 설정합니다.
ItemsPerFetch
GetInventoryResult
GetInventoryResult- :
PlayersInventoryItems과 현재 가져온 아이템이 있습니다.List<PlayersInventoryItem>
- : 이 메서드는 비동기식으로 더 많은 결과를 가져옵니다. 여기에는 필요에 따라 가져오는 결과를 제한하는 파라미터 1개가 포함됩니다. 1~100으로 설정할 수 있으며 기본값은 20입니다.
GetNextAsync(int itemsToFetch = 20)목록에는 원래 아이템과 새로 가져온 아이템이 모두 포함된 새 결과가 반환됩니다. 가져올 결과가 더 없으면 결과값은PlayersInventoryItems이 됩니다.null
AddInventoryItemAsync
플레이어의 인벤토리에 아이템을 추가합니다. 이 메서드는 필요에 따라AddInventoryItemOptionsPlayersInventoryItemIdnullPlayersInventoryItemDictionary<string, object> instanceData = new Dictionary<string, object>{ { "rarity", "purple" }};AddInventoryItemOptions options = new AddInventoryItemOptions{ PlayersInventoryItemId = "customID", InstanceData = instanceData };PlayersInventoryItem createdInventoryItem = await EconomyService.Instance.PlayerInventory.AddInventoryItemAsync("SWORD", options);
AddInventoryItemOptions
AddInventoryItemAsync- : 문자열이며, 기본값은
PlayersInventoryItemId입니다. 생성된null의 ID를 설정합니다. 설정되지 않으면 하나가 생성됩니다.PlayersInventoryItem - :
InstanceData입니다. 인스턴스 데이터의 딕셔너리를 설정하는 데 사용됩니다.Dictionary<string, object>
DeletePlayersInventoryItemAsync
플레이어 인벤토리에서 아이템을 삭제합니다. 이 메서드는 필요에 따라 쓰기 잠금을 설정하는 데 사용되는DeletePlayersInventoryItemOptionsDeletePlayersInventoryItemOptions options = new DeletePlayersInventoryItemOptions{ WriteLock = "writeLock"};EconomyService.Instance.PlayerInventory.DeletePlayersInventoryItemAsync("playersInventoryItemID", options);
DeletePlayersInventoryItemOptions
DeletePlayersInventoryItemAsync- : 문자열이며, 기본값은
WriteLock입니다. 이 문자열을 사용하여 낙관적 동시성을 위한 쓰기 잠금을 설정합니다. 쓰기 잠금을 참고하십시오.null
UpdatePlayersInventoryItemAsync
새 인스턴스 데이터를 사용하여 아이템을 업데이트합니다. 업데이트된 플레이어 인벤토리 아이템이 반환됩니다. 이 메서드는 필요에 따라 쓰기 잠금을 설정하는 데 사용되는UpdatePlayersInventoryItemOptionsDictionary<string, object> instanceData = new Dictionary<string, object>{ { "rarity", "purple" }};UpdatePlayersInventoryItemOptions options = new UpdatePlayersInventoryItemOptions{ WriteLock = writeLock };PlayersInventoryItem playersInventoryItem = await EconomyService.Instance.PlayerInventory.UpdatePlayersInventoryItemAsync("playersInventoryItemID", instanceData, options);
UpdatePlayersInventoryItemOptions
UpdatePlayersInventoryItemAsync- : 문자열이며, 기본값은
WriteLock입니다. 이 문자열을 사용하여 낙관적 동시성을 위한 쓰기 잠금을 설정합니다. 쓰기 잠금을 참고하십시오.null
PlayersInventoryItem
PlayersInventoryItem- : 플레이어 인벤토리에 있는 이 고유한 인벤토리 아이템의 ID입니다.
PlayersInventoryItemId - : 이 인벤토리 아이템의 구성 ID입니다.
InstanceItemId - : 이 플레이어 인벤토리 아이템과 연결된 모든 인스턴스 데이터입니다.
InstanceData - :
InstanceDataDeserializable로 이 플레이어 인벤토리 아이템과 연결된 모든 인스턴스 데이터입니다. InstanceDataDeserializable 사용을 참고하십시오.IDeserializable - : 이 플레이어 인벤토리 아이템의 현재
WriteLock문자열입니다.writelock - : 이 플레이어 인벤토리 아이템이 생성된 날짜입니다. EconomyDate 오브젝트입니다.
Created - : 이 플레이어 인벤토리 아이템이 수정된 날짜입니다. EconomyDate 오브젝트입니다.
Modified
GetItemDefinitionAsync
이 메서드는 이 플레이어의 인벤토리 아이템 구성(InventoryItemDefinitionPlayersInventoryItem playersInventoryItem = // ... fetch the players inventory itemInventoryItemDefinition itemDefinition = playersInventoryItem.GetItemDefinitionAsync();
PlayersInventoryItemUpdated
이 이벤트를 구독하면 SDK에서 플레이어 인벤토리의 특정 아이템이 업데이트될 때 알림을 받을 수 있습니다. 구독자에게는 업데이트된 아이템의playersInventoryItemEconomyService.Instance.PlayerInventory.PlayersInventoryItemUpdated += playersInventoryItemID => { Debug.Log($"The players inventory item that was updated was {playersInventoryItemID}");};
InstanceDataDeserializable 사용
InstanceDataDeserializableobjectIDeserializableInstanceDataDeserializable다음 작업을 수행하여 인스턴스 데이터를 역직렬화할 수 있습니다.class MyInstanceData { public int Durability; public string Rarity; }MyInstanceData myInstanceData = new MyInstanceData() { Durability = 100, Rarity = "purple"};PlayersInventoryItem updatedItem = await EconomyService.Instance.PlayerInventory.UpdatePlayersInventoryItemAsync("playersInventoryItemId", myInstanceData);
MyInstanceData fetchedInstanceData = updatedItem.InstanceData.GetAs<MyInstanceData>();int durability = fetchedInstanceData.Durability;string rarity = fetchedInstanceData.Rarity;