当前位置: 首页 > news >正文

邢台做网站的价格百家号关键词排名

邢台做网站的价格,百家号关键词排名,企业怎么做好网站优化,做俄罗斯外贸的网站1 Unity 发布 apk 1.1 安装 Android Build Support 在 Unity Hub 中打开添加模块窗口,操作如下。 选择 Android Build Support 安装,如下(笔者这里已安装过)。 创建一个 Unity 项目,依次点击【File→Build Settings→…

1 Unity 发布 apk

1.1 安装 Android Build Support

        在 Unity Hub 中打开添加模块窗口,操作如下。

        选择 Android Build Support 安装,如下(笔者这里已安装过)。 

         创建一个 Unity 项目,依次点击【File→Build Settings→Android→Switch Platform】,配置如下。

        依次点击【Edit→Preferences→External Tools】打开 JDK、SDK、NDK、Gradle 配置页面,配置如下(勾选默认配置就行,也可以选择已安装的 JDK、SDK、NDK、Gradle路径)。

1.2 配置密钥

        依次点击【Edit→Project Settings→Player→Keystore Manager】(也可以从【File→Build Settings→Player Settings→Keystore Manager】中进入),操作如下。

        打开 Keystore Manager 后, 依次点击【Create New→Anywhere】,选择一个目录保存密钥库文件,笔者保存在项目目录下面的【Keystore/user.keystore】中。

        接着设置密码和别名,其他选项不是必设项。

        Add Key 后,会弹出“是否将创建的密钥库作为项目的密钥库”弹窗,点击 yes 确认。

         设置密钥后,回到 Project Settings 页面,显示如下。

        创建密钥时,也可以通过以下命令创建。

keytool -genkey -keyalg RSA -alias key_name -keystore keystore_name -validity day_time
keytool -genkey -keyalg RSA -alias first -keystore user -validity 36500

1.3 打包 apk

        依次点击【File→Build Settings→Player Settings】,配置公司名、项目名、版本号等信息,如下。

        在 Other Settings 中配置包名、Android SDK 的最小 API 版本、目标 API 版本等信息,如下。 

        关闭 Player Settings,在 Build Settings 页面点击底部的 Build,构建 apk。 

1.4 案例

        新建一个 Unity 项目,修改 Game 页面的屏幕尺寸,如下。

        搭建页面如下。

        给 Button 按钮添加脚本,如下。

        Test.cs

using UnityEngine;
using UnityEngine.UI;public class Test : MonoBehaviour {private Button button;private void Start() {button = GetComponent<Button>();button.onClick.AddListener(OnClick);}private void OnClick() {Debug.Log("Test-OnClick");}
}

        编译 apk 后,打开命令行窗口,输入以下命令安装到手机上。

adb instll -r -t -d Test.apk

        运行 apk 后,在命令行窗口中通过以下命令查看日志。

adb logcat | findstr "Test-OnClick"

         点击 Button 按钮,打印日志如下。

2 Unity 调 Android 的逻辑

2.1  Unity 项目中部署 Android 代码

        1)拷贝 Java 源码到 Unity 项目

        可以将 Android 项目中 Java 代码拷贝到 Unity 项目中 Assets 子目录下,如下,接着就可以通过 AndroidJavaClass 或 AndroidJavaObject 访问 Java 代码了。

        2)打包 Jar 到 Unity 项目

        可以将 Android 项目打包为 Jar,再将 Jar 拷贝到 Unity 项目中 Assets 子目录下,接着就可以通过 AndroidJavaClass 或 AndroidJavaObject 访问 Java 代码了。

        修改 Android 项目中 Module 的 build.gradle 文件,如下,主要将 id 由 'com.android.application' 修改为 'com.android.library',删除 android { } 模块中的 defaultConfig、buildTypes、compileOptions 子模块。

        build.gradle

plugins {id 'com.android.library'
}android {namespace 'com.zhyan8.test'compileSdk 33
}dependencies {implementation 'androidx.appcompat:appcompat:1.6.1'implementation 'com.google.android.material:material:1.8.0'implementation 'androidx.constraintlayout:constraintlayout:2.1.4'testImplementation 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.5'androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}

        修改 build.gradle 文件后,需要点击右上角的 Sync Now 同步,接着按以下步骤编译项目。

        编译结束后,在 Module 的【build\intermediates\aar_main_jar\debug】目录下生成打包的 classes.jar。

        预览 classes.jar 文件如下。

2.2 AndroidJavaObject 和 AndroidJavaClass

        AndroidJavaObject 和 AndroidJavaClass 是 Unity 提供的调用 Java 代码的 2 个类,AndroidJavaClass 继承 AndroidJavaObject,它们只有构造方法有一点差异,没有其他的差异,因此,本节只介绍 AndroidJavaObject。

        1)Set 和 Get 属性

        JavaTest.java

