UnrealScript並未提供擴充機制,讓開發者可以在自己的專案裡撰寫程式碼自訂新的指令。雖然增加擴充機制不會太難,主要是讓FScriptCompiler和UByteCodeSerializer可以subclassing,不過由於不是這次的主題,所以本例中就直接修改底層的程式碼。
要自訂新的指令,大致上需要以下的步驟:
- 找一個還未使用的位元碼(byte code)當作自訂指令碼
- 如果這個指令需要使用一個新的名稱,可以在UnNames.h註冊一個新的名字
- 修改UByteCodeSerializer使得新增的指令可以正確地序列化。
- 撰寫對應的函式並且註冊到GNatives
- 修改FScriptCompiler讓編譯器認得新的指令