CollectionService

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

만들 수 없음
서비스

CollectionService 는 인스턴스의 그룹(컬렉션)을 관리합니다( 태그 가 있). 태그는 서버에서 클라이언트로 복제되는 개체의 집합입니다. 그들은 장소를 저장할 때 인스턴스의 시리즈화된 형식이기도 합니다.

Class.CollectionService 의 주요 사용은 특정 태그가 있는 인스턴스를 등록하여 동작을 확장하는 데 사용할 수 있습니다. 예를 들어, 여러 개체에 동일한 스크립트를 추가하는 경우 CollectionService 를 사용하는 것이 좋습니다.

태그는 이 클래스의 메서드를 통해 추가 또는 제거할 수 있습니다 AddTag() 또는 내장 된 RemoveTag() . 태그는 또한 Studio의 태그 섹션에서 직접 관리할 수 있거나 내장

복제

태그가 복제되면 모든 태그가 동시에 복제됩니다. 따라서 클라이언트에서 태그를 설정하면 서버에서 태그를

요약

메서드

이벤트

  • 태그가 개체에 추가되고 추가된 태그가 장소에서 유일한 해당 태그인 경우 발생합니다.

  • 개체에서 태그를 제거하고 제거된 태그를 더 이상 장소에서 사용하지 않으면 화재가 발생합니다.Fires when a tag is removed from an object and the removed tag is no longer used anywhere in the 플레이스.

속성

메서드

AddTag

void

AddTag는 태그를 인스턴스에 적용하지 않습니다. 태그가 이미 인스턴스에 적용되었으면 태그가 여전히 적용되지 않도록 하지만 태그가 이미 적용되었다면 Instance 에 의해 생성된 신호를 수신합니다.

주의: 인스턴스에 태그를 표시할 때 일부 리소스를 사용하여 태그의 기능을 제공하는 경우가 많습니다. 이를 방지하기 위해 필요하지 않을 때 이러

매개 변수

instance: Instance
tag: string

반환

void

GetAllTags

병렬 쓰기

반환

GetInstanceAddedSignal

GetInstanceAdded에 태그(문자열)가 지정되고 두 조건 중 하나에 따라 신호가 발생합니다.

이 메서드에 동일한 태그를 가진 후속 호출은 동일한 신호 개체를 반환합니다. CollectionService:GetTagged() 를 호출하여 이미 태그가 있는 개체 목록을 얻으십시오(그리고 이렇게 하면 이벤트가 이미 발생하더라도 클래스 DataModel 에 있는 개체를 나열하지 않음).

또한 참조하십시오 CollectionService:GetInstanceRemovedSignal(), 이는 유사한 조건에서 발생하는 이벤트를 반환합니다.

매개 변수

tag: string

시계할 태그를 지정합니다.


반환

태그를 인스턴스에 추가할 때 발생하는 이벤트.

코드 샘플

Deadly Bricks using CollectionService

local CollectionService = game:GetService("CollectionService")
local tag = "Deadly"
local function onDeadlyPartTouched(otherPart)
if not otherPart.Parent then
return
end
local human = otherPart.Parent:FindFirstChildOfClass("Humanoid")
if human then
human.Health = 0
end
end
-- Save the connections so they can be disconnected when the tag is removed
-- This table maps BaseParts with the tag to their Touched connections
local connections = {}
local function onInstanceAdded(object)
-- Remember that any tag can be applied to any object, so there's no
-- guarantee that the object with this tag is a BasePart.
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- If we made a connection on this object, disconnect it (prevent memory leaks)
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Listen for this tag being applied to objects
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Also detect any objects that already have the tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
end

GetInstanceRemovedSignal

GetInstanceRemoved에 태그(문자열)가 지정되고 두 조건 중 하나에 따라 신호를 반환합니다.

이 메서드에 동일한 태그를 가진 후속 호출은 동일한 신호 개체를 반환합니다. 신호는 태그가 있던 개체를 다시 연결하는 등의 개체에서 사용자를 보호하는 데 유용합니다.

또한 참조하십시오 CollectionService:GetInstanceAddedSignal(), 이는 유사한 조건에서 발생하는 이벤트를 반환합니다.

매개 변수

tag: string

시계할 태그를 지정합니다.


반환

인스턴스에서 태그를 제거할 때 발생하는 이벤트.

코드 샘플

Deadly Bricks using CollectionService

local CollectionService = game:GetService("CollectionService")
local tag = "Deadly"
local function onDeadlyPartTouched(otherPart)
if not otherPart.Parent then
return
end
local human = otherPart.Parent:FindFirstChildOfClass("Humanoid")
if human then
human.Health = 0
end
end
-- Save the connections so they can be disconnected when the tag is removed
-- This table maps BaseParts with the tag to their Touched connections
local connections = {}
local function onInstanceAdded(object)
-- Remember that any tag can be applied to any object, so there's no
-- guarantee that the object with this tag is a BasePart.
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- If we made a connection on this object, disconnect it (prevent memory leaks)
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Listen for this tag being applied to objects
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Also detect any objects that already have the tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
end

GetTagged

Instances
병렬 쓰기

GetTagged는 게임에 사용되는 태그를 가진 하위 개체의 배열을 반환합니다. 이러한 태그는 DataModel (game )에 추가된 태그입니

모든 개체를 태그로 검색하려면, 현재와 미래의 모든 개체를 반복하는 동시에 CollectionService.GetInstanceAddedSignal에 대한 연결을 만드십시오.

