Table of Contents

Namespace Flexalon

Classes

Flex
Flexalon

Singleton class which tracks and updates all FlexalonNodes in the scene. See core concepts for more information.

FlexalonAlignLayout

Use a align layout to align all children to the parent on the specified axes. For example, use a align layout to place all children along a floor, wall, or edge.

Once aligned, you can adjust the position, rotation, or size of each child by editing the Offset, Rotation, Size, and Scale properties on that child's Flexalon Object Component.

FlexalonAspectRatioAdapter
FlexalonCircleLayout

Use a circle layout to position children along a circle or spiral.

FlexalonCloner

Sometimes, it's useful to generate child objects instead of defining them statically. The Flexalon Cloner can generate objects from a set of prefabs iteratively or randomly, and can optionally bind to a data source.

FlexalonColliderAdapter
FlexalonComponent

Base type for many Flexalon components. Deals with FlexalonNode lifecycle, and provides the ForceUpdate and MarkDirty methods to trigger a Flexalon update.

FlexalonConstraint

The Flexalon Constraint component positions its gameObject relative to a target, which can be any other gameObject. The constrained object or the target can also have layout components, which provides a powerful way to combine layouts together.

FlexalonCurveAnimator

The curve animator applies a curve the the position, rotation, and scale of the object. The curve is restarted each time the layout position changes. This is ideal for scenarios in which the layout position does not change often.

FlexalonCurveLayout

Use a curve layout to position children along a bézier curve.

FlexalonDragTarget

A drag target allows a layout to accept dragged FlexalonInteractable objects.

FlexalonFlexibleLayout

Use a flexible layout to position children linearly along the x, y, or z axis. The sizes of the children are considered so that they are evenly spaced.

FlexalonGridCell

Specifies which cell a gameObject should occupy in a grid layout.

FlexalonGridLayout

Use a grid layout to position children at fixed intervals. Objects are placed in cells in column-row-layer order.

FlexalonInteractable

Allows a gameObject to be clicked and dragged.

FlexalonInteractable.InteractableEvent

An event that occurs to a FlexalonInteractable.

FlexalonLerpAnimator

The lerp animator constnatly performs a linear interpolation between the object's current position and its layout position. This is useful if the layout position is continuously changing.

FlexalonMouseInputProvider

Simple input provider that uses the mouse for input.

FlexalonObject

To control the size of an object, add a Flexalon Object component to it and edit the width, height, or depth properties.

FlexalonRandomLayout

Use a random layout to position, rotate, and size children randomly within bounds.

FlexalonRandomModifier

The Flexalon Random Modifier component can be added to any layout to randomly modify the positions and rotations of the children.

FlexalonResult

This component is added to each object in a layout. It stores the results of the layout process so they can be loaded from a scene/prefab without rerunning layout.

FlexalonRigidBodyAnimator

If you add a Rigid Body or Rigid Body 2D component a gameObject which is managed by Flexalon, then the physics system will fight with Flexalon over the object's position and rotation. Adding a Rigid Body animator will resolve this by applying forces to the the rigid body component instead of changing the transform directly.

FlexalonShapeLayout

Use a shape layout to position children in a shape formation with a specified number of sides. The first child is placed in the center, and subsequent children are placed in concentric layers around the center, with each layer forming the desired shape.

FlexItem
LayoutBase

Base class for all layout componets. See custom layout for details on how to extend this class. Assigns the Layout method to FlexalonNode and keeps the node's children up to date.

Math

Common math help functions.

Structs

Directions

Six floats representing right, left, top, bottom, back, front.

FlexalonCurveLayout.CurvePoint

A point on the curve.

Interfaces

Adapter

Adapters determine how Flexalon measures other Unity components. See adapters documentation.

Constraint

A constraint runs whenever a target layout is updated.

DataBinding

When the Cloner creates objects from a DataSource, it will search the cloned objects for any component which implements DataBinding to bind the data entry from the data source to the visual item. The component can then use this data to change its appearance.

DataSource

Provides data for a FlexalonCloner.

FlexalonModifier

Interface for components that modify layout results.

FlexalonNode

Represents a node in the Flexalon layout tree.

InputProvider

Implement this interface and assign it to the Flexalon.InputProvider to override how FlexalonInteractables receive input.

Layout

A layout determines how the children of a node are positioned.

TransformUpdater

A transform updater determines how an object gets from its current position to the computed layout position.

Enums

Align

Represents a direction to align.

Axis

Represents an axis.

Direction

Represents an axis and direction.

FlexalonCircleLayout.InitialRadiusOptions

Determines the initial radius of the circle.

FlexalonCircleLayout.RadiusOptions

Determines if and how the radius changes.

FlexalonCircleLayout.RotateOptions

Determines how children should be rotated.

FlexalonCircleLayout.SpacingOptions

Determines how the space between children is distributed.

FlexalonCloner.CloneTypes

In which order should prefabs be cloned.

FlexalonCurveLayout.ExtendBehavior

Determines how the curve is extended before the beginning and after the end.

FlexalonCurveLayout.RotationOptions

Determines how children should be rotated

FlexalonCurveLayout.SpacingOptions

Determines how the children will be spaced along the curve.

FlexalonCurveLayout.TangentMode

Determines how the tangent for a CurvePoint is determined.

FlexalonFlexibleLayout.GapOptions

Determines how the space between children is distributed.

FlexalonGridLayout.CellSizeTypes

How to determine the size of the cell.

FlexalonGridLayout.CellTypes

The type of cell to use on the column-row axes.

FlexalonInteractable.InteractableState

The current state of the interactable.

FlexalonInteractable.RestrictionType

Restricts the movement of an object during a drag.

InputMode
MinMaxSizeType

Determines how a FlexalonObject min or max should be determined.

Plane

Represents a plane along two axes.

SizeType

Determines how a FlexalonObject should be sized.