一.在uc指令碼中可以呼叫的函式
1.在uc中使用關鍵字function宣告並實現的函式,可以呼叫。(因為,這裡相當於c++中普通的函式,並且uc指令碼之間相互呼叫函式不需要包含標頭檔案,只需要獲取對方uc類的類變數即可)
2.在uc中使用關鍵字native+function宣告的函式,在對應類.cpp中實現的函式,可以呼叫。(因為,加上native關鍵字只是將函式實現的內容放到了c++中,uc指令碼中任然有函式資訊)
3.在uc中使用關鍵字event宣告並實現的函式,可以呼叫。(因為,event代表在uc實現函式,c++來呼叫uc中實現的函式,uc擁有該函式的資訊)
4.在uc中的cpptext塊中,宣告並實現的函式,不可以呼叫。(因為,我們在uc指令碼中找不到任何有關此函式的資訊。)
注:上述的1,2,3種情況,如果在a.uc中呼叫,卻在b.uc中宣告或實現,那麼我們在a.uc中,首先就要獲取b.uc的類變數,通過該變數訪問其中的函式。
二.在c++中可以呼叫的函式
1.在uc中使用關鍵字event宣告並實現的函式,可以呼叫。(c++呼叫形式:event***(),***為函式名)
2.在uc中使用關鍵字native+function宣告的函式,在對應類.cpp中實現的函式,可以呼叫。(c++呼叫形式:***(),***為函式名)
3.在uc中的cpptext塊中,宣告並實現的函式,可以呼叫。
4.在uc中使用關鍵字function宣告並實現的函式,不可以呼叫。(因為,我們在c++中沒有任何關於該函式的資訊。)
注1:原因結合第一點所述。
注2:在a.cpp中呼叫,卻在b.cpp中實現,我們首先獲取b.cpp所對應的類物件,然後通過該物件來呼叫函式
注3:c++呼叫函式滿足幾點:1)呼叫函式。 2)函式宣告 3)函式實現
三.native關鍵字修飾函式的作用
1.作用:表明函式的實現在c++,而uc指令碼中只有宣告。(注:只有native類才能擁有native函式)
2.例子
//指令碼中宣告
testmanaget.uc
class testmanager
...native function string testfunc();
.....
//編譯指令碼後自動在公用標頭檔案中生成
***.h
class utestmanager
//在對應類的cpp實現函式
testmanager.cpp
fstring utestmanager::testfunc()
四.final關鍵字修飾函式的作用(配合native使用)
1.作用:宣告該函式不能是虛函式。
2.例子
//指令碼中宣告testmanaget.uc
class testmanager
...native final function string testfunc();
.....
//編譯指令碼後自動在公用標頭檔案中生成
***.h
class utestmanager
//在對應類的cpp實現函式testmanager.cppfstring utestmanager::testfunc()
五.uc指令碼中沒有指標 例子
//指令碼中宣告testmanaget.ucvar actor mainactor;class testmanager
...var int width;
...//編譯指令碼後
自動在公用標頭檔案中生成 ***.hclass utestmanager
六.cpptext關鍵字
1.作用:被cpptext所包圍的塊中,可以直接寫c++**,相當於在uc指令碼中可以寫c++**。
2.列子
//指令碼中宣告testmanaget.uc
class testmanager...cpptext
virtual void tick(float time)
}...//編譯指令碼後
自動在公用標頭檔案中生成 ***.hclass utestmanagervirtual void tick(float time)
}
七.dependson(...)關鍵字 例子
//指令碼中宣告testmanaget.uc
class testmanager
native(ui)
dependson(showmanager)
...var showmanager mshowmgr;
cpptext
}...
//編譯指令碼後
自動在公用標頭檔案中生成
***.h
class utestmanager
}
uc指令碼 2 陣列
陣列使用以下語法宣告 var int myarray 20 declares an array of 20 ints.unrealscript僅支援一維陣列,但你可以通過自己來設定 行 列 的數學處理來模擬多維陣列。動態陣列 先前我們所講的陣列是指靜態陣列。它意味著陣列的大小 陣列中有多少個元素 是...
c 與unreal 的uc指令碼互動
舉例 1.在指令碼menumanager.uc檔案中實現函式 event loadfrontend 這個指令碼對應的c 檔案為 menumanager.cpp 2.修改完uc指令碼之後,我們要立刻進行編譯指令碼,方法如下 開啟cmd進入到unkgame.exe這個檔案的目錄,輸入命令 udkgame...
UC故事 05 10 2011 雜記
1.client啟動的access violation問題 依然如故,看來和complete build沒有關係。2.office,重啟server,error如下 tcpview.exe查查,發現迅雷使用了1224埠,殺之。啟動ok 3.reminding 搞清radivision光碟中有什麼東東...