Android应用嵌入Unity教程:无缝集成技巧

环境搭建:
1)需要安卓JDK,并配置环境变量。
2)需要安卓SDK,放在本地,unity发布时需要调用。
3)需要Eclipse,Java代码编写工具。


实现步骤:

1)打开 Eclipse,建立一个 Android 空项目(File\New\AndrAPP Project)
Android应用嵌入unity android导入unity_eclipse


注意Package Name 要 与unity bundle identifier一致 (2)创建新的安卓项目。
Android应用嵌入unity android导入unity_Android应用嵌入unity_02

3)打开Unity安装目录

C:\ProgramFiles\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Development\Classes

复制classes.jar 文件。
Android应用嵌入unity android导入unity_android_03

4)将classes.jar导入Android项目。
Android应用嵌入unity android导入unity_Android应用嵌入unity_04Android应用嵌入unity android导入unity_eclipse_05Android应用嵌入unity android导入unity_Android应用嵌入unity_06


5)Android项目的结构:
src:源代码目录,根目录。
gen:自动生成代码的目录。
assets:资源目录。
bin:生成的二进制文件目录。
res:项目标准资源目录,图标等。
AndroidManifest.xml:配置清单。


6)添加服务项,范例是添加手机震动,注意选中res 文件夹下的AndroidManifest.xml 进行修改
Android应用嵌入unity android导入unity_java_07

Android应用嵌入unity android导入unity_android_08Android应用嵌入unity android导入unity_eclipse_09

选完之后点击一下Use Permission 就ok了


7)编写代码Java代码,以备unity调用。
Android应用嵌入unity android导入unity_eclipse_10

改完之后这样:

登录后复制

package com.niubi.andriod;

import android.app.Service;
import android.os.Bundle;
import android.os.Vibrator;
import com.unity3d.player.UnityPlayerActivity;


public class MainActivity extends UnityPlayerActivity
{
  Vibrator m_vibrator;

  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    this.m_vibrator = ((Vibrator)getSystemService(Service.VIBRATOR_SERVICE));
  }

  public String ShakeForUnity()
  {
    if (this.m_vibrator == null)
    {
      return "IS NULL";
    }
    this.m_vibrator.vibrate(2000);
    return "Shakeing";
  } 
}


8)导出JAR包 注意仅选中src和res 右键 Export 导出,否则Unity5.0以上版本生成APK包会报错。


Android应用嵌入unity android导入unity_eclipse_11

Android应用嵌入unity android导入unity_sdk_12

Android应用嵌入unity android导入unity_eclipse_13

注意:出现Resource is out of sync with the file system 导出报错时,尝试以下解决方案。
解决办法:需要手动刷新一下资源管理器。
1)在eclipse或mycelipse中,工程目录右键,选择F5(refresh)
2)或者设置eclipse或mycelipse自动刷新。
通过Window->Preferences->General->Workspace,选中Refresh automatically。


9) 回到Unity中创建 Plugins 文件夹 Plugins /Android

Android/bin/ 这里复制刚导出的安卓的.jar文件 到这个文件夹

Android/libs/ 这里是放入第三方的.jar //例如91等

Android项目中的中的res文件夹 拷贝的unity Android文件夹 中,Android项目中的AndroidManifest 配置文件 复制到 Android文件夹中。

Android应用嵌入unity android导入unity_Android应用嵌入unity_14

Android应用嵌入unity android导入unity_sdk_15

先写到这里 明天再补

搭建个简单的UI界面

差不多这样

Android应用嵌入unity android导入unity_eclipse_16

ok 写代码挂再mgr上

代码如下:

登录后复制

Button shake;
Text show;
AndroidJavaObject JavaObj;
void Awake()
    {
        shake = transform.Find("shake").GetComponent<Button>();
        show = transform.Find("show/Text").GetComponent<Text>();
        shake.onClick.AddListener(OnShakeClick);
        show.text = "";
    }
 void Start()
    {
        AndroidJavaClass JavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        JavaObj = JavaClass.GetStatic<AndroidJavaObject>("currentActivity");
    }
    void OnShakeClick()
    {
        show.text = "";
        show.text = JavaObj.Call<string>("ShakeForUnity");
    }
    
    

ok 结束 build 出来

注意:

Android应用嵌入unity android导入unity_Android应用嵌入unity_17


这几个地方尽量保持一致

结束 导出到手机就可以震了

               

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空