美文网首页
Unity与Android交互之AndroidJavaProxy

Unity与Android交互之AndroidJavaProxy

作者: 养渔人 | 来源:发表于2017-10-19 14:46 被阅读0次

前言:因为工作的需要,要在Unity中调用Jar包,这篇文章会持续更新,欢迎吐槽,接受留言,一起进步!

Unity 调用Jar中的接口

首先,在Java代码中定义接口,示例代码如下:

public  interface SDKCallbackListener
{
    void OnSDKInited(String msg);
    void OnAuthSuccess(String token);
    void OnCreatedLive(String url);
    void OnDeletedLive(String id);
}

其次,在Unity 工程C#代码中,实现该接口

注意:Unity C#代码实现Android Java 代码必须要完全一致,但是允许在UnityC#代码中实现多次

class SDKCallbackListener : AndroidJavaProxy
{
        // 这句话很重要!!!C#找到Jar中接口的引用
        public SDKCallbackListener() : base("com.unitynative.weibounitysdk.SDKCallbackListener") { }

        public void OnSDKInited(string msg)
        {
            ATrace.Log( "OnSDKInited:" + msg);
        }
        public void OnAuthSuccess(string token)
        {
            ATrace.Log("OnAuthSuccess:" + token);
        }
        public void OnCreatedLive(string url)
        {
            ATrace.Log("OnCreatedLive:" + url);
        }
        public void OnDeletedLive(string id)
        {
            ATrace.Log("OnDeletedLive:" + id);
        }
}

然后,在C#中new一个SDKCallbackListener,并把new好的值传到Java代码中

Unity 中C#代码,为了完成交互工作

mCallbackListener = new SDKCallbackListener();
// 调用Jar中的方法,并把new的值传进去
 mSDKJavaObject.Call("initSDK", mCallbackListener);

最后,在Java代码中调用接口中的方法就好了

Java 代码,开始使用解开了

private  SDKCallbackListener mCallbackListener;
public  void initSDK(SDKCallbackListener listener)
{
        mCallbackListener = listener;
        mCallbackListener.OnSDKInited("Weibo initSDK ok");
}
  

参考文档:

  • Unity Android Plugin开发指南
    评价:本文包含了分成详细的Unity 与 Android之间的交互
    好了,本篇会一直持续更新下去,虚心学习,没有解决不了的Bug!!!

相关文章

网友评论

      本文标题:Unity与Android交互之AndroidJavaProxy

      本文链接:https://www.haomeiwen.com/subject/vevuuxtx.html