unreal.DebugDrawComponent
¶
- class unreal.DebugDrawComponent(outer: Optional[Object] = None, name: Union[Name, str] = 'None')¶
Bases:
PrimitiveComponent
Helper class to derive from to use debug draw delegate functionalities (i.e. DrawDebugLabels) The class will take care of registering a delegate to the UDebugDrawService and draw all FText3d provided by the scene proxy. This functionality only requires the derived classes to override CreateDebugSceneProxy.
- It is also possible to add text from other sources of data from the scene proxy but that requires a few extra steps:
- create a class that inherits from FDebugDrawDelegateHelper
override DrawDebugLabels
add a method to be able to populate the source data from the scene proxy
- ex: class FMyDelegateHelperpublic FDebugDrawDelegateHelper
- {
- public:
void SetupFromProxy(const FMySceneProxy* InSceneProxy) { <collect data> };
- protected:
virtual void DrawDebugLabels(UCanvas* Canvas, APlayerController*) override { <draw data> };
- private:
TArray<FVector> SomeData;
};
- Within the component inheriting from UDebugDrawComponent
add a property of that new helper type in the component inheriting from UDebugDrawComponent
override GetDebugDrawDelegateHelper to return that new member as the new delegate helper to use
and then use it in CreateDebugSceneProxy before returning the created proxy.
- ex: class MyDebugDrawComponentpublic UDebugDrawComponent
- {
- protected:
virtual FDebugRenderSceneProxy* CreateDebugSceneProxy() override {
FMySceneProxy* Proxy = new FMySceneProxy(this); MyDelegateHelper.SetupFromProxy(Proxy); return Proxy;
}
virtual FDebugDrawDelegateHelper& GetDebugDrawDelegateHelper() override { return MyDelegateHelper; }
- private:
FMyDelegateHelper MyDelegateHelper;
}
C++ Source:
Module: Engine
File: DebugDrawComponent.h
Editor Properties: (see get_editor_property/set_editor_property)
absolute_location
(bool): [Read-Write] Absolute Location: If RelativeLocation should be considered relative to the world, rather than the parentabsolute_rotation
(bool): [Read-Write] Absolute Rotation: If RelativeRotation should be considered relative to the world, rather than the parentabsolute_scale
(bool): [Read-Write] Absolute Scale: If RelativeScale3D should be considered relative to the world, rather than the parentaffect_distance_field_lighting
(bool): [Read-Write] Affect Distance Field Lighting: Controls whether the primitive should affect dynamic distance field lighting methods. This flag is only used if CastShadow is true. *affect_dynamic_indirect_lighting
(bool): [Read-Write] Affect Dynamic Indirect Lighting: Controls whether the primitive should inject light into the Light Propagation Volume. This flag is only used if CastShadow is true.affect_indirect_lighting_while_hidden
(bool): [Read-Write] Affect Indirect Lighting While Hidden: Controls whether the primitive should affect indirect lighting when hidden. This flag is only used if bAffectDynamicIndirectLighting is true.allow_cull_distance_volume
(bool): [Read-Write] Allow Cull Distance Volume: Whether to accept cull distance volumes to modify cached cull distance.always_create_physics_state
(bool): [Read-Write] Always Create Physics State: Indicates if we’d like to create physics state all the time (for collision and simulation). If you set this to false, it still will create physics state if collision or simulation activated. This can help performance if you’d like to avoid overhead of creating physics state when triggersapply_impulse_on_damage
(bool): [Read-Write] Apply Impulse on Damage: True for damage to this component to apply physics impulse, false to opt out of these impulses.asset_user_data
(Array[AssetUserData]): [Read-Write] Asset User Data: Array of user data stored with the componentauto_activate
(bool): [Read-Write] Auto Activate: Whether the component is activated at creation or must be explicitly activated.body_instance
(BodyInstance): [Read-Write] Body Instance: Physics scene information for this component, holds a single rigid body with multiple shapes.bounds_scale
(float): [Read-Write] Bounds Scale: Scales the bounds of the object. This is useful when using World Position Offset to animate the vertices of the object outside of its bounds. Warning: Increasing the bounds of an object will reduce performance and shadow quality! Currently only used by StaticMeshComponent and SkeletalMeshComponent.cached_max_draw_distance
(float): [Read-Only] Cached Max Draw Distance: The distance to cull this primitive at. A CachedMaxDrawDistance of 0 indicates that the primitive should not be culled by distance.can_character_step_up_on
(CanBeCharacterBase): [Read-Write] Can Character Step Up On: Determine whether a Character can step up onto this component. This controls whether they can try to step up on it when they bump in to it, not whether they can walk on it after landing on it. see: FWalkableSlopeOverridecan_ever_affect_navigation
(bool): [Read-Write] Can Ever Affect Navigation: Whether this component can potentially influence navigationcast_cinematic_shadow
(bool): [Read-Write] Cast Cinematic Shadow: Whether this component should cast shadows from lights that have bCastShadowsFromCinematicObjectsOnly enabled. This is useful for characters in a cinematic with special cinematic lights, where the cost of shadowmap rendering of the environment is undesired.cast_contact_shadow
(bool): [Read-Write] Cast Contact Shadow: Whether the object should cast contact shadows. This flag is only used if CastShadow is true.cast_dynamic_shadow
(bool): [Read-Write] Cast Dynamic Shadow: Controls whether the primitive should cast shadows in the case of non precomputed shadowing. This flag is only used if CastShadow is true. *cast_far_shadow
(bool): [Read-Write] Cast Far Shadow: When enabled, the component will be rendering into the far shadow cascades (only for directional lights).cast_hidden_shadow
(bool): [Read-Write] Cast Hidden Shadow: If true, the primitive will cast shadows even if bHidden is true. Controls whether the primitive should cast shadows when hidden. This flag is only used if CastShadow is true.cast_inset_shadow
(bool): [Read-Write] Cast Inset Shadow: Whether this component should create a per-object shadow that gives higher effective shadow resolution. Useful for cinematic character shadowing. Assumed to be enabled if bSelfShadowOnly is enabled.cast_shadow
(bool): [Read-Write] Cast Shadow: Controls whether the primitive component should cast a shadow or not.cast_shadow_as_two_sided
(bool): [Read-Write] Cast Shadow as Two Sided: Whether this primitive should cast dynamic shadows as if it were a two sided material.cast_static_shadow
(bool): [Read-Write] Cast Static Shadow: Whether the object should cast a static shadow from shadow casting lights. This flag is only used if CastShadow is true.cast_volumetric_translucent_shadow
(bool): [Read-Write] Cast Volumetric Translucent Shadow: Whether the object should cast a volumetric translucent shadow. Volumetric translucent shadows are useful for primitives with smoothly changing opacity like particles representing a volume, But have artifacts when used on highly opaque surfaces.component_tags
(Array[Name]): [Read-Write] Component Tags: Array of tags that can be used for grouping and categorizing. Can also be accessed from scripting.consider_for_actor_placement_when_hidden
(bool): [Read-Write] Consider for Actor Placement when Hidden: If true, this component will be considered for placement when dragging and placing items in the editor even if it is not visible, such as in the case of hidden collision meshescustom_depth_stencil_value
(int32): [Read-Write] Custom Depth Stencil Value: Optionally write this 0-255 value to the stencil buffer in CustomDepth pass (Requires project setting or r.CustomDepth == 3)custom_depth_stencil_write_mask
(RendererStencilMask): [Read-Write] Custom Depth Stencil Write Mask: Mask used for stencil buffer writes.custom_primitive_data
(CustomPrimitiveData): [Read-Write] Custom Primitive Data: Optional user defined default values for the custom primitive data of this primitivedetail_mode
(DetailMode): [Read-Write] Detail Mode: If detail mode is >= system detail mode, primitive won’t be rendered.editable_when_inherited
(bool): [Read-Write] Editable when Inherited: True if this component can be modified when it was inherited from a parent actor classemissive_light_source
(bool): [Read-Write] Emissive Light Source: Whether the primitive will be used as an emissive light source.enable_auto_lod_generation
(bool): [Read-Write] Enable Auto LODGeneration: Whether to include this component in HLODs or not.exclude_for_specific_hlod_levels
(Array[int32]): [Read-Write] Exclude for Specific HLODLevels: Which specific HLOD levels this component should be excluded fromexclude_from_light_attachment_group
(bool): [Read-Write] Exclude from Light Attachment Group: If set, then it overrides any bLightAttachmentsAsGroup set in a parent.fill_collision_underneath_for_navmesh
(bool): [Read-Write] Fill Collision Underneath for Navmesh: If set, navmesh will not be generated under the surface of the geometryforce_mip_streaming
(bool): [Read-Write] Force Mip Streaming: If true, forces mips for textures used by this component to be resident when this component’s level is loaded.generate_overlap_events
(bool): [Read-Write] Generate Overlap Eventshidden_in_game
(bool): [Read-Write] Hidden in Game: Whether to hide the primitive in game, if the primitive is Visible.hidden_in_scene_capture
(bool): [Read-Write] Hidden in Scene Capture: When true, will not be captured by Scene Capturehlod_batching_policy
(HLODBatchingPolicy): [Read-Write] HLODBatching Policy: Determines how the geometry of a component will be incorporated in proxy (simplified) HLODs.ignore_radial_force
(bool): [Read-Write] Ignore Radial Force: Will ignore radial forces applied to this component.ignore_radial_impulse
(bool): [Read-Write] Ignore Radial Impulse: Will ignore radial impulses applied to this component.indirect_lighting_cache_quality
(IndirectLightingCacheQuality): [Read-Write] Indirect Lighting Cache Quality: Quality of indirect lighting for Movable primitives. This has a large effect on Indirect Lighting Cache update time.is_editor_only
(bool): [Read-Write] Is Editor Only: If true, the component will be excluded from non-editor buildsld_max_draw_distance
(float): [Read-Write] LDMax Draw Distance: Max draw distance exposed to LDs. The real max draw distance is the min (disregarding 0) of this and volumes affecting this object.light_attachments_as_group
(bool): [Read-Write] Light Attachments as Group: Whether to light this component and any attachments as a group. This only has effect on the root component of an attachment tree. When enabled, attached component shadowing settings like bCastInsetShadow, bCastVolumetricTranslucentShadow, etc, will be ignored. This is useful for improving performance when multiple movable components are attached together.lighting_channels
(LightingChannels): [Read-Write] Lighting Channels: Channels that this component should be in. Lights with matching channels will affect the component. These channels only apply to opaque materials, direct lighting, and dynamic lighting and shadowing.lightmap_type
(LightmapType): [Read-Write] Lightmap Type: Controls the type of lightmap used for this component.min_draw_distance
(float): [Read-Write] Min Draw Distance: The minimum distance at which the primitive should be rendered, measured in world space units from the center of the primitive’s bounding sphere to the camera position.mobility
(ComponentMobility): [Read-Write] Mobility: How often this component is allowed to move, used to make various optimizations. Only safe to set in constructor.multi_body_overlap
(bool): [Read-Write] Multi Body Overlap: If true, this component will generate individual overlaps for each overlapping physics body if it is a multi-body component. When false, this component will generate only one overlap, regardless of how many physics bodies it has and how many of them are overlapping another component/body. This flag has no influence on single body components.never_distance_cull
(bool): [Read-Write] Never Distance Cull: When enabled this object will not be culled by distance. This is ignored if a child of a HLOD.on_begin_cursor_over
(ComponentBeginCursorOverSignature): [Read-Write] On Begin Cursor Over: Event called when the mouse cursor is moved over this component and mouse over events are enabled in the player controlleron_clicked
(ComponentOnClickedSignature): [Read-Write] On Clicked: Event called when the left mouse button is clicked while the mouse is over this component and click events are enabled in the player controlleron_component_activated
(ActorComponentActivatedSignature): [Read-Write] On Component Activated: Called when the component has been activated, with parameter indicating if it was from a reseton_component_begin_overlap
(ComponentBeginOverlapSignature): [Read-Write] On Component Begin Overlap: Event called when something starts to overlaps this component, for example a player walking into a trigger. For events when objects have a blocking collision, for example a player hitting a wall, see ‘Hit’ events. note: Both this component and the other one must have GetGenerateOverlapEvents() set to true to generate overlap events. note: When receiving an overlap from another object’s movement, the directions of ‘Hit.Normal’ and ‘Hit.ImpactNormal’ will be adjusted to indicate force from the other object against this object.on_component_deactivated
(ActorComponentDeactivateSignature): [Read-Write] On Component Deactivated: Called when the component has been deactivatedon_component_end_overlap
(ComponentEndOverlapSignature): [Read-Write] On Component End Overlap: Event called when something stops overlapping this component note: Both this component and the other one must have GetGenerateOverlapEvents() set to true to generate overlap events.on_component_hit
(ComponentHitSignature): [Read-Write] On Component Hit: Event called when a component hits (or is hit by) something solid. This could happen due to things like Character movement, using Set Location with ‘sweep’ enabled, or physics simulation. For events when objects overlap (e.g. walking into a trigger) see the ‘Overlap’ event. note: For collisions during physics simulation to generate hit events, ‘Simulation Generates Hit Events’ must be enabled for this component. note: When receiving a hit from another object’s movement, the directions of ‘Hit.Normal’ and ‘Hit.ImpactNormal’ will be adjusted to indicate force from the other object against this object. note: NormalImpulse will be filled in for physics-simulating bodies, but will be zero for swept-component blocking collisions.on_component_physics_state_changed
(ComponentPhysicsStateChanged): [Read-Write] On Component Physics State Changed: Event called when physics state is created or destroyed for this componenton_component_sleep
(ComponentSleepSignature): [Read-Write] On Component Sleep: Event called when the underlying physics objects is put to sleepon_component_wake
(ComponentWakeSignature): [Read-Write] On Component Wake: Event called when the underlying physics objects is woken upon_end_cursor_over
(ComponentEndCursorOverSignature): [Read-Write] On End Cursor Over: Event called when the mouse cursor is moved off this component and mouse over events are enabled in the player controlleron_input_touch_begin
(ComponentOnInputTouchBeginSignature): [Read-Write] On Input Touch Begin: Event called when a touch input is received over this component when touch events are enabled in the player controlleron_input_touch_end
(ComponentOnInputTouchEndSignature): [Read-Write] On Input Touch End: Event called when a touch input is released over this component when touch events are enabled in the player controlleron_input_touch_enter
(ComponentBeginTouchOverSignature): [Read-Write] On Input Touch Enter: Event called when a finger is moved over this component when touch over events are enabled in the player controlleron_input_touch_leave
(ComponentEndTouchOverSignature): [Read-Write] On Input Touch Leave: Event called when a finger is moved off this component when touch over events are enabled in the player controlleron_released
(ComponentOnReleasedSignature): [Read-Write] On Released: Event called when the left mouse button is released while the mouse is over this component click events are enabled in the player controlleronly_owner_see
(bool): [Read-Write] Only Owner See: If this is True, this component will only be visible when the view actor is the component’s owner, directly or indirectly.owner_no_see
(bool): [Read-Write] Owner No See: If this is True, this component won’t be visible when the view actor is the component’s owner, directly or indirectly.physics_volume_changed_delegate
(PhysicsVolumeChanged): [Read-Write] Physics Volume Changed Delegate: Delegate that will be called when PhysicsVolume has been changed *primary_component_tick
(ActorComponentTickFunction): [Read-Write] Primary Component Tick: Main tick function for the Componentray_tracing_group_culling_priority
(RayTracingGroupCullingPriority): [Read-Write] Ray Tracing Group Culling Priority: Defines how quickly it should be culled. For example buildings should have a low priority, but small dressing should have a high priority.ray_tracing_group_id
(int32): [Read-Write] Ray Tracing Group Id: Defines run-time groups of components. For example allows to assemble multiple parts of a building at runtime. -1 means that component doesn’t belong to any group.receive_mobile_csm_shadows
(bool): [Read-Write] Receive Mobile CSMShadows: Mobile only: If disabled this component will not receive CSM shadows. (Components that do not receive CSM may have reduced shading cost)receives_decals
(bool): [Read-Write] Receives Decals: Whether the primitive receives decals.relative_location
(Vector): [Read-Write] Relative Location: Location of the component relative to its parentrelative_rotation
(Rotator): [Read-Write] Relative Rotation: Rotation of the component relative to its parentrelative_scale3d
(Vector): [Read-Write] Relative Scale 3D: Non-uniform scaling of the component relative to its parent. Note that scaling is always applied in local space (no shearing etc)render_custom_depth
(bool): [Read-Write] Render Custom Depth: If true, this component will be rendered in the CustomDepth pass (usually used for outlines)render_in_depth_pass
(bool): [Read-Write] Render in Depth Pass: If true, this component will be rendered in the depth pass even if it’s not rendered in the main passrender_in_main_pass
(bool): [Read-Write] Render in Main Pass: If true, this component will be rendered in the main pass (z prepass, basepass, transparency)replicate_physics_to_autonomous_proxy
(bool): [Read-Write] Replicate Physics to Autonomous Proxy: True if physics should be replicated to autonomous proxies. This should be true forserver-authoritative simulations, and false for client authoritative simulations.
replicate_using_registered_sub_object_list
(bool): [Read-Write] Replicate Using Registered Sub Object List: When true the replication system will only replicate the registered subobjects list When false the replication system will instead call the virtual ReplicateSubObjects() function where the subobjects need to be manually replicated.replicates
(bool): [Read-Write] Replicates: Is this component currently replicating? Should the network code consider it for replication? Owning Actor must be replicating first!return_material_on_move
(bool): [Read-Write] Return Material on Move: If true, component sweeps will return the material in their hit result. see: MoveComponent(), FHitResultruntime_virtual_textures
(Array[RuntimeVirtualTexture]): [Read-Write] Runtime Virtual Textures: Array of runtime virtual textures into which we draw the mesh for this actor. The material also needs to be set up to output to a virtual texture.self_shadow_only
(bool): [Read-Write] Self Shadow Only: When enabled, the component will only cast a shadow on itself and not other components in the world. This is especially useful for first person weapons, and forces bCastInsetShadow to be enabled.should_update_physics_volume
(bool): [Read-Write] Should Update Physics Volume: Whether or not the cached PhysicsVolume this component overlaps should be updated when the component is moved. see: GetPhysicsVolume()single_sample_shadow_from_stationary_lights
(bool): [Read-Write] Single Sample Shadow from Stationary Lights: Whether the whole component should be shadowed as one from stationary lights, which makes shadow receiving much cheaper. When enabled shadowing data comes from the volume lighting samples precomputed by Lightmass, which are very sparse. This is currently only used on stationary directional lights.trace_complex_on_move
(bool): [Read-Write] Trace Complex on Move: If true, component sweeps with this component should trace against complex collision during movement (for example, each triangle of a mesh). If false, collision will be resolved against simple collision bounds instead. see: MoveComponent()translucency_sort_distance_offset
(float): [Read-Write] Translucency Sort Distance Offset: Modified sort distance offset for translucent objects in world units. A positive number will move the sort distance further and a negative number will move the distance closer.Ignored if the object is not translucent. Warning: Adjusting this value will prevent the renderer from correctly sorting based on distance. Only modify this value if you are certain it will not cause visual artifacts.
translucency_sort_priority
(int32): [Read-Write] Translucency Sort Priority: Translucent objects with a lower sort priority draw behind objects with a higher priority. Translucent objects with the same priority are rendered from back-to-front based on their bounds origin. This setting is also used to sort objects being drawn into a runtime virtual texture.Ignored if the object is not translucent. The default priority is zero. Warning: This should never be set to a non-default value unless you know what you are doing, as it will prevent the renderer from sorting correctly. It is especially problematic on dynamic gameplay effects.
treat_as_background_for_occlusion
(bool): [Read-Write] Treat as Background for Occlusion: Treat this primitive as part of the background for occlusion purposes. This can be used as an optimization to reduce the cost of rendering skyboxes, large ground planes that are part of the vista, etc.use_as_occluder
(bool): [Read-Write] Use as Occluder: Whether to render the primitive in the depth only pass. This should generally be true for all objects, and let the renderer make decisions about whether to render objects in the depth only pass. todo: if any rendering features rely on a complete depth only pass, this variable needs to go away.use_attach_parent_bound
(bool): [Read-Write] Use Attach Parent Bound: If true, this component uses its parents bounds when attached. This can be a significant optimization with many components attached together.virtual_texture_cull_mips
(int8): [Read-Write] Virtual Texture Cull Mips: Number of lower mips in the runtime virtual texture to skip for rendering this primitive. Larger values reduce the effective draw distance in the runtime virtual texture. This culling method doesn’t take into account primitive size or virtual texture size.virtual_texture_lod_bias
(int8): [Read-Write] Virtual Texture Lod Bias: Bias to the LOD selected for rendering to runtime virtual textures.virtual_texture_min_coverage
(int8): [Read-Write] Virtual Texture Min Coverage: Set the minimum pixel coverage before culling from the runtime virtual texture. Larger values reduce the effective draw distance in the runtime virtual texture.virtual_texture_render_pass_type
(RuntimeVirtualTextureMainPassType): [Read-Write] Virtual Texture Render Pass Type: Controls if this component draws in the main pass as well as in the virtual texture.visible
(bool): [Read-Write] Visible: Whether to completely draw the primitive; if false, the primitive is not drawn, does not cast a shadow.visible_in_ray_tracing
(bool): [Read-Write] Visible in Ray Tracing: If true, this component will be visible in ray tracing effects. Turning this off will remove it from ray traced reflections, shadows, etc.visible_in_real_time_sky_captures
(bool): [Read-Write] Visible in Real Time Sky Captures: If true, this component will be visible in real-time sky light reflection captures.visible_in_reflection_captures
(bool): [Read-Write] Visible in Reflection Captures: If true, this component will be visible in reflection captures.visible_in_scene_capture_only
(bool): [Read-Write] Visible in Scene Capture Only: When true, will only be visible in Scene Capture