| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 移动开发 -> Unity 使用android Sdk 踩坑记录------实现功能,unity访问android里面的一个基本类,用这个基本类的函数打开android activity。 -> 正文阅读 |
|
|
[移动开发]Unity 使用android Sdk 踩坑记录------实现功能,unity访问android里面的一个基本类,用这个基本类的函数打开android activity。 |
|
网上有很多教程,都是关于如何使用安卓library的,事实是,按照网上的教程一步一步跟着走,结果unity里面build的时候回出现各种各样的问题。。。 推荐教程: 1、http://www.xuanyusong.com/archives/667Unity3D研究院之打开Activity与调用JAVA代码传递参数? ?雨松大佬的教程 --------------------------------------------------------------------------------------------------- 第一步:新建android工程(我用的是android studio),选择无activity。 ---------------------------------------------------------------------------------------------------- 第二步:引入unity里面的classes.jar文件并添加为library,和UnityPlayerActivity文件,位置: C:\Program Files\Unity\2019.4.28f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar.? C:\Program Files\Unity\2019.4.28f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player\UnityPlayerActivity 这个文件位置各自不一样,反正我的是这个路径。 classes.jar放在lib文件夹下面,unityplayeractivity.java文件和你要编写的类放在一个文件夹。
? ?如果unityplayeractivity.java文件提示有错误,自己添加一下引用:
?新建各个功能类Controller(总控制),Testactivity1,TestActivity2,两个要打开的activity。 代码如下: package com.androidplugin.android;
import android.content.Context;
import android.content.Intent;
public class Controller {
public static String getString1(String s)
{
return s;
}
public String getString2(String s)
{
return s;
}
public static void StartActivity1(Context mContext, String name)
{
Intent intent = new Intent(mContext,TestActivity1.class);
intent.putExtra("name", name);
mContext.startActivity(intent);
}
public static void StartActivity2(Context mContext,String name)
{
Intent intent = new Intent(mContext,TestActivity2.class);
intent.putExtra("name", name);
mContext.startActivity(intent);
}
}
TestActivity1: package com.androidplugin.android;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class TestActivity1 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button close = (Button)this.findViewById(R.id.button0);
close.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TestActivity1.this.finish();
}
});
}
}
TestAvtivity2 package com.androidplugin.android;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class TestActivity2 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button close = (Button)this.findViewById(R.id.button0);
close.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TestActivity2.this.finish();
}
});
}
}
main.xml <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<Button android:id="@+id/button0"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="关闭这个Activity"/>
</LinearLayout>
</ScrollView>
------------------------------------------------------------------------------------------- 第三步:各种配置(这些就是坑) 1、style.xml,这个文件会让你在unity build的时候提示找不到一大堆东西。我把它注释了:
2、build.gradle apply plugin: 'com.android.application' 换成 apply plugin: 'com.android.library' ?implementation?fileTree(include: ['*.jar'], dir: 'libs') implementation?files('libs/classes.jar') 换成 compileOnly fileTree(include: ['*.jar'], dir: 'libs')
compileOnly files('libs/classes.jar')
这个不改unitybuild的时候会出错,说有两个classes.jar里面的类 3、manifest?
把UnityPlayerActivity作为程序第一窗口,然后注册另外两个窗口,其他东西最好都删掉,什么icon、theme的,不然也会出错。 ———————————————————————————————— 第四步 安卓生成aar 第五步 unity建立工程,包名不能跟安卓的一样,否则会出错。manifest不要打钩
把aar文件拖进unity的 Assets/Plugins/Android文件夹中。 ?随便在场景放点啥(验证这是咱们的unity场景)。 建个脚本: using System.Collections; public class Test : MonoBehaviour ? ? // Update is called once per frame ? ? } 把脚本随便挂在一个物体上,build。这个问题我研究了一天,把它记录下来,以备不时之需。 ? |
|
|
| 移动开发 最新文章 |
| Vue3装载axios和element-ui |
| android adb cmd |
| 【xcode】Xcode常用快捷键与技巧 |
| Android开发中的线程池使用 |
| Java 和 Android 的 Base64 |
| Android 测试文字编码格式 |
| 微信小程序支付 |
| 安卓权限记录 |
| 知乎之自动养号 |
| 【Android Jetpack】DataStore |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/4 10:34:58- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |