상호 작용이 가능한 물체와 상호 작용할 때에 맞추어 기능을 구현할 수 있습니다.
Viven Grabbable Module
해당 컴포넌트를 붙인 물체를 잡을 수 있습니다.
이 컴포넌트를 붙이기 위해서는 SDKNetworkObject , SDKGrabbableRigidbodyView , SDKRigidbody 가 함께 있어야 합니다.
objectGrabType
물체를 잡았을 때, 해당 물체의 Rigidbody 상태를 결정합니다.
•
Kinematic : 물체가 충돌 등 물리학의 영향을 받지 않습니다.
•
Velocity : 물체가 물리학의 영향을 받습니다.
parentToHandOnGrab
해당 값이 true이면, 물체를 잡았을 때 물체의 parent가 interactor가 됩니다.
longClickTimeThreshold
물체를 잡았을 때 실행 가능한 액션은 액션 버튼을 짧게 눌렀을 때, 길게 눌렀을 때로 두 가지가 있습니다. 해당 값을 설정하여 길게 누른다의 기준을 설정할 수 있습니다.
예를 들어, 값이 1.5이면 액션 버튼을 1.5초 이상 눌러야 길게 눌렀을 때의 액션이 실행됩니다.
placePivot
배치 모드인 물체를 벽에 가져다 댔을 때, 물체가 벽에 붙는 축을 결정할 수 있습니다. 기본 값은 Vector3.up입니다.
grabPoints
물체를 잡을 때, 물체가 잡힐 위치를 커스텀하게 결정할 수 있습니다. grab point가 없으면 잡았을 때의 위치로 잡힙니다.
vivenAttachPoints
해당 오브젝트에 붙어 있는 모든 attach points입니다.
objectShortClickActionStart
물체를 잡고 있는 채로 짧은 클릭을 하였을 때 발동합니다.
function objectShortClickActionStart(interactor)
-- 짧은 클릭을 했을 때 발동합니다.
end
Lua
복사
objectLongClickActionStart
물체를 잡고 있는 채로 길게 클릭을 하였을 때 발동합니다. 길게 클릭의 기준은 longClickTimeThreshold 으로 결정됩니다.
function objectLongClickActionStart(interactor)
-- 길게 클릭을 했을 때 발동합니다.
end
Lua
복사
objectLongClickActionEnd
물체를 잡고 있는 채로 길게 클릭을 하고 뗐을 때 발동합니다.
function objectLongClickActionEnd(interactor)
-- 긴 클릭을 멈추었을 때 발동합니다.
end
Lua
복사
Viven Sittable
해당 컴포넌트를 붙인 물체에 앉을 수 있습니다. (PC 모드에서만 가능)
이 컴포넌트를 붙이기 위해서는 SDKNetworkObject 와 Collider 가 함께 있어야 합니다.
vivenSitPoint
캐릭터가 앉는 모션을 취하기 전 해당 위치로 이동 후 앉습니다.
Viven Attach Point
해당 물체에 다른 물체를 붙일 때 사용하는 컴포넌트입니다. 해당 컴포넌트가 붙어있는 오브젝트의 위치로 붙습니다.
해당 컴포넌트는 VivenGrabbableModule이 붙어 있는 오브젝트의 hierarchy 내에만 붙일 수 있으며, 마찬가지로 붙여지는 오브젝트도 VivenGrabbableMoudle을 포함하고 있어야 합니다.
해당 컴포넌트를 사용하려면 반드시 Collider가 있어야 합니다.
attachablePrefabs
해당 attach point에 붙일 수 있는 오브젝트의 id list. 기본적으로 모든 오브젝트를 붙일 수 있습니다.
notAttachablePrefabs
해당 attach point에 붙일 수 없는 오브젝트의 id list
Interaction Event Function
onGrab
물체를 잡았을 때 발동합니다.
function onGrab(interactor)
interactor.InteractingInteractable.Transform:Translate(Vector(0,1,0))
-- 현재 인터랙션 중인 Intractable의 Transform을 조정함.
end
Lua
복사
onRelease
물체를 놓았을 때 발동합니다.
function onRelease(interactor)
interactor.InteractingInteractable.Transform:Translate(Vector(0,1,0))
-- 현재 인터랙션 중인 Intractable의 Transform을 조정함.
end
Lua
복사