如何获得一个MonoBehavior类所在cs文件的路径

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/2...

感谢萧小俊@UWA问答社区提供了回答

Android

Q:Android升级到Target 12后大部分手机无法安装识别,只有一台机器可以识别,有人遇到过吗?

A:参考以下文章,当应用以Android 12为目标,使用的activity,service,broadcast receiver如果含有intent-filter,则必须显示声明android:exported属性,如果没有声明,则应用不能安装在Android 12上。

https://blog.csdn.net/qq_3555...

感谢题主null@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)

你可能感兴趣的:(如何获得一个MonoBehavior类所在cs文件的路径)