临别时别别又别
夜影马龙孤风斜
他日龙门高飞去
与君对酒共报捷
——瀛洲海客,2018/10/12,上海凯科国际大厦
Unity有一个Find References in Scene功能非常好用。在Project面板中右键一个文件,选择Find References in Scene就可以在场景中找到所有存在对这个文件有引用的物体。但是很多时候,我们更加需要知道的是,这个场景里面到底引用了哪些文件,比如做优化的时候。
这里有一个插件叫做ResourceChecker,它可以列举出所有引用到的texture/mesh/mat等。但是他也有一个小小的问题,对于自定义脚本的引用没有效果。
在《Unity插件开发:PrefabUtility--Prefab实例引用断开和替换》中我们使用了PrefabUtility实现了Prefab实例的引用断开和替换功能,现在我们继续使用PrefabUtility来实现场景中所有Prefab实例的Apply功能。
在很多情况下,我们会在场景中修改Prefab实例,这些修改理应apply到Prefab上,但是有时候会忘记Apply,事后再去找,可能花费很多时间。或者在一些条件下,需要对场景中的一些Prefab实例进行批量修改。这时候也需要批量apply到Prefab上。
近段时间,ml-agent升级到了v0.3版本,做了一些变更,导致之前的文档《ml-agent v0.2:Win10下环境安装》部分内容无法在ml-agent v0.3中使用。最主要的是ppo.ipynb文件移除,导致无法用ppo进行训练。所以这里进行重新整理。
Tag:Unity文件,Unity文件引用,Meta文件,GUID,FileID,LocalID
参考文档:
在unity3d中一般存在这么几种文件
在上一篇《Unity宏+RSP文件定义宏》中提到,Unity生成的VS工程一般是无法打开属性面板的。但是事实上,如果使用VS for unity,通过配置是可以打开这个属性面板的。这里使用Unity版本为2017.2.0f3,使用的是VS for Unity 3.4.0.2版本,IDE为VS2017版本。
打开VS2017,选择菜单“工具->选项”,打开选项面板。在选项面板中选择适用于Unity的工具(如果没有这个,请用VS2017 installer安装相关的组件)。然后在杂项中,将访问项目属性设置为True。确定,并且重新启动VS。注意一定要重新启动VS才会生效。
参考文档:https://docs.unity3d.com/Manual/PlatformDependentCompilation.html
在Unity开发中,可以使用预编译条件,宏定义。比如在一个cs文件中
@echo off
echo 完全路径:%1
echo 去掉引号:%~1
echo 所在分区:%~d1
echo 所处路径不含分区:%~p1
echo 所处路径含分区:%~dp1
echo 文件名:%~n1
echo 扩展名:%~x1
echo 文件属性:%~a1
echo 修改时间:%~t1
echo 文件大小:%~z1
pause
在Unity使用Prefab过程中,我们有时候需要进行Prefab实例断开引用和替换引用的需求。实现这些需求,使用到的核心的类是PrefabUtility。PrefabUtility是一个静态类,主要用于进行Prefab的相关处理。 这里主要使用以下几种方法
断开Prefab引用的代码如下