原创 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