반응형
1. randomColor.HSV
HSV는 Hue(색조), Saturation(채도), Value(명도)로 구성되어 있다.
public static Color ColorHSV();
public static Color ColorHSV(float hueMin, float hueMax);
public static Color ColorHSV(float hueMin, float hueMax, float saturationMin, float saturationMax);
public static Color ColorHSV(float hueMin, float hueMax, float saturationMin, float saturationMax, float valueMin, float valueMax)
매개 변수
hueMin, hueMax - 0부터 1사이의 값을 가진다. 0은 빨강, 0.33(120/360) 초록, 0.67(240/360) 파랑이다.
saturationMin, saturationMax - 0부터 1의 값을 가진다. 0에 가까울수록 무채색을 가지고 1에 가까울수록 진한색을 나타낸다.
valueMin, valueMax - 0부터 1의 값을 가진다. 0은 완전히 어두운 상태를 나타내며 1은 최고로 밝은 상태이다.
Code 예시
01 매개변수 아무것도 지정 안할 시
void Start()
{
Color randomColor = Random.ColorHSV();
for(int i = 0; i<3 ; i++)
{
GameObject child = Instantiate(cube);
Renderer renderer = child.GetComponent<Renderer>();
child.transform.position = new Vector3(i*2, 0, 0);
renderer.material.color = Random.ColorHSV();
}
}
02 hue 값 지정하기
void Start()
{
Color randomColor = Random.ColorHSV(0.3f,0.6f);
for(int i = 0; i<3 ; i++)
{
GameObject child = Instantiate(cube);
Renderer renderer = child.GetComponent<Renderer>();
child.transform.position = new Vector3(i*2, 0, 0);
renderer.material.color = Random.ColorHSV();
}
}
03 saturation 값 지정하기
void Start()
{
Color randomColor = Random.ColorHSV(0.3f,0.6f,0.7f,0.9f);
for(int i = 0; i<3 ; i++)
{
GameObject child = Instantiate(cube);
Renderer renderer = child.GetComponent<Renderer>();
child.transform.position = new Vector3(i*2, 0, 0);
renderer.material.color = Random.ColorHSV();
}
}
04 value 값 지정하기
void Start()
{
Color randomColor = Random.ColorHSV(0.3f,0.6f,0.7f,0.9f,0.9f,1.0f);
for(int i = 0; i<3 ; i++)
{
GameObject child = Instantiate(cube);
Renderer renderer = child.GetComponent<Renderer>();
child.transform.position = new Vector3(i*2, 0, 0);
renderer.material.color = Random.ColorHSV();
}
}
2. RGBA
RGBA는 Red, Green, Blue, Alpha(투명도)로 이루어져 있다. 각 요소들은 0부터 1까지의 값을 가지며 0에 가까울수록 해당 색이 연해지고 1에가까월 수록 해당 색깔이 진하다.
Color(float R, float G, float B);
Color(float R, float G, float B, float A);
Code 예시
01 Alpha가 없는 경우
Random.value는 무작위로 0부터 1까지의 값을 생성한다.
void Start()
{
Color randomColor = new Color(Random.value, Random.value, Random.value);
for(int i = 0; i<3 ; i++)
{
GameObject child = Instantiate(cube);
Renderer renderer = child.GetComponent<Renderer>();
child.transform.position = new Vector3(i*2, 0, 0);
renderer.material.color = Random.ColorHSV();
}
}
02 Alpha가 있는 경우
void Start()
{
Color randomColor = new Color(Random.value, Random.value, Random.value, Random.value);
for(int i = 0; i<3 ; i++)
{
GameObject child = Instantiate(cube);
Renderer renderer = child.GetComponent<Renderer>();
child.transform.position = new Vector3(i*2, 0, 0);
renderer.material.color = Random.ColorHSV();
}
}
반응형
'유니티 공부 > Unity' 카테고리의 다른 글
Unity - Resources.Load (0) | 2023.05.27 |
---|---|
Unity - Instantiate (0) | 2023.05.27 |
Unity - 부모 오브젝트 할당하기(Object Instantiate()) (0) | 2023.05.22 |
Unity - 옵저버 패턴(Observer Pattern) (0) | 2023.05.21 |
Unity - Coroutine(코루틴) (0) | 2023.05.20 |
댓글