原创 Unity 多場景
多場景不但可以歸類go達到清晰的目的,遊戲也可以用多場景來管理關卡,每個Level(關卡)一個scene,公用的東西放入一個公用scene裏。 例如這樣劃分: 公用:camera、canvas、storage、game、event
原创 C#筆記 委託 事件 匿名方法 Action
事件Event 實現的類似觀察者設計模式,一對多的通知。 相當於c++的函數指針的一個列表。 Event在UI上的事件回調用途很常見,代碼如下: public class EventManager : MonoBehavio
原创 C#筆記 泛型 Generic
使用泛型(generic) unity裏還是很常見的,這裏<>裏填寫你需要的類型。 例如: // 拿到組件 GetComponent<Render>().sortingOrder = 0; // 可排序對象 public c
原创 C#筆記 垃圾回收garbage collection
託管堆(managed heap) 託管堆指的是c#創建引用類型變量的內存。會定時使用垃圾回收(Garbage Collect)機制來釋放不需要的內存,有必要的時候堆大小是會改變的。回收過程和改變大小會引起變量在內存裏位置的變化
原创 Unity筆記 資源加載 內存優化
本機堆(Native Heap) 這裏是unity管理的資源內存(區別於c#的託管堆),包括裝載GameObject, Transform, Mesh, Texture, Material, Shader和Script等。這些內
原创 C#筆記 協程coroutines yield return
coroutines在unity裏用處多多,用的好可以大量簡化代碼。 例如: 讓loading場景繪製進度條不阻塞,這裏異步加載關卡的函數還是必須的。 簡化編寫不同階段不同行爲的GameObject。 等等。 從IEnum
原创 Unity筆記 XML讀寫 防篡改MD5簽名
XML讀寫 讀取一個xml文件(/Scripts/enemy.xml),得到xml內容+anykey的MD5簽名。 寫一個xml(/Scripts/enemy_bkp.xml),改ROOT爲root。 using UnityE
原创 Unity筆記 UGUI RichText 文字表情圖片
在文字裏加入圖片 1 準備好要插入圖片的Material 2 給ugui gameobject 添加一個text mesh 組件(會自動多加一個mesh render) 3 在Mesh Render裏多加一個Material
原创 shader內建函數
https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions abs
原创 JavaScript 用法舉例
剛接觸js,比較新鮮的用法記錄一下。 vscode Plugin live server 不用架設服務器,右鍵直接跑js代碼,很方便。 function expressions let square = ( x ) =>{ retu
原创 Unity Shader, Post Processing, Blur, Bloom, Depth of Field
掛在攝像機上的腳本,把source抄到中間臨時紋理,然後再到destination void OnRenderImage (RenderTexture source, RenderTexture destination) {
原创 Object Pooling
原文裏的static加上就成singleton了感覺意義不大,除非只有子彈用這個pool。 using UnityEngine; using System.Collections; using System.Collections
原创 Unity UI Tips
1 狀態機 和 觀察者 使用狀態機(自己script),提供事件觸發時機如:進入,離開等。 在這些時機使用UnityEvent(Unity機制),來組織事件觸發的一系列處理。 狀態機可以在任何層面上使用,例如:canvas,單個con
原创 Unity筆記 《Unity遊戲設計與實現》
這書不錯,學習以下設計思路很好。 第零章 介紹了一些Unity基礎。 camera控制:alt、ctrl + alt、F按鍵 的使用。 一個小例子不斷polish的過程。 物理控制的經驗: 1)避免漂浮感,調整物體大小(rigi
原创 Unity Editor Scripting
1 Scriptable Object 通常不單獨使用 通常在編輯器開發中用到(使用IMUI方式) 是數據的容器 和monoBehaviour(用於GameObject)平行存在,但是不能用於GameObject 實例化的sc