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

扫一扫,访问微社区

开发者专栏

关注:1906

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

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

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

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

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

51

主题

156

帖子

1658

积分

Rank: 9Rank: 9Rank: 9

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

专栏作家

发表于 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熟悉之中
898/1000
排名
3612
昨日变化
1

4

主题

352

帖子

898

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

7日久生情
3092/5000
排名
93
昨日变化

0

主题

390

帖子

3092

积分

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

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

回复

使用道具 举报

排名
247
昨日变化
2

5

主题

482

帖子

3012

积分

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

UID
31708
好友
3
蛮牛币
6387
威望
0
注册时间
2014-6-28
在线时间
887 小时
最后登录
2017-10-19

活力之星

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

回复 支持 反对

使用道具 举报

7日久生情
2017/5000
排名
584
昨日变化

1

主题

531

帖子

2017

积分

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
904/1000
排名
2182
昨日变化
6

1

主题

111

帖子

904

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

3偶尔光临
225/300
排名
9466
昨日变化
7

0

主题

68

帖子

225

积分

Rank: 3Rank: 3Rank: 3

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
530/1000
排名
3482
昨日变化
1

0

主题

45

帖子

530

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

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

本版积分规则

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