分类 | 范围 | 字节 | 备注 |
---|---|---|---|
uint8 | 0 ~ 255 | 1 | 无符号8位 |
uint16 | 0 ~ 65535 | 2 | 无符号16位 |
uint32 | 0 ~ 4294967295 | 4 | 无符号32位 |
uint64 | 0 ~ 18446744073709551615 | 8 | 无符号64位 |
int8 | -128 ~ 127 | 1 | 有符号8位 |
int16 | -32768 ~ 32767 | 2 | 有符号16位 |
int32 | -2147483648 ~ 2147483647 | 4 | 有符号32位 |
int64 | -9223372036854775808 ~ 9223372036854775807 | 8 | 有符号64位 |
float | -3.4E+38 ~ 3.4E+38 | 1 | 单精度浮点型 |
double | -1.7E-308 ~ 1.7E+308 | 1 | 双精度型浮点型 |
bool | true ~ false | 1 | 布尔 |
FName | FName不区分大小写,并且不可变,无法被操作 | 12 | 字符串类型 |
FString | 提供了对FString的修改、比较,也同时增加了性能消耗 | 12 | 字符串类型 |
FText | 一般用作显示和语言的翻译 | 12 | 字符串类型 |
{/** FString 转化为 FName */FString Str = TEXT("MyString");FName Name = FName(*Str);/** FName 转化为 FString */FString NewString = Name.ToString();
}
{/** FText 转化为 FName */FName MyName = FName(*MyText.ToString());/** FName 转化为 FText */FText MyText1 = FText::FromName(MyName);
}
{/** FString 转化为 FText */FString Str = TEXT("MyString");FText MyText = FText::FromString(Str);/** FText 转化为 FString */FString NewString = MyText.ToString();
}
{/** FString 转化为 Int32 */FString MyString = TEXT("MyString");int32 i1 = FCString::Atoi(*MyString); // 使用FCStringint32 i2 = atoi(TCHAR_TO_UTF8(*MyString)); // 使用C++原生方法/** FString 转化为 float */float f1 = FCString::Atof(*MyString); // 使用FCStringfloat f2 = atof(TCHAR_TO_UTF8(*MyString)); // 使用C++原生方法/** FString 转化为 bool */bool b = MyString.ToBool();/** int 转化为 FSting */FString FStr1 = FString::FromInt(123);/** float 转化为 FSting */FString FStr2 = FString::SanitizeFloat(36.1f);/** bool 转化为 FSting */bool myBool;FString FStr3 = myBool ? TEXT("true") : TEXT("false");
}
{// std::string 转化为 FStringstd::string stdStr = "MyString";FString a = FString(stdStr.c_str());// FString 转化为 std::string std::string newString(TCHAR_TO_UTF8(*a));// FString 转化为 char*char* newChar = TCHAR_TO_UTF8(*a);// char* 转化为 FStringFString NewString = FString(UTF8_TO_TCHAR(newChar));
}
{// FString 转化为 TCHARFString MyString = TEXT("UEString");const TCHAR* MyChar = *MyString;
}
属性使用标准的C++变星语法声明,前面用UPROPERTY宏来定义属性元数据和变量说明符。UPROPERTY的作用是将变量公开到编辑器或蓝图。
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyCategory")
int MyInt;
使用UFUNCTION宏可以方便地为我们的函数添加元数据和属性,使得它们可以在蓝图中方便地使用和调用。
UFUNCTION(BlueprintCallable, Category = "MyCategory")
void MyFunction(int MyInt, FString MyString);
//定义一个原生enum class
enum class EMyType
{Type1,Type2,Type3,
};namespace EState
{enum Type {Stop,Close,Open};
}// 带反射枚举
UENUM(BlueprintType)
enum class ECurrentState : uint8
{Idle UMETA(DisplayName="空闲"),Attack UMETA(DisplayName="攻击"),Roll UMETA(DisplayName="翻滚"),Dead UMETA(DisplayName="死亡"),
};UPROPERTY(EditAnywhere,BlueprintReadWrite)
ECurrentState MyCurrentState UMETA(DisplayName = "当前状态");
//结构体
//BlueprintType可以将枚举暴露给蓝图,继承FTableRowBase之后可以用于DataTable
USTRUCT(BlueprintType)
struct FMyStruct: public FTableRowBase
{GENERATED_BODY()// 暴露给蓝图UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Test Variables")int32 MyIntegerMemberVariable;// 不暴露给蓝图int32 NativeOnlyMemberVariable;// 蓝图图表无法访问此UObject指针,但是指针对UE4的反射、智能指针和垃圾回收系统可见。UPROPERTY()UObject* SafeObjectPointer;
};UPROPERTY(EditAnywhere,BlueprintReadWrite)FMyStruct MyStruct;
本文发布于:2024-01-28 03:02:22,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063821654306.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |