例如在一个android项目中,点击一个按钮,启动unity for android。

1、首先在Unity 引擎中将Unity3D项目build一下,需要在build settings——> platform中选择Android平台。编译好,就会在Unity3D项目的目录下\Temp\StagingArea中自动生成一个Android工程目录结构的包,这个包就是Android项目需要引用的包

2、根据unity3d项目..\Temp\StagingArea的目录包,在Eclipse中的新建一个项目,这个项目是根据Android Project from Existing Code 进行创建的项目

这个Existing Code Root Directory就是unity3d项目下的..\Temp\StagingArea这个目录,并将这个项目设置为Library

3、将这个Library项目中的assets目录下bin目录与libs目录拷贝到需要整合的Android项目中的assets目录下

4、需要与Unity3D进行整合的Android项目需要引用刚才的Library

5、最后把Unity3D安装目录如..\Unity\Editor\Data\PlaybackEngines\androidplayer\bin目录下的classes.jar拷贝到Android项目下libs的目录下,并引用它。

6、完成以上步骤,开始在Android项目中写脚本。

package com.example.androidcallunity;

import android.os.Bundle;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

import android.view.View.OnClickListener;

public class MainActivity extends Activity {

Context mContext = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mContext = this;

setContentView(R.layout.activity_main);

Button call = (Button)this.findViewById(R.id.button1);

call.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

myStartActivity();

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

public void myStartActivity() {

Intent intent = new Intent(mContext,unityActivity.class);

intent.putExtra("name", "Activity");

this.startActivity(intent);

}

}

新建一个类脚本,

这个Activity是继承于UnityPlayerActivity。

package com.example.androidcallunity;

import android.annotation.SuppressLint;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.KeyEvent;

import com.unity3d.player.UnityPlayerActivity;

public class unityActivity extends UnityPlayerActivity {

protected void onCreate(Bundle savedInstanceState) {

// call UnityPlayerActivity.onCreate()

super.onCreate(savedInstanceState);

// print debug message to logcat

Log.d("OverrideActivity", "onCreate called!");

}

}

如果你的unity程序LAUNCHER Activity不是UnityPlayerActivity,那么你在Intent 中就得写unity工程中的AndroidManifest.xml LAUNCHERActivity的类

Intent intent = new Intent(mContext,LAUNCHERActivity.class);

this.startActivity(intent);

Run As

点击按钮,启动unity开发界面

unity android 启动,Android启动Unity相关推荐

  1. 解决unity 打包在Android 8.0上启动出现黑屏问题(Android权限弹窗问题)

    解决unity 打包在Android 8.0上启动出现黑屏问题 本文链接:https://blog.csdn.net/baidu_34248947/article/details/89377983 我 ...

  2. unity安卓打包修改启动画面_Unity自动化打包Android APK

    零. 前言 最近在做Unity开发,有个任务是通过Jenkins实现自动化打包Unity游戏成Android APK的需求,所以在完成任务后,梳理成了一个最简单的教学,也把遇到的坑和大家分享. 若需要 ...

  3. android交互xml代码,Unity 与Android的交互(Android studio)

    主要介绍在Unity里调用Android原生代码,即用Androidstudio导出 aar 文件,在Unity里使用.源码在文末给出. 我使用的环境:AndroidStudio2.2 + Unity ...

  4. Android App Bundle 和Unity AAB BundleTools

    1.为什么要用Android App Bundle 从 2021年8月起,新应用需要使用 Android App Bundle 才能在 Google Play 中发布.现在,Play Feature ...

  5. 【100个 Unity小知识点】 | 启动unity应用时的 Unity Logo 删除/替换的三种方案

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

  6. Unity Hub安装Android环境 (Unity2019及以上支持)

    Unity Hub安装Android环境 (Unity2019及以上支持) 1. 下载Unity Hub 官网 https://unity.cn/releases 2. 安装Unity 选择需要安装的 ...

  7. Unity 和 Jar,自定义Unity安卓启动页

    打Jar包流程 1,新建一个AS的Java空项目 2,修改plugins为com.android.library,删掉多余的配置,再点击Sync Now,把这个工程变成类库 3,在java目录下新建所 ...

  8. android打aar给unity使用

    文章目录 效果 方式一 android端 1.新建library库 2.复制jar包 3.android项目中引用jar包 4.新建activity类继承UnityPlayerActivity 5.修 ...

  9. Android系统的启动过程

    Android系统的启动过程可以简单地总结为以下几个流程: 加载BootLoader -> 初始化内核 -> 启动init进程 -> init进程fork出Zygote(孵化器)进程 ...

  10. linux的android工作室,Android工作室在启动时抛出错误,linux机器

    我只是将我的Android Studio从1.5升级到2.3,我只是解压缩文件夹并复制到下载文件夹中,现在当我启动android studio时,我收到了此消息:Android工作室在启动时抛出错误, ...

最新文章

  1. 大数据的两面性_大数据,多大的数据才是大数据?
  2. 泰坦尼克号数据_看完泰坦尼克号生还数据之后,你还会认为是妇女和儿童先走吗?...
  3. uber在限制新司机加入了,看看新政策把
  4. 墙裂推荐:这可能是CAP理论的最好解释
  5. ajax 提交 .net ispostback不执行,ASP.NET基于Ajax的Enter键提交问题分析
  6. C++ opengl 对OpenGL中矩阵设置的初步认识
  7. 记录Yii2代码调试中出现的两个问题(截图展示)
  8. python成绩区间曲线图_Python重现论文图表之【包含置信区间的折线柱状图】
  9. 用c语言计算星期,计算任何一天是星期几的C语言源代码.
  10. Vue自定义指令—— 完美解决H5页面不同尺寸屏幕的适配问题
  11. 5.2刚买了佳能的ixus100is数码相机,可以录像不过是mov格式的,需要转换为dvd的软件...
  12. 向英雄联盟生涯致敬,三十行Python代码爬取LOL官网英雄皮肤图片
  13. 茆诗松概率论与数理统计持续更新中...
  14. sealos4.1部署Kubernetes单机
  15. HP Socket Pack笔记
  16. 韩媒批其国民都沉迷“美色” 娱乐产业是起因
  17. Spring漫画学习笔记(二) 什么是BeanFactory
  18. hud 6078 Wavel Sequence
  19. ITV常见故障错误代码(中兴平台)
  20. 酷狗音乐下载|酷狗音乐播放器下载

热门文章

  1. mysql 列转置_MySQL 行列转置
  2. vue中数组长度_vue.js - 如何获得动态数组的数组长度 - SO中文参考 - www.soinside.com...
  3. python怎么添加csv模式_python对csv文件追加写入列的方法
  4. c++ 遍历list_数据结构之图的遍历,一篇文章get全部考点
  5. java jtabbedpane 关闭_JTabbedPane实现关闭按钮 | 学步园
  6. mysql忽略大小写配置cnetos_CentOS7下安装MYSQL8.X并设置忽略大小写
  7. 四因素三水平正交试验表_案例 | 螺栓装配失效试验研究
  8. 二进制补码求值用c语言,C语言程序设计第2章数据类型.运算符与表达式.ppt
  9. php程序内存优化之数组操作优化
  10. jquery实现点击浏览器后退,上一页面自动刷新