Unity—Android通讯
16lz
2021-01-23
---------------------- -Unity 调用 android项目中的方法:--------------------------------------
--unity调android 本人目前发现android主activity必须继承UnityPlayerActivity
方式一:
--unity中:
private AndroidJavaClass ajc;
private AndroidJavaObject ajo;
void Awake(){
ajc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
ajo = ajc.GetStatic<AndroidJavaObject>("currentActivity");
}
void OnGUI(){
if(GUI.Button(new Rect(100,100,200,200),"按钮名")){
if(ajo != null){
ajo.Call("test"); --无参调用
ajo.Call("test","参数"); --有参调用
}
}
}
--Android中
public void test(){
Log.i("我被调用了");
}
public void test(String args){
Log.i("unity传来的参数是:"+args);
}
--------------------------------------------------------------------------------------------
方式二:
--unity中:
private AndroidJavaClass ajc;
void Awake(){
ajc = new AndroidJavaClass("com.sdk.api.sdkApi"); --包名+类名
}
void OnGUI(){
if(GUI.Button(new Rect(100,100,200,200),"按钮名")){
if(ajc != null){
ajc.CallStatic("test"); --无参调用
ajc.CallStatic("test","参数"); --有参调用
}
}
}
--Android中
package com.sdk.api;
public class sdkApi {
public static void test(String s){
Log.i("unity传进来的参数是", s);
}
public static void test(){
Log.i("我被调用了");
}
}
------------------------ Android 调用 unity项目中的方法:------------------------------------------------------------------------
--unity中:
void CallBack(String str){
Debug.Log("Unity中的方法被调用"+str);
}
--Android中:
import com.unity3d.player.UnityPlayer;
private static String gameObj = "Main Camera"; --脚本所在物体名
UnityPlayer.UnitySendMessage(gameObj,"CallBack","参数");
-----------------------------------------------------------------------------------------------------
Init() --sdk初始化
Logic()--sdk登录函数
LogOut()--sdk登出函数
Pay() --支付
GameCenter() --社区
流程:
--初始化--登录:{打开社区,支付,退出}
1.客户端-----(请求自己的订单号)------>游戏服务器
2.客户端-----(打开充值,附带参数(订单号))------>SDK服务器
3.SDK服务器----(支付成功)----->游戏服务器
4.游戏服务器------(支付成功 加金币)-------->游戏客户端
更多相关文章
- Android 获取WIFI MAC地址的方法
- Android键盘自适应方法.
- Android的布局方法
- 修改android 睡眠的时间的两种方法
- Android 设置颜色的方法总结
- Android 中两种方法设置android:gravity 和 android:layout_grav