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/
|
/shelf/
|
||||||
/workspace.xml
|
/workspace.xml
|
||||||
|
|
||||||
# Rider ignored files
|
# Rider ignored files
|
||||||
|
/projectSettingsUpdater.xml
|
||||||
/.idea.SummerGame.iml
|
/.idea.SummerGame.iml
|
||||||
/contentModel.xml
|
/contentModel.xml
|
||||||
/modules.xml
|
/modules.xml
|
||||||
/projectSettingsUpdater.xml
|
# Ignored default folder with query files
|
||||||
|
/queries/
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
|
|
||||||
# Datasource local storage ignored files
|
# Datasource local storage ignored files
|
||||||
/dataSources/
|
/dataSources/
|
||||||
/dataSources.local.xml
|
/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