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 연동 정리를 마무리합니다.
댓글
댓글 쓰기