前言:因为工作的需要,要在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!!!
网友评论