unity打开android界面报错,Unity3D与Android交互介绍.docx

Unity3D与Android交互介绍

Unity3D与Android交互介绍一.简介没有简介,直接上例子。二.实例主场景:需要实现效果。点击chen按钮,弹出一个Android的对话框,点击resturnstaticchen按钮,在unity界面内Debug出调用android方法返回的值,最后一个可以无视,效果和chen()一样,只是这个是一个静态方法,完成这里,unity调用Android的就搞定了。大致思路是点击NGUI的按钮调用一个物体上的脚本的里的函数方法,这个方法就是封装对Android的调用,这里用摄像机,摄像机的脚本取名AndroidContril,写下三个public方法chen(),resturnstaticchen(),chen() 我们不可能在这里里面直接写调用Android类的方法,这样在电脑Unity中运行的时候会说找不到Android类的error,所以我们要先处理一下平台,写一个类,在这个类中判断平台对不同平台处理不同的调用结果,预处理,你懂的类名就叫platmHelper吧#if UNITY_EDITOR //Unity环境中public class PlatmforHelper{public static void Chen(){Debug.Log("您当前实用的平台是"+Application.platform);}public static void staticChenk(){Debug.Log("您当前实用的平台是"+Application.platform);}public static stringresturnstaticChenk(string str){Debug.Log("您当前实用的平台是"+Application.platform);}}#elif UNITY_ANDROID //Android 环境中public class PlatmforHelper{ //后面说}#endif在AndroidContril的相关方法中调用PlatmforHelper的相关方法就不会报错了到这里我还不知道我要调用Android的什么类所以我直接生成Android工程看看再说,前一个勾选,后一个是包名,要更换,然后export。导成工程导入eclipse中,看我的工程我们看到就只有一个类,是一个activity,这个文件在Unity\Editor\Data\PlaybackEngines\androidplayer\com\unity3d\player下面也有,就是同一个,打开这个类看继承了NativeActivity的一个activity,毫无疑问,NativeActivity是activity的子类,在onCreate中就是设置了各种不要标题等等,然后把UnityPlayer这个view添加到当前的activity中。先不动这个类,我要写一个工具类,来调用我的安卓方法,简单起见,就在当前包写吧,就叫Androidhelper,顺便把工程名改一下,太长了,就改成dafeiji_这里面就要写Chen()、staticChenk()、resturnstaticChenk(string str),三个方法了,Chen()非静态,staticChenk静态,resturnstaticChenk(string str)有返回值因为调用Chen()和staticChenk() 是要弹出对话框,但是想想就知道,unity是以一个窗口的形式放在activity的布局中,所以Unity是在子线程中运行,Android只能在主线程改变界面ui,还需要一个handler来通知主线程弹框看我代码先就实现一个Chen()吧packagecom.android.hello;publicclassAndroidHelper {PrivatestaticActivitymyaActivity=UnityPlayerNativeActivity.activity;//获得UnityPlayerNativeActivity,这个是自己定义的静态变量,见后面解释private Handler myHandler;//handler传递消息publicvoidChenk(){Message msg = newMessage();msg.what = 1;getHandler().sendMessage(msg);//被调用的时候就发送handler消息}privatestatic Handler getHandler(){returnnew Handler(Looper.getMainLooper())//一定要写这个参数把handler加到主线程的looper{@OverridepublicvoidhandleMessage(Message m

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值