Improved fan physics

This commit is contained in:
Pasha Bibko
2026-04-21 10:03:10 +01:00
parent 82a5a9bc1e
commit 76477ab193
16 changed files with 75 additions and 23 deletions

View File

@@ -8,6 +8,7 @@ namespace Fruitomation.Game
[Header("Fan Specific Items")]
[SerializeField] private TriggerDetector TriggerDetector;
[SerializeField] private Animator FanAnimator;
[SerializeField] private Transform FanOrigin;
private void Start()
{
@@ -15,8 +16,21 @@ namespace Fruitomation.Game
{
if (other.transform.parent.TryGetComponent(out Rigidbody2D body))
{
Vector3 force = new(-transform.localScale.x, 0f, 0f);
body?.AddForce(force * Mathf.PI, ForceMode2D.Impulse);
Vector3 start = FanOrigin.position;
Vector3 end = body.gameObject.transform.position;
Vector3 diff = end - start;
Vector3 dir = diff.normalized;
float mag = diff.magnitude;
int mask = LayerMask.GetMask("Buildings");
RaycastHit2D hit = Physics2D.Raycast(start, dir, mag, mask);
if (hit.collider is null)
{
Vector3 force = new(-transform.localScale.x, 0f, 0f);
Debug.Log(mag);
body.AddForce(force * (12f / mag), ForceMode2D.Force);
}
}
}, TriggerType.Stay);
}