Unity의 Project Tiny를 사용해 봤습니다.

7887 단어 ProjectTinyUnity
QualiArts Advent Calendar 2019, 13일째 되는 글입니다.

항목 제목 정보


Unity의 Project Tiny는 모바일 브라우저를 위한 Unity입니다.그것은 작고 가볍고 빠른 유니티로 설계되어 기존의 유니티와 상당히 다르다.현재 상태 0.16.1-preview는 최신이지만 발표가 중단되어 패키지 관리자에서 찾을 수 없습니다. (현재 다운로드 방법은 뒤에 설명됩니다.)공식 시연은 브라우저에서 동작을 확인할 수 있도록 공개됐다.
https://unity3d.com/tiny
시작 후 다음 퍼즐 게임의 프레젠테이션을 확인할 수 있습니다.이것은 간단한 게임으로 이동 수수께끼 속의 체량을 끌어다 놓으면 3개의 체량을 맞추면 파괴할 수 있다.모바일 브라우저도 가볍게 움직였다.앞으로 Project Tiny가 이런 브라우저로 가벼운 모바일 게임을 만들 수 있다고 발표된다면 기대된다.

프로젝트 제목 정보


다음 포럼에서 최신 정보를 볼 수 있습니다.
https://forum.unity.com/forums/project-tiny.151/
향후 프로젝트 Tiny는 현재 Unity와 다른 실행 시 DOTS 실행 시(Data-Oriented Technology Stack)에 통합됩니다.지원되는 환경은 HTML5, 게임 광고, iOS & Android 등으로 예정되어 있다.

상기 이미지의 참조 원본 라인은 여기 있습니다https://forum.unity.com/threads/oct-2019-update-on-project-tiny-roadmap.754850/

실제로 써봤어요.


다음 프리뷰에서 큰 변화가 있을 수 있습니다. 현행 프로젝트 티니를 만지고 싶은 사람을 위한 비망록입니다.유니티 2019.2.0b3 썼어요.앞으로 유니티라면 괜찮을 거예요.일부 의존 관계로 인해 패키지 관리자에서 등급을 내려야 할 수도 있습니다.여기서 유니티가 먼저 프로젝트를 만들고베스는 2차원을 선택했다.
프로젝트 완료 후 Packages/manifest.json에 다음 줄을 추가합니다
"com.unity.tiny": "0.15.3-preview",
처음에 0.16.1-preview를 시도했지만 장면을 가져올 때'Open a Project before opening a Scene'이라는 워닝이 생겨서 장면을 열 수 없습니다.의존 관계가 나빠진 것 같습니다. 다음 프리뷰를 보내기 전에 수정할 계획이 없는 것 같습니다.Q4 2019에서 다음 preview를 발표하려고 하는데, 이걸 쓴 오늘(12/10) 아직 정보를 확인하지 못했습니다.
manifest.json을 편집하면 메뉴에서 Windows > Package Manager를 통해 다음 화면을 확인할 수 있습니다.

이제 Project Tiny를 설치하면 됩니다.

실행 예


패키지 관리자에서 몇 가지 예시를 다운로드할 수 있습니다.
아까 화면에서 Hello World를 가져와 보세요.가져오는 동안 Assets 바로 아래에 Samples라는 디렉토리가 있습니다.Samples/Project Tiny/0.15.3-preview/아래에는 다음 파일이 있어야 합니다.

Unity 메뉴에서 DOTS라는 항목이 추가되었어야 하기 때문에 DOTS/Open Project, HelloWorld 이하의 HelloWorld를 실행합니다.항목을 엽니다.이 작업을 수행하면 Unity는 DOTS 모드가 됩니다.이 상태에서 Scenes 디렉토리의 MainScene을 열면 다음 장면이 열립니다.

처음에 가져오기 설정이 열릴 수 있습니다.이 경우 가져온 후 항목을 다시 열지 않으면 MainScene을 열 수 없습니다.이 일대는 아직 프리뷰 버전이기 때문에 행동이 불안정할 수 있다.
장면을 열면 환경을 웹(AsmJs)으로 설정하고 재생 후 구축한 다음 웹 브라우저http://localhost:19050/에서 실행 결과를 볼 수 있습니다.

구성 요소 및 구성 요소 시스템


프로젝트 층은 기업 구성 요소 시스템을 사용한다.Unity가 말한 Game Object에 해당하는 것은 Entity입니다.엔티티 정의는 IComponentData를 상속합니다.다음은 Sprite2DRenderer의 예입니다.Sprite 2D 솔리드를 포함하는 색상 정의.
Sprite2DRenderer
    public struct Sprite2DRenderer : IComponentData
    {
        public static Sprite2DRenderer Default { get; } = new Sprite2DRenderer()
        {
            color = Color.Default
        };
        [EntityWithComponents(typeof(Sprite2D))]
        public Entity sprite;

        public Color color;

        public BlendOp blending;
    }
HelloWorld는 이를 다음 구성 요소 시스템으로 정의하고 다음 코드를 실행합니다.
public class RotateSpriteSystem : ComponentSystem
{
    protected override void OnUpdate()
    {
        var env = World.TinyEnvironment();
        Entities
            .WithAll<Sprite2DRenderer>()
            .ForEach((ref Rotation lclRot) =>
        {
            lclRot.Value = quaternion.RotateZ((float)env.frameTime);
        });
    }
}
Sprite2DRenderer의 솔리드를 가져와 시간의 흐름에 따라 각 솔리드를 회전합니다.ForEach에서 Transform 회전에 해당하는 부분을 취하고 Quaternion과 시간이 지나간 정보를 사용하여 회전 값을 계산합니다.
또 다른 Drag&Drop 등 샘플 설치를 참고하면 간단한 수수께끼 게임 등을 만들 수 있다.또한 ECS를 사용하면 많은 작은 계산이 병행 고속 주행을 할 수 있기 때문에 Boids 알고리즘과 같은 이동 집단의 알고리즘과 소규모 AI를 사용하여 대량의 역할을 이동할 수 있다.
프로젝트tiny의 Scripting System의 공식 안내서는 좀 낡았지만 아래의 내용을 참조했다.
https://docs.unity3d.com/Packages/[email protected]/manual/scripting.html

마지막


Project Tiny는 가벼운 동작으로 모바일 브라우저 등에서 기대할 수 있는 작은 Unity입니다.다음 프리뷰 버전이 없고 향후 버전 3D의 동작도 예정되어 있으며 아직 부족한 라이브러리의 충실화도 즐거움이다.이번에는 만져본 ECS의 이해가 부족하고 원하는 기능이 부족한 일은 아무리 상상처럼 움직일 수 없지만 시위와 샘플로 실제 액션을 보는 것은 앞으로의 업데이트가 기대된다.터치 후 생각나는 것은 ECS 등인데 앞으로 Unity가 정식으로 설치할 기능을 기억하지 않으면 성능을 활용할 수 없기 때문에 ECS에 대한 이해를 깊게 할 필요가 있다.4Q 2019에서도 포럼에서 동작이 있을 거라고 생각합니다. 기대해 주십시오.관심 있으면 현행 버전을 만져보세요.
지금까지 QualiArts Advent Calendar 2019의 12/13 기사입니다.내일 thammin 기사를 투고할 예정입니다.
2019/12/13 추기
3D 지원
http://www.tiny.vision/TinyRacing/TinyRacing.html

좋은 웹페이지 즐겨찾기