Ver código fonte

Update 虚幻.md

usuiforhe 4 anos atrás
pai
commit
53929c1631
1 arquivos alterados com 67 adições e 18 exclusões
  1. 67 18
      虚幻.md

+ 67 - 18
虚幻.md

@@ -1839,26 +1839,75 @@ typedef FPlatformTypes::CHAR32		UTF32CHAR;
 1. FName:资源命名字符串,FName通过一个轻型系统使用字符串。在此系统中,特定字符串即使会被重复使用,在数据表中也只存储一次。FName不区分大小写。**他们为不可变,无法被操作**。FNames的存储系统和静态特性决定了通过键进行FNames的查找和访问速度快。FName子系统的另一个功能是使用散列表为FName转换提供快速字符串
 1. FName:资源命名字符串,FName通过一个轻型系统使用字符串。在此系统中,特定字符串即使会被重复使用,在数据表中也只存储一次。FName不区分大小写。**他们为不可变,无法被操作**。FNames的存储系统和静态特性决定了通过键进行FNames的查找和访问速度快。FName子系统的另一个功能是使用散列表为FName转换提供快速字符串
 2. FText:表示一个显示字符串,用户的显示文本都需要由FText进行处理。支持格式化文本,**不提供修改函数,无法进行内容修改**(可以用来制作国际化)
 2. FText:表示一个显示字符串,用户的显示文本都需要由FText进行处理。支持格式化文本,**不提供修改函数,无法进行内容修改**(可以用来制作国际化)
 3. FString:可以被操作的字符串。**开销大于其他字符串类型**
 3. FString:可以被操作的字符串。**开销大于其他字符串类型**
+	
+#### FString
 
 
 ```cpp
 ```cpp
-	FString str = FString(TEXT("OK"));	// FString构建方式1
-	FString str1(TEXT("OK"));		// FString构建方式2
-	FString str2;				// FString无初始值构建
+FString str = FString(TEXT("OK"));	// FString构建方式1
+FString str1(TEXT("OK"));		// FString构建方式2
+FString str2;				// FString无初始值构建
+
+GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, str);
+GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, str1);
+
+// 普通数据类型转换为FString
+FString::SanitizeFloat(1.0f);
+FString::FormatAsNumber(23);
+FString::FromInt(10);
+
+bool b = true;
+b ? TEXT("true") : TEXT("false");
+
+// FString转为其他类型
+FCString::Atoi
+FCString::Atof
+FCString::Atod
+
+// ESearchCase::Type::CaseSensitive	比较大小写
+// ESearchCase::Type::IgnoreCase	不比较大小写
+str.Equals(str1, ESearchCase::Type::IgnoreCase);	// 比较大小
+str.Contains(str1);	// str中是否存在子字符串与str1相同,参数2 是否忽略大小写 参数3 查询方向从前往后还是从后往前
+str.Find(str1);	// 检查str1在str中存在的位置,与Contains函数搭配使用,参数3 为起始查找位置
+
+FString source(TEXT("A*B*C*D"));
+FString Left;	// "A"
+FString Right;	// "B*C*D"
+// 根据第一个找到的切割字符串进行分割,左边的给Left,右边的给Right
+source.Split(TEXT("*"), &Left, &Right);
+GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, Left);
+GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, Right);
+
+// 拼接字符串
+Left += Right;					// "AB*C*D"
+GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, Left);
+
+// 路径拼接符
+FString result =source / Left;	// "A*B*C*D/AB*C*D"
+GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, result);
+
+// 拼接
+FString msg = FString::Printf(TEXT("%d %d"), 1, 2);	// "1 2"
+GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, msg);
+```
 
 
-	GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, str);
-	GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, str1);
-	
-	// 普通数据类型转换为FString
-	FString::SanitizeFloat(1.0f);
-	FString::FormatAsNumber(23);
-	FString::FromInt(10);
-
-	bool b = true;
-	b ? TEXT("true") : TEXT("false");
-
-	// FString转为其他类型
-	FCString::Atoi
-	FCString::Atof
-	FCString::Atod
+
+#### FName
+
+主要作用 是标记名称
+
+```cpp
+FName n1 = FName(TEXT("NO"));
+FName n2(TEXT("NO"));
+
+// 比较名称相同
+if (n1 == n2) {
+
+}
+
+// 输出
+GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, n1.ToString());
 ```
 ```
 
 
+#### FText
+
+