Unity工程里调用安卓的方法,需要用到JAR包。此文档主要介绍了Unity与Android相互通信的方法三。

    使用方法1,需要修改程序的主Activity,所以可以在程序的生命周期做一些初始化和其他工作。
    使用方法2,不需要修改主Activity,并可同时使用多个JAR包。
    使用方法3,Unity脚本中的方法可以被JAR包内调用,通常用来接受广播并将信息发送到Unity。

 

3、Unity直接调用jar包方法

Android工程中:

1、创建新的Android工程,在工程中app->libs导入classes.jar, 并右击选择Add As Library;

unity图标右键选择属性->打开文件位置找到classes.jar(Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar)

2、Android类继承UnityPlayerActivity;

3、在需要的地方调用UnityPlayer.UnitySendMessage(String s1, Strinig s2, String s3);(至少需要传入两个参数,第一个参数为unity中的一个gameobject名称,第二个参数为这个gameobject身上捆绑的脚本中的一个方法,而第三参数事实上是这个对应方法上的参数。)

如在接收到蓝牙广播时通知Unity:

switch (message) {

           case BluetoothAdapter.STATE_OFF:

                     UnityPlayer.UnitySendMessage("SetState", "setBluetoothState", "bt_state_off");

                     break;

       … …

4、删除 setContentView(R.layout.activity_main); 代码行;

5、将Android工程导出Jar包,如:unityToAndroid.jar

Unity工程中:

6、将Jar包(unityToAndroid.jar)拷贝到Unity工程中Assets/Plugins/Android/目录下。

7、Unity中创建UnityPlayer.UnitySendMessage(String s1, Strinig s2, String s3);jar包中提到的名为s1的gameobject。如上例中的“SetState”。

8、创建新脚本,挂在到名为s1的gameobject上,并在脚本中创建方法名为s2。如上例中的“setBluetoothState”。

 public Text wifiText;

 public void setWifiState(string s){

           wifiText.text = s;

            ......

 }

9、jar包中的UnityPlayer.UnitySendMessage(String s1, Strinig s2, String s3)一旦执行,此方法就会被调用,并将s3作为参数传入Unity中的s2方法中。如上例中的 "bt_state_off"作为参数传递给setWifiState(string s){}中的s。

注:该方法是一种Unity被动接受消息的方式,适用于Unity接受系统消息,如:wifi、蓝牙、电量等状态的变化信息等。

 

更多相关文章

  1. Android模拟器正确应用与安装方法
  2. Android运用自定义控件实现闪烁字
  3. Android(安卓)4.4、5.1、6.0 屏蔽Home键
  4. Android之EasyPermissions源码解析
  5. Objective-C与JavaScript交互的那些事
  6. android中关于使用scrollview嵌套LinearLayout,页面滚动条不到底
  7. 第一篇技术贴(Android(安卓)WebView)
  8. Android学习路线总结
  9. 设置Android(安卓)Studio启动时打开欢迎界面(选择最近打开过的工

随机推荐

  1. android listview实现表格样式
  2. Android(安卓)TextView内部padding问题
  3. Android SDK版本更新
  4. android中字符替换成表情
  5. Android微信界面
  6. Android(安卓)SQLite基础
  7. Android studio修改打包后的apk的名字
  8. android图像处理系统1.3
  9. Android横向智能刷新框架-SmartRefreshHo
  10. Android(安卓)应用安装过程分析