그런데 스크립트에서 이 작업을 하려고 하면 어떨까요?
일단은 Canvas에서 슬라이더를 찾아야 합니다.
GameObject timeFlow = wideCanvas.transform.Find("TimeFlow").gameObject;Slider slider = timeFlow.GetComponent<Slider>();
위의 트리형 Hierarchy창을 보면 TimeFlow의 차일드 Fill Area, 그리고 다시 그 차일드 Fill로 구성되어 있음을 알 수 있습니다. 그러므로 fill 부분의 색을 바꾸기 위해서는,
(TimeFlow는 slider를 컴포넌트로 가지고 있는 오브젝트이므로 slider.gameObject에 해당)
GameObject timeFlow = wideCanvas.transform.Find("TimeFlow").gameObject;Slider slider = timeFlow.GetComponent<Slider>();slider.gameObject.transform.Find("Fill Area") // transform 밑의 Fill Area 찾기.Find("Fill") // 또 그 아래의 Fill 찾기.GetComponent<Image>() // Image를 얻어.color = Color.red; // 색 바꾸기
마찬가지로 나머지 부분도 색을 바꿀 수 있습니다.
GameObject timeFlow = wideCanvas.transform.Find("TimeFlow").gameObject;Slider slider = timeFlow.GetComponent<Slider>();slider.gameObject.transform.Find("Fill Area") // transform 밑의 Fill Area 찾기.Find("Fill") // 또 그 아래의 Fill 찾기.GetComponent<Image>() // Image를 얻어.color = Color.red; // 색 바꾸기slider.gameObject.transform.Find("Background").GetComponent<Image>().color = Color.blue;slider.gameObject.transform.Find("Handle Slide Area").Find("Handle").GetComponent<Image>().color = Color.green;

댓글 없음:
댓글 쓰기