1
0
forked from cgvr/DeltaVR

shape scanner emits particles on config complete

This commit is contained in:
2026-03-07 11:36:43 +02:00
parent dc077d5ac6
commit 96b21d0df9
8 changed files with 4938 additions and 14 deletions

View File

@@ -46,6 +46,7 @@ public class ShapeScanner : MonoBehaviour
public Transform rayParent;
public TextMeshProUGUI currentConfigurationDisplay;
public TextMeshProUGUI correctPercentageDisplay;
public ParticleSystem particles;
public XRInteractionManager interactionManager;
[Header("Materials")]
@@ -134,7 +135,7 @@ public class ShapeScanner : MonoBehaviour
UpdateDisplay(calculateCorrectPercentage());
}
private void DestroyCollidingObjects()
private void OnConfigurationComplete()
{
HashSet<GameObject> allCollidingObjects = new HashSet<GameObject>();
foreach (ShapeScannerRay ray in existingRays)
@@ -157,6 +158,10 @@ public class ShapeScanner : MonoBehaviour
collidingObject.transform.position = Vector3.zero;
Destroy(collidingObject);
}
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
if (!particles.isPlaying) particles.Play();
particles.Emit(100);
}
private float calculateCorrectPercentage()
@@ -176,16 +181,13 @@ public class ShapeScanner : MonoBehaviour
if (correctPercentage >= configurations[currentConfiguration].requiredCorrectPercentage)
{
UpdateCurrentConfigurationDisplay(currentConfiguration + 1);
OnConfigurationComplete();
if (currentConfiguration + 1 < configurations.Count)
{
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
DestroyCollidingObjects();
currentConfiguration++;
InitializeConfiguration(configurations[currentConfiguration]);
} else
{
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject);
DestroyCollidingObjects();
// Initialize configuration with all rays requiring collision
List<BoolRow> rows = Enumerable.Repeat(new BoolRow(Enumerable.Repeat(false, 6).ToList()), 6).ToList();
ShapeScannerConfiguration configuration = new ShapeScannerConfiguration(6, 100, rows);