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 |