Добавил задержку перед удалением блока

This commit is contained in:
2026-07-03 00:57:17 +03:00
parent 6d7ee18874
commit daac4b0b33
2 changed files with 7 additions and 1 deletions
+1
View File
@@ -171,6 +171,7 @@ MonoBehaviour:
_pathStart: {fileID: 1415278839} _pathStart: {fileID: 1415278839}
_pathEnd: {fileID: 761061820} _pathEnd: {fileID: 761061820}
_resetBlockTime: 0.03 _resetBlockTime: 0.03
_destroyBlockDelay: 0.5
_pathFinish: _pathFinish:
- {fileID: 1987853413} - {fileID: 1987853413}
- {fileID: 1569763699} - {fileID: 1569763699}
+6 -1
View File
@@ -13,12 +13,15 @@ public class SandPathBuildService : MonoBehaviour
[SerializeField] private BlockScript _pathStart; [SerializeField] private BlockScript _pathStart;
[SerializeField] private BlockScript _pathEnd; [SerializeField] private BlockScript _pathEnd;
[SerializeField] private float _resetBlockTime = 0.5f; [SerializeField] private float _resetBlockTime = 0.5f;
[SerializeField] private float _destroyBlockDelay = 1f;
[SerializeField] private BlockScript[] _pathFinish; [SerializeField] private BlockScript[] _pathFinish;
[SerializeField] private BlockScript[] _predefinedBlocks; [SerializeField] private BlockScript[] _predefinedBlocks;
[SerializeField] private UnityEvent<BlockScript> _onBlockDestroy; [SerializeField] private UnityEvent<BlockScript> _onBlockDestroy;
[SerializeField] private UnityEvent _onBuildComplete; [SerializeField] private UnityEvent _onBuildComplete;
private float _spawnBlockTime;
public event UnityAction<BlockScript> OnBlockDestroy public event UnityAction<BlockScript> OnBlockDestroy
{ {
add => _onBlockDestroy.AddListener(value); add => _onBlockDestroy.AddListener(value);
@@ -95,7 +98,8 @@ public class SandPathBuildService : MonoBehaviour
return; return;
if (block == _currentBlock) if (block == _currentBlock)
{ {
ResetLastBlock(); if (Time.time - _spawnBlockTime >= _destroyBlockDelay)
ResetLastBlock();
return; return;
} }
if (!block.CompareTag("GrassBlock") || if (!block.CompareTag("GrassBlock") ||
@@ -106,6 +110,7 @@ public class SandPathBuildService : MonoBehaviour
var t = block.transform; var t = block.transform;
_currentBlock = Instantiate(_blockPrefab, t.position, t.localRotation, t.parent); _currentBlock = Instantiate(_blockPrefab, t.position, t.localRotation, t.parent);
_blocksInPath.Add(_currentBlock); _blocksInPath.Add(_currentBlock);
_spawnBlockTime = Time.time;
if (_pathFinish.Contains(block)) if (_pathFinish.Contains(block))
{ {
_currentBlock = _pathEnd; _currentBlock = _pathEnd;