开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:1702

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 618|回复: 5

[成都大红花] Unity3D游戏开发之“模型、纹理、音频等资源导入事件监控”

[复制链接]  [移动端链接]
排名
2618
昨日变化
1

48

主题

152

帖子

1520

积分

Rank: 9Rank: 9Rank: 9

UID
135388
好友
12
蛮牛币
2703
威望
0
注册时间
2016-1-22
在线时间
272 小时
最后登录
2017-5-11

专栏作家

发表于 2017-1-6 17:45:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 成都大红花 于 2017-1-6 18:22 编辑

通过Unity提供的事件通知类UnityEditor.AssetPostprocessor,我们在Unity编辑器中能够监控纹理、音频、模型等其他资源的导入事件。


我们可以通过这些事件的监控可以很清楚的知道操作的事件,从而根据自己的需求定制一些特殊的编辑器功能。


示例代码如下:代码放入Editor文件夹下
[C#] 纯文本查看 复制代码
public class AssetPostprocessorEvent : UnityEditor.AssetPostprocessor {
    //模型导入之前调用  
    public void OnPreprocessModel() {
        Debug.Log("OnPreprocessModel=" + this.assetPath);
    }

    //模型导入之前调用  
    public void OnPostprocessModel(GameObject go) {
        Debug.Log("OnPostprocessModel=" + go.name);
    }

    //纹理导入之前调用,针对入到的纹理进行设置  
    public void OnPreprocessTexture() {
        Debug.Log("OnPreProcessTexture=" + this.assetPath);
        TextureImporter impor = this.assetImporter as TextureImporter;
        impor.textureFormat = TextureImporterFormat.ARGB32;
        impor.maxTextureSize = 512;
        impor.textureType = TextureImporterType.Advanced;
        impor.mipmapEnabled = false;

    }

    //文理导入之后
    public void OnPostprocessTexture(Texture2D tex) {
        Debug.Log("OnPostProcessTexture=" + this.assetPath);
    }

    //音频导入之前
    public void OnPreprocessAudio() {
        Debug.Log("OnPreprocessAudio");
        
        AudioImporter audio = this.assetImporter as AudioImporter;
        audio.format = AudioImporterFormat.Compressed;
    }

    //音频导入之后
    public void OnPostprocessAudio(AudioClip clip) {
        Debug.Log("OnPostprocessAudio=" + clip.name);
    }

    //所有的资源的导入,删除,移动,都会调用此方法,注意,这个方法是static的  
    public static void OnPostprocessAllAssets(string[] importedAsset, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) {
        Debug.Log("OnPostprocessAllAssets");
        foreach (string str in importedAsset) {
            Debug.Log("importedAsset = " + str);
        }
        foreach (string str in deletedAssets) {
            Debug.Log("deletedAssets = " + str);
        }
        foreach (string str in movedAssets) {
            Debug.Log("movedAssets = " + str);
        }
        foreach (string str in movedFromAssetPaths) {
            Debug.Log("movedFromAssetPaths = " + str);
        }
    }  
}






如果有什么问题请加群交流:
unity3D技术交流群:153091222
成都unity3d技术圈:422809511

评分

参与人数 1鲜花 +2 收起 理由
开拓ay + 2 很给力!

查看全部评分

本帖被以下淘专辑推荐:


回复

使用道具 举报

5熟悉之中
801/1000
排名
3926
昨日变化
3

4

主题

350

帖子

801

积分

Rank: 5Rank: 5

UID
165382
好友
5
蛮牛币
1723
威望
0
注册时间
2016-9-1
在线时间
181 小时
最后登录
2017-5-19
QQ
发表于 2017-1-7 09:27:35 | 显示全部楼层
好好好学习,天天天向上。谢谢楼主的分享!!!

回复 支持 反对

使用道具 举报

排名
22975
昨日变化
14

1

主题

15

帖子

36

积分

Rank: 1

UID
199641
好友
0
蛮牛币
15
威望
0
注册时间
2017-1-7
在线时间
10 小时
最后登录
2017-1-19
发表于 2017-1-10 08:58:27 | 显示全部楼层
666666666666666666666666666666666

回复 支持 反对

使用道具 举报

4四处流浪
399/500
排名
4982
昨日变化
3

0

主题

60

帖子

399

积分

Rank: 4

UID
118900
好友
0
蛮牛币
1223
威望
0
注册时间
2015-8-20
在线时间
145 小时
最后登录
2017-4-26
发表于 2017-1-10 09:32:07 | 显示全部楼层
谢谢分享

回复

使用道具 举报

7日久生情
2888/5000
排名
80
昨日变化

0

主题

384

帖子

2888

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
239
好友
2
蛮牛币
5239
威望
0
注册时间
2013-6-6
在线时间
580 小时
最后登录
2017-5-27
发表于 2017-1-10 14:23:45 | 显示全部楼层
god!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

回复

使用道具 举报

6蛮牛粉丝
1142/1500
排名
1718
昨日变化
3

5

主题

146

帖子

1142

积分

Rank: 6Rank: 6Rank: 6

UID
24914
好友
1
蛮牛币
4191
威望
0
注册时间
2014-5-13
在线时间
426 小时
最后登录
2017-5-21
发表于 2017-2-13 11:06:27 | 显示全部楼层
感谢楼主分享。!不错的教程。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表