zoukankan      html  css  js  c++  java
  • UE 语言基础之代码规范

    要编写出优雅的Unreal Engine代码,需要了解所在sdk环境的编码习惯和约定,这样才能编写出和上层sdk一致的代码风格。

    命名部分

    1. 函数名,变量名,类型名,首字母大写。eg:UPrimitiveComponent

    2。 类型名有一个额外的大写字母前缀。

    模板类以T为前缀。eg:TArray

    继承UObject的类以U为前缀。eg:UActorComponent

    继承AAtor的类以A为前缀。eg:AMyActor

    继承SWidget 的类以S为前缀。eg:SPage

    抽象接口类以 I为前缀。eg:IGetName

    大部分其他类都以F为前缀。eg:FString

    1. 变量如果是bool,则必须以b开头。eg:bFinished

    2. 返回bool的函数,必须是Is开头或Should开头。eg:IsVisable(),ShouldClearData()

    3. 函数的参数,如果需要修改,必须以Out开头。eg:void GetRoomInfo(FRoomInfo& OutRoomInfo);

    4. 类型名要与类型修饰符在一起。eg: AActor* player;
      可移植数据类型部分

    bool代表布尔值 (永远不要假设布尔值的大小) 。BOOL 将不会进行编译。

    TCHAR 代表字符型(永远不要假设TCHAR的大小)。

    uint8代表无符号字节(占1个字节)。

    int8代表有符号的字节(占1个字节)。

    uint16 代表无符号"短整型" (占2 个字节)。

    int16代表有符号"短整型" (占2 个字节)。

    uint32 代表无符号整型(占4字节)。

    int32代表带符号整型(占4字节)。

    uint64代表无符号"四字" (8个字节)。

    int64 代表有符号"四字"(8个字节)。

    float代表单精度浮点型 (占4 个字节)。

    double代表双精度浮点型 (占8 个字节)。

    PTRINT代表可以存放一个指针的整型 (永远不要假设PTRINT的大小)。

    请不要在可移植代码中使用C++整型,因为需要根据编译器决定这种数据类型的大小。

    C++11可以使用的特性

    可变参数宏

    auto

    范围for

    lambda

    override final

    其余禁止使用
    C++ 枚举值(命名空间作用域)

    在虚幻引擎的代码中我们一般会在枚举类型前面加上 "E"字符作为前缀。

    我们要求所有枚举类型都使用命名空间来 (或空的结构体) 确定作用域。这样做的原因是在C++中枚举值的作用域和枚举类型本身的作用域一样。这样可能导致命名冲突,使得程序员必须创建奇怪的名称或者给枚举值加上前缀使它们的值保持唯一性。相反,我们通常会使用命名空间来规定新的枚举类型的作用范围。命名空间内的实际枚举类型的名称应该总是声明为 "Type" 。

    通过命名空间确定枚举类型作用于的示例:

    注意对于局部声明的枚举类型来说,您不能使用命名空间来规定作用范围。在这些情况中,我们选择声明一个没有成员变量的局部结构体,该结构体内仅有一个局部的枚举类型,使用该结构体来规定作用范围。

    依赖部分

    使用#pragma once来防止多次包含

    字符串

    使用unreal自带的FString,FText,TCHAR

    容器

    使用unreal自带的容器TArray,TMap,TSet

    智能指针

    使用unreal自带的智能指针TSharedPtr,TSharedRef,TWeakPtr

  • 相关阅读:
    How to render client report definition files (.rdlc) directly to the Response stream without preview(转)
    dedecms 5.7后台拿WEBSHELL
    sql注入语句大全
    常用putty命令汇总
    sql学习笔记(要够长)
    Ubuntu自动运行脚本
    backtrack安装优化过程
    原创【bt5非官网版本】 在虚拟机下无法连接网络的解决方案
    第五章——循环结构5.1
    Kali Linux 1.0
  • 原文地址:https://www.cnblogs.com/ezhar/p/14453380.html
Copyright © 2011-2022 走看看