摘要
游戏开发中进行会用到和原生组件进行相互调用,比如说;游戏中需要支付,那么就会通过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
版权声明:本文为博主原创文章,转载请附上博文链接!