모듈 설정시 .Init() 처럼 QuadId 란을 비워두는 경우 Store.GetObject 가 코드를 넘어 공유되지 않습니다
하지만 .Init("Project1") 처럼 아이디를 부여하는 경우 다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 Store.GetObject 는 공유됩니다
아이디에 허용되는 글자는 변수명과 같습니다. 대소문자, 숫자, 언더바(_) 를 허용합니다.
오브젝트 생성시 Frame"mainFrame"{} 와 같이 id 값을 지정해 준다면 생성된 오브젝트는 그 아이디를 가지게 됩니다. Store.GetObject(id:string)->Object? 는 생성된 객체중 가장 첫번째의 id 가 일치하는 오브젝트를 반환해 줍니다.
localScreenGUI=script.ParentlocalQuad=require(path.to.module).Init()localClass,Mount,Store=Quad.Class,Quad.Mount,Quad.StorelocalFrame=Class"Frame"Frame"mainFrame"{Size=UDim2.fromScale(1,1);Frame"Child"{Size=UDim2.fromOffset(20,20);};Frame"Child"{Size=UDim2.fromOffset(20,20);Position=UDim2.fromOffset(30,0);};Frame"Child"{Size=UDim2.fromOffset(20,20);Position=UDim2.fromOffset(60,0);};Frame"Child"{Size=UDim2.fromOffset(20,20);Position=UDim2.fromOffset(90,0);};}Mount(ScreenGUI,Store.GetObject("mainFrame"))-- 값을 설정할 수 있습니다. 그러나 값을 읽거나 :Connect 할 수는 없습니다Store.GetObjects("Child").Size=UDim2.fromOffset(30,30)-- 필요에 따라 Store.GetObjects("Child") 를 pairs 에 넣어 for 문을 사용하거나-- :Each , :EachAsync , :IsEmpty 함수를 이용할 수 있습니다task.spawn(function()whiletruedoStore.GetObjects("Child"):Each(function(item,index)item.BackgroundColor3=Color3.fromRGB(math.random(0,255),math.random(0,255),math.random(0,255))end)task.wait(1)end)end-- for 문을 이용해서 출력합니다for_,childinipairs(Store.GetObjects("Child"))doprint(child)end
localScreenGUI=script.ParentlocalQuad=require(path.to.module).Init()localClass=Quad.MountlocalMount=Quad.StorelocalStore=Quad.ClasslocalFrame=Class"Frame"--다음과 같이 a 와 b 모두 가진 프레임을 생성할 수도 있습니다.Frame"a,b"{Name="main";Frame"a"{Name="Child1";};Frame"b"{Name="Child2";};}-- 다음과 같이 a 와 b 둘다 선택할 수 있습니다Store.GetObjects("a,b"):Each(function(item,index)print(item.Name)end)print("----")-- 다음과 같이 a 와 b 를 동시에 가진 것을 선택할 수 있습니다Store.GetObjects("a&b"):Each(function(item,index)print(item.Name)end)print("----")-- 다음과 같이 a와b 를 동시에 가진것과, b 를 가진것을 선택-- 할 수 있습니다Store.GetObjects("a&b,b"):Each(function(item,index)print(item.Name)end)
또는(or) 연산 ,
그리고(and) 연산 &
GetObjects 에는 이 두 연산을 사용할 수 있고, 생성시에는 , 으로 여러 아이디를 부여해줄 수 있습니다. 띄어쓰기는 무시됩니다
localScreenGUI=script.ParentlocalQuad=require(path.to.module).Init()localClass=Quad.ClasslocalMount=Quad.MountlocalStore=Quad.StorelocalFrame=Class"Frame"Frame"testing"{}-- 아이디를 추가합니다Store.AddObject("a,b",Store.GetObject("testing"))-- 아이디를 제거합니다Store.GetObjects("a"):Remove(Store.GetObject("testing"))
Store.AddObject(ids:string,item:any) 를 이용해 item 에 아이디를 추가하고 :Remove(item:any) 를 이용해 item 에 아이디를 제거합니다