绍兴网站建设方案策划,上海做网站那家公司好,学风建设网站版块,个体户做网站1#xff09;关于AssetBundle禁用TypeTree之后的一些可序列化的问题 2#xff09;启动Unity导入变动的资源时#xff0c;Singleton ScriptableObject 加载不到 3#xff09;Xcode15构建Unity 2022.3的Xcode工程#xff0c;报错没有兼容的iPhone SDK 这是第361篇UWA技术知识…1关于AssetBundle禁用TypeTree之后的一些可序列化的问题 2启动Unity导入变动的资源时Singleton ScriptableObject 加载不到 3Xcode15构建Unity 2022.3的Xcode工程报错没有兼容的iPhone SDK 这是第361篇UWA技术知识分享的推送精选了UWA社区的热门话题涵盖了UWA问答、社区帖子等技术知识点助力大家更全面地掌握和学习。
AssetBundle
Q如果AssetBundle禁用了TypeTreeUnity在加载的时候会对其引用的脚本进行“签名”校验Property Hash和FulIName而包内的脚本信息只在打包的时候生成并不能直接更新。因此在禁用TypeTree的时候貌似不能对可序列化脚本进行变动更新。
于是想要咨询两个问题1、包内的脚本“签名”信息存放在哪里存放了什么内容? 猜测是在assets/bin/Data但具体的位置与内容不清楚。
2、能否在禁用TypeTree的情况下实现可序列化脚本的变化更新自行保证代码与资源一致。 A1、脚本“签名”信息是存在MonoScript上保存了Assembly、Namespace、Class的名称以及它的可序列化字段的Hash128用AssetStudio可以看到。 2、在支持热更动态库的平台上安卓直接热更libil2cpp.so及元数据应该就可以。若寻求通用方案恐怕要上HybridCLR这种深度定制IL2CPP的方案因为引擎需要使用IL2CPP的API以类似反射的方式获取脚本的可序列化字段。 注意HybridCLR对禁用TypeTree的情况参考以下说明MonoBehaviour支持 | HybridCLR 感谢littlesomeUWA问答社区提供了回答 Asset
Q当有资源变动时启动Unity在导入资源时Singleton ScriptableObject 加载不到有解决办法么
问题出现把ScriptableObject封装成单例当配置文件在别的资源导入的时候需要读单例配置。
已知现象加载不到的原因是当有新资源变化时Asset Database要等新资源初始化完才能初始化完成这个阶段很多东西都加载不上来Resource接口也是不能用的。 A1可以参考Spine的做法https://github.com/EsotericSoftware/spine-runtimes/blob/b09e189c6438cb9358005771c3304b8f52bc4e30/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs#L114 见这段注释 public static void HandleOnPostprocessAllAssets (string[] imported, Liststring texturesWithoutMetaFile) {// In case user used Assets - Reimport All, during the import process,// asset database is not initialized until some point. During that period,// all attempts to load any assets using API (i.e. AssetDatabase.LoadAssetAtPath)// will return null, and as result, assets wont be loaded even if they actually exists,// which may lead to numerous importing errors.// This situation also happens if Library folder is deleted from the project, which is a pretty// common case, since when using version control systems, the Library folder must be excluded.//// So to avoid this, in case asset database is not available, we delay loading the assets// until next time.//// Unity *always* reimports some internal assets after the process is done, so this method// is always called once again in a state when asset database is available.//// Checking whether AssetDatabase is initialized is done by attempting to load// a known marker asset that should always be available. Failing to load this asset// means that AssetDatabase is not initialized.AssetUtility.assetsImportedInWrongState.UnionWith(imported);if (AssetDatabaseAvailabilityDetector.IsAssetDatabaseAvailable()) {string[] combinedAssets AssetUtility.assetsImportedInWrongState.ToArray();AssetUtility.assetsImportedInWrongState.Clear();AssetUtility.ImportSpineContent(combinedAssets, texturesWithoutMetaFile);}
}感谢littlesomeUWA问答社区提供了回答 A2将ScriptableObject序列化例如json保存到本地资源导入时候直接读取本地配置反序列化。 感谢zeroljUWA问答社区提供了回答 Platform
Q最近不小心升级了Mac的版本随之Xcode也要求升级到15.0然而升级后Unity 2022.3构建的Xcode工程无法构建报错如下图所示就是找不到兼容的iPhone SDK这个问题尝试了很多方法无法解决求问除了降低版本之外还有没有其他解决方案万分感谢 A建议尝试将/Applications/Xcode.app/Contents/version.plist里的 keyProjectName/key
stringIDEApplication/string改成 keyProjectName/key
stringIDEFrameworks/string我看了下我在2022.3.10f1里的相关逻辑已经改为判断是否是IDE开头 确认了下2022.3.10f1确实有提及对Xcode15兼容的支持Unity 2022.3.10 Unity Issue Tracker - Building projects with IL2CPP scripting backend for Apple platforms fails with Xcode 15.0b6 or newer 感谢littlesomeUWA问答社区提供了回答
封面图来源于网络 今天的分享就到这里。生有涯而知无涯在漫漫的开发周期中我们遇到的问题只是冰山一角UWA社区愿伴你同行一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网www.uwa4d.com UWA社区community.uwa4d.com