유니티 엔진 (공 튀기기) .Color으로 받던 공 색상을 이미지로 변경하기.
조회수 2059회
유니티 2D를 통해서 공튀기기 게임을 만들고 있습니다. 원형 형태의 공을 만들고, 그 공의 색상을 Color을 통해서 지정해 주던것을 특정 이미지를 불러와서 적용 하고 싶습니다. 변경 하고 싶습니다. [공 사이즈에 맞게 이미지는 수정이 되어 있습니다] 이미지는 .png 확장자 입니다.
지금 사용중인 옵션
C#
public Color ballColor;
void Start () {
ballColor = Color.black;
}
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
작성하신 코드는 ballColor라는 Color타입 전역 변수에 Color.black이라는 상수를 대입한 코드입니다. 즉 색이나 이미지를 변경하는 기능은 하지 않습니다.
유니티 2D에서 이미지, 즉 스프라이트와 색을 변경하기 위해선 SpriteRenderer라는 컴포넌트에 접근할 필요가 있습니다.
이를 C# 코드로 구현하면
public void SetSprite(Sprite sprite) { GetComponent<SpriteRenderer>().sprite = sprite; } public void SetColor(Color color) { GetComponent<SpriteRenderer>().color = color; }
위와 같이 스프라이트를 변경하는 함수를 만들어 사용할 수 있습니다.
참고로 네모난 이미지로 공의 스프라이트를 채우기 위해서는 마스크라는 기능을 사용해야 합니다. 굳이 이렇게 할 필요는 없고 그냥 동그랗게 자른 투명 배경의 이미지를 사용하시면 될 것 같습니다...
만약 원래 하얀 공 이미지에 색만 조절하다가 스프라이트를 변경하고 싶은 것이라면 색을 하얀색으로 바꾸면 스프라이트도 그대로 나옵니다.
댓글 입력