游戏热更新系统设计记录

问题

如何得到自上一个版本更新增加删除的文件

$ git diff \
    --name-only \
    --diff-filter=AM \
    SHA1 \
    SHA2 \
    sources

替换删除路径

$ git diff xxx | xargs -o -IREPLACE echo REPLACE | sed “s/sources\///“

Unity3D

1. 获取按钮并设置点击事件

using UnityEngine.UI;

var button = transform.Find("Btn_login").gameObject.GetComponent<Button>();
if (button != null) {
    button.onClick.RemoveAllListeners();
    button.onClick.AddListener(
        delegate {
            this.onLogin(button);
        }
    );
}

2. JSON解析

using SimpleJSON;

var json = JSON.Parse("{\"array\":[1,2,3],\"boolean\":true,\"null\":null,\"number\":123,\"object\":{\"a\":\"b\",\"c\":\"d\",\"e\":\"f\"},\"string\":\"Hello World\"}");
Debug.Log(json["string"].Value);
Debug.Log(json["boolean"].AsBool);
Debug.Log(json["array"].AsArray);

Convert CSV To UTF-8

$ iconv -c -f GBK -t UTF-8 gbk.csv > utf8.csv

Dnsmasq for IOS

安装 Dnsmasq

前提,已越狱

Cydia中搜索Dnsmasq安装,同时安装iFile用于编译配置文件

使用iFile打开/etc/dnsmasq.conf,在最后追加

server=114.114.114.114      # 所有域名通过114.114.114.114解析
server=/google.com/8.8.8.8  # google.com通过8.8.8.8解析

如果配合dnscrypt使用可防止dns污染,可看之前的文章

最后重启,修改当前网络的dns为127.0.0.1即可

Swift

> Hello World

println("Hello World!!")