Jkeeper 发布的文章

前往官網下載 windows 版本

https://lmstudio.ai/
29458-kpk5u9nn19.png

安裝後執行, 切換到 Search, 搜索後出現 network error
44282-txirqxvz9ko.png

切換到安裝目錄下, 搜索 HuggingFace.co 替換成 hf-mirror.com
48028-zg983fvq8ro.png

https://hf-mirror.com/
43406-zza50654atr.png

重啟 Lm Studio 搜索 TAIDE-LX-7B-Chat 出現結果了
85205-4jyi3qljih5.png

點下載
TAIDE-LX-78-Chat.Q2_K.gguf

另外, 我把下載 model 修改掉了, 具體切換到 My Models 分頁, 點 Change 修改目錄
97488-ltln1dzi45o.png

可以看到已經在下載了
82292-0rgwxgy2po2.png

把 cocos creator 2.4 項目 export 到目前項目發現 cocos creator 開啟就卡在讀取中

2024-05-28T18:22:26.151Z - success: wechatgame loaded2024-05-28T18:22:26.168Z - success: xiaomi-runtime loaded2024-05-28T18:22:26.572Z - success: im-plugin loaded2024-05-28T18:22:27.776Z - info: Cocos Service load base data!2024-05-28T18:22:28.381Z - normal: Initializing Cocos2d2024-05-28T18:22:28.794Z - normal: Initializing engine extends

項目開啟卡在 extends, 之前有遇過就是腳本問題, 分批把資源跟腳本分開匯入發現是腳本問題

//typescript 3.7 support 

this.level = data?.level || 1

//改成這個寫法就好了

this.level = data?data.level || 1:undefined

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html
Optional Chaining 在3.7版本的說明
61872-a1xmg8jxgli.png

從 Cocos Creator 論壇看到功能在 3.0 才支持, 不知道為什麼原始項目卻能跑
50610-4r9wjgd5bb2.png

使用 nuget 安裝 StackExchange.Redis 套件
連線方式

ConfigurationOptions options = new ConfigurationOptions
{
    EndPoints = { { "127.0.0.1", 6379 } },
};
ConnectionMultiplexer muxer = ConnectionMultiplexer.Connect(options);
IDatabase conn = muxer.GetDatabase(1);

設定string數據

conn.StringSet("name", "chung  chen");
string name = conn.StringGet("name");

//get value async
var pending = conn.StringGetAsync("name");
string value2 = conn.Wait(pending);

HashSet

var list = new List<User>{
    new User { Index = 1, Name = "立白" },
    new User { Index = 2, Name = "妄为" },
    new User { Index = 3, Name = "毒妇" }
    };
foreach (var item in list){
    var hashEntries = new HashEntry[]{
        new HashEntry("ID", item.Index),
        new HashEntry("Name", item.Name)
    };
    conn.HashSet("User_" + item.Index.ToString(), hashEntries);
}

Subscribe

ISubscriber sub = muxer.GetSubscriber();
sub.Subscribe("messages", (channel, message) => {
    Log.Debug("Subscribe message1:" + (string)message);
});
sub.Publish("messages", "hello");

SortedSet

string rankTag = "rank_1001";
Dictionary<string, int> userScore = new Dictionary<string, int>(){
    { "1045", 70},
    { "1046", 23}
};
foreach (KeyValuePair<string, int> data in userScore){
    await conn.SortedSetAddAsync(rankTag, data.Key, data.Value);
}
//get 1045's score
double score = (double)await conn.SortedSetScoreAsync(rankTag, "1045");

//get 1045's rank number
int rankNumber = (int)await conn.SortedSetRankAsync(rankTag, "1046")

//get rank's member between 1 to 3
RedisValue[] rankList = await conn.SortedSetRangeByRankAsync(rankTag, 1, 3);

具體還有很多, 請參考下面對應表去使用
79041-rxzl0qz9ut9.png

在使用 Canvas 將物件層級提高後出現一個問題, 被提高層級的物件跟底下的 Button Click 全都失效了, 查了 google 說是在添加 Canvas 同時必須增加 Graphic Raycaster, 如下, 這樣就能解決問題了
73271-g9w4esk61lr.png

最近在做新手引導系統, 遇到了些問題, 先說說新手引導的設計吧

一、新手引導UI

預設作法如下, 去看了下以前的做法似乎有些問題需要解決, 以前用 NGUI 做這塊, 需要將目標 UI 顯示層級提上來, 當時我的作法是把目標 Button parent 換成教學 UI Panel, 這樣就能保證要點擊目標一定會在最上層
33163-uzqhom9nj2.png

現在項目使用 UGUI, UGUI 顯示層級是看 UI 順序的, 不然就是修改 Sorting Layer 或 Order in Layer

Sorting Layer

Sorting Layer 可以想像是一個大類, 在這個列表下渲染是按照這個清單順序的, 譬如

A物件

  • Sorting layer: UI
  • Order in Layer: 10

B物件

  • Sorting layer: Fx
  • Order in Layer: 1

就算你設定比較高的 Order in Layer, A物件也不可能比B物件層級高, 這是因為在 Sorting Layer 就已經決定誰高誰低了
94201-1cfhiru1usk.png

Order in Layer

在同一個 Sorting Layer 下你可以藉由 Order in Layer 決定先後, 值越大層級越高
47776-rd0m2cznn3b.png

在 Sprite Renderer 可以設定這兩個值
43936-9hz0ff5lsvg.png

Spine 用的 Mesh Renderer 雖然沒有, 但其實都是繼承 render, 可以直接調用修改
34462-jjsbc5n9jg.png

mSpine_Teacher.GetComponent<MeshRenderer>().sortingLayerID = SortingLayer.NameToID("Spine");
mSpine_Teacher.GetComponent<MeshRenderer>().sortingOrder = 1;

最後呈現出來的效果是這樣
27106-b8ado9haxra.png