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

@@ -2,6 +2,7 @@
* korralik teleportation minigame'idesse, kasutades TeleportProviderit, nagu button
* quest marker peaks jätma nähtavad noolekesed enda liikumise teele
* teha build kus archery range'is spawnitud objektid
* fix FMOD ChannelControl errors
* Unity crash after stopping the game - most likely due to FMOD trying to do something with invalid audio instances
* speech-to-text:
* uurida miks buildis Whisper halvemini töötab
@@ -13,14 +14,14 @@
* professor võiks öelda "good job, continue..." pärast esimest successi
* kui kõik configurationid tehtud, siis professor ütleb "thank you"
* particle effectid 3d printerile
* particle effectid shape scannerile, kui config success
* peab mängijale kuidagi selgitama, kuidas scale'ida prinditud objekte
* prinditud objekti scale'imisele min ja max size limiit
* archery range:
* võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi
* kui archery range läbi, võiks npc öelda "good job, try again..."
* particle effectid model display'le
* cafe:
* cafe:
* võiks saada hinnata saadud tellimust
* npc võiks olla keeratud sinu poole juba kaugelt
Can't/Won't Do:

View File

@@ -84,7 +84,7 @@ namespace _PROJECT.Multiplayer.NewBow
public void SetLaunchDirection(Vector3 direction)
{
Debug.Log("Setting launch direction: " + direction);
// Debug.Log("Setting launch direction: " + direction);
if (direction != Vector3.zero)
{
_networkBehavior.SetLaunchDirection(direction);

File diff suppressed because it is too large Load Diff

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);

View File

@@ -74,7 +74,6 @@ public class TwoHandScaleGrabInteractable : XRGrabInteractable
return;
float ratio = current / initialHandsDistance;
Debug.Log("distance ratio: " + ratio);
Vector3 desired = initialScale * ratio;
float uniform = Mathf.Clamp(desired.x, minScale, maxScale);

View File

@@ -1 +1 @@
{"HighScore":1.0}
{"HighScore":340.0}