This document is about: FUSION 1
SWITCH TO

수정중인 페이지 입니다.

3D & 2D 그리기


Available in the Industries Circle
Circle
Fusion Industries 프로토타이핑 애드온

이 모듈에서는 3D 포인트들을 동기화하여 라인 렌더러로 만든 3D 드로잉을 하는 방법을 설명합니다.

3D 드로잉

원리

3D 드로잉은 라인 렌더러 그룹으로 구성되며, 드로잉이 완료되면 잡고 이동할 수 있는 공통 핸들이 있습니다.

라인 렌더러는 로컬 기반 위치에 있으므로 핸들을 따라 이동할 수 있습니다.

드로잉은 여러 줄로 구성됩니다.

동기화된 데이터

Draw 컴포넌트는 NetworkArray 네트워크 속성을 포함하며 각 엔트리는 DrawPoint입니다. DrawPoint는 vector3과 float를 포함하며 그 의미는 float 값에 따라 달라집니다:

  • 양의 값은 정규 포인트를 나타냅니다. Vector3은 현재 선에 추가할 점의 로컬 위치를 포함합니다
  • NEW_LINE_PRESSURE (-1) 값은 라인 변경을 나타냅니다. Vector3은 방금 끝난 라인의 색상(r/g/b)을 포함합니다. 다음 포인트에 대해 새 라인 렌더링기가 생성됩니다

제한

네트워크 배열이 가득 차면 또 다른 Draw가 생성되고, 다음 Draw는 첫 번째 드로우에 따라 움직임을 동기화하여 하나의 드로잉으로 표시됩니다.

이 프로토 타이핑 코드에서는 모든 데이터가 Fusion 네트워크 속성에 저장된다는 것에 주의하세요. 지속성과 관련하여 실제 시나리오에서는 Fusion을 실시간 동기화에 사용하고 타사 스토리지 서비스를 사용하여 장기적인 데이터 지속성을 유지해야 합니다.

드로잉

3D 펜에는 Draw 컴포넌트가 들어 있는 드로잉 프리팹을 스폰 하는 Drawer 컴포넌트가 있습니다. Draw 컴포넌트는 모든 드로잉 포인트가 Fusion을 통해 동기화되도록 합니다.

버튼(VR 컨트롤러의 트리거, 데스크톱에서는 스페이스)을 사용하여 드로잉이 트리거 됩니다.

2D 드로잉

원리

2D 드로잉은 전용 카메라에 의해 기록된 (사용자에게) 보이지 않는 3D 드로잉이며, 렌더링 결과는 보드 텍스처에 투영됩니다.

성능을 위해 이 카메라는 보드 근처에 있는 펜을 사용하거나 펜으로 만든 드로잉을 이동할 때만 활성화됩니다.

드로잉

드로잉은 보드 표면의 접촉, 접촉의 깊이가 도면의 너비를 결정하는 것에 의해 트리거 됩니다.

노트: 블로킹 팁 모듈 코드는 이 보드 감지와 유사점을 공유합니다. 향후 버전에서는 아마도 상호화될 것입니다.

색 선택

ColorSelection 컴포넌트는 펜 색 변경 동기화를 위해 Drawer에 추가될 수 있습니다.
CheckColorModification() 메서드는 FixedUpdateNetwork 중에 호출되어 로컬 사용자가 조이스틱을 사용하여 펜 색을 변경했는지 확인합니다.

C#

public override void FixedUpdateNetwork()
{
    if (Object == null || Object.HasStateAuthority == false) return;
    CheckColorModification();
}

이 경우 ChangePenColor()는 네트워크 변수인 PenColor를 업데이트하므로 모든 플레이어에게 OnColorChanged()가 호출됩니다.

C#

[Networked(OnChanged = nameof(OnColorChanged))]
public Color PenColor { get; set; }

static void OnColorChanged(Changed<ColorSelection> changed)
{
    changed.Behaviour.OnColorChanged();
}

void OnColorChanged()
{
    UpdatePenMaterials();
}    
    

그러면 UpdatePenMaterials()에서 펜의 재질을 업데이트하고 UpdateDrawColor()에서 이전 드로잉을 종료하고 새 색상으로 새 드로잉을 시작합니다.

다운로드

이 애드온의 최신 버전은 애드온 프로젝트에 포함되어 있습니다.

지원하는 토폴로지

  • 공유 모드

변경 내역

  • 버전 1.0.0 (2023/07/06) : 최초 릴리즈
Back to top