基础知识相关文章:
https://blog.csdn.net/jiaxunnanling/article/details/89947744
新建工程,并引入Unity内置jar包相关文章:
https://blog.csdn.net/jiaxunnanling/article/details/90268239
二.如何扩展
由于Unity发布Android的Apk时,只包含一个主Acitivity,俗称MainActivity,可以通过扩展该Activity,达到预期效果。通过引入Unity内置的Android的Jar库,并继承库中的UnityPlayerActivity。
Unity内置的Android的Jar库地址在Unity目录:
Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
其中classes.jar就是Unity内置的Android的Jar库,这是扩展MainActivity需要使用的库。
Unity在发布Android的Apk时
如果没有在目录
Plugins/Android(Unity特殊目录)
存放AndroidManifest文件,Unity会使用默认的AndroidManifest文件 。
如果存在AndroidManifest文件,Unity会使用该AndroidManifest文件替换默认的AndroidManifest
扩展Unity的MainActivity时,注意AndroidManifest配置的主要Activity入口,例如使用自己扩展的AndroidManifest代替Unity默认的AndroidManifest,这样Activity入口就是我们自定义的Activity入口。
关于AndroidManifest的合并,可以参考基础知识:
https://blog.csdn.net/jiaxunnanling/article/details/89947744
三. 案例演示(导出Arr包)
如何引入Unity内置的jar包可以参考 :
https://blog.csdn.net/jiaxunnanling/article/details/90268239
在模块的这个目录下,右键新建一个空的Activity,不知道新建模块的可以参考:
https://blog.csdn.net/jiaxunnanling/article/details/90268239
目录结构,移除不必要的东西
修改MainAcitivity的代码,继承UnityPlayerActivity
package com.huowu.add;
import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity;
public class MainActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
修改AndroidManifest的文件内容,可以从其他地方复制过来再修改
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.huowu.add">
<application
android:label="@string/app_name"
android:usesCleartextTraffic="true">
<activity
android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="unityplayer.UnityActivity"
android:value="true" />
</activity>
</application>
</manifest>
在MainActivity中,添加一个加法运算方法,相当于扩展UnityPlayerActivity的功能
package com.huowu.add;
import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity;
public class MainActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加法运算
public int Add(int num1,int num2)
int sum = num1 + num2;
return sum;
新建脚本,AndroidToUnity,挂载到UI文本组件上界面,涉及到的内容,可以参考基础知识:https://blog.csdn.net/jiaxunnanling/article/details/89947744
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AndroidToUnity : MonoBehaviour
public Text text; //用来显示结果值
private AndroidJavaClass androidJavaClass; //获取Unity发布的唯一MainActivity类
private AndroidJavaObject androidJavaObject;//获取Activity对象
public void Awake()
text = this.GetComponent<Text>();
//Unity要导出的MainActivity类
androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
//获取MainActivity的实例对象
androidJavaObject = androidJavaClass.GetStatic<AndroidJavaObject>("currentActivity");
public void Start()
Add();
public void Add()
//调用Android写好的add的方法,并传参,获取结果值
int sum = androidJavaObject.Call<int>("Add",5,5);
text.text = "从Android计算出来的值为:" + sum;
发布APK,运行在模拟器的结果
四. 导出Jar包
Build Module后,打开目录build=>intermediates=>packaged-classes=>debug
以及 build=>intermediates=>manifest=>full=>debug
(注意我的AndroidStudio版本是3.1.3,其余的版本的目录可能不一样)
复制build=>intermediates=>packaged-classes=>debug中的classes,该目录下的libs是我们之前引用的Unity内置jar包,所以不需要复制出来,如果是其他jar包就需要一同复制出来。
复制 build=>intermediates=>manifest=>full=>debug目录下的AndroidManifest文件。
把classes和AndroidManifest文件一起导入的Unity工程下的Assets/Plugins/Android目录下,按照导出arr包时,编写AndroidToUnity一样,运行的效果是一样的。
区别在于Jar包没有过多的文件,相关联的文件需要自己去找。
Arr包已经把涉及到的资源都整理成一套了。
一.前序准备基础知识相关文章:https://blog.csdn.net/jiaxunnanling/article/details/89947744新建工程,并引入Unity内置jar包相关文章:https://blog.csdn.net/jiaxunnanling/article/details/90268239二.如何扩展由于Unity发布Android的Apk时,只...
打开Android Studio -> Start a new Android Studio Project -> Empty Activity , 一路Next
Application name: ‘`UnityTest’
Company domain: ‘ffim.c
Unity工程里调用安卓的方法,需要用到JAR包。此文档主要介绍了三种导出JAR包和调用JAR包的方法。
使用方法1,需要修改程序的主Activity,所以可以在程序的生命周期做一些初始化和其他工作。
使用方法2,不需要修改主Activity,并可同时使用多个JAR包。
使用方法3,Unity脚本中的方法可以被JAR包内调用,通常用来接受广播并将信息发送到Unity。
1. 继承主Ma...
一.Android导出jar或aar包到Unity
当在Android Studio开发时,将unity的jar包导入后,可自定义一个类继承自com.unity3d.player.UnityPlayerActivity
import com.unity3d.player.UnityPlayerActivity;
public class MainActivity extends UnityPlayerActivity {
@Override
protected void onCreat
首先我的平台:Unity2019.4.4f1+Android Studio
第一步在Android Studio上创建一个空项目
然后,在这里设置你的项目名,包名,项目位置,语言和最小支持的SDK,完成
完成后你会看到一个这样的目录右键这个目录选择new->moudel,选择Android Library
然后在这里设置你的moudel名,包名,语言和最小支持的SDK,完成
然后点击这个三角将你的资源视图改为project
然后在你的Unity安装目录下的Editor\Data\PlaybackE
Unity Android 交互
Unity Android 交互二
Unity Android 交互三 多 aar 接入 Unity 自动合并多个 AndroidManifest.xml
Unity Android SDK 接入 讯飞 SDK 实战之前使用 Eclipse 导出 jar 包导入 Unity 交互,下面使用 Android
Github源码:[点我获取源码]
索引Main主程序简介使用Main主循环调用其他模块ScriptingDefine 脚本定义Main Data 全局数据License 授权许可Parameter 全局参数
Main主程序简介
Main为框架的主模块,提供访问其他模块的快捷接口,还支持快捷宏定义、指定全局主要数据类、设置项目授权、以及配置全局参数等。
使用M.........
使用Unity启动关闭进程,包括进程的挂起与继续前言一、pandas是什么?
在unity的开发中,有时需要通过当前的unity程序取控制其他程序的开启与关闭,这时就需要一些进程的操作,可以参考以下的代码。
这些代码都是我根据自己的需求,从网上找的材料,然后改写的,参考的网址我会放在文章的最后。有些代码的含义我也还没有搞明白,发现问题欢迎指正。
一、pandas是什么?
进程访问枚举,无符号整型
public enum ProcessAccess : uint {
/// <summar