using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class ObstacleBase : ObjectBase { [SerializeField] private TrackObstacleType objectType; [SerializeField] private Transform endPoint; private SpawnableMoverBase obstacleMoverBase; private ObstaclesManager obstaclesManager; public SpawnableMoverBase ObstacleMover => obstacleMoverBase; public Transform EndPoint => endPoint; public TrackObstacleType ObstacleType => objectType; public bool HasAIPassed { get; private set; } public void SetAIPassedState(bool state) { HasAIPassed = state; } private void Awake() { obstacleMoverBase = GetComponent(); } private void Update() { if (!obstaclesManager) { obstaclesManager = InterfaceManager.Instance.GetInterfaceInstance(); } if (obstaclesManager && transform.position.z < obstaclesManager.ObstacleEndpoint.z) { HasAIPassed = false; gameObject.SetActive(false); obstaclesManager.SendObjectToPool(this); } } }