摘要
游戏开发中进行会用到和原生组件进行相互调用,比如说;游戏中需要支付,那么就会通过Unity3D调取Android接口的方法。那么我们来看一下如何进行这个调用效果的。
原理
unity3d实现了这样的结构,那么这样的结构是什么呢,让我们把他归一归类讲解。
Unity调用Android的方法
1. 没有返回值的普通方法
C#中调用方式call(String moduleName)
AndroidJavaObject jo = new AndroidJavaObject("android.content.res.Configuration");
jo.Call("setToDefaults");在java中的方法格式为
public void setToDefaults(){
//你的方法逻辑
}2. 带有返回值的普通方法
AndroidJavaObject jo = new AndroidJavaObject("java.lang.String", "some string");
int hash = jo.Call("hashCode"); 在java中的方法格式为
public int hashCode(){
//你的方法逻辑
}3. 没有返回值的静态方法
AndroidJavaObject jo = new AndroidJavaObject("android.os.Binder");
jo.CallStatic("flushPendingCommands");在java中的方法格式为
public static void flushPendingCommands(){
//你的方法逻辑
}4. 带有返回值的静态方法
AndroidJavaObject jo = new AndroidJavaObject("java.lang.String");
string valueString = jo.CallStatic("valueOf", 42.0); 在java中的方法格式为
public static string valueOf(){
//你的方法逻辑
}Android调用unity3d的方法
只需要在你导入了游戏打包后的数据后,就可以通过如下代码段,来进行Android调用unity3d的方法了。
UnityPlayer.UnitySendMessage("unitychan", "next", "");UnitySendMessage中第一个参数为Unity3d中模型的名字,第二个参数为C#脚本中的方法名,第三个为方法的参数。
注意:使用这个方法前,请确认你的Unity3d中该unitychan对象身上挂着的脚本中有这个方法。
例如:
void next()
{
anim.SetBool("Next", true);
}
来源:CSDN,作者:喜欢雨天的我
原文:https://blog.csdn.net/qq_15807167/article/details/53573656
版权声明:本文为博主原创文章,转载请附上博文链接!





