mirror of
https://github.com/ryzij/Cube-Tower-Defense.git
synced 2026-07-14 01:56:57 +00:00
Изменил выделение блока при наведении курсора
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user