Изменил выделение блока при наведении курсора

This commit is contained in:
2026-06-02 00:26:29 +03:00
parent 5ab7c79634
commit 6f80fbd47c
4 changed files with 177 additions and 7 deletions
+24 -5
View File
@@ -1,10 +1,10 @@
using System;
using UnityEngine;
public class BlockSelector : MonoBehaviour
{
[SerializeField] private BlockDetector _blockDetector;
[SerializeField] private Material _selectedMaterial;
[SerializeField] private bool _isGrassOnly = true;
[SerializeField] private BlockMaterial[] _selectedMaterials;
private Renderer _selectedBlockRenderer;
private Material _oldMaterial;
@@ -25,16 +25,35 @@ public class BlockSelector : MonoBehaviour
}
}
private Material GetMaterialByBlockType(BlockScript.BlockType type)
{
foreach (var blockMaterial in _selectedMaterials)
{
if (blockMaterial.Type == type)
return blockMaterial.Material;
}
return null;
}
private void OnBlockDetected(BlockScript block)
{
if (_isGrassOnly && !block.CompareTag("GrassBlock"))
var selectedMaterial = GetMaterialByBlockType(block.Type);
if (selectedMaterial == null)
return;
if (_selectedBlockRenderer != null)
if (_selectedBlockRenderer != null)
_selectedBlockRenderer.material = _oldMaterial;
_selectedBlockRenderer = block.GetComponentInChildren<Renderer>();
_oldMaterial = _selectedBlockRenderer.material;
_selectedBlockRenderer.material = _selectedMaterial;
_selectedBlockRenderer.material = selectedMaterial;
}
[Serializable]
private struct BlockMaterial
{
public Material Material;
public BlockScript.BlockType Type;
}
}