Advanced읽기 시간: 6분최근 수정: 2026. 4. 14

CustomView 사용 방법

VivenCustomSyncView 와 VivenBehaviour 를 조합해 Transform, RigidBody 외의 임의 데이터를 네트워크 동기화하는 방법을 다룹니다.

VivenCustomSyncView (SDKCustomSyncComponent) 와 VivenBehaviour 를 사용해 커스텀 데이터 동기화를 구현할 수 있습니다.

VivenBehaviour 에서 선언된 변수는 각 클라이언트에서만 유효합니다. 모든 클라이언트에 상태를 동기화하려면 VivenCustomSyncView 를 통해 데이터를 직접 전송·수신해야 합니다.

동기화 이벤트

Sync 는 다음 이벤트들을 기반으로 동작합니다.

예제 — Transform Position 직접 동기화

-- 오브젝트 초기화 시 호출
function initializeSync()
  self.transform.position = Vector3(0, 0, 0)
end

-- 오브젝트의 소유권이 내 것일 때, 동기화할 데이터 테이블을 반환
function sendSyncUpdate()
  return {
    self.transform.position.x,
    self.transform.position.y,
    self.transform.position.z,
  }
end

-- 내 것이 아닌 경우 서버에서 받은 데이터로 상태를 갱신
function receiveSyncUpdate(syncTable)
  if syncTable == nil or #syncTable < 3 then return end
  self.transform.position = Vector3(syncTable[1], syncTable[2], syncTable[3])
end

-- 소유권 요청
function requestOwnership()
  SyncComponent:RequestOwnership()
end

-- 소유권이 나에게 있는지
function getIsMine()
  return SyncComponent.IsMine
end

주요 Field

관련 API