Danro-Jump/Assets/Scripts/Runtime/Gameplay/Spawning/PlatformSpawnedContent.cs
Danil Iarosh 01a6f631ef Implement Object Pooling for platform items and procedural enemies to optimize memory allocations
Подробный список изменений:
- В компонент PlatformSpawnedContent добавлен указатель SourcePrefab на оригинальный префаб.
- Переписаны методы создания и очистки в PlatformContentSpawner: при движении экрана вниз монеты, пружины и другое оборудование не уничтожаются, а деактивируются и переносятся в скрытый пул Platform Content Pool. При движении вверх объекты активируются из пула по их префабам.
- Реализован аналогичный пулинг в ProceduralEnemySpawner для процедурных врагов с очисткой пула в OnDestroy при выгрузке сцены.
2026-07-03 15:35:40 +03:00

38 lines
1.5 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
namespace DanroJump.Gameplay
{
/// <summary>
/// Маркер объекта, который был создан спавнером контента платформы.
/// </summary>
public sealed class PlatformSpawnedContent : MonoBehaviour
{
/// <summary>
/// True, если объект забран из владения платформы и не должен удаляться при ее очистке.
/// </summary>
public bool IsDetachedFromPlatform { get; private set; }
/// <summary>
/// Ссылка на оригинальный префаб, из которого был инстанцирован данный объект.
/// Используется для возврата объекта в нужную ветку пула.
/// </summary>
public GameObject SourcePrefab { get; set; }
/// <summary>
/// Помечает объект как больше не принадлежащий платформе.
/// </summary>
public void DetachFromPlatform()
{
IsDetachedFromPlatform = true;
}
/// <summary>
/// Возвращает marker в исходное состояние при новом спавне контента платформы.
/// </summary>
public void ResetForPlatformSpawn()
{
IsDetachedFromPlatform = false;
}
}
}