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

扫一扫,访问微社区

开发者专栏

关注:1668

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

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

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

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

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

48

主题

152

帖子

1527

积分

Rank: 9Rank: 9Rank: 9

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

专栏作家

发表于 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熟悉之中
765/1000
排名
4163
昨日变化
21

4

主题

349

帖子

765

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

7日久生情
2823/5000
排名
81
昨日变化

0

主题

382

帖子

2823

积分

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

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

回复

使用道具 举报

排名
315
昨日变化

5

主题

367

帖子

2381

积分

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

UID
31708
好友
2
蛮牛币
5548
威望
0
注册时间
2014-6-28
在线时间
679 小时
最后登录
2017-4-24

活力之星

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

回复 支持 反对

使用道具 举报

7日久生情
1513/5000
排名
865
昨日变化
3

0

主题

408

帖子

1513

积分

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
519/1000
排名
3557
昨日变化
16

1

主题

67

帖子

519

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

3偶尔光临
197/300
排名
9288
昨日变化
1

0

主题

62

帖子

197

积分

Rank: 3Rank: 3Rank: 3

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

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

回复 支持 反对

使用道具 举报

4四处流浪
301/500
排名
5081
昨日变化
40

0

主题

25

帖子

301

积分

Rank: 4

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

回复 支持 反对

使用道具 举报

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

本版积分规则

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