์„ค๋ช… : UI ์˜ค๋ธŒ์ ํŠธ์˜ Image์ปดํฌ๋„ŒํŠธ์˜ Material์˜ ์ถœ๋ ฅ์ด ์ธ๊ฒŒ์ž„๊ณผ Scene์ด ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ด. ์ผ๋ฐ˜ ์˜ค๋ธŒ์ ํŠธ(UI๊ฐ€ ์•„๋‹Œ)์€ ์ธ๊ฒŒ์ž„์—์„œ ์ •์ƒ์ ์œผ๋กœ Scene๊ณผ ๊ฐ™์ด ๋‚˜์˜ด.
๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์ธ๊ฒŒ์ž„์—์„œ ์ด ์˜ค๋ธŒ์ ํŠธ์˜ ์ถœ๋ ฅ์ด ์•„๋ž˜ Sceneํ™”๋ฉด์ฒ˜๋Ÿผ ๋‚˜์™”์œผ๋ฉด ์ข‹๊ฒ ์Œ.


* ์ผ๋ฐ˜ ์˜ค๋ธŒ์ ํŠธ๋Š” ์ •์ƒ์ถœ๋ ฅ์ด ๋จ UI๋งŒ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ด ์ด์œ ๋ชจ๋ฅด๊ฒ ์Œใ…‡ใ…‡;;


๋ฒ„์ „ : 2021.3.1f1. ์ƒ์„ฑํ•  ๋•Œ 2D๋กœ ํ–ˆ๋Š”์ง€ 2D URP๋กœ ํ–ˆ๋Š”์ง€ ๊ธฐ์–ต์•ˆ๋‚จ..
์ถ”๊ฐ€ ์—์…‹
All in 1 sprite Shader(์œ ๋ฃŒ)

ํฌ์ŠคํŠธํ”„๋กœ์„ธ์‹ฑ(๋ญ”์ž‘์šฉ์ธ์ง€ ์•„์ง ์ž˜๋ชจ๋ฆ„)

TMP, FEEL(์œ ๋ฃŒ)




Scene์—์„  ์ •์ƒ ์ถœ๋ ฅ๋˜๋Š” ์‚ฌ์ง„

7cf3c028e2f206a26d81f6e7428771695a


์ธ๊ฒŒ์ž„์—์„  ์ถœ๋ ฅ์ด ์•ˆ๋˜๋Š” ์‚ฌ์ง„

7ff3c028e2f206a26d81f6e74e89766948



ํ•ด๋‹น ๋ฉ”ํ…Œ๋ฆฌ์–ผ ํšจ๊ณผ ๋‚ด์šฉ(Allin1Shader)

7ef3c028e2f206a26d81f6e141847c6a


79f3c028e2f206a26d81f6e045897668
๋ฉ”์ธ์นด๋ฉ”๋ผ ์ปดํฌ๋„ŒํŠธ ํ˜„ํ™ฉ

a67424aa180ab47fba341f419d2cf873c3ea9838b5a6573da826dbf417ac

์ผ๋ฐ˜ ์˜ค๋ธŒ์ ํŠธ(UI๊ฐ€ ์•„๋‹Œ)๊ฐ€ ์ •์ƒ ์ž‘๋™ํ•˜๋Š” ์Šค์ƒท

a1400cad352ab45eaa340e599a11d9b0a9abcb72e42bc75bf408ebb902aa76a4d8


UI ์˜ค๋ธŒ์ ํŠธ์— ๋‹ฌ๋ฆฐ ์Šคํฌ๋ฆฝํŠธ ๋žœ๋ค์‹œ๋“œ ๋ฆฌ์Šคํƒ€ํŠธ ๋‚ด์šฉ(๋ณ„๊ฑฐ์—†์Œ ์ด๊ฑด ๊ป๋‹ค์ผœ๋„ ๋˜‘๊ฐ™์€๋ฐ ํ˜น์‹œ ๋ชฐ๋ผ์„œ ๋„ฃ์Œ)

public class RandomSeed_ReStart : MonoBehaviour
{
[SerializeField]
private float startTime = 0.01f;
private readonly int randomSeedProperty = Shader.PropertyToID("_RandomSeed");
private MaterialPropertyBlock propertyBlock;
private void Start()
{
StartCoroutine(RestartSeed());
}
IEnumerator RestartSeed()
{
yield return new WaitForSeconds(startTime);
SpriteRenderer renderer = GetComponent<SpriteRenderer>();
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);
}
this.enabled = false;
}
}