第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

[Unity Editor] Project視圖中篩選出指定資源

標(biāo)簽:
Unity 3D

  前段时间美术准备把项目中的PSD都替换成PNG或JPG,然后提了个需求:希望把依赖查找的结果,可视化显示出来。
  项目里有个反向查找依赖的工具(找一个资源被哪些资源引用了),当时做的时候,是把查找结果以Log的形式输出到Console了。美术要替换贴图的话需要一个个点Log,然后再选中要修改的Material替换贴图。
  现在他们想要的是,把结果集中显示出来,可以直接编辑修改。其实这个功能就是Assets/Select Dependencies实现的效果。


https://img1.sycdn.imooc.com//5d5df1f40001a40d02730438.png

  有先例就好办,反编译看下Select Dependencies是用了什么方法显示的,拿来直接用就好了。然而事情没这么简单,翻了几十个Editor文件也没找到Select Dependencies菜单的位置Orz…。幸好最后看到几个ProejctXXX文件,在里面找到了接口。
  话不多说,一波反射搞定。

public static class ProjectTool{    private static Dynamic _util;//    private static Dynamic _staticBrowser;
    static ProjectTool()    {
        _util = new Dynamic(typeof(ProjectWindowUtil));//        _staticBrowser = assemblies.GetType("UnityEditor.ProjectBrowser");
    }    /// <summary>
    /// Project中筛选显示指定的资源
    /// TwoColumns模式下,会将资源集中到一起;
    /// OneColumn模式下,仅选中资源。
    /// </summary>
    /// <param name="instanceIds">要显示的资源id,通过ObjectGetInstanceID()获取</param>
    public static void FilterShowAssets(int[] instanceIds)    {        object obj = _util.CallPrivateStaticMethod("GetProjectBrowserIfExists");        if (null != obj)
        {
            Dynamic browser = new Dynamic(obj);            if ((int) browser.PrivateInstanceField("m_ViewMode") == 1)
            {
                browser.CallPrivateInstanceMethod("ShowObjectsInList", instanceIds);                return;
            }
        }
        Selection.instanceIDs = instanceIds;//        _staticBrowser.CallPrivateStaticMethod("ShowSelectedObjectsInLastInteractedProjectBrowser");
    }
}
  • 小注:反射步骤主要用到了一个Dynamic类,它是我借鉴 .Net 4.0的dynamic类型魔改的。作用是,稍微简化反射的代码量。



作者:_Walker__
链接:https://www.jianshu.com/p/f56ebfb3d138

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消