博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity 琐碎5 : 利用反射设置编辑器参数
阅读量:6478 次
发布时间:2019-06-23

本文共 1659 字,大约阅读时间需要 5 分钟。

问题

最近处理unity资源打包问题时候经常遇到的一个问题就是平台切换和Bundle编译。一般情况下,平台转换我需要依赖Cache Serbver加快转换速度,但是在Build Bundle的时候我又不想打开Cache Server,因为会非常非常慢(bundle文件超过2000个)。每次都记得这个操作不现实,所以就考虑是否可以在平时打开Cache Server,Build Bundle时关闭。

Unity 自身Editor没提供这个方面的API参考钱康来一问的思路,只要是编辑器下可以操作的按钮或者界面应该都可以通过反射进行额外的设置(前提手里有源码哈)。CacheServerPreferences类是UnityEditor内部类,主要处理菜单Editor-->Preferences中 Cache Server 界面的数据处理,so,折腾了一会发射就会有下面的代码:

参考代码

private static void SetCacheServer(bool enable, string ipAddr = "10.8.21.74") {     //1 获取程序集     Assembly asm = Assembly.GetAssembly(typeof(UnityEditor.AssetImporter));     if (asm == null)     {         return;     }     //2 UnityEditor 内部类     Type cacheServerType = asm.GetType("UnityEditor.CacheServerPreferences");     //3 创建实例     object cacheServerPreferencesObj = System.Activator.CreateInstance(cacheServerType);     //4 通过反射读取已设置的参数     MethodInfo readPreferencesMethod = cacheServerType.GetMethod("ReadPreferences");     readPreferencesMethod.Invoke(cacheServerPreferencesObj, null);     //5 通过反射设置CacheServer 参数     FieldInfo CacheServerMode = cacheServerType.GetField("s_CacheServerMode", BindingFlags.NonPublic | BindingFlags.Static);     FieldInfo CacheServerIPAddress = cacheServerType.GetField("s_CacheServerIPAddress", BindingFlags.NonPublic | BindingFlags.Static);     CacheServerMode.SetValue(cacheServerPreferencesObj, enable? 1:2);     CacheServerIPAddress.SetValue(cacheServerPreferencesObj, ipAddr);     //6 通过反射 保存 CacheServer 参数     MethodInfo writePreferencesMethod = cacheServerType.GetMethod("WritePreferences");     writePreferencesMethod.Invoke(cacheServerPreferencesObj, null); }

参考

转载于:https://www.cnblogs.com/zsb517/p/7095702.html

你可能感兴趣的文章
能力不是仅靠原始积累(三)
查看>>
实战:使用终端服务网关访问终端服务
查看>>
彻底学会使用epoll(一)——ET模式实现分析
查看>>
【Android 基础】Android中全屏或者取消标题栏
查看>>
Xilinx 常用模块汇总(verilog)【03】
查看>>
脱离标准文档流(2)---定位
查看>>
IO流之字符流
查看>>
集合异常之List接口
查看>>
Softmax回归
查看>>
紫书 习题11-11 UVa 1644 (并查集)
查看>>
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>
ZOJ 3777 Problem Arrangement
查看>>
虚拟机类加载机制
查看>>
Callable和Future
查看>>
installshield12如何改变默认安装目录
查看>>
少用数字来作为参数标识含义
查看>>
ScrollView中嵌套ListView
查看>>
JAVA虚拟机05--面试必问之JVM原理
查看>>
Algs4-2.3.1如何切分数组
查看>>