using System.Collections; using System.Collections.Generic; using UnityEngine; public class GeneratorCircleRandom2D : MonoBehaviour { public GameObject obj; public float radius = 3f; void Start() { InvokeRepeating("Spawn", 0f, 0.5f); } private void Spawn() { Vector3 randomPos = Random.insideUnitSphere * radius; randomPos += transform.position; randomPos.y = 0f; Vector3 direction = randomPos - transform.position; direction.Normalize(); float dotProduct = Vector3.Dot(transform.forward, direction); float dotProductAngle = Mathf.Acos(dotProduct / transform.forward.magnitude * direction.magnitude); randomPos.x = Mathf.Cos(dotProductAngle) * radius + transform.position.x; randomPos.y = Mathf.Sin(dotProductAngle * (Random.value > 0.5f ? 1f : -1f)) * radius + transform.position.y; randomPos.z = transform.position.z; Instantiate(obj, randomPos, Quaternion.identity); } }