Unity3D Android UCGame SDK Integration - 4. FloatButton, ExitSDK
유니티3D 안드로이드에 중국 UCGame SDK 인앱빌링과 U포인트 충전 처리를 정리해봤습니다. 이번에는 마지막으로 플롯버튼(FloatButton)이라고 UCGame 플랫폼 메뉴를 보여주는 버튼과 UCGame SDK 종료처리를 정리하겠습니다.
1. FloatButton
public void UCGameCreateFloatButton_U() {
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
UCGameSDK.defaultSDK().createFloatButton(UnityPlayer.currentActivity, new UCCallbackListener<String>() {
@Override
public void callback(int arg0, String arg1) {
// TODO Auto-generated method stub
JSONObject jsonObj = new JSONObject();
if (arg0 == UCGameSDKStatusCode.SDK_OPEN) {
Log.d(LOG_TAG, "createFloatButton SDK_OPEN");
} else if (arg0 == UCGameSDKStatusCode.SDK_CLOSE) {
Log.d(LOG_TAG, "createFloatButton SDK_CLOSE");
}
try {
jsonObj.put("resultCode", arg0);
jsonObj.put("message", arg1);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
UnityPlayer.UnitySendMessage("PluginUCGameManager", "UCGameFloatButton_J", jsonObj.toString());
}
});
} catch (UCCallbackListenerNullException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UCFloatButtonCreateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public void UCGameShowFloatButton_U(final double xPosRatio, final double yPosRatio, final boolean bVisible) {
runOnUiThread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
// xPosRatio는 0 또는 100만 지원.
UCGameSDK.defaultSDK().showFloatButton(UnityPlayer.currentActivity, xPosRatio, yPosRatio, bVisible);
}
});
}
protected void onDestroy() {
super.onDestroy();
UCGameSDK.defaultSDK().destoryFloatButton(UnityPlayer.currentActivity);
}
플롯버튼을 만들거나 보여주는 기능을 처리하는 안드로이드 부분입니다. 어려울건 없고 보여줄 때 x값을 0 또는 100만 지원한다는 것만 조심하면 될 듯합니다.
플롯버튼을 생성후 보여진 모습입니다. 버튼을 클릭하면 추가적인 메뉴를 볼 수 있습니다.
2. ExitSDK
public void UCGameExitSDK_U() {
UCGameSDK.defaultSDK().exitSDK();
}
UCGame SDK 안드로이드 종료 처리부분입니다.
이것으로 유니티3D 안드로이드에 중국 UCGame SDK 연동 정리를 마무리합니다.
1. FloatButton
public void UCGameCreateFloatButton_U() {
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
UCGameSDK.defaultSDK().createFloatButton(UnityPlayer.currentActivity, new UCCallbackListener<String>() {
@Override
public void callback(int arg0, String arg1) {
// TODO Auto-generated method stub
JSONObject jsonObj = new JSONObject();
if (arg0 == UCGameSDKStatusCode.SDK_OPEN) {
Log.d(LOG_TAG, "createFloatButton SDK_OPEN");
} else if (arg0 == UCGameSDKStatusCode.SDK_CLOSE) {
Log.d(LOG_TAG, "createFloatButton SDK_CLOSE");
}
try {
jsonObj.put("resultCode", arg0);
jsonObj.put("message", arg1);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
UnityPlayer.UnitySendMessage("PluginUCGameManager", "UCGameFloatButton_J", jsonObj.toString());
}
});
} catch (UCCallbackListenerNullException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UCFloatButtonCreateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public void UCGameShowFloatButton_U(final double xPosRatio, final double yPosRatio, final boolean bVisible) {
runOnUiThread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
// xPosRatio는 0 또는 100만 지원.
UCGameSDK.defaultSDK().showFloatButton(UnityPlayer.currentActivity, xPosRatio, yPosRatio, bVisible);
}
});
}
protected void onDestroy() {
super.onDestroy();
UCGameSDK.defaultSDK().destoryFloatButton(UnityPlayer.currentActivity);
}
플롯버튼을 만들거나 보여주는 기능을 처리하는 안드로이드 부분입니다. 어려울건 없고 보여줄 때 x값을 0 또는 100만 지원한다는 것만 조심하면 될 듯합니다.
public void UCGameCreateFloatButton()
{
curActivity.Call("UCGameCreateFloatButton_U");
}
public void UCGameShowFloatButton(double xPosRatio, double yPosRatio, bool bVisible)
{
curActivity.Call("UCGameShowFloatButton_U", xPosRatio, yPosRatio, bVisible);
}
void UCGameFloatButton_J(string strResult)
{
JsonData jData = JsonMapper.ToObject(strResult);
int iResult = Convert.ToInt32(jData["resultCode"].ToString());
string strMessage = jData["message"].ToString();
switch(iResult)
{
case -700:
// public static final int SDK_OPEN = -700;
break;
case -701:
//public static final int SDK_CLOSE = -701;
break;
default:
break;
}
SetLog("UCGame FloatButton " + strMessage);
}
PluginUCGameManager 컴포넌트 부분입니다. fYpos += 50;
if (GUI.Button (new Rect(0, fYpos, 100, 50), "FloatButton") == true)
{
PluginUCGameManager.GetInstance().UCGameCreateFloatButton();
}
fYpos += 50;
if (GUI.Button (new Rect(0, fYpos, 100, 50), "ShowFloat") == true)
{
PluginUCGameManager.GetInstance().UCGameShowFloatButton(100, fYpos, true);
}
TestGUI의 OnGUI 부분입니다.플롯버튼을 생성후 보여진 모습입니다. 버튼을 클릭하면 추가적인 메뉴를 볼 수 있습니다.
2. ExitSDK
public void UCGameExitSDK_U() {
UCGameSDK.defaultSDK().exitSDK();
}
UCGame SDK 안드로이드 종료 처리부분입니다.
public void UCGameExitSDK()
{
curActivity.Call("UCGameExitSDK_U");
}
PluginUCGameManager 이구요. fYpos += 50;
if (GUI.Button (new Rect(0, fYpos, 100, 50), "ExitSDK") == true)
{
PluginUCGameManager.GetInstance().UCGameExitSDK();
}
TestGUI 부분입니다.이것으로 유니티3D 안드로이드에 중국 UCGame SDK 연동 정리를 마무리합니다.

댓글
댓글 쓰기