style
에 작성하여 요소에 대한 스타일 값을 설정할 수 있습니다. 하지만 요소의 최종 계산된 스타일을 얻으려면 resolvedStyle
에서 읽어야 합니다.
C# 스크립트에서는 시각적 요소의 ‘style’ 프로퍼티에 직접 스타일을 설정할 수 있습니다.예를 들어 다음 코드는 버튼의 배경색을 빨간색으로 설정합니다.
button.style.backgroundColor = Color.red
시각적 요소에 USS(Unity 스타일 시트)를 추가할 수도 있습니다. Unity는 USS 파일을 C# 스크립트에서 StyleSheet
오브젝트로 표현합니다.
시각적 요소에 스타일시트를 추가하려면 다음 단계를 따르십시오.
AssetDatabase.Load()
또는 Resources.Load()
와 같은 표준 Unity API를 사용하여 StyleSheet
오브젝트를 로드합니다.styleSheets
프로퍼티를 사용하여 StyleSheet
오브젝트를 추가합니다.예를 들어, 로컬 변수 ’styleSheet’에 스타일시트가 있고 로컬 변수 ’element’에 요소가 있다고 가정하면 다음 예제에서는 스타일시트를 요소에 추가합니다.
element.styleSheets.Add(styleSheet);
참고:스타일 규칙은 시각적 요소와 그 모든 자손에 적용되지만 요소의 부모 또는 형제에는 적용되지 않습니다.USS 파일을 변경하면 이 스타일시트를 사용하는 UI가 자동으로 새로 고침됩니다.
요소의 스타일 값은 적용된 여러 클래스, 조상으로부터의 상속, UXML 또는 C# 코드의 인라인 스타일 등 다양한 소스에서 계산됩니다. 이러한 값은 프레임마다 변경될 수 있습니다. style
은 요소에 대한 인라인 스타일만 보유하며 다른 소스는 반영하지 않습니다. resolvedStyle
은 현재 프레임의 모든 소스를 고려하여 최종 계산된 값을 갖습니다.
예를 들어 인라인 스타일을 사용하여 요소의 너비를 설정하는 경우, style
과 resolvedStyle
은 모두 동일한 값으로 시작합니다. 요소가 계층 구조에 추가되면 레이아웃이 업데이트될 때까지 resolvedStyle.width
는 NaN
이 될 수 있습니다. 클래스에서 너비를 백분율로 정의하면 계산된 너비는 border-width
및 padding
과 같은 부모 프로퍼티에 의존합니다. style.width
는 값을 변경할 수 있는 전환과 같이 상대적인 값을 제공할 수 있지만 resolvedStyle.width
는 실제 렌더링된 너비를 제공합니다.
다음 예시는 요소의 최종 계산된 너비를 가져오는 방법을 보여 줍니다.
float width = element.resolvedStyle.width;