网站设计师网站,做pc端网站方案,建站程序的选择,wordpress高级轮播用户手册的这一部分包含Android平台关于输入#xff08;input#xff09;、资产管理#xff08;asset management#xff09;和调试#xff08;debugging#xff09;等相关主题的开发信息。 Android移动脚本编写
注意#xff1a;安卓可以在C#中使用UNITY_ANDROID来进行…用户手册的这一部分包含Android平台关于输入input、资产管理asset management和调试debugging等相关主题的开发信息。 Android移动脚本编写
注意安卓可以在C#中使用UNITY_ANDROID来进行宏定义编译。具体可以参考不同平台的宏定义编译。 设备输入相关、震动相关内容可以参阅以下链接
Mobile device inputMobile keyboardHandheld.Vibrate 活动指示器Activity indicator
可以使用以下接口来获取设备相关的属性信息 脚本 设备属性 SystemInfo.deviceUniqueIdentifier 返回安卓设备ID的md5值更多信息可参 考ANDROID_ID SystemInfo.deviceName 返回设备名。对于安卓设备来说Unity会尝试从系统安全设置中读取device_name和bluetooth_name。假如读取不到这些值会返回unknown。 SystemInfo.deviceModel 返回设备型号。通常包括制造商名称和具体型号例如“LGE Nexus 5“或者”SAMSUNG-SM-G900A“。 SystemInfo.operatingSystem 返回操作系统名称和版本。
GooglePlay应用分发
参考链接Unity - Manual: Android application size restrictions
安卓图形Graphics for Android
Android设备的硬件功能因型号而异市场上有许多不同的Android型号。在开发图形功能和编写着色器时需要着重考虑这一点。
屏幕配置
Unity提供了在编辑器中和运行时配置屏幕的功能。
屏幕方向
您可以在Android设备上控制应用程序的屏幕方向。检测屏幕方向变化的功能或强制指定方向的功能对于某些需要依赖特定方向的应用非常有用。 要获取当前应用程序的屏幕方向可以访问Screen.orientation属性。可用的方向包括 方向 行为 Portrait 该应用程序处于竖屏模式要求设备直立且主页按钮位于底部。 PortraitUpsideDown 该应用程序处于竖屏模式但颠倒过来并期望设备直立且主页按钮位于顶部。 LandscapeLeft 该应用程序处于横屏模式并期望设备直立且主页按钮位于右侧。 LandscapeRight 该应用程序处于横屏模式并期望设备直立且主页按钮位于左侧。 无论应用程序的默认方向如何设置您的应用程序的屏幕方向可能会因用户设置的设备方向而有所不同。 以下表格显示了应用程序设置的默认屏幕方向以及根据设备方向加载的实际屏幕方向 默认屏幕方向自动旋转 Autorotate 默认屏幕方向竖屏Portrait 默认屏幕方向横屏 Landscape 设备方向:自动旋转 (Autorotate) 应用程序屏幕以纵向加载并可以在纵向、纵向上下、横向右侧和横向左侧方向之间旋转。注意在平板电脑上应用程序屏幕根据设备方向以纵向或横向加载。 应用程序屏幕以纵向加载并可以在纵向和纵向倒置方向之间旋转。 应用程序屏幕的加载方向与设备方向相同。如果设备方向为纵向则应用程序屏幕将以纵向加载并可以旋转为横向。在横向模式下屏幕只能在横向向右或横向向左方向之间旋转。注意在平板电脑上如果用户关闭设备自动旋转设置然后重新打开应用程序则应用程序屏幕方向保持不变。 设备方向:竖屏锁定 (Portrait lock) 应用程序屏幕加载后将保持锁定在纵向。注意在纵向时如果您将纵向的ScreenOrientation.AutoRotation属性设置为false则应用程序屏幕将保持纵向直到您将设备旋转为横向。一旦进入横向屏幕就无法旋转回纵向。如果您现在将横向的 ScreenOrientation.AutoRotation属性设置为 false则屏幕方向保持不变。 应用程序屏幕加载并保持锁定在纵向方向。 即使您将纵向选项设置为false应用程序屏幕也会加载并保持纵向锁定。要允许屏幕旋转请将所需的方向分配给Screen.orientation属性。您可以使用ScreenOrientation.AutoRotation启用自动旋转。 设备方向:横屏锁定 (Landscape lock) 应用程序加载并保持锁定在横向方向。 即使您将任一选项设置为 false应用程序也会以横向加载并根据设备方向保持锁定在横向左侧或横向右侧方向。 要更改方向请将所需方向分配给Screen.orientation属性。您可以使用ScreenOrientation.AutoRotation启用自动旋转。 应用程序以横向加载并根据设备方向保持锁定在横向左侧或横向右侧方向。
测试和调试
Android符号表(Android symbols)
符号表是内存地址与函数名、文件名、行号的映射表。有了符号表才能根据程序堆栈看出方法调用过程。
格式起始地址 结束地址 函数 [文件名:行号]
Android symbols
libmain: 负责初始 Unity 引擎加载逻辑。libunity: Unity引擎代码。libil2cpp: 由项目内C#脚本编译生成的C代码。 上传符号表到 Firebase
两种方法
通过 gradle 上传
但是不知为何libil2cpp 始终无法解析成功符号文件的 uuid 应该是正确的因为用第二种方法上传后就可以解析。
Firebase 文档获取 Android NDK 崩溃报告 通过 firebase cli 命令上传解析 il2cpp.so
FIREBASE_APP_ID 在 Firebase Crashlytics 控制台拿符号文件需要自己符号表收集一个文件夹中然后指定上传这个文件夹。 firebase crashlytics:symbols:upload --appFIREBASE_APP_ID PATH/TO/SYMBOLS
如何触发 Unity Crash
UnityEngine.Diagnostics.Utils.ForceCrash(UnityEngine.Diagnostics.ForcedCrashCategory.AccessViolation);
导出符号表
打开Unity的Build Settings窗口。切换安卓平台。设置Create symbols.zip选项。 Public和Debugging的区别
1. Public Symbols (公共符号)
内容 Public symbols 是符号表的一部分包含了程序中公共符号的基本信息例如函数名称、全局变量的名称及其地址映射。 它们通常不包含具体的调试信息如本地变量、代码的行号信息。用途 崩溃日志的基本分析提供函数调用栈的符号解析但信息有限只能看到高层的函数调用。减小调试信息的大小比完整的 debug symbols 文件小得多。特性 较少暴露代码的内部实现细节例如私有变量、局部变量等因此更适合在生产环境中使用。用于帮助开发人员对发布后的崩溃日志进行初步分析。生成位置 在 Unity 的构建设置中可以选择导出符号文件。公共符号文件通常用于发布环境。
2. Debug Symbols (调试符号)
内容 Debug symbols 是完整的调试信息包含公共符号以及更详细的调试数据例如 函数的局部变量。代码的行号信息。代码与生成的二进制文件之间的映射。用途 详细调试提供了完整的符号信息可以用于调试器如 Visual Studio、lldb 等对程序进行深度分析。定位问题开发过程中通过符号信息能够准确定位到代码的某一行或某个函数。崩溃日志详细分析可以根据符号信息恢复更完整的调用栈和变量内容。特性 文件体积大相比 public symbols。包含代码的敏感信息不适合直接随应用发布。通常在开发和测试阶段使用。生成位置 Unity 中可以在构建设置中选择生成调试符号。Debug symbols 通常存储为 .pdb 文件在 Windows 上或 .dSYM 文件在 macOS/iOS 上。 注意符号文件名必须与符号文件所属的共享库的名称匹配。例如如果共享库名为mylibrary.so则符号文件也必须命名为mylibrary.so。为了避免文件名冲突符号文件和共享库必须位于不同的目录中。 重要提示请确保符号文件是最新的并且与包含可执行代码的共享库兼容。否则本地调试器和 Google Play 将无法解析共享库中代码的堆栈跟踪。
参考文档
Unity Manual : Android symbolsFirebase上无NDK符号表的解决Firebase 文档获取Android NDK崩溃报告为非Gradle构建或不可访问的未剥离本机库上传符号Unity异常处理与分析用addr2line手动解析函数地址Symbolicate Android crashFirebase Crashlytics初始化及上传符号表
在Android中创建和使用插件
Unity 支持原生插件它们可以是用C、C和Objective-C等语言编写的本机代码库。插件允许您用C#编写的代码调用这些库中的函数。此功能允许Unity与中间件库或现有的 C/C代码集成。
Android插件
Android库项目和Android Archive插件(AAR)JAR插件Android原生插件Java和Kotlin源代码插件
其他
Unity中的插件 注文章摘要翻译自Unity官方手册版本2022.3x。