Skip to content

Game.Tutorials.ObjectPlacementTriggerData

Assembly: Game
Namespace: Game.Tutorials

Type: struct

Base: Unity.Entities.IBufferElementData

Summary:
ObjectPlacementTriggerData is a lightweight buffer element used by the tutorial/object-placement systems to record an object (Entity) that is part of a placement-related trigger and associated flags describing trigger behavior. Instances are stored in DynamicBuffer on entities that track placement triggers. For the meaning of the flags, see ObjectPlacementTriggerFlags.


Fields

  • public Entity m_Object
    Holds the Entity reference for the object involved in the placement trigger. This is typically the object the tutorial expects the player to place or interact with.

  • public ObjectPlacementTriggerFlags m_Flags
    Flags controlling trigger behavior/metadata. The exact semantics are defined by the ObjectPlacementTriggerFlags enum/type (not shown here) and might include information such as single-use, required placement, or other trigger options.

Properties

This type defines no properties.

Constructors

  • public ObjectPlacementTriggerData(Entity obj, ObjectPlacementTriggerFlags flags)
    Initializes a new buffer element with the given object Entity and flags.

Methods

This type defines no methods.

Usage Example

// Add and use a DynamicBuffer<ObjectPlacementTriggerData> via EntityManager
Entity tutorialEntity = /* obtain or create an entity that holds the buffer */;
EntityManager.AddBuffer<ObjectPlacementTriggerData>(tutorialEntity);
var buffer = EntityManager.GetBuffer<ObjectPlacementTriggerData>(tutorialEntity);

Entity placedObject = /* entity representing the object to trigger on */;
buffer.Add(new ObjectPlacementTriggerData(placedObject, ObjectPlacementTriggerFlags.None));

// Or inside a SystemBase:
public class TutorialSystem : SystemBase
{
    protected override void OnUpdate()
    {
        Entities
            .WithoutBurst()
            .ForEach((Entity e, ref DynamicBuffer<ObjectPlacementTriggerData> buffer) =>
            {
                // Example: add a trigger entry
                Entity someObject = /* resolve object entity */;
                buffer.Add(new ObjectPlacementTriggerData(someObject, ObjectPlacementTriggerFlags.Required));
            })
            .Run();
    }
}