---
# System prepended metadata

title: instanceObj
tags: [so]

---

---
title: 'instanceObj'
disqus: hackmd
tags: 'so'
---
## **Instancify Item**  
How instancify an item and obtain its unique Item ID.
 
Click Item.
    	
![](https://i.imgur.com/ttfX3A2.jpg)	
 
點擊NewItemInstanceBtn，實例化物品。  Click NewItemInstanceBtn to instacify an item.
 
![](https://i.imgur.com/kzhzJzD.jpg)
 
p.s. Instancing an item means binding it with	the user’s account. A common way is to make it a player’s personal game data. The example in the picture demonstrates how that account gets an Item ID from CallBack.
 
```
C#
using UnityEngine;
using System.Collections;
 
public class Sample_GetItemClass : MonoBehaviour {
	
	/*******************************************************************
	*   Copyright © 2022 SPKITA Game Cloud. All Rights Reserved
	*  
	*******************************************************************/
	
	//enter the gguid shown in the developer backstage here
	private const string gguid = "";	
	
	//enter the item iguid shown in the developer backstage here
	private const string item_iguid = "";
	
	//enter the verification shown in the developer backstage here
	byte[] certificate = {};
	
	//declare CloudGame and this Class will be in charge of the communication with Cloud Server
	public CloudGame ag = null;
	
	string userAcc; //user’s account
	string userPwd; //user’s password
 
	void Start()
	{
        CloudSystem.UnityEnvironment();
        CloudSystem.ServerProvider("sgc-api-us.spkita.com"); // set the server
	}
	
	void OnApplicationQuit()
	{
    	//When the program is closed, the user’s account will not be logged out. Here we can add a mechanism that allows automatic logging out.
    	if(ag!=null) ag.Dispose();  	
	}   	
	
	public void LoginBtnClick()
	{
    	userAcc = login_input_acc.text;
    	userPwd = login_input_pwd.text;
    	
    	//the parameters needed when logging in, which are (account, password, gguid, certificate)
    	ag = new CloudGame(userAcc, userPwd, gguid, certificate);
 
    	//designate the way of management and start the detection on whether the connection is successful
        ag.onCompletion += CloudLaunch;                      	            
    	
    	ag.UnityLaunch();
 
	}
    	
	/*******************************************************************
	//  After CloudGame finishes its execution, in CallBack there will be a message about whether the login is successful.
	// When the code is 0, the login succeeds and when the code is not 0, the login fails.
	//  refer the errors in login to Error Code
	// 
	*******************************************************************/
	
	void CloudLaunch(int code, CloudGame game)
	{
    	if (code == 0)
    	{
            Debug.Log("Login Success! My poid : " + ag.poid + " NickName : " + ag.nickname);
    	}
    	else
    	{
            Debug.LogWarning("Login Fail! Code : " + code);
    	}
	}  
	
	/*******************************************************************
	*  實例化物品   Instancify an item
	*******************************************************************/
	
    public void NewItemInstanceBtn()
	{
        CloudItem.NewItemInstance(ag, item_iguid, CB_NewItemInstance, null);
	}
	
	/*******************************************************************
	*  code為0表示實例化成功 code非0表示實例化失敗  When the code is 0, the instancing succeeds and when the code is not 0, the instancing fails.
	*******************************************************************/
	
	void CB_NewItemInstance(int code, object data, object token)
	{
    	if (code == 0)
    	{
            _itemid = data.ToString(); // Record my instacified ID to use it when writing in data in the future.
            item_MsgText.text += "ItemInstance Success! \nItem ID = " + data + "\n";
    	}
    	else
    	{
            item_MsgText.text += "ItemInstance Fail! Code : " + code + " \n";
    	}
	}
 
}
```

