Unity 和 Android 交互实践与总结(Unity5.6 和 Eclipse 及 AndroidStudio2.3.1)

根据前人及大神的教程,这次博客分享下本人对Unity和Android交互的实践与总结,分享下亲身踩坑的经历。
首先,介绍下工具和环境

System:Windows 8.1 Pro(64bit)
Unity Version:Unity 5.6.0f3(64bit)
IDE:
①Visual Studio Ultimate 2013
②Eclipse Mars.2 Release (4.5.2)
③Android Studio 2.3.1
JDK Version:1.8.0_121
SDK Version:25.2.3
测试机Android版本:4.4.2

目录:
一、 AndroidStudio和Unity交互(导出ARR包)
二、 Eclipse和Unity交互(导出JAR包)
三、 AndroidStudio遇到的坑(错误解决方案)
四、 Unity遇到的坑(错误解决方案)

一、 先来聊聊AndroidStudio和Unity交互
1.创建你的Unity 项目 并设置player settings → settings for Android → Identification → Package Name(包名) 和 Minimum API Level(最低支持的Android API版本)
这里写图片描述
2.创建AndroidStudioProject
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

3.添加依赖库并设置依赖关系
(1) 依赖库位置:
…\Unity 5.6.0f3\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
这里写图片描述
(2) 将Classer.jar Cope到 libs 目录下。(本身是空的文件夹)
这里写图片描述
(3) 右键项目 选择 Open Module Settings 或者直接按F4 打开 Project Structure窗口,并设置 Dependencies(依赖关系)。
这里写图片描述
这里写图片描述
这里写图片描述

4.编辑MainActivity.java
修改 MainActicity extends(继承)UnityPlayerActivity,然后编写功能
注释 setContentView(R.layout.activity_main);

package com.nick.unitytest;

import android.app.AlertDialog;
import android.os.Bundle;
import android.os.Vibrator;
import android.widget.Toast;
import com.unity3d.player.*;

public class MainActivity extends UnityPlayerActivity {
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
    }
    // 定义一个显示Dialog的方法,在Unity中调用此方法
    public String ShowDialog(final String _title, final String _content){

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle(_title).setMessage(_content).setPositiveButton("Down", null);
                builder.show();
            }
        });

        return "Java return";
    }

    // 定义一个显示Toast的方法,在Unity中调用此方法
    public void ShowToast(final String mStr2Show){
        // 同样需要在UI线程下执行
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(getApplicationContext(),mStr2Show, Toast.LENGTH_LONG).show();
            }
        });
    }


    //  定义一个手机振动的方法,在Unity中调用此方法
    public void SetVibrator(){
        Vibrator mVibrator=(Vibrator)getSystemService(VIBRATOR_SERVICE);
        mVibrator.vibrate(new long[]{
  200, 2000, 2000, 200, 200, 200}, -1); //-1:表示不重复 0:循环的震动
    }

    // 第一个参数是unity中的对象名
    // 第二个参数是函数名
    // 第三个参数是传给函数的参数,目前只看到一个参数,并且是string
    public
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值