using System.Collections; using System.Collections.Generic; using UnityEngine; public class StickSpawner : MonoBehaviour { public GameObject StickPrefab; public float StickSpawnChance = 0.5f; public float StickSpawnMinDistance = 5f; public float StickSpawnAngle = 70f; public float StickSpawnTimer = 2f; private GameObject Player; private float LastSpawn; private bool CanSpawnNew = true; private Item SpawnedStick = null; void Awake() { Player = GameObject.FindGameObjectWithTag("Player"); LastSpawn = Time.time + StickSpawnTimer * Random.value; } void Update() { if (!CanSpawnNew) { if (SpawnedStick.Grabbed) { CanSpawnNew = true; } else { return; } } if (Time.time > LastSpawn + StickSpawnTimer) { LastSpawn = Time.time; } else { return; } var dir = transform.position - Player.transform.position; if ((Vector3.Angle(Player.transform.forward, dir) > StickSpawnAngle) || dir.magnitude > StickSpawnMinDistance && Random.value <= StickSpawnChance) { Debug.Log("Spawned"); CanSpawnNew = false; var Stick = GameObject.Instantiate(StickPrefab, transform.position + Vector3.up * 2, Random.rotation); SpawnedStick = Stick.GetComponent(); } } }