Home
Development Environment

Network

RPC Component

같은 방에 있는 유저들()이 특정한 메소드를 실행할 수 있도록 합니다.
해당 컴포넌트를 사용하려면 VivenNetworkObject 가 있어야 합니다.
RPC로 보내려는 메소드를 overload하지 않도록 주의해 주세요.

SendRPC

같은 방에 존재하는 유저들이 특정 메소드를 실행하도록 할 수 있습니다. RPCSendOption 으로 나를 포함한 모든 유저들 또는 나를 제외한 모든 유저들을 타겟으로 지정합니다.
-- 나를 포함한 모든 방의 유저들에게 보내는 경우 function rpc1() -- local AllOption = RPCSendOption.All local rpc = self:GetComponent(typeof(RPCComponent)) -- 필요한 parameter는 다음과 같습니다. -- 1. 해당 rpc 코드를 작성하고 있는 스크립트 이름 -- 2. 실행하도록 하고 싶은 메소드 이름 -- 3. RPC option -- 4. 실행하려는 메소드의 parameter. 사용 가능한 parameter 개수는 최대 5개입니다. rpc:SendRPC("Test", "SendAll", AllOption, nil) end function SendAll() -- 이 메소드는 나를 포함한 모든 유저들이 실행하게 됩니다. end -- 나를 제외한 모든 방의 유저들에게 보내는 경우 function rpc2() -- local OthersOption= RPCSendOption.Others local rpc = self:GetComponent(typeof(RPCComponent)) local table = {9, 1} rpc:SendRPC("Test", "SendOthers", OthersOption, table) end function SendOthers(a, b) -- 이 메소드는 나를 제외한 유저들이 실행하게 됩니다. -- {9, 1}을 보냈으므로, a = 9, b = 1 입니다. end
Lua
복사

SendTargetRPC

유저의 id를 입력하여 해당 유저가 특정 메소드를 실행하도록 할 수 있습니다. 유저의 id는 Network:GetRoomUserId 를 사용하여 알 수 있습니다.
function rpc3() local players = {} -- 닉네임이 "targetPlayerNickname"인 유저의 id를 받아옵니다. players[1] = Network:GetRoomUserId("targetPlayerNickname") rpc:SendTargetRPC("Test", "SendTarget", players, nil) end function SendTarget() -- 닉네임이 "targetPlayerNickname"인 유저만 이 메소드를 실행하게 됩니다. end
Lua
복사

Viven Rigidbody

해당 오브젝트의 Rigidbody 값을 설정합니다.

originMass

오브젝트의 질량(kg). 기본은 1

originDrag

오브젝트의 항력. 기본은 0 (공기 저항을 받지 않음)

originAngularDrag

오브젝트가 회전할 때 항력. 기본은 0.05

originCom

오브젝트의 질량 중심

Viven Grabbable Rigid View

VivenGrabbableMoudle이 붙어 있는 오브젝트를 동기화하기 위해 사용하는 컴포넌트

Viven Network Object

오브젝트를 동기화하기 위해 사용하는 컴포넌트

displayName

해당 오브젝트의 이름

objectId

오브젝트를 동기화할 때 사용하는 오브젝트의 id. 컴포넌트를 붙이면 자동으로 생성됩니다.

objectSyncType

오브젝트를 동기화하는 방식
Continuous : 오브젝트가 매 틱(tick)마다 동기화
Manual : 오브젝트가 지정한 타이밍에만 동기화

contentType

오브젝트의 Content Type