Sprite flips depending on movement direction
This commit is contained in:
@@ -29,6 +29,7 @@ public class FollowerController : MonoBehaviour
|
||||
private float _currentSpeed = 0f;
|
||||
private Animator _animator;
|
||||
private Transform _artTransform;
|
||||
private SpriteRenderer spriteRenderer;
|
||||
|
||||
private PickupItemData _currentlyHeldItem;
|
||||
public PickupItemData CurrentlyHeldItem => _currentlyHeldItem;
|
||||
@@ -83,10 +84,12 @@ public class FollowerController : MonoBehaviour
|
||||
if (_artTransform != null)
|
||||
{
|
||||
_animator = _artTransform.GetComponent<Animator>();
|
||||
spriteRenderer = _artTransform.GetComponent<SpriteRenderer>();
|
||||
}
|
||||
else
|
||||
{
|
||||
_animator = GetComponentInChildren<Animator>(); // fallback
|
||||
spriteRenderer = GetComponentInChildren<SpriteRenderer>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,6 +184,14 @@ public class FollowerController : MonoBehaviour
|
||||
_currentSpeed = Mathf.Max(_currentSpeed, minSpeed);
|
||||
}
|
||||
Vector3 dir = (_targetPoint - transform.position).normalized;
|
||||
// Sprite flipping based on movement direction
|
||||
if (spriteRenderer != null && dir.sqrMagnitude > 0.001f)
|
||||
{
|
||||
if (dir.x > 0.01f)
|
||||
spriteRenderer.flipX = false;
|
||||
else if (dir.x < -0.01f)
|
||||
spriteRenderer.flipX = true;
|
||||
}
|
||||
transform.position += dir * _currentSpeed * Time.deltaTime;
|
||||
}
|
||||
else
|
||||
@@ -202,6 +213,14 @@ public class FollowerController : MonoBehaviour
|
||||
else if (_aiPath != null)
|
||||
{
|
||||
normalizedSpeed = _aiPath.velocity.magnitude / _followerMaxSpeed;
|
||||
// Sprite flipping for pathfinding mode
|
||||
if (spriteRenderer != null && _aiPath.velocity.sqrMagnitude > 0.001f)
|
||||
{
|
||||
if (_aiPath.velocity.x > 0.01f)
|
||||
spriteRenderer.flipX = false;
|
||||
else if (_aiPath.velocity.x < -0.01f)
|
||||
spriteRenderer.flipX = true;
|
||||
}
|
||||
}
|
||||
_animator.SetFloat("Speed", Mathf.Clamp01(normalizedSpeed));
|
||||
}
|
||||
@@ -438,3 +457,5 @@ public class FollowerController : MonoBehaviour
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user