Collision

월드 객체에 대해 충돌 관련 설정을 처리하는 객체에요.

이벤트

OnCollisionEvent

다른 객체와 충돌할 때 호출되는 이벤트에요. 연결함수 형식은 function(self, target), self 는 이벤트를 연결한 오브젝트, target 은 self 와 충돌한 오브젝트 입니다.

-- 샘플 --

local cube = Workspace.Cube

local function CollisionEvent(self, target) --OnCollisionEvent로 연결된 함수는 self와 target 인자가 고정적으로 들어가요.
    if target ~= nil then
        print("CollisionEvent " .. target.Name)
    end
end
cube.Collision.OnCollisionEvent:Connect(CollisionEvent) --Collision이 true인 오브젝트와 충돌중일때 호출되는 함수를 연결해요.

OnBeginOverlapEvent

다른 객체와 겹쳐질 때 호출되는 이벤트에요. 연결함수 형식은 function(self, target), self 는 이벤트를 연결한 오브젝트, target 은 self 와 겹친 오브젝트 입니다.

-- 샘플 --

local cube = Workspace.Cube

local function BeginOverlapEvent(self, target) --OnBeginOverlapEvent 연결된 함수는 self와 target 인자가 고정적으로 들어가요.
    if target ~= nil then
        print("BeginOverlapEvent " .. target.Name)
    end
end
cube.Collision.OnBeginOverlapEvent:Connect(BeginOverlapEvent) --Collision이 false인 오브젝트와 충돌을 시작할때 호출되는 함수를 연결해요.

OnEndOverlapEvent

다른 객체와 겹쳐짐이 끝날 때 호출되는 이벤트에요. 연결함수 형식은 function(self, target), self 는 이벤트를 연결한 오브젝트, target 은 self 와 겹침이 끝난 오브젝트 입니다.

-- 샘플 --

local cube = Workspace.Cube

local function EndOverlapEvent(self, target) --OnEndOverlapEvent 연결된 함수는 self와 target 인자가 고정적으로 들어가요.
    if target ~= nil then
        print("EndOverlapEvent " .. target.Name)
    end
end
cube.Collision.OnEndOverlapEvent:Connect(EndOverlapEvent) --Collision이 false인 오브젝트와 충돌이 끝날때 호출되는 함수를 연결해요.

OnOverlapUpdateEvent

다른 객체와 겹쳐있는 동안 매 프레임마다 호출되는 이벤트에요. 연결함수 형식은 function(self, target), self 는 이벤트를 연결한 오브젝트, target 은 self 와 겹쳐있는 오브젝트 입니다.

-- 샘플 --

local cube = Workspace.Cube

local function OverlapUpdateEvent(self, target, updateTime) --OnOverlapUpdateEvent로 연결된 함수는 self, target, updateTime 인자가 고정적으로 들어가요.
    if target ~= nil then
        print("OverlapUpdateEvent " .. target.Name)
    end
end
cube.Collision.OnOverlapUpdateEvent:Connect(OverlapUpdateEvent) --Collision이 false인 오브젝트와 충돌중일때 호출되는 함수를 연결해요.

함수

void SetCollisionType(string usercollisiontype)

해당 오브젝트의 충돌 타입을 지정해줘요.

-- 샘플 --

Game:AddUserCollisionType("CollisionTag1") --게임에 유저 충돌 타입(CollisionTag1)을 추가해요.

local cube1 = Workspace.Cube1
local cube2 = Workspace.Cube2

cube1.Collision:SetCollisionType("CollisionTag1") --객체A에 충돌 타입(CollisionTag1)을 설정해요.

cube2.Collision:SetUserCollisionTypeResponse("CollisionTag1", Enum.CollisionResponse.Overlap) --또 다른 객체B에 충돌 타입(CollisionTag1)별 충돌 반응을 설정해요.

String GetCollisionType()

해당 오브젝트의 충돌 타입을 가져올 수 있어요.

-- 샘플 --

local cube = Workspace.Cube

print(cube.Collision:GetCollisionType()) --해당 오브젝트의 충돌 타입을 가져와요.

void SetCharacterCollisionResponse(CollisionResponse CollisionResponse)

캐릭터와 충돌 시 어떻게 처리 할지를 설정하는 함수에요. ( Enum.CollisionResponse.타입 )

-- 샘플 --

Workspace.Cube1.Collision:SetCharacterCollisionResponse(Enum.CollisionResponse.Block) --오브젝트가 캐릭터와 충돌했을때 통과되지 않고 연결된 이벤트가 발생되게 설정해요.
Workspace.Cube2.Collision:SetCharacterCollisionResponse(Enum.CollisionResponse.Overlap) --오브젝트가 캐릭터와 충돌했을때 통과되고 연결된 이벤트가 발생되게 설정해요..
Workspace.Cube3.Collision:SetCharacterCollisionResponse(Enum.CollisionResponse.Ignore) --오브젝트가 캐릭터와 충돌했을때 통과되고 연결된 이벤트가 발생되지 않게 설정해요.

void SetUserCollisionTypeResponse(string UserCollisionType, CollisionResponse CollisionResponse)

유저타입 충돌 물체의 충돌 시 처리를 변경하는 함수에요. (변경 할 유저타입 충돌 이름, Enum.CollisionResponse.타입 )

-- 샘플 --

Game:AddUserCollisionType("CollisionTag1") --게임에 유저 충돌 타입(CollisionTag1)을 추가해요.

local cube1 = Workspace.Cube1
local cube2 = Workspace.Cube2

cube1.Collision:SetCollisionType("CollisionTag1") --객체A에 충돌 타입(CollisionTag1)을 설정해요.

cube2.Collision:SetUserCollisionTypeResponse("CollisionTag1", Enum.CollisionResponse.Overlap) --또 다른 객체B에 충돌 타입(CollisionTag1)별 충돌 반응을 설정해요.

Last updated

Was this helpful?