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

扫一扫,访问微社区

开发者专栏

关注:1815

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

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

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

[成都大红花] Unity3D游戏开发之“Unity脚本编译完成事件监控”

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

51

主题

156

帖子

1646

积分

Rank: 9Rank: 9Rank: 9

UID
135388
好友
14
蛮牛币
4086
威望
0
注册时间
2016-1-22
在线时间
289 小时
最后登录
2017-8-3

专栏作家

发表于 2017-1-6 18:21:16 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 成都大红花 于 2017-2-20 17:40 编辑

此事件的监控unity并没有提供现成的API,需要我们自己通过API组合去判断此事件。
此事件的监控需要我们配合UnityEditor.AssetPostprocessor中OnPostprocessAllAssets事件和EditorApplication.update事件一起使用。

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

代码示例:代码放入Editor文件夹下
[C#] 纯文本查看 复制代码
[InitializeOnLoad]
public class UnityScripsCompiling : AssetPostprocessor {
    static UnityScripsCompiling() {
        EditorApplication.update += Update;
    }

    public static void OnPostprocessAllAssets(
    String[] importedAssets,
    String[] deletedAssets,
    String[] movedAssets,
    String[] movedFromAssetPaths) {
        List<string> importedKeys = new List<string>() { "Assets/Script" };
        for (int i = 0; i < importedAssets.Length; i++) {
            for (int j = 0; j < importedKeys.Count; j++) {
                if (importedAssets[i].Contains(importedKeys[j])) {
                    PlayerPrefs.SetInt("ImportScripts", 1);
                    return;
                }
            }
        }
    }

    private static void Update() {
        bool importScripts = Convert.ToBoolean(PlayerPrefs.GetInt("ImportScripts", 1));
        if (importScripts && !EditorApplication.isCompiling) {
            OnUnityScripsCompilingCompleted();
            importScripts = false;
            PlayerPrefs.SetInt("ImportScripts", 0);
            EditorApplication.update -= Update;
        }
    }

    private static void OnUnityScripsCompilingCompleted() {
        Debug.Log("Unity Scrips Compiling completed.");
    }
}







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

回复

使用道具 举报

5熟悉之中
887/1000
排名
3595
昨日变化
2

4

主题

358

帖子

887

积分

Rank: 5Rank: 5

UID
165382
好友
5
蛮牛币
1693
威望
0
注册时间
2016-9-1
在线时间
215 小时
最后登录
2017-8-11
QQ
发表于 2017-1-7 10:00:02 | 显示全部楼层
楼主,已加群,等通过

回复 支持 反对

使用道具 举报

7日久生情
3000/5000
排名
90
昨日变化

0

主题

389

帖子

3000

积分

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

UID
239
好友
3
蛮牛币
5429
威望
0
注册时间
2013-6-6
在线时间
612 小时
最后登录
2017-8-17
发表于 2017-1-10 10:05:02 | 显示全部楼层
god!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

回复

使用道具 举报

排名
265
昨日变化
1

5

主题

454

帖子

2806

积分

Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11

UID
31708
好友
3
蛮牛币
6023
威望
0
注册时间
2014-6-28
在线时间
813 小时
最后登录
2017-8-21

活力之星

QQ
发表于 2017-1-10 10:55:49 | 显示全部楼层
厉害~刚好有这个需求~

回复 支持 反对

使用道具 举报

7日久生情
1927/5000
排名
616
昨日变化
2

1

主题

518

帖子

1927

积分

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

UID
111260
好友
0
蛮牛币
7078
威望
0
注册时间
2015-6-30
在线时间
326 小时
最后登录
2017-8-21
发表于 2017-1-10 14:46:56 | 显示全部楼层
厉害~刚好有这个需求~

回复 支持 反对

使用道具 举报

5熟悉之中
799/1000
排名
2489
昨日变化

2

主题

107

帖子

799

积分

Rank: 5Rank: 5

UID
62951
好友
0
蛮牛币
861
威望
0
注册时间
2014-12-22
在线时间
244 小时
最后登录
2017-8-21
发表于 2017-1-10 15:32:41 | 显示全部楼层
感谢楼主分享

回复

使用道具 举报

3偶尔光临
226/300
排名
9155
昨日变化
1

0

主题

70

帖子

226

积分

Rank: 3Rank: 3Rank: 3

UID
172630
好友
0
蛮牛币
244
威望
0
注册时间
2016-9-28
在线时间
72 小时
最后登录
2017-7-16
发表于 2017-1-11 22:50:52 | 显示全部楼层

厉害~厉害~厉害~厉害~
厉害~
厉害~

回复 支持 反对

使用道具 举报

4四处流浪
498/500
排名
3572
昨日变化

0

主题

43

帖子

498

积分

Rank: 4

UID
164900
好友
0
蛮牛币
738
威望
0
注册时间
2016-8-30
在线时间
149 小时
最后登录
2017-8-21
发表于 2017-1-21 21:38:46 | 显示全部楼层
没看懂这个是实现什么功能的,有懂得能给我介绍下嘛?

回复 支持 反对

使用道具 举报

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

本版积分规则

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