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

扫一扫,访问微社区

开发者专栏

关注:1726

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

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

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

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

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

49

主题

154

帖子

1622

积分

Rank: 9Rank: 9Rank: 9

UID
135388
好友
12
蛮牛币
2757
威望
0
注册时间
2016-1-22
在线时间
280 小时
最后登录
2017-6-27

专栏作家

发表于 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熟悉之中
820/1000
排名
3890
昨日变化
35

4

主题

353

帖子

820

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

7日久生情
2940/5000
排名
78
昨日变化

0

主题

386

帖子

2940

积分

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

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

回复

使用道具 举报

排名
299
昨日变化

5

主题

385

帖子

2530

积分

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

UID
31708
好友
2
蛮牛币
5469
威望
0
注册时间
2014-6-28
在线时间
724 小时
最后登录
2017-6-27

活力之星

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

回复 支持 反对

使用道具 举报

7日久生情
1755/5000
排名
729
昨日变化
1

1

主题

476

帖子

1755

积分

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
634/1000
排名
2978
昨日变化
27

1

主题

78

帖子

634

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

3偶尔光临
224/300
排名
8851
昨日变化
16

0

主题

70

帖子

224

积分

Rank: 3Rank: 3Rank: 3

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

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

回复 支持 反对

使用道具 举报

4四处流浪
422/500
排名
4087
昨日变化
16

0

主题

37

帖子

422

积分

Rank: 4

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

回复 支持 反对

使用道具 举报

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

本版积分规则

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