bIsVisibleForAssets

bIsVisibleForAssets

#Overview

name: bIsVisibleForAssets

The value of this variable can be defined or overridden in .ini config files. 5 .ini config files referencing this setting variable.

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of bIsVisibleForAssets is to control the visibility of a DeviceProfile for asset types that can reference Device Profiles. This setting variable is used in the device profiling system of Unreal Engine 5.

The Unreal Engine subsystem that relies on this setting variable is the Device Profile system, which is part of the Engine module. This can be seen from the file paths in the callsites, which are located in the Engine/Source/Runtime/Engine directory.

The value of this variable is set in the constructor of the UDeviceProfile class, where it is initialized to false. It can also be modified through the Unreal Editor, as it is marked with the UPROPERTY macro and has the EditAnywhere and config specifiers.

This variable interacts with other members of the UDeviceProfile class, such as the Parent pointer and the bVisible flag. While bIsVisibleForAssets determines visibility for asset references, bVisible controls visibility in the editor’s property matrix.

Developers must be aware that this variable affects which Device Profiles are available for selection when working with assets that can reference Device Profiles. Setting this to true will make the profile visible and selectable for these assets.

Best practices when using this variable include:

  1. Only set it to true for Device Profiles that should be actively used and referenced by assets.
  2. Use it in conjunction with the bVisible flag to control overall visibility and accessibility of the Device Profile.
  3. Consider the implications on asset management and project organization when changing this value.
  4. Document any changes to this variable, as it can affect which Device Profiles are available for asset references across the project.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/BaseDeviceProfiles.ini:179, section: [Windows DeviceProfile]

Location: <Workspace>/Engine/Config/BaseDeviceProfiles.ini:289, section: [IOS DeviceProfile]

Location: <Workspace>/Engine/Config/BaseDeviceProfiles.ini:792, section: [Android DeviceProfile]

Location: <Workspace>/Engine/Config/BaseDeviceProfiles.ini:1158, section: [Mac DeviceProfile]

Location: <Workspace>/Engine/Config/BaseDeviceProfiles.ini:1177, section: [Linux DeviceProfile]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Classes/DeviceProfiles/DeviceProfile.h:32

Scope (from outer to inner):

file
class        class UDeviceProfile : public UTextureLODSettings

Source code excerpt:

	/** Some asset types can reference Device Profiles, is this profile visible to those assets. */
	UPROPERTY(EditAnywhere, config, Category = DeviceSettings)
	uint32 bIsVisibleForAssets : 1;

	/** The parent object of this profile, it is the object matching this DeviceType with the BaseProfileName */
	UPROPERTY()
	TObjectPtr<UDeviceProfile> Parent;

	/** Flag used in the editor to determine whether the profile is visible in the property matrix */

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Classes/DeviceProfiles/DeviceProfile.h:93

Scope (from outer to inner):

file
class        class UDeviceProfile : public UTextureLODSettings
function     bool IsVisibleForAssets

Source code excerpt:

	ENGINE_API const FSelectedFragmentProperties* GetFragmentByTag(FName& FragmentTag) const;

	bool IsVisibleForAssets()const { return bIsVisibleForAssets; }
public:
	/** 
	 * Access to the device profiles Texture LOD Settings
	 */
	ENGINE_API UTextureLODSettings* GetTextureLODSettings() const;

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/DeviceProfiles/DeviceProfile.cpp:25

Scope (from outer to inner):

file
function     UDeviceProfile::UDeviceProfile

Source code excerpt:

	BaseProfileName = TEXT("");
	DeviceType = TEXT("");
	bIsVisibleForAssets = false;

	bVisible = true;

	FString DeviceProfileFileName = FPaths::EngineConfigDir() + TEXT("Deviceprofiles.ini");
//	LoadConfig(GetClass(), *DeviceProfileFileName, UE::LCPF_ReadParentSections);
}