Unity与Android和iOS平台SDK对接-基础篇

一:Unity3d 与 Android之间的互相调用

1.Unity3d调用Android

1.首先在Android层写好接口u3dCall,这个方法只打印成功的提示:

public void unityCall() {

Log.i("TAG", "unityCall Android Successful");

}

2. 在Unity3d cs脚本中通过反射机制拿取对象并调用Android的接口u3dCall

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");

jo.Call("unityCall");

3. Unity3d调用Android接口的api

方法名      方法类型         说明

Call    实例         调用实例方法

Get    实例         获取实例变量(非静态)

Set     实例         设置实例变量(非静态)

CallStatic  静态         调用静态方法

GetStatic  静态         获取静态变量

SetStatic   静态         设置静态变量

如果Android的方法是需要传入参数的,则如下:

Android:

    public void unityCallWithArgs(String str, int i) {

        Log.i("TAG", "unityCall Android Str|int is " + str + "|" + i);

    }

U3d:

         jo.Call("unityCallWithArgs","Atany",100); 

如果需要返回值:

Android:

    public String unityCallReturn() {

        return "This is the return Value of Android";

    }

U3d:

         msg = jo.Call<string>("unityCallReturn");

    print ("U3d msg is "+msg);

 

2.Android调用Unity

如果想要异步的发送消息回Unity那么应该怎么处理呢?就是使用Unity3d的UnitySendMessage发送回去。UnityPlayer.UnitySendMessage() 参数1表示发送游戏对象的名称,参数2表示对象绑定的脚本接收该消息的方法,参数3表示本条消息发送的字符串信息。

Android:

public void U3d() {

        UnityPlayer.UnitySendMessage("SDKManager","OnMsgProxy", "exit");

    }

U3d:

    void OnMsgProxy(string str){

        print ("OnMsgProxy string is "+str);

}

二:Unity3d 与 iOS之间的互相调用

1.Unity3d调用iOS

1.首先在U3D中写个方法:

[DllImport("__Internal")]

private static extern void SendToSDKProxyFzl(string key);

 

2.在oc中方法

#if defined(__cplusplus)

extern "C"{

#endif

    //oc中方法写在这里

    void _iOS_SendToSDKProxyFzl(const char* strMsg)    {

    }

#if defined(__cplusplus)

}

#endif

2.iOS调用Unity

//OC代码

-(void)OcToUnitySendMessage:(NSString*)message{

    UnitySendMessage("SDKManager","OnMsgProxy",[message UTF8String]);

}

//untiy

void OnMsgProxy (string str){

        print ("andToU3dCallback string is "+str);

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值