UC指令碼筆記

2021-06-28 10:53:29 字數 2463 閱讀 7264

一.在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.uc 

class testmanager

...var int width;

var actor mainactor;

...//編譯指令碼後

自動在公用標頭檔案中生成 ***.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光碟中有什麼東東...