์ด๋ป๊ฒ ์ ๊ทผํจ?
์ฐธ๊ณ ๋ก ๋ชจ๋๋ RandomBetweenTwoColor ์
ParticleSystem.main.startColor
์ ์ค๋ช ์ด ๋ถ์กฑํ๋ค ๊ฑฐ๊ธฐ๊น์ง ์๋๋ฐ ๋ก๊ทธ์ฐ์ด๋ณด๋๊น ์ฒซ๋ฒ์งธ ์ปฌ๋ฌ๋ง ๋์ค๊ณ ๋๋ฒ์งธ์ปฌ๋ฌ๋ก ์ ๊ทผํ๋๋ฒ์ธ ๋ชจ๋ฅด๊ฒ ๋ค
๊ทธ ์ปฌ๋ฌ ์์ฒด๊ฐ MinMaxGradient๋ผ๋ ํด๋์ค์ main.startColor = new ParticleSystem.MinMaxGradient(min, max);
์.. ๋ฏธ์ํ๋ฐ ํ๋ฒ๋ง ๋ ์๋ ค์ฃผ๋ผ ParticleSystem ptc ์ Getcomponent๋ก ํ ๋นํ๊ณ var color = ptc.main.startColir; color = new ParticleSystem.MinMaxGradient(์๊น, ์๊น); ์ด์ผ ํด๋ดค๋๋ฐ ์๋๊ฐ๋ด ์๋ฐ๋๋ค
์ค ์ฌ๋ฐ ํผ์ ๋ฐ๊ฟจ๋ค ๋ต๋ณ๊ณ ๋ง๋น ใ ใ
https://docs.unity3d.com/ScriptReference/ParticleSystem.MainModule-startColor.html
์ด๊ฑฐ ๋ณด๊ณ ํด๋ณด๋ ค๊ณ ํ๋๋ฐ ParticleSystemGradientMode๊ฐ Gradient์ด๋ฉด ์ด๋ป๊ฒ ํด์ผํ๋๊ฑฐ์??? MinMaxGradient์ ๋ํ ์ค๋ช ์ ๋ colorOverLifetime์ ๋ํ ๊ฒ๋ง ๋์์์ด๊ฐ์ง๊ณ ๋ฏธ์น๊ฒ ๋ค.. var mainModule = parent.GetComponent().main; Gradient gradient = mainModule.startColor.gradient; GradientColorKey[] colorKeys = gradient.colorKeys; GradientAlphaKey[] alphaKeys = gradient.alphaKeys;
์ด๋ ๊ฒ ๋ค๊ณ ์์ colorKeys[i].color๊ฐ ๋ด๋ง๋๋ก ๋ฐ๊ฟ์ฃผ๊ณ gradient.SetKeys(colorKeys, alphaKeys); mainModule.startColor = gradient; ์ด๋ ๊ฒ ์ ๋ ฅํด๋ด๋ ์ ํ ์๋ฐ๋.. mainModule.startColor = new ParticleSystem.MinMaxGradient(gradient); ์ด๋ ๊ฒ ํด๋ด๋ ์ ํ ์๋ฐ๋.. ๋ฏธ์น๊ฒ ๋ค ใ ก ใ ก..
Color๋ชจ๋๋ TwoColors๋ชจ๋๋ ์๋ง ๋๋๋ฐ Gradient ์ด๊ฑฐ๋ startColor๊ณ colorBySpeed๊ณ colorOverLifetime๊ณ ๋ค ์๋ฐ๋;;
์.. GetKeys๋ฅผ ์ฐ๋ GradientColorKey๋ฅผ ์ฐ๋ Colorํค๋ฅผ ์ด๋ป๊ฒ ๊ฐ์ ธ์๋ ์๊ด์๊ณ ๋ค๋ง colorKeys[i].color๊ฐ์ ์์ ํ ๋ color์ 4๋ฒ์งธ ์ธ์ alpha์ ํด๋นํ๋ ๊ฐ์ ๋ฌด์กฐ๊ฑด 1๋ก ํด์ผํ๋ค..? alphaKeys[i].alpha๋ผ๋ ์กด์ฌ๊ฐ ์์ด์ ํน์๋ ํด๊ฐ์ง๊ณ ์คํํด๋ดค๋๋ ์ง์ง๋๋ผ.. color์ 4๋ฒ์งธ๊ฐ 1์ด ์๋๋ฉด ์๋ฌด๋ฆฌ ์ ๋ ฅํด๋ ์ ๋ ์๋ณํ๋๋ผ..
ParticleSystem.main.startColor
์ ์ค๋ช ์ด ๋ถ์กฑํ๋ค ๊ฑฐ๊ธฐ๊น์ง ์๋๋ฐ ๋ก๊ทธ์ฐ์ด๋ณด๋๊น ์ฒซ๋ฒ์งธ ์ปฌ๋ฌ๋ง ๋์ค๊ณ ๋๋ฒ์งธ์ปฌ๋ฌ๋ก ์ ๊ทผํ๋๋ฒ์ธ ๋ชจ๋ฅด๊ฒ ๋ค
๊ทธ ์ปฌ๋ฌ ์์ฒด๊ฐ MinMaxGradient๋ผ๋ ํด๋์ค์ main.startColor = new ParticleSystem.MinMaxGradient(min, max);
์.. ๋ฏธ์ํ๋ฐ ํ๋ฒ๋ง ๋ ์๋ ค์ฃผ๋ผ ParticleSystem ptc ์ Getcomponent๋ก ํ ๋นํ๊ณ var color = ptc.main.startColir; color = new ParticleSystem.MinMaxGradient(์๊น, ์๊น); ์ด์ผ ํด๋ดค๋๋ฐ ์๋๊ฐ๋ด ์๋ฐ๋๋ค
์ค ์ฌ๋ฐ ํผ์ ๋ฐ๊ฟจ๋ค ๋ต๋ณ๊ณ ๋ง๋น ใ ใ
https://docs.unity3d.com/ScriptReference/ParticleSystem.MainModule-startColor.html
์ด๊ฑฐ ๋ณด๊ณ ํด๋ณด๋ ค๊ณ ํ๋๋ฐ ParticleSystemGradientMode๊ฐ Gradient์ด๋ฉด ์ด๋ป๊ฒ ํด์ผํ๋๊ฑฐ์??? MinMaxGradient์ ๋ํ ์ค๋ช ์ ๋ colorOverLifetime์ ๋ํ ๊ฒ๋ง ๋์์์ด๊ฐ์ง๊ณ ๋ฏธ์น๊ฒ ๋ค.. var mainModule = parent.GetComponent().main; Gradient gradient = mainModule.startColor.gradient; GradientColorKey[] colorKeys = gradient.colorKeys; GradientAlphaKey[] alphaKeys = gradient.alphaKeys;
์ด๋ ๊ฒ ๋ค๊ณ ์์ colorKeys[i].color๊ฐ ๋ด๋ง๋๋ก ๋ฐ๊ฟ์ฃผ๊ณ gradient.SetKeys(colorKeys, alphaKeys); mainModule.startColor = gradient; ์ด๋ ๊ฒ ์ ๋ ฅํด๋ด๋ ์ ํ ์๋ฐ๋.. mainModule.startColor = new ParticleSystem.MinMaxGradient(gradient); ์ด๋ ๊ฒ ํด๋ด๋ ์ ํ ์๋ฐ๋.. ๋ฏธ์น๊ฒ ๋ค ใ ก ใ ก..
Color๋ชจ๋๋ TwoColors๋ชจ๋๋ ์๋ง ๋๋๋ฐ Gradient ์ด๊ฑฐ๋ startColor๊ณ colorBySpeed๊ณ colorOverLifetime๊ณ ๋ค ์๋ฐ๋;;
์.. GetKeys๋ฅผ ์ฐ๋ GradientColorKey๋ฅผ ์ฐ๋ Colorํค๋ฅผ ์ด๋ป๊ฒ ๊ฐ์ ธ์๋ ์๊ด์๊ณ ๋ค๋ง colorKeys[i].color๊ฐ์ ์์ ํ ๋ color์ 4๋ฒ์งธ ์ธ์ alpha์ ํด๋นํ๋ ๊ฐ์ ๋ฌด์กฐ๊ฑด 1๋ก ํด์ผํ๋ค..? alphaKeys[i].alpha๋ผ๋ ์กด์ฌ๊ฐ ์์ด์ ํน์๋ ํด๊ฐ์ง๊ณ ์คํํด๋ดค๋๋ ์ง์ง๋๋ผ.. color์ 4๋ฒ์งธ๊ฐ 1์ด ์๋๋ฉด ์๋ฌด๋ฆฌ ์ ๋ ฅํด๋ ์ ๋ ์๋ณํ๋๋ผ..