48 lines
1.2 KiB
C#
Raw Permalink Normal View History

2026-01-05 12:16:58 +05:30
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<SpawnableMoverBase>();
}
private void Update()
{
if (!obstaclesManager)
{
obstaclesManager = InterfaceManager.Instance.GetInterfaceInstance<ObstaclesManager>();
}
if (obstaclesManager && transform.position.z < obstaclesManager.ObstacleEndpoint.z)
{
HasAIPassed = false;
gameObject.SetActive(false);
obstaclesManager.SendObjectToPool(this);
}
}
}