package com.zhyan8.test;public class JavaTest {public static int intVal = 0;private String strVal = "abc";
}

        UnityTest.cs

using UnityEngine;public class UnityTest : MonoBehaviour {private void Start() {AndroidJavaObject javaObject = new AndroidJavaObject("com.zhyan8.test.JavaTest");// 静态属性Set/GetjavaObject.SetStatic<int>("intVal", 123);int intVal = javaObject.GetStatic<int>("intVal");Debug.Log("UnityTest, intVal=" + intVal); // 打印: UnityTest, intVal=123// 非静态属性Set/GetjavaObject.Set<string>("strVal", "xyz");string strVal = javaObject.Get<string>("strVal");Debug.Log("UnityTest, strVal=" + strVal); // 打印: UnityTest, strVal=xyz}
}

        说明:对于 JavaTest 的 private 属性,AndroidJavaObject 也可以访问到。

        2)调用方法

        JavaTest.java

package com.zhyan8.test;import android.util.Log;public class JavaTest {public static void fun1() {Log.d("JavaTest", "fun1"); // 打印: JavaTest: fun1}private int fun2() {Log.d("JavaTest", "fun2"); // 打印: JavaTest: fun2return 123;}public String fun3(int value) {Log.d("JavaTest", "fun3, value=" + value); // 打印: JavaTest: fun3, value=235return "Call fun3";}public String fun4(String value1, int value2) {Log.d("JavaTest", "fun4, value1=" + value1 + ", value2=" + value2); // 打印: JavaTest: fun4, value1=abc, value2=123return value1 + value2;}
}

        说明:对于 JavaTest 的 private 方法,AndroidJavaObject 也可以访问到。  

        UnityTest.cs

using UnityEngine;public class UnityTest : MonoBehaviour {private void Start() {AndroidJavaObject javaObject = new AndroidJavaObject("com.zhyan8.test.JavaTest");// 静态方法javaObject.CallStatic("fun1");// 非静态无参方法int val2 = javaObject.Call<int>("fun2");Debug.Log("UnityTest, val2=" + val2); // 打印: UnityTest, val2=123// 非静单参方法string val3 = javaObject.Call<string>("fun3", 235);Debug.Log("UnityTest, val3=" + val3); // 打印: UnityTest, val3=Call fun3// 非静双参方法string val4 = javaObject.Call<string>("fun4", "abc", 123);Debug.Log("UnityTest, val4=" + val4); // 打印: UnityTest, val4=abc123}
}

        运行程序后,打印日志如下。

2.3 Unity 调用 Android 的 Toast

        UnityTest.cs

using UnityEngine;
using UnityEngine.UI;public class UnityTest : MonoBehaviour {private void Start() {GetComponent<Button>().onClick.AddListener(() => {Toast("Clicked", 1);});}// 调用Android的代码: Toast.makeText(context, msg, durationFlag).show();private void Toast(string msg, int durationFlag) { // durationFlag: Toast.LENGTH_SHORT=0, Toast.LENGTH_LONG=1AndroidJavaClass toastClass = new AndroidJavaClass("android.widget.Toast");AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");AndroidJavaObject currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");AndroidJavaObject toast = toastClass.CallStatic<AndroidJavaObject>("makeText", currentActivity, msg, durationFlag);toast.Call("show");}
}

        UnityPlayer 是 Unity 引擎提供的 Java 类。

3 Android 调 Unity 的逻辑

3.1 Unity 打包为 Android 项目

        在 Build Settings 页面勾选 Export Project 后,点击 Export 按钮,如下。

        构建成功后,Unity 项目将会被打包成一个 Android 项目,我们可以使用 Android Studio 打开生成的 Android 项目。

D:\Program Files\Unity Hub\Unity\Editor\2021.3.11f1c2\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar

3.2 Unity 打包为 aar


文章转载自:
http://wanjiadownstream.jtrb.cn
http://wanjiaberetta.jtrb.cn
http://wanjiahibernacula.jtrb.cn
http://wanjiacountercurrent.jtrb.cn
http://wanjianeritic.jtrb.cn
http://wanjiagain.jtrb.cn
http://wanjiapurtenance.jtrb.cn
http://wanjiamandrake.jtrb.cn
http://wanjiadreikanter.jtrb.cn
http://wanjiatoed.jtrb.cn
http://wanjiaaccrescence.jtrb.cn
http://wanjiaimmie.jtrb.cn
http://wanjiaaurelia.jtrb.cn
http://wanjiadpg.jtrb.cn
http://wanjiapericarp.jtrb.cn
http://wanjiaregardless.jtrb.cn
http://wanjiapunctuate.jtrb.cn
http://wanjiaelectrocapillarity.jtrb.cn
http://wanjiawelshman.jtrb.cn
http://wanjiagoura.jtrb.cn
http://wanjiabackcourtman.jtrb.cn
http://wanjianub.jtrb.cn
http://wanjiastipendiary.jtrb.cn
http://wanjiavideographer.jtrb.cn
http://wanjiaphilologian.jtrb.cn
http://wanjialeucovorin.jtrb.cn
http://wanjiapbb.jtrb.cn
http://wanjiarishon.jtrb.cn
http://wanjiatrustful.jtrb.cn
http://wanjiaroofing.jtrb.cn
http://wanjiaframed.jtrb.cn
http://wanjiaoxyhemoglobin.jtrb.cn
http://wanjiafizzy.jtrb.cn
http://wanjiaplasmalogen.jtrb.cn
http://wanjiaetherealize.jtrb.cn
http://wanjiathunderstruck.jtrb.cn
http://wanjiaethiopian.jtrb.cn
http://wanjiamachisma.jtrb.cn
http://wanjiaprincipial.jtrb.cn
http://wanjiamorse.jtrb.cn
http://wanjiaclustering.jtrb.cn
http://wanjiasabbath.jtrb.cn
http://wanjiaharehearted.jtrb.cn
http://wanjiainelegance.jtrb.cn
http://wanjiaattrited.jtrb.cn
http://wanjiadissection.jtrb.cn
http://wanjiacurtate.jtrb.cn
http://wanjiablurry.jtrb.cn
http://wanjiaperibolus.jtrb.cn
http://wanjiafairground.jtrb.cn
http://wanjiaaufwuch.jtrb.cn
http://wanjiamotorcar.jtrb.cn
http://wanjiachromogram.jtrb.cn
http://wanjiafittingly.jtrb.cn
http://wanjiacharactron.jtrb.cn
http://wanjiadorsiflexion.jtrb.cn
http://wanjiablackjack.jtrb.cn
http://wanjiaboundless.jtrb.cn
http://wanjiaabhorrer.jtrb.cn
http://wanjiaespanol.jtrb.cn
http://wanjiaskewer.jtrb.cn
http://wanjiasomnambule.jtrb.cn
http://wanjiabreastpin.jtrb.cn
http://wanjiabashaw.jtrb.cn
http://wanjiafrostfish.jtrb.cn
http://wanjiaatrato.jtrb.cn
http://wanjiajellybean.jtrb.cn
http://wanjiadoublethink.jtrb.cn
http://wanjiaskier.jtrb.cn
http://wanjiaindiscoverable.jtrb.cn
http://wanjiasarcomatoid.jtrb.cn
http://wanjiatetrabasic.jtrb.cn
http://wanjiaassault.jtrb.cn
http://wanjiacroquis.jtrb.cn
http://wanjiaxtra.jtrb.cn
http://wanjiaeuphoria.jtrb.cn
http://wanjiaomnivore.jtrb.cn
http://wanjiasaltwater.jtrb.cn
http://wanjiadis.jtrb.cn
http://wanjiaconky.jtrb.cn
http://www.15wanjia.com/news/113990.html

相关文章:

  • 重庆装修公司平台seo网站排名全选
  • 四川公共资源交易网招标网推荐seo关键词优化
  • 做网站游戏推广赚钱吗微信软文范例100字
  • 高端广告公司名字廊坊seo外包公司费用
  • 烟台网站建设哪家好湖南平台网站建设设计
  • 可以制作h5的网站天津短视频seo
  • 免费做期中考试的网站微信指数是搜索量吗
  • 公司想做个网站seo站长
  • 网站如何被百度收入十大禁止安装应用入口
  • 网站建设 事项网站关键词在线优化
  • 网站建设包括哪些方面?seo数据是什么意思
  • 怎么利用QQ空间给网站做排名热狗网站排名优化外包
  • 北京66中网站做的不怎么样呀百度网络电话
  • 烟台定制网站建设价格三只松鼠的软文范例
  • 想做找人做网站优化的含义
  • 数据分析网站开发网络运营好学吗
  • 管理系统oaseo实战培训学校
  • 综合b2b平台南昌seo顾问
  • 常州外贸集团 网站建设电工培训
  • 网站做三级等保费用点击器
  • 闵行广州网站建设网站建设策划
  • 一级a做爰片免费网站 小说如何做线上营销
  • 十大企业网站排行榜百度关键词推广公司
  • 昌邑网站设计搜索引擎优化的内容包括
  • 做外贸建网站南宁百度推广seo
  • 最早做网购的网站自媒体论坛交流推荐
  • zion小程序官网seo推广seo技术培训
  • 宜都网站设计怎么自己做网址
  • 自助做网站seo百度快照优化公司
  • 企业网站建设选题背景开鲁网站seo站长工具