您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ FString函数代码示例

51自学网 2021-06-01 20:43:48
  C++
这篇教程C++ FString函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中FString函数的典型用法代码示例。如果您正苦于以下问题:C++ FString函数的具体用法?C++ FString怎么用?C++ FString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了FString函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: CopyFileToPublicStaging

 bool CopyFileToPublicStaging(const FString& SourceFile) {     FString IpaFilename = FPaths::GetCleanFilename(SourceFile);     return CopyFileToDevice(SourceFile, FString(TEXT("/PublicStaging/")) + IpaFilename, 1024*1024); }
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:5,


示例2: GetGraph

UK2Node::ERedirectType UK2Node::DoPinsMatchForReconstruction(const UEdGraphPin* NewPin, int32 NewPinIndex, const UEdGraphPin* OldPin, int32 OldPinIndex) const{	ERedirectType RedirectType = ERedirectType_None;	// if the pin names do match	if (FCString::Stricmp(*(NewPin->PinName), *(OldPin->PinName)) == 0)	{		// Make sure we're not dealing with a menu node		UEdGraph* OuterGraph = GetGraph();		if( OuterGraph && OuterGraph->Schema )		{			const UEdGraphSchema_K2* K2Schema = Cast<const UEdGraphSchema_K2>(GetSchema());			if( !K2Schema || K2Schema->IsSelfPin(*NewPin) || K2Schema->ArePinTypesCompatible(OldPin->PinType, NewPin->PinType) )			{				RedirectType = ERedirectType_Name;			}			else			{				RedirectType = ERedirectType_None;			}		}	}	else	{		// try looking for a redirect if it's a K2 node		if (UK2Node* Node = Cast<UK2Node>(NewPin->GetOwningNode()))		{				if (OldPin->ParentPin == NULL)			{				// if you don't have matching pin, now check if there is any redirect param set				TArray<FString> OldPinNames;				GetRedirectPinNames(*OldPin, OldPinNames);				FName NewPinName;				RedirectType = ShouldRedirectParam(OldPinNames, /*out*/ NewPinName, Node);				// make sure they match				if ((RedirectType != ERedirectType_None) && FCString::Stricmp(*(NewPin->PinName), *(NewPinName.ToString())) != 0)				{					RedirectType = ERedirectType_None;				}			}			else			{				struct FPropertyDetails				{					const UEdGraphPin* Pin;					FString PropertyName;					FPropertyDetails(const UEdGraphPin* InPin, const FString& InPropertyName)						: Pin(InPin), PropertyName(InPropertyName)					{					}				};				TArray<FPropertyDetails> ParentHierarchy;				const UEdGraphPin* CurPin = OldPin;				do 				{					ParentHierarchy.Add(FPropertyDetails(CurPin, CurPin->PinName.RightChop(CurPin->ParentPin->PinName.Len() + 1)));					CurPin = CurPin->ParentPin;				} while (CurPin->ParentPin);				// if you don't have matching pin, now check if there is any redirect param set				TArray<FString> OldPinNames;				GetRedirectPinNames(*CurPin, OldPinNames);				FString NewPinNameStr;				FName NewPinName;				RedirectType = ShouldRedirectParam(OldPinNames, /*out*/ NewPinName, Node);				NewPinNameStr = (RedirectType == ERedirectType_None ? CurPin->PinName : NewPinName.ToString());				for (int32 ParentIndex = ParentHierarchy.Num() - 1; ParentIndex >= 0; --ParentIndex)				{					const UEdGraphPin* CurPin = ParentHierarchy[ParentIndex].Pin;					const UEdGraphPin* ParentPin = CurPin->ParentPin;					TMap<FName, FName>* StructRedirects = UStruct::TaggedPropertyRedirects.Find(ParentPin->PinType.PinSubCategoryObject->GetFName());					if (StructRedirects)					{						FName* PropertyRedirect = StructRedirects->Find(FName(*ParentHierarchy[ParentIndex].PropertyName));						if (PropertyRedirect)						{							NewPinNameStr += FString("_") + PropertyRedirect->ToString();						}						else						{							NewPinNameStr += FString("_") + ParentHierarchy[ParentIndex].PropertyName;						}					}					else					{						NewPinNameStr += FString("_") + ParentHierarchy[ParentIndex].PropertyName;					}				}				// make sure they match				RedirectType = ((FCString::Stricmp(*(NewPin->PinName), *NewPinNameStr) != 0) ? ERedirectType_None : ERedirectType_Name);			}//.........这里部分代码省略.........
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:101,


示例3: TEXT

bool LocalizationCommandletTasks::ReportLoadedAudioAssets(const TArray<ULocalizationTarget*>& Targets, const TOptional<FString>& CultureName){	TSet<FString> LoadedDialogueWaveAssets;	TSet<FString> LoadedSoundWaveAssets;	for (const ULocalizationTarget* Target : Targets)	{		const FString RootAssetPath = Target->IsMemberOfEngineTargetSet() ? TEXT("/Engine") : TEXT("/Game");		TArray<FString> CulturesToTest;		{			if (CultureName.IsSet())			{				CulturesToTest.Add(CultureName.GetValue());			}			else			{				CulturesToTest.Reserve(Target->Settings.SupportedCulturesStatistics.Num());				for (const FCultureStatistics& CultureData : Target->Settings.SupportedCulturesStatistics)				{					CulturesToTest.Add(CultureData.CultureName);				}			}		}		TArray<FString> DialogueWavePathsToTest;		TArray<FString> SoundWavePathsToTest;		{			const FString NativeCulture = Target->Settings.SupportedCulturesStatistics.IsValidIndex(Target->Settings.NativeCultureIndex) ? Target->Settings.SupportedCulturesStatistics[Target->Settings.NativeCultureIndex].CultureName : FString();			const bool bImportNativeAsSource = Target->Settings.ImportDialogueSettings.bImportNativeAsSource && !NativeCulture.IsEmpty();			if (bImportNativeAsSource)			{				DialogueWavePathsToTest.Add(RootAssetPath);				SoundWavePathsToTest.Add(RootAssetPath / Target->Settings.ImportDialogueSettings.ImportedDialogueFolder);			}			for (const FString& Culture : CulturesToTest)			{				if (bImportNativeAsSource && Culture == NativeCulture)				{					continue;				}				DialogueWavePathsToTest.Add(RootAssetPath / TEXT("L10N") / Culture);				SoundWavePathsToTest.Add(RootAssetPath / TEXT("L10N") / Culture / Target->Settings.ImportDialogueSettings.ImportedDialogueFolder);			}		}		ForEachObjectOfClass(UDialogueWave::StaticClass(), [&](UObject* InObject)		{			const FString ObjectPath = InObject->GetPathName();			auto FindAssetPathPredicate = [&](const FString& InAssetPath) -> bool			{				return ObjectPath.StartsWith(InAssetPath, ESearchCase::IgnoreCase);			};			if (DialogueWavePathsToTest.ContainsByPredicate(FindAssetPathPredicate))			{				LoadedDialogueWaveAssets.Add(ObjectPath);			}		});		ForEachObjectOfClass(USoundWave::StaticClass(), [&](UObject* InObject)		{			const FString ObjectPath = InObject->GetPathName();			auto FindAssetPathPredicate = [&](const FString& InAssetPath) -> bool			{				return ObjectPath.StartsWith(InAssetPath, ESearchCase::IgnoreCase);			};			if (SoundWavePathsToTest.ContainsByPredicate(FindAssetPathPredicate))			{				LoadedSoundWaveAssets.Add(ObjectPath);			}		});	}	if (LoadedDialogueWaveAssets.Num() > 0 || LoadedSoundWaveAssets.Num() > 0)	{		FTextBuilder MsgBuilder;		MsgBuilder.AppendLine(LOCTEXT("Warning_LoadedAudioAssetsMsg", "The following audio assets have been loaded by the editor and may cause the dialogue import to fail as their files will be read-only."));		MsgBuilder.AppendLine(FText::GetEmpty());		MsgBuilder.AppendLine(LOCTEXT("Warning_LoadedAudioAssetsMsg_Continue", "Do you want to continue?"));						if (LoadedDialogueWaveAssets.Num() > 0)		{			MsgBuilder.AppendLine(FText::GetEmpty());			MsgBuilder.AppendLine(LOCTEXT("Warning_LoadedAudioAssetsMsg_DialogueWaves", "Dialogue Waves:"));			MsgBuilder.Indent();			for (const FString& LoadedDialogueWaveAsset : LoadedDialogueWaveAssets)			{				MsgBuilder.AppendLine(LoadedDialogueWaveAsset);			}			MsgBuilder.Unindent();		}		if (LoadedSoundWaveAssets.Num() > 0)//.........这里部分代码省略.........
开发者ID:JustDo1989,项目名称:UnrealEngine4.11-HairWorks,代码行数:101,


示例4: UE_LOG

FString UpdateManager::HelloWorld() {	UE_LOG(LogTemp, Log, TEXT("Hello, World"));	return FString("Hello, I'm Happy!");}
开发者ID:jerusalemdax,项目名称:UE4Client,代码行数:4,


示例5: return

FString FLiveEditorWizardBase::GetAdvanceButtonText() const{	return (IsOnLastStep())? FString( TEXT("Finish") ) : FString( TEXT("Next") );}
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:4,


示例6: UE_LOG_ONLINE

/** *	Create a search result from a server response * * @param ServerDetails Steam server details */void FOnlineAsyncTaskSteamFindServerBase::ParseSearchResult(class gameserveritem_t* ServerDetails){	TSharedRef<FInternetAddr> ServerAddr = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateInternetAddr();	ServerAddr->SetIp(ServerDetails->m_NetAdr.GetIP());	ServerAddr->SetPort(ServerDetails->m_NetAdr.GetConnectionPort());	int32 ServerQueryPort = ServerDetails->m_NetAdr.GetQueryPort();	UE_LOG_ONLINE(Warning, TEXT("Server response IP:%s"), *ServerAddr->ToString(false));	if (ServerDetails->m_bHadSuccessfulResponse)	{		FString GameTags(UTF8_TO_TCHAR(ServerDetails->m_szGameTags));		// Check for build compatibility		int32 ServerBuildId = 0;		int32 BuildUniqueId = GetBuildUniqueId();		TArray<FString> TagArray;		GameTags.ParseIntoArray(TagArray, TEXT(","), true);		if (TagArray.Num() > 0 && TagArray[0].StartsWith(STEAMKEY_BUILDUNIQUEID))		{			ServerBuildId = FCString::Atoi(*TagArray[0].Mid(ARRAY_COUNT(STEAMKEY_BUILDUNIQUEID)));		}		if (ServerBuildId != 0 && ServerBuildId == BuildUniqueId)		{			// Create a new pending search result 			FPendingSearchResultSteam* NewPendingSearch = new (PendingSearchResults) FPendingSearchResultSteam(this);			NewPendingSearch->ServerId = FUniqueNetIdSteam(ServerDetails->m_steamID);			NewPendingSearch->HostAddr = ServerAddr;			// Fill search result members			FOnlineSessionSearchResult* NewSearchResult = &NewPendingSearch->PendingSearchResult;			NewSearchResult->PingInMs = FMath::Clamp(ServerDetails->m_nPing, 0, MAX_QUERY_PING);			// Fill session members			FOnlineSession* NewSession = &NewSearchResult->Session;			//NewSession->OwningUserId = ;			NewSession->OwningUserName = UTF8_TO_TCHAR(ServerDetails->GetName());			NewSession->NumOpenPublicConnections = ServerDetails->m_nMaxPlayers - ServerDetails->m_nPlayers;			NewSession->NumOpenPrivateConnections = 0;			// Fill session settings members			NewSession->SessionSettings.NumPublicConnections = ServerDetails->m_nMaxPlayers;			NewSession->SessionSettings.NumPrivateConnections = 0;			NewSession->SessionSettings.bAntiCheatProtected = ServerDetails->m_bSecure ? true : false;			NewSession->SessionSettings.Set(SETTING_MAPNAME, FString(UTF8_TO_TCHAR(ServerDetails->m_szMap)), EOnlineDataAdvertisementType::ViaOnlineService);			// Start a rules request for this new result			NewPendingSearch->ServerQueryHandle = SteamMatchmakingServersPtr->ServerRules(ServerDetails->m_NetAdr.GetIP(), ServerQueryPort, NewPendingSearch);			if (NewPendingSearch->ServerQueryHandle == HSERVERQUERY_INVALID)			{				// Remove the failed element				PendingSearchResults.RemoveAtSwap(PendingSearchResults.Num() - 1);			}		}		else		{			UE_LOG_ONLINE(Warning, TEXT("Removed incompatible build: ServerBuildUniqueId = 0x%08x, GetBuildUniqueId() = 0x%08x"),				ServerBuildId, BuildUniqueId);		}	}}
开发者ID:RandomDeveloperM,项目名称:UE4_Hairworks,代码行数:70,


示例7: FString

FString UBlackboardKeyType_NativeEnum::DescribeValue(const uint8* RawData) const{	return EnumType ? EnumType->GetEnumName(GetValue(RawData)) : FString("UNKNOWN!");}
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:4,


示例8: MakeShareable

void FTODAssetPropertyDetails::CustomizeDetails(IDetailLayoutBuilder& DetailLayout){	const IDetailsView& DetailView = DetailLayout.GetDetailsView();	//first find asset we are going to edit.	TWeakObjectPtr<UObject> InspectedObject;	for (TWeakObjectPtr<UObject> inspObj : DetailView.GetSelectedObjects())	{		InspectedObject = inspObj;		break;	}	UTODAsset* TODAsset = Cast<UTODAsset>(InspectedObject.Get());	CurrentTODAsset = Cast<UTODAsset>(InspectedObject.Get());	if (TODAsset)	{		for (TFieldIterator<UProperty> PropIt(TODAsset->GetClass()); PropIt; ++PropIt)		{			UProperty* prop = *PropIt;			DetailLayout.HideProperty(prop->GetFName());			//PropertyHandles.Add(DetailLayout.GetProperty(prop->GetFName()));			UStructProperty* structProp = Cast<UStructProperty>(prop);			if (structProp)			{				FRuntimeFloatCurve* floatCurve = structProp->ContainerPtrToValuePtr<FRuntimeFloatCurve>(TODAsset);				if (floatCurve)				{					TSharedPtr<FTODFloatCurveProperty> tempFloatProp = MakeShareable(new FTODFloatCurveProperty());					tempFloatProp->PropertyHandle = DetailLayout.GetProperty(prop->GetFName());					tempFloatProp->TODAsset = TODAsset;					tempFloatProp->CategoryName = tempFloatProp->PropertyHandle->GetMetaData(TEXT("Category"));					FloatCurves.Add(tempFloatProp);				}			}		}	}	IDetailCategoryBuilder& DetailCategoryBuilder = DetailLayout.EditCategory("Property Detail");	FDetailWidgetRow& DetailRow = DetailCategoryBuilder.AddCustomRow(FString("Custom Row"));	////now customize each property	//FRuntimeFloatCurve* floatCurve;	TSharedPtr<IPropertyHandle> hour = DetailLayout.GetProperty(TEXT("Hour"));	DetailCategoryBuilder.AddProperty(hour);	IDetailCategoryBuilder& SunCategoryBuilder = DetailLayout.EditCategory("Sun");	IDetailCategoryBuilder& AFCategoryBuilder = DetailLayout.EditCategory("Atmospheric Fog");	IDetailCategoryBuilder& HFCategoryBuilder = DetailLayout.EditCategory("Height Fog");	IDetailCategoryBuilder& PPCategoryBuilder = DetailLayout.EditCategory("Post Process");	IDetailCategoryBuilder& SkyLightCategoryBuilder = DetailLayout.EditCategory("SkyLight");	IDetailCategoryBuilder& MoonCategoryBuilder = DetailLayout.EditCategory("Moon");	for (TSharedPtr<FTODFloatCurveProperty> floatCurves : FloatCurves)	{		if (floatCurves->CategoryName == FString("Sun"))			floatCurves->ConstructWidget(SunCategoryBuilder);		if (floatCurves->CategoryName == FString("Atmospheric Fog"))			floatCurves->ConstructWidget(AFCategoryBuilder);		if (floatCurves->CategoryName == FString("Height Fog"))			floatCurves->ConstructWidget(HFCategoryBuilder);		if (floatCurves->CategoryName == FString("Post Process"))			floatCurves->ConstructWidget(PPCategoryBuilder);		if (floatCurves->CategoryName == FString("SkyLight"))			floatCurves->ConstructWidget(SkyLightCategoryBuilder);		if (floatCurves->CategoryName == FString("Moon"))			floatCurves->ConstructWidget(MoonCategoryBuilder);	}}
开发者ID:HyunhSo,项目名称:TimeOfDayPlugin,代码行数:72,


示例9: MessageHandler

FOculusInput::FOculusInput( const TSharedRef< FGenericApplicationMessageHandler >& InMessageHandler )	: MessageHandler( InMessageHandler )	, ControllerPairs()	, TriggerThreshold(0.8f){	// Initializes LibOVR. 	ovrInitParams initParams;	FMemory::Memset(initParams, 0);	initParams.Flags = ovrInit_RequestVersion;	initParams.RequestedMinorVersion = OVR_MINOR_VERSION;#if !UE_BUILD_SHIPPING//	initParams.LogCallback = OvrLogCallback;#endif	ovrResult initStatus = ovr_Initialize(&initParams);	if (!OVR_SUCCESS(initStatus) && initStatus == ovrError_LibLoad)	{		// fatal errors: can't load library 		UE_LOG(LogOcInput, Log, TEXT("Can't find Oculus library %s: is proper Runtime installed? Version: %s"), 			TEXT(OVR_FILE_DESCRIPTION_STRING), TEXT(OVR_VERSION_STRING));		return;	}	FOculusTouchControllerPair& ControllerPair = *new(ControllerPairs) FOculusTouchControllerPair();	// @todo: Unreal controller index should be assigned to us by the engine to ensure we don't contest with other devices	ControllerPair.UnrealControllerIndex = 0; //???? NextUnrealControllerIndex++;	// Load the config, even if we failed to initialize a controller	LoadConfig();	IModularFeatures::Get().RegisterModularFeature( GetModularFeatureName(), this );	GEngine->MotionControllerDevices.AddUnique(this);	// Register the FKeys	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Left_Thumbstick, LOCTEXT("OculusTouch_Left_Thumbstick", "Oculus Touch (L) Thumbstick CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Left_FaceButton1, LOCTEXT("OculusTouch_Left_FaceButton1", "Oculus Touch (L) X Button CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Left_Trigger, LOCTEXT("OculusTouch_Left_Trigger", "Oculus Touch (L) Trigger CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Left_FaceButton2, LOCTEXT("OculusTouch_Left_FaceButton2", "Oculus Touch (L) Y Button CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Left_IndexPointing, LOCTEXT("OculusTouch_Left_IndexPointing", "Oculus Touch (L) Pointing CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Left_ThumbUp, LOCTEXT("OculusTouch_Left_ThumbUp", "Oculus Touch (L) Thumb Up CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Right_Thumbstick, LOCTEXT("OculusTouch_Right_Thumbstick", "Oculus Touch (R) Thumbstick CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Right_FaceButton1, LOCTEXT("OculusTouch_Right_FaceButton1", "Oculus Touch (R) A Button CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Right_Trigger, LOCTEXT("OculusTouch_Right_Trigger", "Oculus Touch (R) Trigger CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Right_FaceButton2, LOCTEXT("OculusTouch_Right_FaceButton2", "Oculus Touch (R) B Button CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Right_IndexPointing, LOCTEXT("OculusTouch_Right_IndexPointing", "Oculus Touch (R) Pointing CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	EKeys::AddKey(FKeyDetails(FOculusTouchCapacitiveKey::OculusTouch_Right_ThumbUp, LOCTEXT("OculusTouch_Right_ThumbUp", "Oculus Touch (R) Thumb Up CapTouch"), FKeyDetails::GamepadKey | FKeyDetails::FloatAxis));	UE_LOG(LogOcInput, Log, TEXT("OculusInput is initialized. Init status %d. Runtime version: %s"), int(initStatus), *FString(ANSI_TO_TCHAR(ovr_GetVersionString())));}
开发者ID:ErwinT6,项目名称:T6Engine,代码行数:51,


示例10: cstr

//Rama's String From Binary Array//This function requires #include <string>FString CloudyWebAPIImpl::StringFromBinaryArray(const TArray<uint8>& BinaryArray){    //Create a string from a byte array!    std::string cstr(reinterpret_cast<const char*>(BinaryArray.GetData()), BinaryArray.Num());    return FString(cstr.c_str());}
开发者ID:9gix,项目名称:CloudyGamePlugin,代码行数:8,


示例11: TestBasicStringExpression

	virtual bool TestBasicStringExpression(const FTextFilterString& InValue, const ETextFilterTextComparisonMode InTextComparisonMode) const override	{		const TCHAR* Ptr = AssetFullPath.GetCharArray().GetData();		if (Ptr)		{			// Test each piece of the path name, apart from the first			bool bIsFirst = true;			while (const TCHAR* Delimiter = FCString::Strchr(Ptr, '/'))			{				const int32 Length = Delimiter - Ptr;				if (Length > 0)				{					if (bIsFirst)					{						bIsFirst = false;					}					else					{						if (TextFilterUtils::TestBasicStringExpression(FString(Length, Ptr), InValue, InTextComparisonMode))						{							return true;						}					}				}				Ptr += (Length + 1);			}			if (*Ptr != 0)			{				if (TextFilterUtils::TestBasicStringExpression(Ptr, InValue, InTextComparisonMode))				{					return true;				}			}		}		if (bIncludeClassName)		{			if (TextFilterUtils::TestBasicStringExpression(AssetPtr->AssetClass, InValue, InTextComparisonMode))			{				return true;			}			// Only test this if we're searching the class name too, as the exported text contains the type in the string			if (TextFilterUtils::TestBasicStringExpression(AssetExportTextName, InValue, InTextComparisonMode))			{				return true;			}		}		for (const FName& AssetCollectionName : AssetCollectionNames)		{			if (TextFilterUtils::TestBasicStringExpression(AssetCollectionName, InValue, InTextComparisonMode))			{				return true;			}		}		return false;	}
开发者ID:PickUpSU,项目名称:UnrealEngine4,代码行数:62,


示例12: check

void FDirectoryWatchRequestWindows::ProcessChange(uint32 Error, uint32 NumBytes){	if (Error == ERROR_OPERATION_ABORTED || NumBytes == 0 ) 	{		// The operation was aborted, likely due to EndWatchRequest canceling it.		// Mark the request for delete so it can be cleaned up next tick.		bPendingDelete = true; 		return; 	}	bool bValidNotification = (Error != ERROR_OPERATION_ABORTED && Error != ERROR_IO_INCOMPLETE && NumBytes > 0 );	// Copy the change to the backbuffer so we can start a new read as soon as possible	if ( bValidNotification )	{				check(BackBuffer);		FMemory::Memcpy(BackBuffer, Buffer, NumBytes);	}	// Start up another read	const bool bSuccess = !!::ReadDirectoryChangesW(		DirectoryHandle,		Buffer,		BufferLength,		bWatchSubtree,		NotifyFilter,		NULL,		&Overlapped,		&FDirectoryWatchRequestWindows::ChangeNotification);	if ( !bValidNotification )	{		UE_LOG(LogDirectoryWatcher, Warning, TEXT("A directory notification failed for '%s' because it was aborted or there was a buffer overflow."), *Directory);		return;	}	// No need to process the change if we can not execute any delegates	if ( !HasDelegates() )	{		return;	}	// Process the change	uint8* InfoBase = BackBuffer;	do	{		FILE_NOTIFY_INFORMATION* NotifyInfo = (FILE_NOTIFY_INFORMATION*)InfoBase;		// Copy the WCHAR out of the NotifyInfo so we can put a NULL terminator on it and convert it to a FString		const int32 Len = NotifyInfo->FileNameLength / sizeof(WCHAR);		WCHAR* RawFilename = new WCHAR[Len + 1];		FMemory::Memcpy(RawFilename, NotifyInfo->FileName, NotifyInfo->FileNameLength);		RawFilename[Len] = 0;		FFileChangeData::EFileChangeAction Action;		switch(NotifyInfo->Action)		{			case FILE_ACTION_ADDED:			case FILE_ACTION_RENAMED_NEW_NAME:				Action = FFileChangeData::FCA_Added;				break;			case FILE_ACTION_REMOVED:			case FILE_ACTION_RENAMED_OLD_NAME:				Action = FFileChangeData::FCA_Removed;				break;			case FILE_ACTION_MODIFIED:				Action = FFileChangeData::FCA_Modified;				break;			default:				Action = FFileChangeData::FCA_Unknown;				break;		}		// WCHAR to TCHAR conversion. In windows this is probably okay.		const FString Filename = Directory / FString(RawFilename);		new (FileChanges) FFileChangeData(Filename, Action);		// Delete the scratch WCHAR*		delete[] RawFilename;		// If there is not another entry, break the loop		if ( NotifyInfo->NextEntryOffset == 0 )		{			break;		}		// Adjust the offset and update the NotifyInfo pointer		InfoBase += NotifyInfo->NextEntryOffset;	}	while(true);}
开发者ID:JustDo1989,项目名称:UnrealEngine4.11-HairWorks,代码行数:94,


示例13: return

FString UKismetStringLibrary::Conv_ObjectToString(class UObject* InObj){	return (InObj != NULL) ? InObj->GetName() : FString(TEXT("None"));}
开发者ID:kidaa,项目名称:UnrealEngineVR,代码行数:4,


示例14: ifile

int CSVParser::ReadPropertyDataCSV(const char* FileName, Utils::FHashMap<SongDetails>& OutputMap, bool FirstRowDiscarded, char elem_delim, char row_delim){	int lineNumber = 0;	std::string line, linetoken;	std::ifstream ifile(FileName);	if (!ifile) {	//file can't be opened		return -1;	}	/* before going on I want to point out one thing:	* I HATE std::getline	* and obviously std::getline hates me.	* It is important you remember that	* if you touch std::getline code	* std::getline will take its revenge on you. */	if (FirstRowDiscarded)	{		if (!std::getline(ifile, line, row_delim))			return 0;	}	while (std::getline(ifile, line, row_delim))	{#ifdef DEBUG_CSV_CONTENT		UE_LOG(LogTemp, Log, TEXT("new line: /n%s/ntokenized as"), *FString(line.c_str()));		//DEBUG(line.c_str())#endif		std::istringstream str_parser;		bool found = false;		str_parser.str(line);		TArray<FString> SeparatedLine = TArray<FString>();		FString ElementID;		//first column is Element ID.		FString DimensionID = "";	//second column is Dimension ID		std::getline(str_parser, linetoken, elem_delim);		ElementID = Utils::CustomUnquote(FString(linetoken.c_str()));		try {			OutputMap.at(ElementID);			found = true;		}		catch (std::out_of_range e) {			found = false;		}		if (found) {	//if failed to load line, jump to next line			FSongProperty property;			std::getline(str_parser, linetoken, elem_delim);			DimensionID = Utils::CustomUnquote(FString(linetoken.c_str()));			while (std::getline(str_parser, linetoken, elem_delim)) {	//from third element to end of line				SeparatedLine.Add(Utils::CustomUnquote(FString(linetoken.c_str())));	//append#ifdef DEBUG_CSV_CONTENT				UE_LOG(LogTemp, Log, TEXT("%s"), *Utils::CustomUnquote(FString(linetoken.c_str())));				//DEBUG(linetoken.c_str())#endif			}			property << SeparatedLine;			if (DimensionID.Len() > 0)			{				OutputMap[ElementID].Properties[DimensionID] = property;			}			lineNumber++;		}#ifdef DEBUG_CSV_CONTENT		UE_LOG(LogTemp, Log, TEXT(" . . . . . . ."));#endif	}	ifile.close();	return lineNumber;}
开发者ID:skeru,项目名称:ambif,代码行数:66,


示例15: TEXT

/** Create a tokenized message record from a message containing @@ indicating where each UObject* in the ArgPtr list goes and place it in the MessageLog. */void FCompilerResultsLog::InternalLogMessage(const EMessageSeverity::Type& Severity, const TCHAR* Message, va_list ArgPtr){	UEdGraphNode* OwnerNode = nullptr;	// Create the tokenized message	TSharedRef<FTokenizedMessage> Line = FTokenizedMessage::Create( Severity );	Messages.Add(Line);	const TCHAR* DelimiterStr = TEXT("@@");	int32 DelimLength = FCString::Strlen(DelimiterStr);	const TCHAR* Start = Message;	if (Start && DelimLength)	{		while (const TCHAR* At = FCString::Strstr(Start, DelimiterStr))		{			// Found a delimiter, create a token from the preceding text			Line->AddToken( FTextToken::Create( FText::FromString( FString(At - Start, Start) ) ) );			Start += DelimLength + (At - Start);			// And read the object and add another token for the object			UObject* ObjectArgument = va_arg(ArgPtr, UObject*);			FText ObjText;			if (ObjectArgument)			{				// Remap object references to the source nodes				ObjectArgument = FindSourceObject(ObjectArgument);				if (ObjectArgument)				{					UEdGraphNode* Node = Cast<UEdGraphNode>(ObjectArgument);					const UEdGraphPin* Pin = (Node? nullptr : Cast<UEdGraphPin>(ObjectArgument));					//Get owner node reference, consider the first 					if (OwnerNode == nullptr)					{						OwnerNode = (Pin ? Pin->GetOwningNodeUnchecked() : Node);					}					if (ObjectArgument->GetOutermost() == GetTransientPackage())					{						ObjText = LOCTEXT("Transient", "(transient)");										}					else if (Node != NULL)					{						ObjText = Node->GetNodeTitle(ENodeTitleType::ListView);					}					else if (Pin != NULL)					{						ObjText = Pin->GetDisplayName();					}					else					{						ObjText = FText::FromString( ObjectArgument->GetName() );					}				}				else				{					ObjText = LOCTEXT("None", "(none)");				}			}			else			{				ObjText = LOCTEXT("None", "(none)");			}						Line->AddToken( FUObjectToken::Create( ObjectArgument, ObjText ) );		}		Line->AddToken( FTextToken::Create( FText::FromString( Start ) ) );	}	va_end(ArgPtr);	// Register node error/warning.	AnnotateNode(OwnerNode, Line);	if( !bSilentMode && (!bLogInfoOnly || (Severity == EMessageSeverity::Info)) )	{		if(Severity == EMessageSeverity::CriticalError || Severity == EMessageSeverity::Error)		{			UE_LOG(LogBlueprint, Error, TEXT("[compiler] %s"), *Line->ToText().ToString());		}		else if(Severity == EMessageSeverity::Warning || Severity == EMessageSeverity::PerformanceWarning)		{			UE_LOG(LogBlueprint, Warning, TEXT("[compiler] %s"), *Line->ToText().ToString());		}		else		{			UE_LOG(LogBlueprint, Log, TEXT("[compiler] %s"), *Line->ToText().ToString());		}	}}
开发者ID:Codermay,项目名称:Unreal4,代码行数:95,


示例16: OnScreenResolutionChange

void AKUIInterface::Render( UCanvas* oCanvas ){	if ( !bShowHUD )		return;	if ( GEngine != NULL && GEngine->GameViewport != NULL )	{			// Update the screen res.		FVector2D v2ScreenResolution = FVector2D::ZeroVector;		GEngine->GameViewport->GetViewportSize( v2ScreenResolution );		if ( !this->v2ScreenResolution.Equals( v2ScreenResolution, 0.5f ) )			OnScreenResolutionChange( this->v2ScreenResolution, v2ScreenResolution );		this->v2ScreenResolution = v2ScreenResolution;		if ( this->v2CursorLocation.X == KUI_INTERFACE_FIRST_CURSOR_UPDATE )			this->v2CursorLocation = FVector2D( floor( this->v2ScreenResolution.X / 2.f ), floor( this->v2ScreenResolution.Y / 2.f ) );	}		if ( !IsTemplate() )		OnRenderBP( Canvas );#if KUI_INTERFACE_MOUSEOVER_DEBUG	cmDebugMouseOver = NULL;	v2DebugMouseOverLocation = FVector2D::ZeroVector;	v2DebugMouseOverSize = FVector2D::ZeroVector;#endif // KUI_INTERFACE_MOUSEOVER_DEBUG	if ( IsVisible() )	{		for ( int32 i = 0; i < ctRootContainers.Num(); ++i )		{			if ( ctRootContainers[ i ] == NULL )				continue;			if ( i == EKUIInterfaceRoot::R_Cursor )				continue;#if KUI_INTERFACE_MOUSEOVER_DEBUG			bDebugMouseOver = arDebugMouseOver[ i ];#endif // KUI_INTERFACE_MOUSEOVER_DEBUG			ctRootContainers[ i ]->Render( this, oCanvas, FVector2D::ZeroVector );		}	}	if ( IsCursorVisible() )	{#if KUI_INTERFACE_MOUSEOVER_DEBUG		bDebugMouseOver = arDebugMouseOver[ EKUIInterfaceRoot::R_Cursor ];#endif // KUI_INTERFACE_MOUSEOVER_DEBUG		ctRootContainers[ EKUIInterfaceRoot::R_Cursor ]->Render( this, oCanvas, v2CursorLocation );	}#if KUI_INTERFACE_MOUSEOVER_DEBUG	bDebugMouseOver = false;	if ( cmDebugMouseOver.IsValid() )	{		cmDebugMouseOverTestBox->SetLocationStruct( v2DebugMouseOverLocation + FVector2D( 1.f, 1.f ) );		cmDebugMouseOverTestBox->SetSizeStruct( v2DebugMouseOverSize - FVector2D( 1.f, 1.f ) );		cmDebugMouseOverTestBox->Render( this, oCanvas, FVector2D::ZeroVector, NULL );	}	if ( cmDebugMouseOver.Get() != cmDebugMouseOverLastTick.Get() )	{		KUILogUO( 			"UI Mouse Over: %s: %s -> %s: %s (%f,%f) -> (%f,%f)", 			*( cmDebugMouseOverLastTick.Get() ? ( cmDebugMouseOverLastTick.Get()->GetOuter() ? cmDebugMouseOverLastTick.Get()->GetOuter()->GetName() : "NULL" ) : "NULL" ),			*( cmDebugMouseOverLastTick.Get() ? cmDebugMouseOverLastTick->GetName() : FString( "NULL" ) ), 			*( cmDebugMouseOver.Get() ? ( cmDebugMouseOver.Get()->GetOuter() ? cmDebugMouseOver.Get()->GetOuter()->GetName() : "NULL" ) : "NULL" ),			*( cmDebugMouseOver.Get() ? cmDebugMouseOver->GetName() : FString( "NULL" ) ), 			ExpandV2( v2DebugMouseOverLocation ),			ExpandV2( v2DebugMouseOverSize )		);	}	cmDebugMouseOverLastTick = cmDebugMouseOver.Get();#endif // KUI_INTERFACE_MOUSEOVER_DEBUG}
开发者ID:mrG7,项目名称:KeshUI,代码行数:80,


示例17: CheckExitConditions

    /** Called in the idle loop, checks for conditions under which the helper should exit */    void CheckExitConditions()    {        if (!InputFilename.Contains(TEXT("Only")))        {            UE_LOG(LogShaders, Log, TEXT("InputFilename did not contain 'Only', exiting after one job."));            FPlatformMisc::RequestExit(false);        }#if PLATFORM_MAC || PLATFORM_LINUX        if (!FPlatformMisc::IsDebuggerPresent() && ParentProcessId > 0)        {            // If the parent process is no longer running, exit            if (!FPlatformProcess::IsApplicationRunning(ParentProcessId))            {                FString FilePath = FString(WorkingDirectory) + InputFilename;                checkf(IFileManager::Get().FileSize(*FilePath) == INDEX_NONE, TEXT("Exiting due to the parent process no longer running and the input file is present!"));                UE_LOG(LogShaders, Log, TEXT("Parent process no longer running, exiting"));                FPlatformMisc::RequestExit(false);            }        }        const double CurrentTime = FPlatformTime::Seconds();        // If we have been idle for 20 seconds then exit        if (CurrentTime - LastCompileTime > 20.0)        {            UE_LOG(LogShaders, Log, TEXT("No jobs found for 20 seconds, exiting"));            FPlatformMisc::RequestExit(false);        }#else        // Don't do these if the debugger is present        //@todo - don't do these if Unreal is being debugged either        if (!IsDebuggerPresent())        {            if (ParentProcessId > 0)            {                FString FilePath = FString(WorkingDirectory) + InputFilename;                bool bParentStillRunning = true;                HANDLE ParentProcessHandle = OpenProcess(SYNCHRONIZE, false, ParentProcessId);                // If we couldn't open the process then it is no longer running, exit                if (ParentProcessHandle == nullptr)                {                    checkf(IFileManager::Get().FileSize(*FilePath) == INDEX_NONE, TEXT("Exiting due to OpenProcess(ParentProcessId) failing and the input file is present!"));                    UE_LOG(LogShaders, Log, TEXT("Couldn't OpenProcess, Parent process no longer running, exiting"));                    FPlatformMisc::RequestExit(false);                }                else                {                    // If we did open the process, that doesn't mean it is still running                    // The process object stays alive as long as there are handles to it                    // We need to check if the process has signaled, which indicates that it has exited                    uint32 WaitResult = WaitForSingleObject(ParentProcessHandle, 0);                    if (WaitResult != WAIT_TIMEOUT)                    {                        checkf(IFileManager::Get().FileSize(*FilePath) == INDEX_NONE, TEXT("Exiting due to WaitForSingleObject(ParentProcessHandle) signaling and the input file is present!"));                        UE_LOG(LogShaders, Log, TEXT("WaitForSingleObject signaled, Parent process no longer running, exiting"));                        FPlatformMisc::RequestExit(false);                    }                    CloseHandle(ParentProcessHandle);                }            }            const double CurrentTime = FPlatformTime::Seconds();            // If we have been idle for 20 seconds then exit            if (CurrentTime - LastCompileTime > 20.0)            {                UE_LOG(LogShaders, Log, TEXT("No jobs found for 20 seconds, exiting"));                FPlatformMisc::RequestExit(false);            }        }#endif    }
开发者ID:colwalder,项目名称:unrealengine,代码行数:73,


示例18: FCultureEnumeratorVistor

void FEditorStyleSettingsDetails::RefreshAvailableCultures(){	AvailableCultures.Empty();	IPlatformFile& PlatformFile = IPlatformFile::GetPlatformPhysical();	TArray<FString> AllCultureNames;	FInternationalization::GetCultureNames(AllCultureNames);	const TArray<FString> LocalizationPaths = FPaths::GetEditorLocalizationPaths();	for(const auto& LocalizationPath : LocalizationPaths)	{		/* Visitor class used to enumerate directories of culture */		class FCultureEnumeratorVistor : public IPlatformFile::FDirectoryVisitor		{		public:			FCultureEnumeratorVistor( const TArray<FString>& InAllCultureNames, TArray< TSharedPtr<FCulture> >& InAvailableCultures )				: AllCultureNames(InAllCultureNames)				, AvailableCultures(InAvailableCultures)			{			}			virtual bool Visit(const TCHAR* FilenameOrDirectory, bool bIsDirectory) OVERRIDE			{				if(bIsDirectory)				{					for( const auto& CultureName : AllCultureNames )					{						TSharedPtr<FCulture> Culture = FInternationalization::GetCulture(CultureName);						if(Culture.IsValid() && !AvailableCultures.Contains(Culture))						{							// UE localization resource folders use "en-US" style while ICU uses "en_US" style so we replace underscores with dashes here.							const FString UnrealCultureName = FString(TEXT("/")) + CultureName.Replace(TEXT("_"), TEXT("-"));							if(FString(FilenameOrDirectory).EndsWith(UnrealCultureName))							{								AvailableCultures.Add(Culture);							}							else							{								// If the full name doesn't match, see if the base language is present								const FString CultureLanguageName = FString(TEXT("/")) + Culture->GetTwoLetterISOLanguageName();								if(FString(FilenameOrDirectory).EndsWith(CultureLanguageName))								{									AvailableCultures.Add(Culture);								}							}						}					}				}				return true;			}			/** Array of all culture names we can use */			const TArray<FString>& AllCultureNames;			/** Array of cultures that are available */			TArray< TSharedPtr<FCulture> >& AvailableCultures;		};		FCultureEnumeratorVistor CultureEnumeratorVistor(AllCultureNames, AvailableCultures);		PlatformFile.IterateDirectory(*LocalizationPath, CultureEnumeratorVistor);		}
开发者ID:Tigrouzen,项目名称:UnrealEngine-4,代码行数:61,


示例19: FString

void SCreateBlueprintFromActorDialog::Construct( const FArguments& InArgs, TSharedPtr< SWindow > InParentWindow, bool bInHarvest ){	USelection::SelectionChangedEvent.AddRaw(this, &SCreateBlueprintFromActorDialog::OnLevelSelectionChanged);	bIsReportingError = false;	PathForActorBlueprint = FString("/Game");	FPathPickerConfig PathPickerConfig;	PathPickerConfig.DefaultPath = PathForActorBlueprint;	PathPickerConfig.OnPathSelected = FOnPathSelected::CreateRaw(this, &SCreateBlueprintFromActorDialog::OnSelectBlueprintPath);	// Set up PathPickerConfig.	FContentBrowserModule& ContentBrowserModule = FModuleManager::LoadModuleChecked<FContentBrowserModule>("ContentBrowser");	ParentWindow = InParentWindow;	FString PackageName;	ActorInstanceLabel.Empty();	USelection* SelectedActors = GEditor->GetSelectedActors();	for(FSelectionIterator Iter(*SelectedActors); Iter; ++Iter)	{		AActor* Actor = Cast<AActor>(*Iter);		if(Actor)		{			ActorInstanceLabel += Actor->GetActorLabel();			ActorInstanceLabel += TEXT( "_" );		}	}	if( ActorInstanceLabel.IsEmpty() )	{		ActorInstanceLabel = LOCTEXT("BlueprintName_Default", "NewBlueprint").ToString();	}	else	{		ActorInstanceLabel += LOCTEXT("BlueprintName_Suffix", "Blueprint").ToString();	}	ActorInstanceLabel = PackageTools::SanitizePackageName(ActorInstanceLabel);	FString AssetName = ActorInstanceLabel;	FString BasePath = PathForActorBlueprint + TEXT("/") + AssetName;	FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools");	AssetToolsModule.Get().CreateUniqueAssetName(BasePath, TEXT(""), PackageName, AssetName);	ChildSlot		[			SNew( SVerticalBox )			+SVerticalBox::Slot()			.FillHeight(1.0f)			[				ContentBrowserModule.Get().CreatePathPicker(PathPickerConfig)			]			+SVerticalBox::Slot()			.AutoHeight()			[				SNew( SHorizontalBox )				+SHorizontalBox::Slot()				.Padding(0.0f, 0.0f, 4.0f, 0.0f)				.AutoWidth()				[					SNew(STextBlock)						.Text(LOCTEXT("BlueprintNameLabel", "Blueprint Name:"))				]				+SHorizontalBox::Slot()				.FillWidth(1.0f)				[					SAssignNew(FileNameWidget, SEditableTextBox)						.Text(FText::FromString(AssetName))						.OnTextChanged(this, &SCreateBlueprintFromActorDialog::OnFilenameChanged)				]			]			+SVerticalBox::Slot()			.HAlign(HAlign_Right)			.AutoHeight()			[				SNew( SHorizontalBox )				+SHorizontalBox::Slot()				.Padding( 0, 2, 6, 0 )				.AutoWidth()				[					SNew(SButton)					.VAlign( VAlign_Center )					.HAlign( HAlign_Center )					.OnClicked( this, &SCreateBlueprintFromActorDialog::OnCreateBlueprintFromActorClicked, bInHarvest)					.IsEnabled( this, &SCreateBlueprintFromActorDialog::IsCreateBlueprintEnabled )					[						SNew( STextBlock )							.Text( LOCTEXT("CreateBlueprintFromActorButton", "Create Blueprint") )					]				]				+SHorizontalBox::Slot()				.Padding( 0, 2, 0, 0 )				.AutoWidth()				[					SNew(SButton)					.VAlign( VAlign_Center )					.HAlign( HAlign_Center )					.ContentPadding( FMargin( 8, 2, 8, 2 ) )					.OnClicked( this, &SCreateBlueprintFromActorDialog::OnCancelCreateBlueprintFromActor)					[//.........这里部分代码省略.........
开发者ID:Tigrouzen,项目名称:UnrealEngine-4,代码行数:101,


示例20: FString

void FBehaviorTreeDebugger::SetNodeRuntimeDescription(const TArray<FString>& RuntimeDescriptions, class UBehaviorTreeGraphNode* Node, class UBTNode* NodeInstance){	Node->DebuggerRuntimeDescription = RuntimeDescriptions.IsValidIndex(NodeInstance->GetExecutionIndex()) ?		RuntimeDescriptions[NodeInstance->GetExecutionIndex()] : FString();}
开发者ID:PickUpSU,项目名称:UnrealEngine4,代码行数:5,


示例21: FString

const FString UInterpTrackAkAudioEvent::GetSlateHelperClassName() const{	return FString( TEXT("AudiokineticTools.InterpTrackAkAudioEventHelper") );}
开发者ID:audiokinetic,项目名称:WwiseUE4Plugin,代码行数:4,


示例22: Parser

TArray<FString> UCurveTable::CreateTableFromCSVString(const FString& InString, ERichCurveInterpMode InterpMode){	// Array used to store problems about table creation	TArray<FString> OutProblems;	const FCsvParser Parser(InString);	const FCsvParser::FRows& Rows = Parser.GetRows();	// Must have at least 2 rows (x values + y values for at least one row)	if(Rows.Num() <= 1)	{		OutProblems.Add(FString(TEXT("Too few rows.")));		return OutProblems;	}	// Empty existing data	EmptyTable();	TArray<float> XValues;	GetCurveValues(Rows[0], &XValues);	// Iterate over rows	for(int32 RowIdx = 1; RowIdx < Rows.Num(); RowIdx++)	{		const TArray<const TCHAR*>& Row = Rows[RowIdx];		// Need at least 1 cells (row name)		if(Row.Num() < 1)		{			OutProblems.Add(FString::Printf(TEXT("Row '%d' has too few cells."), RowIdx));			continue;		}		// Get row name		FName RowName = MakeValidName(Row[0]);		// Check its not 'none'		if(RowName == NAME_None)		{			OutProblems.Add(FString::Printf(TEXT("Row '%d' missing a name."), RowIdx));			continue;		}		// Check its not a duplicate		if(RowMap.Find(RowName) != NULL)		{			OutProblems.Add(FString::Printf(TEXT("Duplicate row name '%s'."), *RowName.ToString()));			continue;		}		TArray<float> YValues;		GetCurveValues(Row, &YValues);		if(XValues.Num() != YValues.Num())		{			OutProblems.Add(FString::Printf(TEXT("Row '%s' does not have the right number of columns."), *RowName.ToString()));			continue;		}		FRichCurve* NewCurve = new FRichCurve();		// Now iterate over cells (skipping first cell, that was row name)		for(int32 ColumnIdx = 0; ColumnIdx < XValues.Num(); ColumnIdx++)		{			FKeyHandle KeyHandle = NewCurve->AddKey(XValues[ColumnIdx], YValues[ColumnIdx]);			NewCurve->SetKeyInterpMode(KeyHandle, InterpMode);		}		RowMap.Add(RowName, NewCurve);	}	Modify(true);	return OutProblems;}
开发者ID:RandomDeveloperM,项目名称:UE4_Hairworks,代码行数:73,


示例23: FString

FString UDemoNetDriver::LowLevelGetNetworkNumber(){	return FString( TEXT( "" ) );}
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:4,


示例24: Transaction

bool FStructureEditorUtils::AddVariable(UBlueprint* Blueprint, FName StructName, const FEdGraphPinType& VarType){	if (NULL != Blueprint)	{		const FScopedTransaction Transaction( LOCTEXT("AddVariable", "Add Variable") );		Blueprint->Modify();		FBPStructureDescription* StructureDesc = Blueprint->UserDefinedStructures.FindByPredicate(FFindByNameHelper(StructName));		if (StructureDesc)		{			FString ErrorMessage;			if (!CanHaveAMemberVariableOfType(StructureDesc->CompiledStruct, VarType, &ErrorMessage))			{				UE_LOG(LogBlueprint, Warning, TEXT("%s"), *ErrorMessage);				return false;			}			const FName VarName = FMemberVariableNameHelper::Generate(StructureDesc->CompiledStruct, FString());			check(NULL == StructureDesc->Fields.FindByPredicate(FFindByNameHelper(VarName)));			const FString DisplayName = VarName.ToString();			check(IsUniqueVariableDisplayName(Blueprint, StructName, DisplayName));			FBPVariableDescription NewVar;			NewVar.VarName = VarName;			NewVar.FriendlyName = DisplayName;			NewVar.VarType = VarType;			NewVar.VarGuid = FGuid::NewGuid();			StructureDesc->Fields.Add(NewVar);			OnStructureChanged(*StructureDesc, Blueprint);			return true;		}	}	return false;}
开发者ID:Tigrouzen,项目名称:UnrealEngine-4,代码行数:35,


示例25: UE_LOG

int32 UInternationalizationExportCommandlet::Main( const FString& Params ){	TArray<FString> Tokens;	TArray<FString> Switches;	TMap<FString, FString> ParamVals;	UCommandlet::ParseCommandLine(*Params, Tokens, Switches, ParamVals);		const FString* ParamVal = ParamVals.Find(FString(TEXT("Config")));	if ( ParamVal )	{		ConfigPath = *ParamVal;	}	else	{		UE_LOG(LogInternationalizationExportCommandlet, Error, TEXT("No config specified."));		return -1;	}	//Set config section	ParamVal = ParamVals.Find(FString(TEXT("Section")));		if ( ParamVal )	{		SectionName = *ParamVal;	}	else	{		UE_LOG(LogInternationalizationExportCommandlet, Error, TEXT("No config section specified."));		return -1;	}	FString SourcePath; // Source path to the root folder that manifest/archive files live in.	if( !GetPathFromConfig( *SectionName, TEXT("SourcePath"), SourcePath, ConfigPath ) )	{		UE_LOG( LogInternationalizationExportCommandlet, Error, TEXT("No source path specified.") );		return -1;	}	FString DestinationPath; // Destination path that we will write files to.	if( !GetPathFromConfig( *SectionName, TEXT("DestinationPath"), DestinationPath, ConfigPath ) )	{		UE_LOG( LogInternationalizationExportCommandlet, Error, TEXT("No destination path specified.") );		return -1;	}	FString Filename; // Name of the file to read or write from	if (!GetStringFromConfig(*SectionName, TEXT("PortableObjectName"), Filename, ConfigPath))	{		UE_LOG(LogInternationalizationExportCommandlet, Error, TEXT("No portable object name specified."));		return -1;	}	// Get cultures to generate.	if( GetStringArrayFromConfig(*SectionName, TEXT("CulturesToGenerate"), CulturesToGenerate, ConfigPath) == 0 )	{		UE_LOG(LogInternationalizationExportCommandlet, Error, TEXT("No cultures specified for generation."));		return -1;	}	bool bDoExport = false;	bool bDoImport = false;	GetBoolFromConfig( *SectionName, TEXT("bImportLoc"), bDoImport, ConfigPath );	GetBoolFromConfig( *SectionName, TEXT("bExportLoc"), bDoExport, ConfigPath );		if( !bDoImport && !bDoExport )	{		UE_LOG(LogInternationalizationExportCommandlet, Error, TEXT("Import/Export operation not detected.  Use bExportLoc or bImportLoc in config section."));		return -1;	}	if( bDoImport )	{		if (!DoImport(SourcePath, DestinationPath, Filename))		{			UE_LOG(LogInternationalizationExportCommandlet, Error, TEXT("Failed to import localization files."));			return -1;		}	}	if( bDoExport )	{		if (!DoExport(SourcePath, DestinationPath, Filename))		{			UE_LOG(LogInternationalizationExportCommandlet, Error, TEXT("Failed to export localization files."));			return -1;		}	}	return 0;}
开发者ID:PickUpSU,项目名称:UnrealEngine4,代码行数:97,


示例26: switch

FString URealSenseBlueprintLibrary::EDepthResolutionToString(EDepthResolution value) {	switch (value) {	case EDepthResolution::RES1:		return FString("640 x 480 x 60 (F200)");	case EDepthResolution::RES2:		return FString("640 x 480 x 30 (F200)");	case EDepthResolution::RES3:		return FString("628 x 468 x 90 (R200)");	case EDepthResolution::RES4:		return FString("628 x 468 x 60 (R200)");	case EDepthResolution::RES5:		return FString("628 x 468 x 30 (R200)");	case EDepthResolution::RES6:		return FString("480 x 360 x 90 (R200)");	case EDepthResolution::RES7:		return FString("480 x 360 x 60 (R200)");	case EDepthResolution::RES8:		return FString("480 x 360 x 30 (R200)");	case EDepthResolution::RES9:		return FString("320 x 240 x 90 (R200)");	case EDepthResolution::RES10:		return FString("320 x 240 x 60 (R200)");	case EDepthResolution::RES11:		return FString("320 x 240 x 30 (R200)");	default:		return FString(" ");	}}
开发者ID:CoderGirl42,项目名称:UE4RealSensePlugin,代码行数:29,


示例27: LoadSurveyIndexFile

void FEpicSurvey::OnReadFileComplete( bool bSuccess, const FString& DLName ){	if ( bSuccess )	{		if ( DLName == SurveyIndexCloudFile.DLName )		{			LoadSurveyIndexFile();		}		else		{			int32 FileHeaderIndex = INDEX_NONE;			TArray< FCloudFileHeader > FileHeaders;			TitleCloud->GetFileList( FileHeaders );			for (int Index = 0; Index < FileHeaders.Num(); Index++)			{				if ( FileHeaders[ Index ].DLName == DLName )				{					FileHeaderIndex = Index;					break;				}			}			if ( FileHeaderIndex > INDEX_NONE )			{				const FCloudFileHeader FileHeader = FileHeaders[ FileHeaderIndex ];				const FString FileExtension = FPaths::GetExtension( FileHeader.FileName );								if ( FileExtension == TEXT("json") )				{					TArray< uint8 > FileContents;					TitleCloud->GetFileContents( DLName, FileContents );					FString SurveyJson;					FFileHelper::BufferToString( SurveyJson, FileContents.GetData(), FileContents.Num() );					TSharedPtr< FJsonObject > SurveyObject = NULL;					TSharedRef< TJsonReader<> > Reader = TJsonReaderFactory<TCHAR>::Create( SurveyJson );					if ( FJsonSerializer::Deserialize( Reader, SurveyObject ) )					{						TSharedPtr< FSurvey > NewSurvey = FSurvey::Create( SharedThis( this ), SurveyObject.ToSharedRef() );						if ( NewSurvey.IsValid() )						{							switch( NewSurvey->GetSurveyType() )							{							case ESurveyType::Normal:								{									Surveys.Add( NewSurvey.ToSharedRef() );									const bool IsActiveSurveyInProgress = ActiveSurvey.IsValid() ? GEditor->AccessGameAgnosticSettings().InProgressSurveys.Contains( ActiveSurvey->GetIdentifier() ) : false;									if ( !IsActiveSurveyInProgress )									{										const bool HasBeenCompleted = GEditor->AccessGameAgnosticSettings().CompletedSurveys.Contains( NewSurvey->GetIdentifier() );										if ( !HasBeenCompleted )										{											const bool IsInProgress = GEditor->AccessGameAgnosticSettings().InProgressSurveys.Contains( NewSurvey->GetIdentifier() );											if ( NewSurvey->CanAutoPrompt() )											{												SetActiveSurvey( NewSurvey );											}											else if ( IsInProgress )											{												SetActiveSurvey( NewSurvey );											}										}									}								}								break;							case ESurveyType::Branch:								BranchSurveys.Add( FileHeader.FileName, NewSurvey );								break;							}						}					}					else					{						UE_LOG(LogEpicSurvey, Verbose, TEXT("Parsing JSON survey failed. Filename: %s Message: %s"), *FileHeader.FileName, *Reader->GetErrorMessage());					}				}				else if ( FileExtension == TEXT("png") )				{					TArray< FOnBrushLoaded > MapResults;					FilenameToLoadCallbacks.MultiFind( FileHeaders[ FileHeaderIndex ].FileName, MapResults );					if ( MapResults.Num() > 0 )					{						TArray< uint8 > FileContents;						TitleCloud->GetFileContents( DLName, FileContents );						for (int Index = 0; Index < MapResults.Num(); Index++)						{							MapResults[ Index ].Execute( LoadRawDataAsBrush( *(FString(TEXT("EpicSurvey.")) + FileHeaders[ FileHeaderIndex ].FileName), FileContents ) );						}						FilenameToLoadCallbacks.Remove( FileHeaders[ FileHeaderIndex ].FileName );					}				}			}//.........这里部分代码省略.........
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:101,


示例28: SCOPE_CYCLE_COUNTER

//.........这里部分代码省略.........		if (!IsRunningDedicatedServer() && !IsRunningCommandlet())		{			QUICK_SCOPE_CYCLE_COUNTER(STAT_UGameEngine_Tick_CheckCaptures);			// Only update reflection captures in game once all 'always loaded' levels have been loaded			// This won't work with actual level streaming though			if (Context.World()->AreAlwaysLoadedLevelsLoaded())			{				// Update sky light first because it's considered direct lighting, sky diffuse will be visible in reflection capture indirect specular				USkyLightComponent::UpdateSkyCaptureContents(Context.World());				UReflectionCaptureComponent::UpdateReflectionCaptureContents(Context.World());			}		}		if (!bIdleMode)		{			// Tick the world.			GameCycles=0;			CLOCK_CYCLES(GameCycles);			Context.World()->Tick( LEVELTICK_All, DeltaSeconds );			UNCLOCK_CYCLES(GameCycles);		}		// Issue cause event after first tick to provide a chance for the game to spawn the player and such.		if( Context.World()->bWorldWasLoadedThisTick )		{			Context.World()->bWorldWasLoadedThisTick = false;						const TCHAR* InitialExec = Context.LastURL.GetOption(TEXT("causeevent="),NULL);			ULocalPlayer* GamePlayer = Context.OwningGameInstance ? Context.OwningGameInstance->GetFirstGamePlayer() : NULL;			if( InitialExec && GamePlayer )			{				UE_LOG(LogEngine, Log, TEXT("Issuing initial cause event passed from URL: %s"), InitialExec);				GamePlayer->Exec( GamePlayer->GetWorld(), *(FString("CAUSEEVENT ") + InitialExec), *GLog );			}			Context.World()->bTriggerPostLoadMap = true;		}		// Tick the viewports.		if ( GameViewport != NULL && !bIdleMode )		{			SCOPE_CYCLE_COUNTER(STAT_GameViewportTick);			GameViewport->Tick(DeltaSeconds);		}			UpdateTransitionType(Context.World());			// fixme: this will only happen once due to the static bool, but still need to figure out how to handle this for multiple worlds		if (FPlatformProperties::SupportsWindowedMode())		{			// Hide the splashscreen and show the game window			static bool bFirstTime = true;			if ( bFirstTime )			{				bFirstTime = false;				FPlatformSplash::Hide();				if ( GameViewportWindow.IsValid() )				{					GameViewportWindow.Pin()->ShowWindow();					FSlateApplication::Get().RegisterGameViewport( GameViewportWidget.ToSharedRef() );				}			}		}		if (!bIdleMode && !IsRunningDedicatedServer() && !IsRunningCommandlet())
开发者ID:didixp,项目名称:Ark-Dev-Kit,代码行数:67,


示例29: FString

bool FChunkManifestGenerator::GenerateStreamingInstallManifest(const FString& Platform){    FString GameNameLower = FString(FApp::GetGameName()).ToLower();    // empty out the current paklist directory    FString TmpPackagingDir = GetTempPackagingDirectoryForPlatform(Platform);    if (!IFileManager::Get().MakeDirectory(*TmpPackagingDir, true))    {        UE_LOG(LogChunkManifestGenerator, Error, TEXT("Failed to create directory: %s"), *TmpPackagingDir);        return false;    }    // open a file for writing the list of pak file lists that we've generated    FString PakChunkListFilename = TmpPackagingDir / TEXT("pakchunklist.txt");    TAutoPtr<FArchive> PakChunkListFile(IFileManager::Get().CreateFileWriter(*PakChunkListFilename));    if (!PakChunkListFile.IsValid())    {        UE_LOG(LogChunkManifestGenerator, Error, TEXT("Failed to open output pakchunklist file %s"), *PakChunkListFilename);        return false;    }    FString PakChunkLayerInfoFilename = FString::Printf(TEXT("%s/pakchunklayers.txt"), *TmpPackagingDir);    TAutoPtr<FArchive> ChunkLayerFile(IFileManager::Get().CreateFileWriter(*PakChunkLayerInfoFilename));    // generate per-chunk pak list files    for (int32 Index = 0; Index < FinalChunkManifests.Num(); ++Index)    {        // Is this chunk empty?        if (!FinalChunkManifests[Index] || FinalChunkManifests[Index]->Num() == 0)        {            continue;        }        FString PakListFilename = FString::Printf(TEXT("%s/pakchunk%d.txt"), *TmpPackagingDir, Index);        TAutoPtr<FArchive> PakListFile(IFileManager::Get().CreateFileWriter(*PakListFilename));        if (!PakListFile.IsValid())        {            UE_LOG(LogChunkManifestGenerator, Error, TEXT("Failed to open output paklist file %s"), *PakListFilename);            return false;        }        for (auto& Filename : *FinalChunkManifests[Index])        {            FString PakListLine = FPaths::ConvertRelativePathToFull(Filename.Value.Replace(TEXT("[Platform]"), *Platform));            PakListLine.ReplaceInline(TEXT("/"), TEXT("//"));            PakListLine += TEXT("/r/n");            PakListFile->Serialize(TCHAR_TO_ANSI(*PakListLine), PakListLine.Len());        }        PakListFile->Close();        // add this pakfilelist to our master list of pakfilelists        FString PakChunkListLine = FString::Printf(TEXT("pakchunk%d.txt/r/n"), Index);        PakChunkListFile->Serialize(TCHAR_TO_ANSI(*PakChunkListLine), PakChunkListLine.Len());        int32 TargetLayer = 0;        FGameDelegates::Get().GetAssignLayerChunkDelegate().ExecuteIfBound(FinalChunkManifests[Index], Platform, Index, TargetLayer);        FString LayerString = FString::Printf(TEXT("%d/r/n"), TargetLayer);        ChunkLayerFile->Serialize(TCHAR_TO_ANSI(*LayerString), LayerString.Len());    }    ChunkLayerFile->Close();    PakChunkListFile->Close();    return true;}
开发者ID:unrealengine47,项目名称:UnrealEngine4,代码行数:69,



注:本文中的FString函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ FStringNull函数代码示例
C++ FStrEq函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。