Files
BH3/Assets/Scripts/Assembly-CSharp/MoleMole/TileScaleUV.cs
2025-08-13 09:26:42 +08:00

61 lines
981 B
C#

using UnityEngine;
namespace MoleMole
{
[ExecuteInEditMode]
public class TileScaleUV : MonoBehaviour
{
[Header("Target Renderer")]
public Renderer targetRenderer;
private Material[] _materials;
private void Awake()
{
if (Application.isPlaying)
{
_materials = targetRenderer.materials;
}
else
{
_materials = targetRenderer.sharedMaterials;
}
SyncMaterialTiling();
}
private void SyncMaterialTiling()
{
for (int i = 0; i < _materials.Length; i++)
{
_materials[i].SetTextureScale("_MainTex", new Vector2(base.transform.localScale.x, 1f));
}
}
private void Update()
{
if (Application.isPlaying)
{
if (base.transform.hasChanged)
{
SyncMaterialTiling();
}
}
else
{
SyncMaterialTiling();
}
}
private void OnDestroy()
{
if (_materials != null)
{
for (int i = 0; i < _materials.Length; i++)
{
Object.DestroyImmediate(_materials[i]);
}
}
}
}
}