안녕하세요.
기존에 ECS 3D기반으로 개발된 프로젝트를 2D 도트느낌의 게임으로 변환하면서 NSprites라는 라이브러리를 사용했는데 관련해서 주의해야 할 점들 정리해밨습니다.
1. NSprites
https://github.com/Antoshidza/NSprites
GitHub - Antoshidza/NSprites: Unity DOTS Sprite Rendering Package
Unity DOTS Sprite Rendering Package. Contribute to Antoshidza/NSprites development by creating an account on GitHub.
github.com
이 Framework는 ECS와 호환되는 Sprite Rendering 시스템 입니다.
GPU Instancing을 활용한다고 하네요.
https://youtu.be/t1f8ZreCuuQ?si=GBWQ7kB-r1bILwr4
코드몽키 유튜브 영상에서 소개한 방식과 같은 방식으로 보입니다.
2. NSprites Foundation
https://github.com/Antoshidza/NSprites-Foundation
GitHub - Antoshidza/NSprites-Foundation: Basic assets for working with NSprites package
Basic assets for working with NSprites package. Contribute to Antoshidza/NSprites-Foundation development by creating an account on GitHub.
github.com
NSprites Foundation 이라도 NSprites를 기반으로 여러 기능들을 제공합니다.
NSprites Foundation 패키지만 추가하더라도 웬만한 프로젝트들은 문제없이 돌아갑니다.
3. Sample Project
https://github.com/Antoshidza/Age-of-Sprites
GitHub - Antoshidza/Age-of-Sprites: Sample project for NSprites package
Sample project for NSprites package. Contribute to Antoshidza/Age-of-Sprites development by creating an account on GitHub.
github.com
제공되는 NSprites Foundation 샘플 프로젝트입니다.
4. 주의사항
제 프로젝트에 적용하면서 부딧친 문제들 정리해봅니다. (3.1.7 기준입니다.)
1) Pixel Perfect Camera 사용을 위해 2D Renderer를 사용했는데, 이 설정으로는 동작하지 않는 것으로 보입니다.
2) NSprites Foundation 에서는 자체적으로 만든 LocalTransform2D를 사용합니다.
기존의 LocalTransform과 따로 동작하게 되어서 기존에 LocalTransform을 조작하는 로직들을 모두 LocalTransform2D로 교체해야합니다.
3) NSprites Foundation 에서 자체적으로 Sprite Animation 시스템을 관리하기 때문에, 기존에 사용하던 Sprite Animation 시스템을 사용할 수 없습니다.
마무리
제 프로젝트에서는 NSprites는 사용하지 않기로 했습니다.
새로운 시스템에 맞춰서 바꾸어야 하는게 너무 많은 것도 있고 제약사항도 많은데다 이 시스템을 로직에 맞춰서 수정해서 쓰는 것도 개발기간 만큼이나 오래 걸릴 것으로 보여서요.
'Unity Tips' 카테고리의 다른 글
UniTask 사용 후기 (0) | 2024.08.04 |
---|---|
Unity 2020.2버전 이상에서 빌드 할 때 Spine Mesh 최적화로 느려지는 문제 (1) | 2024.03.17 |
Unity Entities - Job에서 EntityManager, EntityCommandBuffer 사용 방법 (0) | 2023.07.04 |
Unity Entities - System에서 Collections(NativeArray, NativeList ...) Dispose함수를 Job 이후에 실행하는 방법 (0) | 2023.07.04 |
Unity UI RectTransform 적정 사이즈로 설정하기 (0) | 2022.10.09 |