UM1——Android开发基础
UM1——Android开发基础 Android开发基础 本系列学习内容 新版 Unity 打包安卓应用程序(Unity 2019 版及以上版本) 旧版 Unity 打包安卓应用程序(Unity 2019 版以前) 打包安卓应用程序相关设置 Build Settings Player Settings Android Studio 打包安卓应用 调试相关 Unity 内调试安卓应用程序 Unity Remote(快速的测试设备的输入相关功能) Android Logcat (查看日志打印,内存统计,屏幕截图或录屏,堆栈跟踪) Android Studio内调试安卓程序 原生安卓游戏开发如何进行 要进行原生的安卓(Android)游戏开发,我们需要掌握的知识有: Java 语言 或 Kotlin 语言 对应的开发工具(IDE):Android Studio(推荐)、Eclipse、IntelliJ IDEA 等 Android 开发流程 Android SDK...
UH3L10——游戏功能—资源更新删除
UH3L10——游戏功能—资源更新删除 关于资源对比 我们之前实现的资源对比文件下载并没有执行对比操作就直接覆盖了,因此我们必须要进一步实现本地资源对比消息与远端资源对比消息的比对 由于需要执行比对操作,因此我们不能在下载到远端资源对比消息后就直接覆盖本地的 最好的做法是先比对本地与远端的资源对比文件,然后根据不同去更新AB包,确认全部下载正确了,最后才覆盖 因此,比对资源数据时一定会在内存或者硬盘上存储两份资源对比数据,这里有两种做法: 保存到临时文件中,待AB包下载完成后,再用该临时文件覆盖本地对比文件 压根不保存文件,直接通过下载流读取出字节数组数据转存为字符串,待AB包下载完毕后再保存为本地资源对比文件 根据我们之前实现的逻辑来看,第一种做法明显对逻辑要求的改动更少,因此采用第一种方法 改动下载资源对比文件的逻辑 首先,我们不能下载后直接覆盖本地原有的资源对比文件,因此额外创建一个新的临时文件 1234567891011121314151617public async void...
UH3L9——游戏功能—默认资源转存问题
UH3L9——游戏功能—默认资源转存问题 对于游戏中的 AB 包资源存储路径 AB 包的存放路径有两个选择: streamAssetsPath:只读路径,编辑器状态的 streamAssetsPath 下文件可随 Unity 打包一起被打包出去 persisentDataPath:可读可写路径,但是编辑器状态下的 persisentDataPath 内的文件不会被打包出去 因此,是否需要进行 streamingAssetsPath 中资源转存到 persistentDataPath,取决于你项目中的AB包管理器中的加载机制 若都从 persistentDataPath 中加载,则需要从 streamingAssetsPath 转存(若默认资源很多,会浪费玩家的硬盘存储空间) 若 persistentDataPath 中没有资源,则从 streamingAssetsPath 中加载,则无需转存(不会浪费玩家空间) AB包下载流程图
UEDL12——AssetDatabase公共类
UEDL12——AssetDatabase公共类 本章代码关键字 123456789101112131415AssetDatabase //用于在编辑器环境中管理和操作项目中的资源(Assets)的编辑器公共类AssetDatabase.CreateAsset() //将内存内的资源创建为工程下的本地文件,不能在StreamingAssets中创建资源,不能创建预设体AssetDatabase.CreateFolder() //在工程文件夹下创建文件夹AssetDatabase.CopyAsset() //将工程下的某个资源复制到工程下的另一个文件夹AssetDatabase.MoveAsset() ...
UH3L8——编辑器功能—设置默认资源
UH3L8——编辑器功能—设置默认资源 前置知识点 C#文件操作 Unity编辑器相关 [MenuItem()]、Selection、AssetDatabase 为何要设置默认资源 发布后,让不需要更新的 AB 包或者第一次启动必须要使用的AB包不从服务器上下载,直接从 StreamingAssets 文件夹内读取 目标 将编辑器中选中的 AB 包资源文件(无后缀名的文件),复制到 StreamingAssets 文件夹内,打包后可以随游戏程序一起发布作为默认资源 实现流程 使用特性为菜单栏添加一个选项 AB包工具/移动选中资源到StreamingAssets中,从选项里触发该功能 MoveABToStreamingAssets() MoveABToStreamingAssets内 通过编辑器 Selection 类中的方法,获取在Project窗口选中的资源,如果未选中资源就不执行后续逻辑直接返回出去 遍历选中的资源对象,通过 AssetDatabase.GetAssetPath() 获取资源的路径,根据该路径截取文件名 检查该文件名是否有...
UEDL5——Selection公共类
UEDL5——Selection公共类 本章代码关键字 1234567891011Selection.activeObject //获取当前选择的单个ObjectSelection.activeGameObject //获取当前选择的单个GameObjectSelection.activeTransform //获取当前选择的单个TransformSelection.objects //获取当前选择的所有ObjectSelection.gameObjects //获取当前选择的所有GameObjectSelection.transforms //获取当前选择的所有TransformSelection.count //获取当前选择的对象数Selection.Contains() ...
CS3L24——string
CS3L24——string 本章代码关键字 1234567891011string[] //通过索引可以获取字符串特定位置字符string.ToCharArray() //将字符串转换为字符数组string.Format() //字符串拼接(格式化)string.IndexOf() //正向查找字符位置,从0开始从左往右开始数,返回遇到的第一个相符的下标号,如果字符串内不存在这样的字符,就返回-1string.LastIndexOf() //反向查找字符位置,从0开始从右往左开始数,返回遇到的第一个相符的下标号,如果字符串内不存在这样的字符,就返回-1string.Remove() //移除传入的下标位置及该下标之后的所有字符,或者传入两个参数,移除某个下标后指定数量的字符,返回一个新的字符串string.replace() ...
UH3L7——下载AB包
...
UH3L5——创建AB包下载管理器脚本
UH3L5——创建AB包下载管理器脚本 前置知识点:单例模式 AB 包的下载更新很明显只需要在刚启动游戏的时候才需要执行一次 因此在更新完 AB 包后过场景时,它不需要保留在场景上可以直接移除,节省内存 这和其他需要过场景不销毁的管理器存在差异,如果需要使用时在实例化即可 1234567891011121314151617181920212223using UnityEngine;public class ABUpdateManager : MonoBehaviour{ private static ABUpdateManager instance; public static ABUpdateManager Instance { get { if (instance == null) { GameObject obj = new GameObject("ABUpdateManager"); ...
