유니티 3

[Unity] photon pun2

photon pun2 photon은 각종 멀티플레이용 네트워크 패키지를 제공해주는 회사이다. photon의 여러 서비스중 pun2는 Photon Unity Networking로 유니티용 멀티플레이 패키지 서비스이다.pun2는 photon에서 제공해주는 서버를 사용하여 클라이언트 측 코딩만 진행하여 멀티플레이 게임을 제작하는것이 가능하게 해준다. pun2는 마치 p2p를 하는듯 마스터 플레이어와 그외 플레이어 사이의 통신처럼 인터페이스를 제공해주지만 실제로는 서버를 경유하는 서버 기반 멀티를 수행하게된다. pun2 asset pun2로 멀티게임을 만드려면 우선 photon서버에서 pun2 어플리케이션을 하나 생성하고 id를 받아야한다. 그러면 활성화된 pun2서버가 생겨나며 해당 서버로 멀티게임을 만들 수..

게임엔진/Unity 2023.08.03

[Unity 2D Shader] 2D 스프라이트 팔레트 스왑 쉐이더

색상만 다른 여러 픽셀 이미지를 위한 쉐이더 위 이미지와 같이 게임을 제작하다보면 픽셀의 형태는 동일하나 색상만 다른 경우가 존재한다. 이런 경우 각 이미지를 만들어 사용하는 방법도 있지만 스프라이트 스왑 기법을 사용하면 생산성을 높일 수 있다. 팔레트 스왑은 이미지를 색상이 아닌 컬러 인덱스를 가지도록 만들고 이후 렌더링 시 현재 선택된 팔레트에서 각 인덱스의 색상을 가져와 렌더링 하는 기법이다. 구현 유니티에서 이를 구현할 수 있는 한가지 방법은 기본 스프라이트 쉐이더를 다음과 같이 수정하면 된다. 1. 컬러들을 지정할 팔레트 2D 텍스처 프로퍼티를 추가한다. 2. spriteFrag에서 SampleSpriteTexture(IN.texcoord)를 통해 스프라이트 픽셀 값을 추출한다. 3. 2번에서 ..

그래픽스/Unity 2023.07.24

[Unity 2D Shader] 최상위 반투명 픽셀만 혼합하는 스프라이트 쉐이더

물에 비친 상을 위한 쉐이더 이번에 만든 쉐이더의 목적은 물 표면에 비친 상을 표현하기위한 쉐이더이다. 좀 더 정확히 말하면 불투명 스프라이트 위에 반투명 스프라이트들이 존재할 때 반투명 스프라이트들의 픽셀중 가장 깊이가 얕은 픽셀만 혼합되고 깊은 픽셀들은 무시되게 된다. 토이 프로젝트를 개발하는데 필요하여 구현하게 되었다. 이상적인 구현방법 맨 처음 계획한 구현방법은 다음과 같다. s1 -물 표면 이미지에 사용될 쉐이더 ZWrite On 그외 기존 sprite-default와 동일 s2 - 물 위에 비친 반투명 이미지에 사용될 쉐이더 ZWrite On ZTest Less AlphaTest on s1보다 늦게 렌더링 될 것이 보장 s2의 오브젝트들은 깊이가 얕은 것에서 깊은 순으로 렌더링 그외 기존 sp..

그래픽스/Unity 2023.07.14