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.
Inherited Members
Namespace: Cinemachine
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
[AddComponentMenu("Cinemachine/CinemachineTargetGroup")]
[ExecuteAlways]
[DisallowMultipleComponent]
[HelpURL("https://docs.unity.cn/Packages/com.unity.cinemachine@2.8/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 |
---|---|
CinemachineTargetGroup.PositionMode |
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 |
---|---|
CinemachineTargetGroup.RotationMode |
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 |
---|---|
CinemachineTargetGroup.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 |
---|---|
CinemachineTargetGroup.UpdateMethod |
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 |
Implements
IsEmpty
Return true if there are no members with weight > 0
Declaration
public bool IsEmpty { get; }
Property Value
Type | Description |
---|---|
Boolean |
Implements
Sphere
The bounding sphere of the group, computed using the targets positions and radii
Declaration
public BoundingSphere Sphere { get; }
Property Value
Type | Description |
---|---|
BoundingSphere |
Implements
Transform
Get the MonoBehaviour's Transform
Declaration
public Transform Transform { get; }
Property Value
Type | Description |
---|---|
Transform |
Implements
Methods
AddMember(Transform, Single, Single)
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 |
Single | weight | The new member's weight |
Single | 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 |
---|---|
Int32 | 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 spoecific point of view. Also returns the z depth range of the members.
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 |
Implements
GetViewSpaceBoundingBox(Matrix4x4)
The axis-aligned bounding box of the group, in a specific reference frame
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 |
Implements
GetWeightedBoundsForMember(Int32)
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.
Declaration
public BoundingSphere GetWeightedBoundsForMember(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | 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 |