Untitled
unknown
plain_text
5 months ago
2.7 kB
4
Indexable
using UnityEngine; using TouchScript; using TouchScript.Pointers; public class FireworksOnPress : MonoBehaviour { public ParticleSystem fireworks; public Camera rayCastCamera; public float maxRaycastDistance = 100f; public AudioSource fireworks1; public float minDistanceBetweenPresses = 0f; public float pressDelay = 0f; private Vector3 lastPressPosition; private bool isFirstPress = true; private float lastPressTime = -1f; void Start() { if (rayCastCamera == null) { rayCastCamera = Camera.main; if (rayCastCamera == null) { Debug.LogError("No camera assigned and no main camera found!"); } } } private void OnEnable() { if (TouchManager.Instance != null) { TouchManager.Instance.PointersPressed += HandlePointersPressed; } } private void OnDisable() { if (TouchManager.Instance != null) { TouchManager.Instance.PointersPressed -= HandlePointersPressed; } } private void HandlePointersPressed(object sender, PointerEventArgs e) { foreach (var pointer in e.Pointers) { if (Time.time - lastPressTime < pressDelay) continue; lastPressTime = Time.time; Ray ray = rayCastCamera.ScreenPointToRay(pointer.Position); RaycastHit hit; if (Physics.Raycast(ray, out hit, maxRaycastDistance)) { if (isFirstPress || Vector3.Distance(hit.point, lastPressPosition) >= minDistanceBetweenPresses) { SpawnFireworks(hit.point); lastPressPosition = hit.point; isFirstPress = false; } else { Debug.Log("Press too close to the previous one. Minimum distance: " + minDistanceBetweenPresses); } } } } void SpawnFireworks(Vector3 position) { Debug.Log("Spawning fireworks at: " + position); ParticleSystem newFireworks = Instantiate(fireworks); AudioSource newFireworksAudio = Instantiate(fireworks1); newFireworksAudio.pitch = Random.Range(0.8f, 1.2f); newFireworksAudio.Play(); newFireworks.transform.position = position; newFireworks.Play(); Destroy(newFireworksAudio.gameObject, newFireworksAudio.clip.length); Destroy(newFireworks.gameObject, newFireworks.main.duration); } }
Editor is loading...
Leave a Comment