原创 UE4響應按鍵輸入延遲效果

最新項目製作一個酒駕的項目,要求控制車輛前進,轉向的時候,稍有延遲的效果,表示遲鈍的意思。解決思路是創建一個數組,存儲最近的按鍵輸入,從數組一端加入數據,另一端取數據。數據的長度決定了延遲的時間。 但是如果用常規的方案,每幀加入按鍵值時,

原创 對象池

這周VR做飛機的項目,子彈太多,用到對象池,用的是一個插件,但是發現一個問題,子彈數特別多的情況下,池裏放了400個子彈,特效也特別多,結果發現一個問題,從池中取對象和對象回池用時太長,多的時候能達到2ms。最後查看了底層,發現一個問題,

原创 C#ThreadPool.QueueUserWorkItem實例

今天學習線程池的時候發現,網上能搜到的都是很久以前的文檔了,大家都是照搬過去,有沒有考證都是問題。 經過測試結果已經和他們說的不一樣了,比如 <span style="white-space:pre"> </span> List<

原创 實現足夠大List<int>剔除重複的數字

static void Screen() { List<int> newList=new List<int>(); List<int> list =new List<int>();

原创 對象池GameObjectPool

上個飛機的項目,子彈太多的情況下,對象池插件效率比較低,今天沒事就自己寫了一個,感覺效率還行。 使用方法簡單,只需要在某個物體上掛在PoolManager腳本即可,就可以直接使用了,想再其他腳本中調用InitPrefab(GameObje

原创 略談GCHandle

我們在使用c#託管代碼時,內存地址和GC回收那不是我們關心的,CLR已經給我們暗箱操作。但是如果我們在c#中調用了一個非託管代碼,比如vc的DLL,而且他有個回調函數,需要引用c#中的某個對象並操作,這時候你就得要小心了。要是非託管代碼中

原创 EventTrigger觸發3D物體事件

先編寫如下腳本 public class EventTriggerExample : MonoBehaviour { void Start() { //UnityAction<BaseEventData>

原创 Untiy內存加載和管理

最近一直在和這些內容糾纏,把心得和大家共享一下:Unity裏有兩種動態加載機制:一是Resources.Load,一是通過AssetBundle,其實兩者本質上我理解沒有什麼區別。Resources.Load就是從一個缺省打進程序包裏的A

原创 Unity3d中Input獲取鍵的按下或者彈起,無法正確響應的問題

在項目中碰到這樣一個問題,同事在FixedUpdate中處理當按下鼠標左鍵時,觸發一個邏輯,例如: public void FixedUpdate() { if (Input.GetMouseBu

原创 FlyBoys優化過程10.8-10.16

項目優化進行了以下的處理 1 引入對象池(對象池的插件底層做了修改,用鏈表存儲在使用的和未使用的對象) 2 腳本優化,耗時的邏輯進行了優化 今天發現Draw call數依然很高,即使視野內只有飛機和子彈的情況下,Draw call依然可能