3.瞧,这就是UE4 C++

发表于2015-12-30
评论1 2k浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群

711501594

 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");

原文链接

著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

游戏学院公众号二维码
腾讯游戏学院
微信公众号

提供更专业的游戏知识学习平台