using TMPro.Examples; using Unity.VisualScripting; using UnityEngine; public class GenerateOrbs : MonoBehaviour { public GameObject orb; [SerializeField] int spawnRadius; [SerializeField] int maximumOrbs; public void GenerateOrb(Transform playerTransform) { int spawnedOrbCounter = 0; int attempts = 0; int maxAttempts = maximumOrbs * 10; while (spawnedOrbCounter < maxAttempts && attempts < maxAttempts) { attempts++; float spawnX = Random.Range(-spawnRadius, spawnRadius) + playerTransform.position.x; float spawnZ = Random.Range(-spawnRadius, spawnRadius) + playerTransform.position.z; Vector3 rayOrigin = new Vector3(spawnX, 50f, spawnZ); if(Physics.Raycast(rayOrigin, Vector3.down, out RaycastHit hit, 100f)){ if (hit.collider.CompareTag("Floor")) { Vector3 spawnPosition = hit.point + new Vector3(0, 0.5f, 0); if(spawnedOrbCounter < maximumOrbs) { Instantiate(orb, spawnPosition, Quaternion.identity); spawnedOrbCounter++; } } } } } }