이 메서드는 반환된 개체의 순서를 보장하지 않습니다. 또한, 개체에 지정된 태그를 가질 수 있지만 DataModel의 후손이 아닐 수 있습니다. 이 메서드는 순서가 없는 개체를 반환하지 않습니다.

매개 변수

tag: string

검색할 태그입니다.


반환

Instances

태그가 있는 모든 인스턴스의 배열입니다.

코드 샘플

Deadly Bricks using CollectionService

local CollectionService = game:GetService("CollectionService")
local tag = "Deadly"
local function onDeadlyPartTouched(otherPart)
if not otherPart.Parent then
return
end
local human = otherPart.Parent:FindFirstChildOfClass("Humanoid")
if human then
human.Health = 0
end
end
-- Save the connections so they can be disconnected when the tag is removed
-- This table maps BaseParts with the tag to their Touched connections
local connections = {}
local function onInstanceAdded(object)
-- Remember that any tag can be applied to any object, so there's no
-- guarantee that the object with this tag is a BasePart.
if object:IsA("BasePart") then
connections[object] = object.Touched:Connect(onDeadlyPartTouched)
end
end
local function onInstanceRemoved(object)
-- If we made a connection on this object, disconnect it (prevent memory leaks)
if connections[object] then
connections[object]:Disconnect()
connections[object] = nil
end
end
-- Listen for this tag being applied to objects
CollectionService:GetInstanceAddedSignal(tag):Connect(onInstanceAdded)
CollectionService:GetInstanceRemovedSignal(tag):Connect(onInstanceRemoved)
-- Also detect any objects that already have the tag
for _, object in pairs(CollectionService:GetTagged(tag)) do
onInstanceAdded(object)
end

GetTags

병렬 쓰기

GetTags는 인스턴스를 가지고 주어진 문자열 배열을 반환합니다, 이는 지정된 개체에 적용된 태그입니다.


local CollectionService = game:GetService("CollectionService")
local object = workspace.Model
local tags = CollectionService:GetTags(object)
print("The object " .. object:GetFullName() .. " has tags: " .. table.concat(tags, ", "))

이 메서드는 개체에 여러 태그를 한 번에 지정할 때 유용합니다. 그러나 이 메서드를 사용하여 단일 태그가 존재하는지 확인하는 것은 효율적이지 않습니다. 이를 위해 CollectionService:HasTag() 를 사용하여 단일 태그를 확인하십시오.

매개 변수

instance: Instance

태그가 반환되어야 하는 개체입니다.


반환

지정된 개체에 적용된 문자열 배열입니다.

코드 샘플

Using Tags and CollectionService

local CollectionService = game:GetService("CollectionService")
local object = script.Parent.Part
-- Add a tag
CollectionService:AddTag(object, "Deadly")
-- Query for a tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " is deadly")
end
-- List tags on an object
local tags = CollectionService:GetTags(object)
print("The object " .. object:GetFullName() .. " has tags: " .. table.concat(tags, ", "))
-- Remove a tag
CollectionService:RemoveTag(object, "Deadly")

HasTag

병렬 쓰기

HasTag 은 지정된 개체에 태그가 있는지 여부를 반환합니다.

확장에 따라 개체에서 CollectionService:GetTags()로 호출한 모든 태그는 이 메서드를 사용할 때 사용자에게 반환됩니다.

매개 변수

instance: Instance

태그 여부를 확인하는 인스턴스입니다.

tag: string

검사할 태그입니다.


반환

인스턴스에 태그가 있는지 여부.

코드 샘플

Using Tags and CollectionService

local CollectionService = game:GetService("CollectionService")
local object = script.Parent.Part
-- Add a tag
CollectionService:AddTag(object, "Deadly")
-- Query for a tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " is deadly")
end
-- List tags on an object
local tags = CollectionService:GetTags(object)
print("The object " .. object:GetFullName() .. " has tags: " .. table.concat(tags, ", "))
-- Remove a tag
CollectionService:RemoveTag(object, "Deadly")

RemoveTag

void

RemoveTag는 인스턴스에서 태그를 제거합니다. 이 메서드는 태그가 없는 경우에도 오류가 발생하지 않습니다. 태그를 성공적으로 제거하면 CollectionService:GetInstanceRemovedSignal() 가 생성한 신호가 발생합니다.

태그를 제거할 때 일부 리소스는 이벤트 연결이나 테이블과 같은 태그 기능을 제공하는 데 사용됩니다. 메모리 누출을 방지하려면 이러한 리소스를 더 이상 필요로 하지 않을 때 (더 이상 필요하지 않음 설정 등) 이렇게 정리하는 것이 좋습니다.

매개 변수

instance: Instance

태그를 제거할 인스턴스입니다.

tag: string

인스턴스에서 제거할 태그.


반환

void

코드 샘플

Using Tags and CollectionService

local CollectionService = game:GetService("CollectionService")
local object = script.Parent.Part
-- Add a tag
CollectionService:AddTag(object, "Deadly")
-- Query for a tag
if CollectionService:HasTag(object, "Deadly") then
print(object:GetFullName() .. " is deadly")
end
-- List tags on an object
local tags = CollectionService:GetTags(object)
print("The object " .. object:GetFullName() .. " has tags: " .. table.concat(tags, ", "))
-- Remove a tag
CollectionService:RemoveTag(object, "Deadly")

이벤트

TagAdded

이 이벤트는 태그가 개체에 추가되고 추가된 태그가 장소에서 유일한 해당 태그인 경우에 발생합니다.

매개 변수

tag: string

TagRemoved

이 이벤트는 태그가 개체에서 제거되고 제거된 태그가 더 이상 플레이스사용되지 않을 때 발생합니다.

매개 변수

tag: string