1.opengl es针对yi'dong'duan
1.opengl es针对yi'dong'duan
https://zhuanlan.zhihu.com/p/418293949
将unity安装目录下Editor - Data - PlaybackEngines - AndroidPlayer - Variations - mono - Release - Class.jar拷贝到安卓Project目录下的自己创建的库中的libs文件夹下,并且右键add as library到模块中
安卓目录下,AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sikiedu.testlibrary"> <application android:allowBackup="true" android:supportsRtl="true"> <activity android:name=".MainActivity" android:label="UnityAndroidTest" android:exported="true"> <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>
新建一个模块,File - New - New Module,选择Android Library
Jar Aar
调用方式可以是C#调用,也可以是Java做
修改MainActivity,或者给一个非Activity的class
上述三种可以任意组合
官方不再推荐Jar包
File - New - New Module创建新模块,并在新模块中创建一个空的activity
1.unity导出工程到安卓内修改,由安卓打apk
2.安卓将功能提供成插件给unity用,由unity打包apk
每一个页面/界面都是一个Activity,例如QQ的每一个页面都是Activity
unity将内部所有的内容做成一个Main Activity,将这个Main Activity在安卓机上显示
然后在Unity打包出来的Main Activity里面加入逻辑,则完成了扩展功能
或者由安卓提供插件Plugins,Unity整合发布
测试页面加载
创建一个新工程,设置api15,选择一个empty activity
进入页面,如果提示不能正常使用,则在左边找到gradle-wapper-gradle wapper properties,复制右侧最后一句下载地址
浏览器中粘贴,下载
下载完成后,关闭android studio,在c盘-用户-.gradle-wapper-dists-gradle-4.1.all- 文件夹
将下载好的gradle复制进去,删除另外的文件
打开android studio,如果再报错,则根据提示安装缺失
Build - Build APK,生成APK,
检测碰撞体是否位于绘制的圆(球)形区域内:isGrounded=Physics2D.OverlapCircle(groundCheck.transform,circleRadius,ground);
对该Physics2D的Api不够理解的,可以在Crawler的脚本中添加Unity事件函数,加深理解:
private void OnDrawGizmos()
{
Gizmos.color = Color.grey;
Gizmos.DrawWireSphere(groundCheck.transform.position, circleRadius);
}
该事件会以groundCheck物体(爬虫的子物体)位置点为圆心,绘制一个与上述Physics2D.OverlapCircle(...)相同的圆(球)形区域,当爬虫移动到平台边缘时,可以直观地看到isGrounded何时=true或=false。
在 ProjectSetting里面的 Graphics设置,
相机设置 Transparency Sort Mode
可以修改当前视频场景内 人物与树重叠的优先级
当前视频改的是 Custom Axis 并通过修改Y的值 来确定相机的展示逻辑
100集讲解面板加载
app-libs
android-libs
创建gamehelper类,添加mainactivity变量,unity用于通信的物体字段,unity用于接收通信的方法名称,以及mainactivity的初始化方法
将unity安装目录下的classes.jar拷贝到android studio的app-libs下
app - build.gradle下
apply plugins : 'com.android.library'生成jar和aar包
jar包只有代码
aar包包含代码和资源
PlatMsgManager回顾
首先new一个gameobject指定名称,并且添加组件platformscript脚本,指定给自己的字段
platformscript主要是接收json字段以及分发给自己的结构体
安卓工程的名字是unity的package name
安卓package name和unity的包名保持一致
unity发送消息到平台方法
unity从平台获取整性数据
接收到消息后,解析消息并执行
用队列储存消息
从底层拿到gamehelper类需要用宏限制,只在安卓和非unity编辑器下运行
androidjavaclass类也一样
private Vector3 mydir;
void Update()
{
inputH=Input.GetAxis("Horizontal");
inputV=Input.GetAxis("Vertical");
mydir=new Vector3(inputH,0,inputV)
}
private void FixedUpdate(){
if(inputV!=0){
rigid.MovePosition(transform.position+transform.forward*moveSpeed*Time.deltaTime*inputH)
}else{
if(inputH!=0){
rigid.MovePosition(transform.position+transform.right*moveSpeed*Time.deltaTime)
}
}
}