[unity] PhysicsConstraints: Made physicsMovementRelativeTo protected, added getter/setter automatically resetting last position (see commit 4266c72).

This commit is contained in:
Harald Csaszar 2024-02-05 20:12:21 +01:00
parent b850ff7715
commit 2a42f1a160
2 changed files with 26 additions and 2 deletions

View File

@ -572,13 +572,25 @@ namespace Spine.Unity {
/// <summary>When enabled, Transform rotation is applied to skeleton PhysicsConstraints.</summary> /// <summary>When enabled, Transform rotation is applied to skeleton PhysicsConstraints.</summary>
public bool applyRotationToPhysics = true; public bool applyRotationToPhysics = true;
/// <summary>Reference transform relative to which physics movement will be calculated, or null to use world location.</summary> /// <summary>Reference transform relative to which physics movement will be calculated, or null to use world location.</summary>
public Transform physicsMovementRelativeTo = null; [SerializeField] protected Transform physicsMovementRelativeTo = null;
/// <summary>Used for applying Transform translation to skeleton PhysicsConstraints.</summary> /// <summary>Used for applying Transform translation to skeleton PhysicsConstraints.</summary>
protected Vector2 lastPosition; protected Vector2 lastPosition;
/// <summary>Used for applying Transform rotation to skeleton PhysicsConstraints.</summary> /// <summary>Used for applying Transform rotation to skeleton PhysicsConstraints.</summary>
protected float lastRotation; protected float lastRotation;
/// <summary>Reference transform relative to which physics movement will be calculated, or null to use world location.</summary>
public Transform PhysicsMovementRelativeTo {
get {
return physicsMovementRelativeTo;
}
set {
physicsMovementRelativeTo = value;
if (applyTranslationToPhysics) ResetLastPosition();
if (applyRotationToPhysics) ResetLastRotation();
}
}
public void ResetLastPosition () { public void ResetLastPosition () {
lastPosition = GetPhysicsTransformPosition(); lastPosition = GetPhysicsTransformPosition();
} }

View File

@ -294,13 +294,25 @@ namespace Spine.Unity {
/// <summary>When enabled, Transform rotation is applied to skeleton PhysicsConstraints.</summary> /// <summary>When enabled, Transform rotation is applied to skeleton PhysicsConstraints.</summary>
public bool applyRotationToPhysics = true; public bool applyRotationToPhysics = true;
/// <summary>Reference transform relative to which physics movement will be calculated, or null to use world location.</summary> /// <summary>Reference transform relative to which physics movement will be calculated, or null to use world location.</summary>
public Transform physicsMovementRelativeTo = null; [SerializeField] protected Transform physicsMovementRelativeTo = null;
/// <summary>Used for applying Transform translation to skeleton PhysicsConstraints.</summary> /// <summary>Used for applying Transform translation to skeleton PhysicsConstraints.</summary>
protected Vector2 lastPosition; protected Vector2 lastPosition;
/// <summary>Used for applying Transform rotation to skeleton PhysicsConstraints.</summary> /// <summary>Used for applying Transform rotation to skeleton PhysicsConstraints.</summary>
protected float lastRotation; protected float lastRotation;
/// <summary>Reference transform relative to which physics movement will be calculated, or null to use world location.</summary>
public Transform PhysicsMovementRelativeTo {
get {
return physicsMovementRelativeTo;
}
set {
physicsMovementRelativeTo = value;
if (applyTranslationToPhysics) ResetLastPosition();
if (applyRotationToPhysics) ResetLastRotation();
}
}
public void ResetLastPosition () { public void ResetLastPosition () {
lastPosition = GetPhysicsTransformPosition(); lastPosition = GetPhysicsTransformPosition();
} }