Class CinemachineTargetGroup
Defines a group of target objects, each with a radius and a weight. The weight is used when calculating the average position of the target group. Higher-weighted members of the group will count more. The bounding box is calculated by taking the member positions, weight, and radii into account.
Implements
Inherited Members
Namespace: Cinemachine
Assembly: Cinemachine.dll
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
[AddComponentMenu("Cinemachine/CinemachineTargetGroup")]
[ExecuteAlways]
[DisallowMultipleComponent]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.cinemachine@2.9/manual/CinemachineTargetGroup.html")]
public class CinemachineTargetGroup : MonoBehaviour, ICinemachineTargetGroup
Fields
m_PositionMode
How the group's position is calculated
Declaration
[Tooltip("How the group's position is calculated. Select GroupCenter for the center of the bounding box, and GroupAverage for a weighted average of the positions of the members.")]
public CinemachineTargetGroup.PositionMode m_PositionMode
Field Value
Type | Description |
---|---|
Cinemachine |
m_RotationMode
How the group's orientation is calculated
Declaration
[Tooltip("How the group's rotation is calculated. Select Manual to use the value in the group's transform, and GroupAverage for a weighted average of the orientations of the members.")]
public CinemachineTargetGroup.RotationMode m_RotationMode
Field Value
Type | Description |
---|---|
Cinemachine |
m_Targets
The target objects, together with their weights and radii, that will contribute to the group's average position, orientation, and size
Declaration
[Tooltip("The target objects, together with their weights and radii, that will contribute to the group's average position, orientation, and size.")]
public CinemachineTargetGroup.Target[] m_Targets
Field Value
Type | Description |
---|---|
Target[] |
m_UpdateMethod
When to update the group's transform based on the position of the group members
Declaration
[Tooltip("When to update the group's transform based on the position of the group members")]
public CinemachineTargetGroup.UpdateMethod m_UpdateMethod
Field Value
Type | Description |
---|---|
Cinemachine |
Properties
BoundingBox
The axis-aligned bounding box of the group, computed using the targets positions and radii
Declaration
public Bounds BoundingBox { get; }
Property Value
Type | Description |
---|---|
Bounds |
IsEmpty
Return true if there are no members with weight > 0. This returns the cached member state and is only valid after a call to DoUpdate(). If members are added or removed after that call, this will not necessarily return correct information before the next update.
Declaration
public bool IsEmpty { get; }
Property Value
Type | Description |
---|---|
bool |
Sphere
The bounding sphere of the group, computed using the targets positions and radii
Declaration
public BoundingSphere Sphere { get; }
Property Value
Type | Description |
---|---|
Bounding |
Transform
Get the MonoBehaviour's Transform
Declaration
public Transform Transform { get; }
Property Value
Type | Description |
---|---|
Transform |
Methods
AddMember(Transform, float, float)
Add a member to the group
Declaration
public void AddMember(Transform t, float weight, float radius)
Parameters
Type | Name | Description |
---|---|---|
Transform | t | The member to add |
float | weight | The new member's weight |
float | radius | The new member's radius |
DoUpdate()
Update the group's transform right now, depending on the transforms of the members. Normally this is called automatically by Update() or LateUpdate().
Declaration
public void DoUpdate()
FindMember(Transform)
Locate a member's index in the group.
Declaration
public int FindMember(Transform t)
Parameters
Type | Name | Description |
---|---|---|
Transform | t | The member to find |
Returns
Type | Description |
---|---|
int | Member index, or -1 if not a member |
GetViewSpaceAngularBounds(Matrix4x4, out Vector2, out Vector2, out Vector2)
Get the local-space angular bounds of the group, from a specific point of view. Also returns the z depth range of the members. Note that this result is only valid after DoUpdate has been called. If members are added or removed after that call or change their weights or active state, this will not necessarily return correct information before the next update.
Declaration
public void GetViewSpaceAngularBounds(Matrix4x4 observer, out Vector2 minAngles, out Vector2 maxAngles, out Vector2 zRange)
Parameters
Type | Name | Description |
---|---|---|
Matrix4x4 | observer | Point of view from which to calculate, and in whose space the return values are |
Vector2 | minAngles | The lower bound of the screen angles of the members (degrees) |
Vector2 | maxAngles | The upper bound of the screen angles of the members (degrees) |
Vector2 | zRange | The min and max depth values of the members, relative to the observer |
GetViewSpaceBoundingBox(Matrix4x4)
The axis-aligned bounding box of the group, in a specific reference frame. Note that this result is only valid after DoUpdate has been called. If members are added or removed after that call or change their weights or active state, this will not necessarily return correct information before the next update.
Declaration
public Bounds GetViewSpaceBoundingBox(Matrix4x4 observer)
Parameters
Type | Name | Description |
---|---|---|
Matrix4x4 | observer | The frame of reference in which to compute the bounding box |
Returns
Type | Description |
---|---|
Bounds | The axis-aligned bounding box of the group, in the desired frame of reference |
GetWeightedBoundsForMember(int)
Get the bounding sphere of a group memebr, with the weight taken into account. As the member's weight goes to 0, the position lerps to the group average position. Note that this result is only valid after DoUpdate has been called. If members are added or removed after that call or change their weights or active state, this will not necessarily return correct information before the next update.
Declaration
public BoundingSphere GetWeightedBoundsForMember(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | Member index |
Returns
Type | Description |
---|---|
Bounding |
The weighted bounding sphere |
RemoveMember(Transform)
Remove a member from the group
Declaration
public void RemoveMember(Transform t)
Parameters
Type | Name | Description |
---|---|---|
Transform | t | The member to remove |