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: Unity.Cinemachine
Assembly: Unity.Cinemachine.dll
Syntax
[AddComponentMenu("Cinemachine/Helpers/Cinemachine Target Group")]
[ExecuteAlways]
[DisallowMultipleComponent]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineTargetGroup.html")]
public class CinemachineTargetGroup : MonoBehaviour, ICinemachineTargetGroup
Fields
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.")]
[FormerlySerializedAs("m_PositionMode")]
public CinemachineTargetGroup.PositionModes PositionMode
Field Value
| Type | Description |
|---|---|
| CinemachineTargetGroup.PositionModes |
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.")]
[FormerlySerializedAs("m_RotationMode")]
public CinemachineTargetGroup.RotationModes RotationMode
Field Value
| Type | Description |
|---|---|
| CinemachineTargetGroup.RotationModes |
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 List<CinemachineTargetGroup.Target> Targets
Field Value
| Type | Description |
|---|---|
| List<CinemachineTargetGroup.Target> |
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")]
[FormerlySerializedAs("m_UpdateMethod")]
public CinemachineTargetGroup.UpdateMethods UpdateMethod
Field Value
| Type | Description |
|---|---|
| CinemachineTargetGroup.UpdateMethods |
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 |
IsValid
Returns true if object has not been deleted.
Declaration
public bool IsValid { 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 |
|---|---|
| BoundingSphere |
Transform
Get the MonoBehaviour's Transform
Declaration
public Transform Transform { get; }
Property Value
| Type | Description |
|---|---|
| Transform |
m_Targets
Obsolete Targets
Declaration
[Obsolete("m_Targets is obsolete. Please use Targets instead")]
public CinemachineTargetGroup.Target[] m_Targets { get; set; }
Property Value
| Type | Description |
|---|---|
| Target[] |
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, bool)
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, bool includeBehind)
Parameters
| Type | Name | Description |
|---|---|---|
| Matrix4x4 | observer | The frame of reference in which to compute the bounding box |
| bool | includeBehind | If true, members behind the observer (negative z) will be included |
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 member, with the weight taken into account. As the member's weight goes to 0, the position interpolates 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 |
|---|---|
| BoundingSphere | 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 |