์๋ ๊ฐ์ฒด์ ๋ํด ์ถฉ๋ ๊ด๋ จ ์ค์ ์ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด์์.
์ด๋ฒคํธ
๋ค๋ฅธ ๊ฐ์ฒด์ ์ถฉ๋ํ ๋ ํธ์ถ๋๋ ์ด๋ฒคํธ์์.
์ฐ๊ฒฐํจ์ ํ์์ 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์ธ ์ค๋ธ์ ํธ์ ์ถฉ๋์ค์ผ๋ ํธ์ถ๋๋ ํจ์๋ฅผ ์ฐ๊ฒฐํด์.
๋ค๋ฅธ ๊ฐ์ฒด์ ๊ฒน์ณ์ง ๋ ํธ์ถ๋๋ ์ด๋ฒคํธ์์.
์ฐ๊ฒฐํจ์ ํ์์ 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์ธ ์ค๋ธ์ ํธ์ ์ถฉ๋์ ์์ํ ๋ ํธ์ถ๋๋ ํจ์๋ฅผ ์ฐ๊ฒฐํด์.
๋ค๋ฅธ ๊ฐ์ฒด์ ๊ฒน์ณ์ง์ด ๋๋ ๋ ํธ์ถ๋๋ ์ด๋ฒคํธ์์.
์ฐ๊ฒฐํจ์ ํ์์ 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์ธ ์ค๋ธ์ ํธ์ ์ถฉ๋์ด ๋๋ ๋ ํธ์ถ๋๋ ํจ์๋ฅผ ์ฐ๊ฒฐํด์.
๋ค๋ฅธ ๊ฐ์ฒด์ ๊ฒน์ณ์๋ ๋์ ๋งค ํ๋ ์๋ง๋ค ํธ์ถ๋๋ ์ด๋ฒคํธ์์.
์ฐ๊ฒฐํจ์ ํ์์ 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