유니티 엔진 (공 튀기기) .Color으로 받던 공 색상을 이미지로 변경하기.

조회수 2057회

유니티 2D를 통해서 공튀기기 게임을 만들고 있습니다. 원형 형태의 공을 만들고, 그 공의 색상을 Color을 통해서 지정해 주던것을 특정 이미지를 불러와서 적용 하고 싶습니다. 변경 하고 싶습니다. [공 사이즈에 맞게 이미지는 수정이 되어 있습니다] 이미지는 .png 확장자 입니다.

지금 사용중인 옵션

C#

public Color ballColor;

void Start () {
    ballColor = Color.black;
}
  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 잘은 모르지만 원하시는 건 아마 텍스쳐(texture)가 아닐지요? 보통 "이미지로 채우는 것"을 텍스쳐라고 합니다. 엽토군 2018.10.9 12:23

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;
    }
    

    위와 같이 스프라이트를 변경하는 함수를 만들어 사용할 수 있습니다.

    참고로 네모난 이미지로 공의 스프라이트를 채우기 위해서는 마스크라는 기능을 사용해야 합니다. 굳이 이렇게 할 필요는 없고 그냥 동그랗게 자른 투명 배경의 이미지를 사용하시면 될 것 같습니다...

    만약 원래 하얀 공 이미지에 색만 조절하다가 스프라이트를 변경하고 싶은 것이라면 색을 하얀색으로 바꾸면 스프라이트도 그대로 나옵니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)