UM4L5——Unity调用对应API
UM4L5——Unity调用对应API
按照官方文档添加相关功能代码
此部分参考:
隐私合规接口 | 百度地图API SDK (baidu.com)
获取全球经纬度 | 百度地图API SDK (baidu.com)
获取地址 | 百度地图API SDK (baidu.com)
Android Studio内大致实现思路:
声明一个监听类继承BDAbstractLocationListener,它用于在MainActivity内被调用,开始获取定位信息
该类里需要实现一个监听定位成功的函数onReceiveLocation,定位成功后通过传入的定位结果类BDLocation对象获取定位的地址信息
将获取到的地址信息通过UnityPlayer.UnitySendMessage()发送到Unity,再通过Unity输出这些消息
在MainActivity内实现一个提供给Unity调用的获取地址的方法GetAddress(),
该方法会先执行隐私合规接口,确保获取地址消息正常,然后实例化LocationClient和监听类MyLocationListener,
然后将 ...
UM4L4——配置修改、权限修改
UM4L4——配置修改、权限修改
导入SDK
将下载的SDK压缩包解压,将libs内的所有文件都导入到Android Studio工程中的libs文件夹中,
具体可见:Android定位SDK | 百度地图API SDK (baidu.com)
根据官方文档说明修改配置和权限
具体可见:Android定位SDK | 百度地图API SDK (baidu.com)
首先在build.gradle内添加这一段
然后对照文档内所写的dependcies依赖项检查是否都在build.gradle的dependcies内具备了
如果缺少就去补全,若仅是版本不一致或者写法不一样则略过(一般情况下是不需要对dependcies进行修改的)
在AndroidManifest.xml加上这一段
最后在AndroidManifest.xml添加定位服务和权限
UEDL11-3——其他内容
UEDL11-3——其他内容
本章代码关键字
12EditorUtility.CompressTexture() //可以将纹理显式压缩为指定的格式,配合之后的资源导入相关使用EditorUtility.CollectDependencies() //返回对象所依赖的所有资源列表
压缩纹理
EditorUtility.CompressTexture()可以将纹理显式压缩为指定的格式,该知识点会配合之后的资源导入相关知识点使用
例如在资源导入后压缩它的纹理:
12345678910public class Lesson47 : AssetPostprocessor{ //资源导入后会自动执行的后处理方法 private void OnPostprocessTexture(Texture2D texture) { Debug.Log("纹理后处理回调" + texture.name); //对纹理进行压缩为ETC_RGB4,且压缩质量选择快速 Ed ...
UEDL11-2——文件面板相关
UEDL11-2——文件面板相关
本章代码关键字
12345EditorUtility.SaveFilePanel() //通常用于在编辑器中保存新创建的文件或选择文件的保存路径,该方法会返回用户选择的文件路径EditorUtility.SaveFilePanelInProject() //与SaveFilePanel()类似,但该方法会将保存路径限制在项目目录中,只允许选择项目内的文件夹作为保存路径EditorUtility.SaveFolderPanel() //通常用于在编辑器中选择一个文件夹作为保存路径,用于保存文件或执行其他与文件夹相关的操作EditorUtility.OpenFilePanel() //通常用于在编辑器中选择文件进行打开或执行其他与文件相关的操作EditorUtility.OpenFolderPanel() //通常用于在编辑器中选择文件夹进行打开或执行其他与文件夹相关的操作
显示 文件 存储面板
EditorUtility.SaveFilePanel()方法通 ...
UEDL11-1——编辑器默认窗口相关
UEDL11-1——编辑器默认窗口相关
本章代码关键字
1234EditorUtility.DisplayDialog() //显示提示窗口EditorUtility.DisplayDialogComplex() //显示三键提示窗口EditorUtility.DisplayProgressBar() //显示进度条EditorUtility.ClearProgressBar() //关闭进度条
显示提示窗口
EditorUtility.DisplayDialog()该方法会弹出一个提示窗口,
常用于用户二次确认某个逻辑,该方法会返回一个bool值,返回用户是否点击了确认按钮,如果直接关闭提示窗口就会返回false
参数一:窗口标题
参数二:窗口显示消息
参数三:确认键上显示的内容
返回值:是否点击了确认按钮
注意:提示窗口显示会阻塞逻辑,即直到点击确认按钮或者关闭窗口前,编辑器的逻辑都会被阻塞
123456789101112131415private void OnGUI(){ if (GUILayo ...
UEDL11——EditorUtility公共类
UEDL11——EditorUtility公共类
EditorUtility公共类
它是 Unity 编辑器中的一个实用工具类,提供了一系列用于编辑器脚本和自定义编辑器的实用功能
关于EditorUtility相关的更多内容:
EditorUtility - Unity 脚本 API(中文文档,缺失部分翻译)
Unity - Scripting API: EditorUtility (unity3d.com)(英文文档)
在哪里使用EditorUtility公共类中的相关内容
在编辑器相关处理都可以使用EditorUtility公共类中的相关内容,它主要提供的是一些辅助功能,可以在编辑器拓展开发的任意地方使用
但一定注意,它属于编辑器功能,无法被打包出去,只能在Unity编辑器中使用
准备工作
EditorUtility可以在任何编辑器功能开发时使用,但是为了之后的知识点讲解更方便,我们通过一个自定义窗口来进行知识讲解
EditorUtility的具体内容
编辑器默认窗口相关(弹出消息窗口,进度条等)
文件面板相关(通过文件面板选择文件或文件夹保存或打开的路径)
其他内容 ...
UEDL10-4——球体、网格线
UEDL10-4——球体、网格线
本章代码关键字
123Gizmos.DrawSphere() //绘制实心球体Gizmos.DrawWireSphere() //绘制线框球体Gizmos.DrawWireMesh() //绘制网格的线
Gizmos绘制球体
绘制球体有两个相关API:
绘制实心球体:Gizmos.DrawSphere(中心点, 半径);
绘制线框球体:Gizmos.DrawWireSphere(中心点, 半径);
两个方法的参数都是球体的位置及其半径
1234567private void OnDrawGizmosSelected(){ Gizmos.color = Color.red; Gizmos.DrawSphere(this.transform.position, 2); Gizmos.color = Color.white; Gizmos.DrawWireSphere(this.transform.position, 4);}
显示效果:
Gizmos绘制 ...
UEDL10-3——线段、网格、射线
UEDL10-3——线段、网格、射线
本章代码关键字
123Gizmos.DrawLine() //绘制线段Gizmos.DrawMesh() //绘制网格Gizmos.DrawRay() //绘制射线
Gizmos绘制线段
Gizmos.DrawLine(起点, 终点);
假设要绘制从自己位置出发到自身坐标系的(1,1,1)的线段:
12345private void OnDrawGizmosSelected(){ Gizmos.color = Color.red; Gizmos.DrawLine(this.transform.position, this.transform.position + Vector3.one);}
显示效果:
Gizmos绘制网格
Gizmos.DrawMesh(mesh, 位置, 角度);,可以将网格绘制到Scene窗口上,且面是填充的
参数一:要绘制的网格
参数二:绘制的位置
参数三:绘制网格的角度
1234567public Mesh mesh;private ...
UEDL10-2——贴图、图标
UEDL10-2——贴图、图标
本章代码关键字
12Gizmos.DrawGUITexture() //绘制贴图,只能在xy平面(不能调整z轴位置)上绘制,局限性较大Gizmos.DrawIcon() //绘制图标,需要传入图标名,图标要放在Assets/Gizmos文件夹下
Gizmos绘制贴图
Gizmos.DrawGUITexture(new Rect(x, y, w, h), 图片信息),该方法只能在xy平面(不能调整z轴位置)上绘制贴图,局限性较大,使用较少
参数一:绘制位置与大小 Rect
参数二:要绘制的图片消息
参数三到六:传入上下左右四个边界值,用于九宫格渲染
参数三或者七:材质球(可选,决定如何绘制)
1234567public Texture texture;private void OnDrawGizmos(){ if (texture != null) Gizmos.DrawGUITexture(new Rect(0, 0, 160, 90), texture);}
输出效果 ...
UEDL10-1——颜色、立方体、视锥
UEDL10-1——颜色、立方体、视锥
本章代码关键字
12345Gizmos.color //设置Gizmos中的绘制API绘制出来的内容的颜色Gizmos.DrawCube() //绘制一个立方体Gizmos.DrawWireCube() //绘制一个线框立方体Gizmos.DrawFrustum() //绘制一个视锥Gizmos.matrix //设置Gizmos中的绘制API绘制出来的内容的位置,角度,缩放
Gizmos修改颜色
在调用Gizmos中的绘制API之前,可以设置其绘制出来的颜色
该方法单独执行无效果,需要配合其他方法一起执行才能看出效果,如下面的绘制立方体
12345private void OnDrawGizmosSelected(){ Gizmos.color = Color.green; Gizmos.DrawCube(Vector3.zero, Vector3.one);}
显示效果:
Gizmos绘制立方体
绘制立方体有两种API:
绘制实心立方体 ...