| |
|
开发:
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/13 14:34:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |