Merge branch 'main' of https://gitea.bibizyan.space/vladislove/SummerGame
This commit is contained in:
commit
36f1e7266d
14
.idea/.idea.SummerGame/.idea/.gitignore
vendored
14
.idea/.idea.SummerGame/.idea/.gitignore
vendored
@ -1,17 +1,15 @@
|
||||
# Default ignored files
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
|
||||
# Rider ignored files
|
||||
/projectSettingsUpdater.xml
|
||||
/.idea.SummerGame.iml
|
||||
/contentModel.xml
|
||||
/modules.xml
|
||||
/projectSettingsUpdater.xml
|
||||
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
|
||||
# Ignored default folder with query files
|
||||
/queries/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
|
||||
4
.idea/.idea.SummerGame/.idea/encodings.xml
Normal file
4
.idea/.idea.SummerGame/.idea/encodings.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
|
||||
</project>
|
||||
@ -1,82 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI; // Обязательно для работы со Slider
|
||||
|
||||
public class TextureAtlasSliderController : MonoBehaviour
|
||||
{
|
||||
[Header("Ссылки на объекты")]
|
||||
[SerializeField] private Renderer targetRenderer; // Модель, на которой меняем текстуру
|
||||
[SerializeField] private Slider sliderX; // Слайдер для смещения по оси X
|
||||
[SerializeField] private Slider sliderY; // Слайдер для смещения по оси Y
|
||||
|
||||
[Header("Масштаб текстуры (Tiling)")]
|
||||
[SerializeField] private Vector2 tiling = new Vector2(0.5f, 0.5f); // Например, 0.5 для сетки 2х2
|
||||
|
||||
private Material targetMaterial;
|
||||
|
||||
void Start()
|
||||
{
|
||||
// Если рендерер не назначен вручную, пытаемся найти его на этом же объекте
|
||||
if (targetRenderer == null)
|
||||
{
|
||||
targetRenderer = GetComponent<Renderer>();
|
||||
}
|
||||
|
||||
if (targetRenderer != null)
|
||||
{
|
||||
// Кешируем материал, чтобы не создавать копии в памяти каждый кадр
|
||||
targetMaterial = targetRenderer.material;
|
||||
|
||||
// Устанавливаем начальный масштаб (Tiling)
|
||||
targetMaterial.mainTextureScale = tiling;
|
||||
}
|
||||
|
||||
// Настраиваем слайдер X
|
||||
if (sliderX != null)
|
||||
{
|
||||
sliderX.minValue = 0f;
|
||||
sliderX.maxValue = 1f;
|
||||
// Подписываемся на событие изменения значения слайдера
|
||||
sliderX.onValueChanged.AddListener(OnOffsetXChanged);
|
||||
// Устанавливаем начальное положение слайдера под текущее смещение материала
|
||||
sliderX.value = targetMaterial != null ? targetMaterial.mainTextureOffset.x : 0f;
|
||||
}
|
||||
|
||||
// Настраиваем слайдер Y
|
||||
if (sliderY != null)
|
||||
{
|
||||
sliderY.minValue = 0f;
|
||||
sliderY.maxValue = 1f;
|
||||
sliderY.onValueChanged.AddListener(OnOffsetYChanged);
|
||||
sliderY.value = targetMaterial != null ? targetMaterial.mainTextureOffset.y : 0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Метод вызывается автоматически при движении слайдера X
|
||||
private void OnOffsetXChanged(float value)
|
||||
{
|
||||
if (targetMaterial != null)
|
||||
{
|
||||
Vector2 currentOffset = targetMaterial.mainTextureOffset;
|
||||
currentOffset.x = value;
|
||||
targetMaterial.mainTextureOffset = currentOffset;
|
||||
}
|
||||
}
|
||||
|
||||
// Метод вызывается автоматически при движении слайдера Y
|
||||
private void OnOffsetYChanged(float value)
|
||||
{
|
||||
if (targetMaterial != null)
|
||||
{
|
||||
Vector2 currentOffset = targetMaterial.mainTextureOffset;
|
||||
currentOffset.y = value;
|
||||
targetMaterial.mainTextureOffset = currentOffset;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
// Отписываемся от событий при уничтожении объекта во избежание утечек памяти
|
||||
if (sliderX != null) sliderX.onValueChanged.RemoveListener(OnOffsetXChanged);
|
||||
if (sliderY != null) sliderY.onValueChanged.RemoveListener(OnOffsetYChanged);
|
||||
}
|
||||
}
|
||||
@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5d2cf3004b777404084244b8470fc294
|
||||
Loading…
Reference in New Issue
Block a user