37 lines
1.4 KiB
C#
37 lines
1.4 KiB
C#
![]() |
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
|
|||
|
namespace AllIn1SpriteShader
|
|||
|
{
|
|||
|
public class RandomSeed : MonoBehaviour
|
|||
|
{
|
|||
|
private readonly int randomSeedProperty = Shader.PropertyToID("_RandomSeed");
|
|||
|
private MaterialPropertyBlock propertyBlock;
|
|||
|
|
|||
|
//If you want to randomize UI Images, you'll need to create different materials since materials are always shared
|
|||
|
//This can be done at runtime with scripting or manually in the editor
|
|||
|
private void Start()
|
|||
|
{
|
|||
|
Renderer renderer = GetComponent<Renderer>();
|
|||
|
if(renderer != null)
|
|||
|
{
|
|||
|
propertyBlock = new MaterialPropertyBlock();
|
|||
|
propertyBlock.SetFloat(randomSeedProperty, Random.Range(0f, 100f));
|
|||
|
renderer.SetPropertyBlock(propertyBlock);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Image image = GetComponent<Image>();
|
|||
|
if (image != null)
|
|||
|
{
|
|||
|
if (image.material != null)
|
|||
|
{
|
|||
|
image.material.SetFloat(randomSeedProperty, Random.Range(0, 1000f));
|
|||
|
}
|
|||
|
else Debug.LogError("Missing Material on UI Image: " + gameObject.name);
|
|||
|
}
|
|||
|
else Debug.LogError("Missing Renderer or UI Image on: " + gameObject.name);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|