1)如何获得一个MonoBehavior类所在cs文件的路径
2)Addresssables是否可读取ScriptableObject类型的配置文件
3)内置Shader中的部分宏是在哪里定义的
4)Android升级到Target 12部分手机无法识别APK
这是第311篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。
UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)
Scripting
Q:如何获得一个MonoBehavior类所在cs文件的路径?做大规模组件替换的操作,最快就是替换对应的GUID,但是一直没有找到根据类型获得对应文件所在路径的方法。相对的,自创组件实例后,也没有找到文件的办法。
Unity内部应该是有类似方法的,不然跑Dependency也不会出现cs 引用。现在的替代方法只有新建Prefab加组件,跑Dependency获得组件路径或者写死GUID。一个操作多且慢,一个明显不靠谱。有没有干净的办法,取得类型对应的GUID?
A:可以参考:
var guids = AssetDatabase.FindAssets(typeof(GameManager).ToString()); foreach (var guid in guids) { Debug.Log(AssetDatabase.GUIDToAssetPath(guid)); }
感谢NG週@UWA问答社区提供了回答
Addressable
Q:Addresssables是否可读取ScriptableObject类型的配置文件?
我创建了一个ScriptableObject类型的文件,使用Addresssables读取提示找不到对应的Key。将其放到Resources文件夹下使用Res读取是没有问题的,这说明文件本身没有问题;使用AA读取其他格式文件也没有问题。
配置面板:
代码:
报错:
所以不知道问题出现在哪里了,请各位大佬回答解惑。
A:加载的泛型的类型是不是不对,我用ScriptableObject或者Object都能加载成功,TextAsset确实会加载失败。
感谢Knight-132872@UWA问答社区提供了回答
Shader
Q:内置Shader中的部分宏,像 LIGHTMAP_ON、DYNAMICLIGHTMAP_ON 、SHADOWS_SCREEN 这些宏是什么条件被定义的?哪里能找到具体的说明么?
A:可以参考一下官方对应版本的文档:
https://docs.unity3d.com/cn/2022.1/Manual/shader-keywords.html
感谢萧小俊@UWA问答社区提供了回答
Android
Q:Android升级到Target 12后大部分手机无法安装识别,只有一台机器可以识别,有人遇到过吗?
A:参考以下文章,当应用以Android 12为目标,使用的activity,service,broadcast receiver如果含有intent-filter,则必须显示声明android:exported属性,如果没有声明,则应用不能安装在Android 12上。
感谢题主null@UWA问答社区提供了回答
封面图来源于网络
今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)