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?