반응형
unity/c# 스크립트에서 outline 색깔과 투명도를 바꾸는 방법
그리고
new Color(r, g, b) 로 했을 때 흰 색이 나오는 등 의도한 대로 적용이 되지 않을 경우 해결방법
unity 게임 개발 중 클릭 시 텍스트 아웃라인(outline)의 색깔을 변경해줘야 하는 일이 있었습니다.
뭐 이것만 고민하며 시간을 보낸건 아니지만 이것저것 다 합쳐서 두 시간 가량 제대로된 일을 하지 못하다 결국 해결을 했습니다!!
여기저기 구글링을 다 하며 짬뽕한 내용을 공유하겠습니다,
outline의 색깔과 투명도를 주는 방법은
outline.effectColor = 색상지정(투명도 포함)
을 통해서 가능합니다.
투명도를 주는방식은
var color = new Color(r, g ,b); 선언 후
color.a = 원하는 투명도 ( float or 투명도 / 255f )
로 설정이 가능합니다.
그리고 new Color(r, g, b)로 했을 때 인식이 제대로 되지 않는 경우는
color = new Color( r / 255f, g / 255f, b / 255f); 와 같이 255f를 분모로 두면 정상적으로 작동합니다.
예시는 아래 코드에서 확인이 가능합니다.
Color color;
if (btnObj.name == selectedStageName)
{
selectedStageName = "";
color = new Color(139/255f, 192/255f, 244/255f);
color.a = 96 / 255f;
btnObj.GetComponentsInChildren<Outline>()[0].effectColor = color;
btnObj.GetComponent<Image>().sprite = stagePanel;
btnObj.GetComponentsInChildren<Image>()[2].sprite = stageInfo;
}
위의 코드는 버튼에서 outline을 찾아, 그 색깔을 바꾸고 sprite를 바꿔치는 코드입니다.
두 시간의 고생.. ㅎ
여러분들은 이렇게 고생하지마세요~~!!!
반응형
'개발 > unity' 카테고리의 다른 글
게임개발을 배우고싶다면, Unity Learn tutorial (유니티 튜토리얼) 꼭 보세요! (0) | 2021.09.13 |
---|---|
유니티 책 추천 / 왕초보 기초 잡기 좋은 유니티 교과서! (0) | 2021.07.22 |
유니티 애니메이션 빠르게하는 방법 / How to Unity animation speed quicker (0) | 2021.06.25 |
Add Unity Animation Event / 유니티 애니메이션 프레임에 이벤트 추가하는 방법 (0) | 2021.06.25 |
[unity, 유니티] GUI Layer in Main Camera for Scene ~~~ is no longer available 해결방법 (0) | 2021.03.12 |
최근댓글