Adding basket blocking feature
This commit is contained in:
@@ -6,9 +6,11 @@ public class BasketController : MonoBehaviour
|
||||
public ScoreManager scoreManager;
|
||||
[SerializeField] private Transform basketHoldPoint;
|
||||
[SerializeField] private LayerMask trickDetectMask = ~0;
|
||||
[SerializeField] private float basketSpawnInterval = 3f;
|
||||
private readonly Collider2D[] overlapHits = new Collider2D[8];
|
||||
private BoxCollider2D basketCollider;
|
||||
private TrickController currentTrick;
|
||||
private float nextBasketSpawnTime;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@@ -18,6 +20,7 @@ public class BasketController : MonoBehaviour
|
||||
private void FixedUpdate()
|
||||
{
|
||||
RefreshTricksInBasket();
|
||||
TryBasketSpawn();
|
||||
}
|
||||
|
||||
private void OnCollisionEnter2D(Collision2D collision)
|
||||
@@ -33,10 +36,10 @@ public class BasketController : MonoBehaviour
|
||||
}
|
||||
|
||||
RefreshTricksInBasket();
|
||||
if (currentTrick != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (currentTrick != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
scoreManager.AddPoints(1);
|
||||
|
||||
@@ -78,6 +81,7 @@ public class BasketController : MonoBehaviour
|
||||
|
||||
currentTrick = trick;
|
||||
trick.SetBasketed(true, GetBasketAnchorPosition(trick));
|
||||
nextBasketSpawnTime = Time.time + basketSpawnInterval;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,6 +98,7 @@ public class BasketController : MonoBehaviour
|
||||
{
|
||||
currentTrick = null;
|
||||
trick.SetBasketed(false);
|
||||
nextBasketSpawnTime = 0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -124,6 +129,7 @@ public class BasketController : MonoBehaviour
|
||||
{
|
||||
currentTrick = trick;
|
||||
trick.SetBasketed(true, GetBasketAnchorPosition(trick));
|
||||
nextBasketSpawnTime = Time.time + basketSpawnInterval;
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -139,6 +145,7 @@ public class BasketController : MonoBehaviour
|
||||
{
|
||||
currentTrick.SetBasketed(false);
|
||||
currentTrick = null;
|
||||
nextBasketSpawnTime = 0f;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -162,9 +169,26 @@ public class BasketController : MonoBehaviour
|
||||
{
|
||||
currentTrick.SetBasketed(false);
|
||||
currentTrick = null;
|
||||
nextBasketSpawnTime = 0f;
|
||||
}
|
||||
}
|
||||
|
||||
private void TryBasketSpawn()
|
||||
{
|
||||
if (currentTrick == null || basketSpawnInterval <= 0f)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Time.time < nextBasketSpawnTime)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TrickController.TrySpawnAt(currentTrick.transform.position);
|
||||
nextBasketSpawnTime = Time.time + basketSpawnInterval;
|
||||
}
|
||||
|
||||
private Vector2? GetBasketAnchorPosition(TrickController trick)
|
||||
{
|
||||
if (basketHoldPoint != null)
|
||||
|
||||
Reference in New Issue
Block a user