Magic Leap Shared World Player Controller
Editor Properties: (see get_editor_property/set_editor_property)
actor_guid(Guid): [Read-Only] The GUID for this actor.
allow_tick_before_begin_play(bool): [Read-Write] Whether we allow this Actor to tick before it receives the BeginPlay event. Normally we don’t tick actors until after BeginPlay; this setting allows this behavior to be overridden. This Actor must be able to tick for this setting to be relevant.
always_relevant(bool): [Read-Write] Always relevant for network (overrides bOnlyRelevantToOwner).
attach_to_pawn(bool): [Read-Write] If true, the controller location will match the possessed Pawn’s location. If false, it will not be updated. Rotation will match ControlRotation in either case. Since a Controller’s location is normally inaccessible, this is intended mainly for purposes of being able to attach an Actor that follows the possessed Pawn location, but that still has the full aim rotation (since a Pawn might update only some components of the rotation).
auto_destroy_when_finished(bool): [Read-Write] If true then destroy self when “finished”, meaning all relevant components report that they are done and no timelines or timers are in flight.
auto_manage_active_camera_target(bool): [Read-Write] True to allow this player controller to manage the camera target for you, typically by using the possessed pawn as the camera target. Set to false if you want to manually control the camera target.
auto_receive_input(AutoReceiveInput): [Read-Write] Automatically registers this actor to receive input from a player.
block_input(bool): [Read-Write] If true, all input on the stack below this actor will not be considered
can_be_damaged(bool): [Read-Write] Whether this actor can take damage. Must be true for damage events (e.g. ReceiveDamage()) to be called. https://www.unrealengine.com/blog/damage-in-ue4: TakeDamage(), ReceiveDamage():
can_be_in_cluster(bool): [Read-Write] If true, this actor can be put inside of a GC Cluster to improve Garbage Collection performance
cheat_class(type(Class)): [Read-Write] Class of my CheatManager. CheatManager for more information about when it will be instantiated.:
cheat_manager(CheatManager): [Read-Write] Object that manages “cheat” commands.
- By default:
Debug and Development builds will force it to be instantiated (
APlayerController::EnableCheats). - Test and Shipping builds will only instantiate it if the authoritative game mode allows cheats (: AGameModeBase::AllowCheats). This behavior can be changed either by overriding APlayerController::EnableCheats or AGameModeBase::AllowCheats.:
click_event_keys(Array(Key)): [Read-Write] List of keys that will cause click events to be forwarded, default to left click
current_click_trace_channel(CollisionChannel): [Read-Write] Trace channel currently being used for determining what world object was clicked on.
current_mouse_cursor(MouseCursor): [Read-Write] Currently visible mouse cursor
custom_time_dilation(float): [Read-Write] Allow each actor to run at a different time speed. The DeltaTime for a frame is multiplied by the global TimeDilation (in WorldSettings) and this CustomTimeDilation for this actor’s tick.
default_click_trace_channel(CollisionChannel): [Read-Write] Default trace channel used for determining what world object was clicked on.
default_mouse_cursor(MouseCursor): [Read-Write] Type of mouse cursor to show by default
default_update_overlaps_method_during_level_streaming(ActorUpdateOverlapsMethod): [Read-Only] Default value taken from config file for this class when ‘UseConfigDefault’ is chosen for ‘UpdateOverlapsMethodDuringLevelStreaming’. This allows a default to be chosen per class in the matching config. For example, for Actor it could be specified in DefaultEngine.ini as:
[/Script/Engine.Actor] DefaultUpdateOverlapsMethodDuringLevelStreaming = OnlyUpdateMovable
Another subclass could set their default to something different, such as:
[/Script/Engine.BlockingVolume] DefaultUpdateOverlapsMethodDuringLevelStreaming = NeverUpdate UpdateOverlapsMethodDuringLevelStreaming:
enable_auto_lod_generation(bool): [Read-Write] If true, and if World setting has bEnableHierarchicalLOD equal to true, then it will generate LODActor from groups of clustered Actor
enable_click_events(bool): [Read-Write] Whether actor/component click events should be generated.
enable_mouse_over_events(bool): [Read-Write] Whether actor/component mouse over events should be generated.
enable_touch_events(bool): [Read-Write] Whether actor/component touch events should be generated.
enable_touch_over_events(bool): [Read-Write] Whether actor/component touch over events should be generated.
find_camera_component_when_view_target(bool): [Read-Write] If true, this actor should search for an owned camera component to view through when used as a view target.
force_feedback_enabled(bool): [Read-Write] Force Feedback Enabled
generate_overlap_events_during_level_streaming(bool): [Read-Write] If true, this actor will generate overlap Begin/End events when spawned as part of level streaming, which includes initial level load. You might enable this is in the case where a streaming level loads around an actor and you want Begin/End overlap events to trigger. UpdateOverlapsMethodDuringLevelStreaming:
hidden(bool): [Read-Write] Allows us to only see this Actor in the Editor, and not in the actual game. SetActorHiddenInGame():
hit_result_trace_distance(float): [Read-Write] Distance to trace when computing click events
ignores_origin_shifting(bool): [Read-Write] Whether this actor should not be affected by world origin shifting.
initial_life_span(float): [Read-Write] How long this Actor lives before dying, 0=forever. Note this is the INITIAL value and should not be modified once play has begun.
input_pitch_scale(float): [Read-Write] Pitch input speed scaling
input_priority(int32): [Read-Write] The priority of this input component when pushed in to the stack.
input_roll_scale(float): [Read-Write] Roll input speed scaling
input_yaw_scale(float): [Read-Write] Yaw input speed scaling
instigator(Pawn): [Read-Write] Pawn responsible for damage and other gameplay events caused by this actor.
is_editor_only_actor(bool): [Read-Write] Whether this actor is editor-only. Use with care, as if this actor is referenced by anything else that reference will be NULL in cooked builds
min_net_update_frequency(float): [Read-Write] Used to determine what rate to throttle down to when replicated properties are changing infrequently
net_cull_distance_squared(float): [Read-Write] Square of the max distance from the client’s viewpoint that this actor is relevant and will be replicated.
net_dormancy(NetDormancy): [Read-Write] Dormancy setting for actor to take itself off of the replication list without being destroyed on clients.
net_load_on_client(bool): [Read-Write] This actor will be loaded on network clients during map load
net_priority(float): [Read-Write] Priority for this actor when checking for replication in a low bandwidth or saturated situation, higher priority means it is more likely to replicate
net_update_frequency(float): [Read-Write] How often (per second) this actor will be considered for replication, used to determine NetUpdateTime
net_use_owner_relevancy(bool): [Read-Write] If actor has valid Owner, call Owner’s IsNetRelevantFor and GetNetPriority
on_actor_begin_overlap(ActorBeginOverlapSignature): [Read-Write] Called when another actor begins to overlap this actor, 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. Components on both this and the other Actor must have bGenerateOverlapEvents set to true to generate overlap events.:
on_actor_end_overlap(ActorEndOverlapSignature): [Read-Write] Called when another actor stops overlapping this actor. Components on both this and the other Actor must have bGenerateOverlapEvents set to true to generate overlap events.:
on_actor_hit(ActorHitSignature): [Read-Write] Called when this Actor 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. For collisions during physics simulation to generate hit events, ‘Simulation Generates Hit Events’ must be enabled.:
on_begin_cursor_over(ActorBeginCursorOverSignature): [Read-Write] Called when the mouse cursor is moved over this actor if mouse over events are enabled in the player controller.
on_clicked(ActorOnClickedSignature): [Read-Write] Called when the left mouse button is clicked while the mouse is over this actor and click events are enabled in the player controller.
on_destroyed(ActorDestroyedSignature): [Read-Write] Event triggered when the actor has been explicitly destroyed.
on_end_cursor_over(ActorEndCursorOverSignature): [Read-Write] Called when the mouse cursor is moved off this actor if mouse over events are enabled in the player controller.
on_end_play(ActorEndPlaySignature): [Read-Write] Event triggered when the actor is being deleted or removed from a level.
on_input_touch_begin(ActorOnInputTouchBeginSignature): [Read-Write] Called when a touch input is received over this actor when touch events are enabled in the player controller.
on_input_touch_end(ActorOnInputTouchEndSignature): [Read-Write] Called when a touch input is received over this component when touch events are enabled in the player controller.
on_input_touch_enter(ActorBeginTouchOverSignature): [Read-Write] Called when a finger is moved over this actor when touch over events are enabled in the player controller.
on_input_touch_leave(ActorEndTouchOverSignature): [Read-Write] Called when a finger is moved off this actor when touch over events are enabled in the player controller.
on_instigated_any_damage(InstigatedAnyDamageSignature): [Read-Write] Called when the controller has instigated damage in any way
on_released(ActorOnReleasedSignature): [Read-Write] Called when the left mouse button is released while the mouse is over this actor and click events are enabled in the player controller.
on_take_any_damage(TakeAnyDamageSignature): [Read-Write] Called when the actor is damaged in any way.
on_take_point_damage(TakePointDamageSignature): [Read-Write] Called when the actor is damaged by point damage.
on_take_radial_damage(TakeRadialDamageSignature): [Read-Write] Called when the actor is damaged by radial damage.
only_relevant_to_owner(bool): [Read-Write] If true, this actor is only relevant to its owner. If this flag is changed during play, all non-owner channels would need to be explicitly closed.
optimize_bp_component_data(bool): [Read-Write] Whether to cook additional data to speed up spawn events at runtime for any Blueprint classes based on this Actor. This option may slightly increase memory usage in a cooked build.
pivot_offset(Vector): [Read-Write] Local space pivot offset for the actor, only used in the editor
player_camera_manager(PlayerCameraManager): [Read-Write] Camera manager associated with this Player Controller.
player_camera_manager_class(type(Class)): [Read-Write] PlayerCamera class should be set for each game, otherwise Engine.PlayerCameraManager is used
player_is_waiting(bool): [Read-Only] True if PlayerController is currently waiting for the match to start or to respawn. Only valid in Spectating state.
player_state(PlayerState): [Read-Write] PlayerState containing replicated information about the player using this controller (only exists for players, not NPCs).
primary_actor_tick(ActorTickFunction): [Read-Write] Primary Actor tick function, which calls TickActor(). Tick functions can be configured to control whether ticking is enabled, at what time during a frame the update occurs, and to set up tick dependencies. https://docs.unrealengine.com/latest/INT/API/Runtime/Engine/Engine/FTickFunction/: AddTickPrerequisiteActor(), AddTickPrerequisiteComponent():
relevant_for_level_bounds(bool): [Read-Write] If true, this actor’s component’s bounds will be included in the level’s bounding box unless the Actor’s class has overridden IsLevelBoundsRelevant
replay_rewindable(bool): [Read-Write] If true, this actor will only be destroyed during scrubbing if the replay is set to a time before the actor existed. Otherwise, RewindForReplay will be called if we detect the actor needs to be reset. Note, this Actor must not be destroyed by gamecode, and RollbackViaDeletion may not be used.
replicate_movement(bool): [Read-Write] If true, replicate movement/location related properties. Actor must also be set to replicate. SetReplicates(): https://docs.unrealengine.com/latest/INT/Gameplay/Networking/Replication/:
replicated_movement(RepMovement): [Read-Write] Used for replication of our RootComponent’s position and velocity
replicates(bool): [Read-Write] If true, this actor will replicate to remote machines SetReplicates():
root_component(SceneComponent): [Read-Write] The component that defines the transform (location, rotation, scale) of this Actor in the world, all other components must be attached to this one somehow
should_perform_full_tick_when_paused(bool): [Read-Write] Whether we fully tick when the game is paused, if our tick function is allowed to do so. If false, we do a minimal update during the tick.
show_mouse_cursor(bool): [Read-Write] Whether the mouse cursor should be displayed.
smooth_target_view_rotation_speed(float): [Read-Write] Interp speed for blending remote view rotation for smoother client updates
spawn_collision_handling_method(SpawnActorCollisionHandlingMethod): [Read-Write] Controls how to handle spawning this actor in a situation where it’s colliding with something else. “Default” means AlwaysSpawn here.
sprite_scale(float): [Read-Write] The scale to apply to any billboard components in editor builds (happens in any WITH_EDITOR build, including non-cooked games).
tags(Array(Name)): [Read-Write] Array of tags that can be used for grouping and categorizing.
update_overlaps_method_during_level_streaming(ActorUpdateOverlapsMethod): [Read-Write] Condition for calling UpdateOverlaps() to initialize overlap state when loaded in during level streaming. If set to ‘UseConfigDefault’, the default specified in ini (displayed in ‘DefaultUpdateOverlapsMethodDuringLevelStreaming’) will be used. If overlaps are not initialized, this actor and attached components will not have an initial state of what objects are touching it, and overlap events may only come in once one of those objects update overlaps themselves (for example when moving). However if an object touching it does initialize state, both objects will know about their touching state with each other. This can be a potentially large performance savings during level loading and streaming, and is safe if the object and others initially overlapping it do not need the overlap state because they will not trigger overlap notifications.
Note that if ‘bGenerateOverlapEventsDuringLevelStreaming’ is true, overlaps are always updated in this case, but that flag determines whether the Begin/End overlap events are triggered. bGenerateOverlapEventsDuringLevelStreaming, DefaultUpdateOverlapsMethodDuringLevelStreaming, GetUpdateOverlapsMethodDuringLevelStreaming():
can_send_local_data_to_server() → bool¶
Getter to check if the current client can start sending local pins to the server ServerSetLocalWorldData():
true if it is now safe to send local data to server, false otherwise
- Return type
client_set_chosen_one(chosen_one) → None¶
Marks the client as the “chosen-one” or pseudo-authoritative for this shared world session.
Means that this client is responsible for sending the list of it’s pin transforms (in world space so its own alignment is unaffected) to the server via ServerSetAlignmentTransforms(). Everyone will align to this client’s coordinate space using those pin transforms. The game mode or the player controller doesnt directly use this property. It is just a helper data point to determine which client should send the alignment transforms. Apps can choose to implement their own ways to select which client should should everyone align with. ServerSetAlignmentTransforms:
chosen_one (bool) –
is_chosen_one() → bool¶
Getter to check if the current client is the chosen one ClientSetChosenOne():
true if this client is the chosen one, false otherwise
- Return type
server_set_alignment_transforms(alignment_transforms) → None¶
Sets list of transforms to be used by all clients to align coordinate spaces.
This list is redirected to AMagicLeapSharedWorldGameState which performs the replication. Bind an event to AMagicLeapSharedWorldGameState::OnAlignmentTransformsUpdated to get a notification when new alignment transforms are available. If performing shared world alignment on-the-fly (i.e. without any prior setup like in a museum app), these transforms should be sent by a single selected client. Apps can make use of the “chosen one” client for this purpose. Override AMagicLeapSharedWorldGameMode::SelectChosenOne() to select which of the connected clients should send the alignment transforms. By default the first connected client is considered the “chosen one”. AMagicLeapSharedWorldGameMode::SelectChosenOne(): AMagicLeapSharedWorldGameState::OnAlignmentTransformsUpdated: AMagicLeapSharedWorldGameState::CalculateXRCameraRootTransform():
alignment_transforms (MagicLeapSharedWorldAlignmentTransforms) –
server_set_local_world_data(local_world_replication_data) → None¶
Updates list of pins local to a client on the server.
This makes the list of local pins available to AMagicLeapSharedWorldGameMode to determine which ones to share across all clients and use for global coordinate space alignment.
local_world_replication_data (MagicLeapSharedWorldLocalData) –