fullstack

[Unity] Spine 오브젝트에 Mask 적용하는 법

Unity

unity-spine 환경에서 sprite mask 기능을 지원하게 되어서 Spine 오브젝트에 쉽게 Mask를 적용할 수 있습니다

 

unity-spine 예제의 spine boy를 불러와 적용해 보겠습니다

 

 

이 게임오브젝트의 SkeletonAnimation 컴포넌트를 보면 Mask Interaction 이라는 항목이 있습니다

 

여기서 'Visible Inside Mask' 혹은 'Visible Outside Mask' 를 선택하면 되는데,

'Visible Inside Mask'는 추후에 생성할 sprite mask 의 영역만큼만 spine 오브젝트가 마스킹되서 보이게 되고,

'Visible outside Mask'는 sprite mask의 영역을 제외한 만큼만 spine 오브젝트가 보이게 됩니다

 

'Visible Outside Mask'를 선택해 보겠습니다

 

그럼 이렇게 자동으로 OutsideMask 메테리얼이 자동으로 생성되고 해당 spine 오브젝트에 적용이됩니다

 

그럼 이제 Sprite Mask를 생성해야 합니다

 

그리고 Sprite에 Mask 이미지를 선택하기만 하면 됩니다

 

이렇게 마스킹이 잘 되는것을 볼 수 있습니다

 

 

 

[디자인 패턴] 프록시 패턴(Proxy Pattern)

디자인 패턴

- 개념

다른 객체에 대한 접근을 제어하기 위해 대리자 역할을 하는 객체를 두는 패턴

대리자는 일을 처리하고 완료되면 그 결과를 알려준다

대리자 역할을 하는 객체는 흐름 제어만 할 뿐 결과값을 조작할 수 없다


프록시 패턴은 단순 포인터보다 더욱 다방면에 활용할 수 있다

1. 실제 객체를 요청하기 전이나 후에 인가 처리 (보호용 프록시)

2. 자원이 많이 드는 객체에 대해 백그라운드 처리 (가상 프록시)

3. 원격 메소드를 호출하기 위한 작업 (원격 프록시)

4. 실제 객체에 접근이 일어날 때 추가적인 행동을 수행 (스마트 참조자)




- 구현



Proxy는 Subject와 동일한 인터페이스를 제공하며, 실제 대상에 대한 접근을 제어하고 실제 대상의 생성과 삭제를 책임집니다. 그리고 Proxy 종류에 알맞는 요청을 수행합니다

Subject는 공통된 인터페이스를 정의하며, RealSubject가 요청되는 곳에 Proxy를 사용할 수 있게 합니다

Proxy 클래스는 자신이 받은 요청을 RealSubject 객체에 전달합니다




- 관련 패턴

적응자 패턴 (Adapter Pattern) - http://cpp11.tistory.com/57

장식자 패턴 (Decorator Pattern) - http://cpp11.tistory.com/58


[디자인 패턴] 책임 연쇄 패턴 (Chain of responsibility Pattern)

디자인 패턴

- 개념

요청을 처리할 수 있는 기회를 여러 객체에게 주어, 요청하는 객체와 처리하는 객체 간의 결합도를 없앨 수 있는 패턴




- 구현


Handler는 요청을 처리하는 인터페이스를 정의하고, 후속 처리자(successor)와의 연결을 구현합니다

ConcreteHandler는 자신이 처리할 행동이 있다면 처리하고, 아니라면 후속처리자에게 요청을 보냅니다

사용자가 처리를 요청하면 이 요청이 실제로 요청을 받을 책임이 있는 ConcreteHandler 객체를 만날 때까지 연결 고리를 따라서 계속 전달됩니다




- 관련 패턴

복합체 패턴 (Composite Pattern)