1.虛幻中的類前綴你會見到U,A,F,以下就是很好的羅列其中的意義
- U: UObject繼承過來的,例如UTexture
- A: AActor繼承過來的,例如AGameMode
- F: 其他的類和結構,例如FName, FVector
- T:模板,例如TArray,TMap,TQueue
- I: 接口類,ITransaction
- E:枚舉, ESelectionMode
- B: Boolean, bEnabled
2.區分大小寫!
用宏定義來包裹C++代碼
UCLASS 來包裹類
USTRUCT 包裹結構
UFUNCTION 包裹功能
UPROPERTY 包裹屬性
這是例子
USTRUCT() struct FVector2D { UPROPERTY() float X; UPROPERTY() float Y; UFUNCTION() float GetLength() const; };
3.虛幻主義者
UE4代碼中使用自己的基礎類型,不適用C++中的(char,short,int,long等)
①取而代之的是:int32,uint32,uint64,TCHAR,ANSICHAR等
數值類型在NumericLimits.h中聲明,可以詳細閱讀查詢
②一般的結構數據類型有
FBox,FColor,FGuid,FVariant,FVector,TBigInt,TRange
③容器
TArray,TSparseArray-動態數組
TLinkedList,TDoubleLinkedList
TMap-鍵值對哈希表
TQueue-隊列
TSet-非有序集
④代理:這一部分中文更加拗口沒有翻譯的意義,實際使用的時候我會再解釋
Unicast and multicast delegates
thread-safe variants
⑤智能指針
TSharedPtr,TSharedRef-一般傳統的C++對象
TWeakPtr-一般傳統的C++對象
TWeakObjPtr-UObject
TAutoPtr,TScopedPtr
TUniquePtr
原諒我偷懶直接復制,用了才知道怎么回事
Similar to boost:: & std:: implementations
Also thread-safe variants
⑥String 類型
FString- 通常的String
FText- 本地化,在Slate UI中常使用
FName-在UObject中常使用的,String哈希.FName是大小寫敏感的
⑦String文字
TEXT()- 創建一個通用的String類型,TEXT("Hello");
LOCTEXT()-創建一個本地化文字,LOCTEXT("Namespace","Name","Hello");
NSLOCTEXT()-在一個域名空間內的本地化,NSLOCTEXT("Name","Hello");