原创 【深入瞭解cocos2d-x 3.x】內置數據結構(2)——Map

其實最沒意思的數據結構就是Map和Vector這兩個了,完完全全就是std::map和std::vector上面再加了一層引用計數。當然,這也有好處,就是支持std算法以及支持cocos2d-x的內存管理機制。 看源碼可以知道(下均只對M

原创 【Unity】線程安全的消息傳輸機制,仿照Cocos實現

近期用到了網絡通信的方法,雖然unity可以用協程來實現異步操作,不過坑爹的隊友不會用,他用的是傳統的開線程的方法,這樣就會出現線程安全的問題,然後現有的消息通信機制無法滿足需求了,就得改了。還好我機智的看過Cocos2dx中消息機制的實

原创 【深入瞭解cocos2d-x 3.x】UI樹(1)——什麼是UI樹

近期在學習《我所理解的Cocos2d-x》這一本書,被作者深厚的功力所折服,感覺到自己實在是太弱了,cocos2d-x當中要學習的東西實在是太多了。 在《我所理解的cocos2d-x》中關於UI樹與內存管理其實是關聯性很強的,這一篇主要寫

原创 基於UDP的幀同步網絡方案(基礎)

        幀同步會高頻次的上報和下發邏輯幀,所以網絡方案非常重要,TCP協議的優勢在於有序、可靠、有連接,但是由於較爲保守的超時重傳方案、過大的包頭,會給幀同步帶來比較高的延遲和較大的數據流量,而UDP是較爲精簡的網絡協議,不保證時

原创 【unity】動態圖集 dynamic atlas (runtime atlas)

不管NGUI還是UGUI,圖集都是在製作期間就生成了的,運行時是一張大圖,這樣做的好處在於我們可以在一定程度上去合併批次,但是圖集通常在製作過程中,會分成commonatlas和系統atlas兩類,一個界面prefab至少會用到兩張圖集,

原创 【面經】騰訊U3d面試面經 幀同步方向 (一)幀同步如何解決不同步的問題?

解決不同步問題首先考慮什麼是不同步的問題,爲什麼會出現不同步的情況。 那麼什麼是不同步的問題呢?幀同步是由客戶端計算,發送命令給服務器,服務器轉發命令達到兩邊客戶端顯示一致。服務器是不知道具體邏輯的,所以如果兩邊客戶端計算的某些變量出現不

原创 【面經】騰訊U3d面試面經 幀同步方向

近期拿到了一個騰訊的offer,記錄一下面試過程。 我找的內推,面試的流程如下: 上傳內推簡歷,接着馬上被HR轉到項目組裏面,一個小時左右面試官電話過來約面,接着電話面,然後去科興面,最後HR面,OFFER到手。 總的來說騰訊的面試流程還

原创 NGUI Panel Soft Clip原理分析

這一塊我之前一直看得不是很懂,前幾個月有一次做粒子裁剪的時候想模仿做,沒有做出來,只能靠着很挫的if來判斷。這幾天又有一個需求想實現圖片的裁剪,不可能一個圖片一個panel吧,所以就想到了自己實現Clip Sprite。 在這裏先分析一下

原创 NGUI裁剪粒子的實現,完全仿照原有的NGUI SoftClip邏輯思路,可多層裁剪

參照http://blog.csdn.net/tkokof1/article/details/52107736 這一篇博客 但是他只實現了單層panel的裁剪,雖然他的算法和NGUI的思路是一致的,但是由於傳入Shader的值不同,所以不

原创 UNITY NGUI IPHONEX完美適配

蘋果的IphoneX新增一個安全區的概念,如下圖圖中綠色區域爲安全區,所有可交互的組件全部放在安全區內,只有背景可以延伸出去,達到全面屏的效果我們適配IphoneX採用NGUI通用的錨點去適配。默認的NGUI屏幕適配方案不支持安全區這個概

原创 Unity Update的節點執行順序

測試一下Update的節點執行順序,對於想要自己管理Update的有幫助代碼如下using UnityEngine; using System.Collections; public class UpdateTest : MonoBeh

原创 【Unity&C#】寫了一個事件分發器

我一直都有一個需求,就是可以很方便的將Socket傳進來的二進制解析到具體的某個消息,每個消息都有自己的事件處理。之前有寫過一個這樣的,但是事件處理必須寫在各個消息類裏面,這樣不是很好。現在藉着C#的泛型協變的這個特性,做了一個強類型的事

原创 XLua踩坑

Xlua接入需要反射出所有需要熱更新的類,標記上[Hotfix]這樣的特性,剛開始我想的是通過代碼生成的方式 生成cs文件 類似下圖:但是這種行爲會導致幾個問題,其一就是項目組成員遇到刪除類的時候,需要同步的將這個文件中的類引用也刪除掉。

原创 dfs

最近在研究圖,用的是Lua function initMap() map[5] = { }; map[4] = { [5] = 60 }; map[3] = { [5] = 10 }; map[2] = { [3] = 50 }

原创 [Unity]Unity性能優化實戰之GC優化(序)

近期項目即將上線,爲了抗住數量衆多的玩家,流暢的進行多人同屏對戰,我們不得不對遊戲進行一次徹底的優化。 這個系列就是我對於此次優化的一些總結吧。 首先優化是足夠了解原理的基礎上並且輔以相應的工具才能順利進行,在優化GC裏,我們用到了Uni