quad/docs/kr/tutorial/8_register/index.html

1256 lines
No EOL
65 KiB
HTML

<!doctype html>
<html lang="kr" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Description for Quad. (Korean)">
<meta name="author" content="Qwreey and more">
<link rel="canonical" href="https://quad.qwreey.kr/kr/tutorial/8_register/">
<link rel="icon" href="../../assets/LUAICON_TP.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-8.3.9">
<title>Register - Quad 한국어 문서</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.1d29e8d0.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.cbb835fc.min.css">
<link rel="stylesheet" href="../../stylesheets/extra.css">
<script>__md_scope=new URL("../..",location),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="custom" data-md-color-primary="" data-md-color-accent="">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#_1" class="md-skip">
콘텐츠로 이동
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Quad 한국어 문서" class="md-header__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Quad 한국어 문서
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Register
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="검색" placeholder="검색" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="검색">
<button type="reset" class="md-search__icon md-icon" aria-label="지우기" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
검색 초기화
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/qwreey75/quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-tabs__inner md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
</a>
</li>
<li class="md-tabs__item">
<a href="../" class="md-tabs__link md-tabs__link--active">
튜토리얼
</a>
</li>
<li class="md-tabs__item">
<a href="../../reference/" class="md-tabs__link">
레퍼런스
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Quad 한국어 문서" class="md-nav__button md-logo" aria-label="Quad 한국어 문서" data-md-component="logo">
<img src="../../assets/LUAICON_DARK.png" alt="logo">
</a>
Quad 한국어 문서
</label>
<div class="md-nav__source">
<a href="https://github.com/qwreey75/quad" title="저장소로 이동" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
Quad
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" type="checkbox" id="__nav_1" >
<div class="md-nav__link md-nav__link--index ">
<a href="../.."></a>
<label for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" aria-label="홈" data-md-level="1">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../license/" class="md-nav__link">
라이선스
</a>
</li>
<li class="md-nav__item">
<a href="../../changelogs/" class="md-nav__link">
변경사항
</a>
</li>
<li class="md-nav__item">
<a href="../../gallery/" class="md-nav__link">
갤러리
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" checked>
<div class="md-nav__link md-nav__link--index ">
<a href="../">튜토리얼</a>
<label for="__nav_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" aria-label="튜토리얼" data-md-level="1">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
튜토리얼
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../1_import/" class="md-nav__link">
Import
</a>
</li>
<li class="md-nav__item">
<a href="../2_mount/" class="md-nav__link">
Mount
</a>
</li>
<li class="md-nav__item">
<a href="../3_getObject/" class="md-nav__link">
GetObject
</a>
</li>
<li class="md-nav__item">
<a href="../4_style/" class="md-nav__link">
Style
</a>
</li>
<li class="md-nav__item">
<a href="../5_event/" class="md-nav__link">
Event
</a>
</li>
<li class="md-nav__item">
<a href="../6_tween/" class="md-nav__link">
Tween
</a>
</li>
<li class="md-nav__item">
<a href="../7_quadProperty/" class="md-nav__link">
QuadProperty
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<a href="./" class="md-nav__link md-nav__link--active">
Register
</a>
</li>
<li class="md-nav__item">
<a href="../9_lang/" class="md-nav__link">
Lang
</a>
</li>
<li class="md-nav__item">
<a href="../10_signal/" class="md-nav__link">
Signal
</a>
</li>
<li class="md-nav__item">
<a href="../11_extend/" class="md-nav__link">
Extend
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
<div class="md-nav__link md-nav__link--index ">
<a href="../../reference/">레퍼런스</a>
</div>
<nav class="md-nav" aria-label="레퍼런스" data-md-level="1">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
레퍼런스
</label>
<ul class="md-nav__list" data-md-scrollfix>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="목차">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/qwreey75/quad/edit/master/docs/tutorial/8_register.md" title="이 페이지를 편집" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"/></svg>
</a>
<h1 id="_1">레지스터<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<p>읽기 전...</p>
<blockquote>
<p>모듈 설정시 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">()</span><span class="w"></span></code> 처럼 QuadId 란을 비워두는 경우 <code class="highlight"><span class="nx">Store</span><span class="p">.</span><span class="nx">GetStore</span><span class="w"></span></code> 가 코드를 넘어 공유되지 않습니다<br />
하지만 <code class="highlight"><span class="p">.</span><span class="nx">Init</span><span class="p">(</span><span class="s2">&quot;Project1&quot;</span><span class="p">)</span><span class="w"></span></code> 처럼 아이디를 부여하는 경우 <strong>다른 모듈, 로컬스크립트가 접근하더라도 같은 QuadId 를 가졌다면 <code class="highlight"><span class="nx">Store</span><span class="p">.</span><span class="nx">GetStore</span><span class="w"></span></code> 는 공유됩니다</strong> </p>
</blockquote>
<p>레지스터는 한 값이 변경될 때, 그 값을 사용한 곳이 업데이트 될 수 있도록 만들어주는 Quad 의 주요 기술입니다. 추후 설명될 <code>Class.Extend</code> 와도 사용이 가능합니다. </p>
<p>레지스터는 이러한 시나리오에서 사용될 수 있습니다.<br />
1. UI 의 여러 오브젝트를 한번에 페이드 아웃 혹은 페이드 인 시키는 경우.<br />
2. 가변 크기의 UI 를 업데이트 시키는 경우.<br />
3. 여러 오브젝트들을 한꺼번에 트윈시키는 경우.<br />
4. 다크테마/화이트테마 변경할 수 있게 만드는 경우. </p>
<p>이외에도 레지스터의 활용 방법은 무궁무진합니다. 레지스터의 사용법은 다음과 같습니다. </p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="c1">-- 레지스터를 만들 수 있는 테이블을 만듭니다.</span>
<span class="c1">-- 여기에 담아내는 값을 업데이트 하는 경우 레지스터로 연결된</span>
<span class="c1">-- 오브젝트들도 같이 업데이트됩니다.</span>
<span class="kd">local</span> <span class="n">myStore</span> <span class="o">=</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetStore</span><span class="p">(</span><span class="s2">&quot;myStore&quot;</span><span class="p">)</span>
<span class="kd">local</span> <span class="n">TextLabel</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;TextLabel&quot;</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">Text</span> <span class="o">=</span> <span class="s2">&quot;0 초 지남&quot;</span>
<span class="n">TextLabel</span> <span class="s2">&quot;mainLabel&quot;</span> <span class="p">{</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">200</span><span class="p">);</span>
<span class="c1">-- myStore 의 Text 값이 변경됨을 추적하고, Text 값을</span>
<span class="c1">-- 업데이트 시킵니다.</span>
<span class="n">Text</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;Text&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainLabel&quot;</span><span class="p">))</span>
<span class="kd">local</span> <span class="n">Count</span> <span class="o">=</span> <span class="mi">0</span>
<span class="kr">while</span> <span class="kc">true</span> <span class="kr">do</span>
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="c1">-- 값을 업데이트 합니다. 텍스트 라벨도</span>
<span class="c1">-- 자동적으로 업데이트 됩니다.</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">Text</span> <span class="o">=</span> <span class="n">Count</span> <span class="o">..</span> <span class="s2">&quot; 초 지남&quot;</span>
<span class="n">Count</span> <span class="o">=</span> <span class="n">Count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="kr">end</span>
</code></pre></div></td></tr></table></div>
<p>레지스터에는 여러가지 메소드가 담겨있습니다. 이 메소드를 사용하면 레지스터를 보다 더 다양하게 활용할 수 있습니다. </p>
<p><code>register</code> 특수 메소드가 적용되는 순서는 다음과 같습니다. </p>
<p><code class="highlight"><span class="o">:</span><span class="nx">Add</span><span class="p">(</span><span class="nx">value</span><span class="o">:</span><span class="kt">any</span><span class="p">)</span><span class="o">-&gt;</span><span class="nx">register</span><span class="w"></span></code></p>
<blockquote>
<p>값에 더하기를 취합니다. 음수형태가 제공되는 경우 빼기 처럼 작동합니다.<br />
<code>number</code>, <code>Udim</code>, <code>UDim2</code>, <code>Color3</code>, <code>Vector2</code> 등 더할 수 있는 모든것을 사용할 수 있습니다<br />
<em>주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</em></p>
</blockquote>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Frame</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;Frame&quot;</span>
<span class="kd">local</span> <span class="n">myStore</span> <span class="o">=</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetStore</span><span class="p">(</span><span class="s2">&quot;myStore&quot;</span><span class="p">)</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">pos</span> <span class="o">=</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
<span class="n">Frame</span> <span class="s2">&quot;mainFrame&quot;</span> <span class="p">{</span>
<span class="n">Position</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;pos&quot;</span><span class="p">:</span><span class="n">Add</span><span class="p">(</span><span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">));</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span>
<span class="kr">while</span> <span class="kc">true</span> <span class="kr">do</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">pos</span> <span class="o">=</span> <span class="n">myStore</span><span class="p">.</span><span class="n">pos</span> <span class="o">+</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="kr">end</span>
</code></pre></div></td></tr></table></div>
<p><code class="highlight"><span class="o">:</span><span class="nx">With</span><span class="p">((</span><span class="nx">store</span><span class="o">:</span><span class="kt">valueStore</span><span class="p">,</span><span class="w"> </span><span class="nx">newValue</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">key</span><span class="o">:</span><span class="kt">string</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span><span class="o">-&gt;</span><span class="nx">register</span><span class="w"></span></code> </p>
<blockquote>
<p>함수 또는 테이블에서 값을 가져옵니다. Add 보다 나중에 수행됩니다.<br />
첫번째 값에는 편의상 스토어 값이 제공되며, 새로운 값과, 바뀐 값에 대한 키가 제공됩니다<br />
<em>주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</em></p>
</blockquote>
<div class="tabbed-set tabbed-alternate" data-tabs="1:3"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">함수</label><label for="__tabbed_1_2">테이블</label><label for="__tabbed_1_3">여러 값이 묶임</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Frame</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;Frame&quot;</span>
<span class="kd">local</span> <span class="n">myStore</span> <span class="o">=</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetStore</span><span class="p">(</span><span class="s2">&quot;myStore&quot;</span><span class="p">)</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">topbarSize</span> <span class="o">=</span> <span class="mi">60</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">width</span> <span class="o">=</span> <span class="mi">200</span>
<span class="c1">-- 레지스터를 변수로 두고 사용합니다</span>
<span class="kd">local</span> <span class="n">listItemSize</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;width&quot;</span><span class="p">:</span><span class="n">With</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span>
<span class="kr">return</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="n">myStore</span><span class="p">.</span><span class="n">width</span><span class="p">,</span><span class="mi">60</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
<span class="n">Frame</span> <span class="s2">&quot;mainFrame&quot;</span> <span class="p">{</span>
<span class="n">Class</span> <span class="s2">&quot;UIListLayout&quot;</span> <span class="p">{</span> <span class="n">SortOrder</span> <span class="o">=</span> <span class="n">Enum</span><span class="p">.</span><span class="n">SortOrder</span><span class="p">.</span><span class="n">LayoutOrder</span> <span class="p">};</span>
<span class="c1">-- 사이즈가 width 에 맞게 업데이트됩니다</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;width&quot;</span><span class="p">:</span><span class="n">With</span><span class="p">(</span><span class="kr">function</span> <span class="p">()</span>
<span class="kr">return</span> <span class="n">UDim</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="n">store</span><span class="p">.</span><span class="n">width</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
<span class="kr">end</span><span class="p">);</span>
<span class="n">Frame</span> <span class="s2">&quot;Topbar&quot;</span> <span class="p">{</span>
<span class="n">LayoutOrder</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;topbarSize,width&quot;</span><span class="p">:</span><span class="n">With</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span>
<span class="kr">return</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="n">myStore</span><span class="p">.</span><span class="n">width</span><span class="p">,</span><span class="n">myStore</span><span class="p">.</span><span class="n">topbarSize</span><span class="p">)</span>
<span class="kr">end</span><span class="p">);</span>
<span class="p">}</span>
<span class="n">Frame</span> <span class="s2">&quot;ListItem&quot;</span> <span class="p">{</span>
<span class="n">LayoutOrder</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">listItemSize</span><span class="p">;</span>
<span class="p">};</span>
<span class="n">Frame</span> <span class="s2">&quot;ListItem&quot;</span> <span class="p">{</span>
<span class="n">LayoutOrder</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">);</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">listItemSize</span><span class="p">;</span>
<span class="p">};</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span>
<span class="c1">-- width 값을 변경해보세요</span>
<span class="kr">while</span> <span class="kc">true</span> <span class="kr">do</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">width</span> <span class="o">=</span> <span class="n">myStore</span><span class="p">.</span><span class="n">width</span> <span class="o">+</span> <span class="mi">10</span>
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="kr">end</span>
</code></pre></div></td></tr></table></div>
</div>
<div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Frame</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;Frame&quot;</span>
<span class="kd">local</span> <span class="n">myStore</span> <span class="o">=</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetStore</span><span class="p">(</span><span class="s2">&quot;myStore&quot;</span><span class="p">)</span>
<span class="kd">local</span> <span class="n">colors</span> <span class="o">=</span> <span class="p">{</span>
<span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">);</span>
<span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">);</span>
<span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">);</span>
<span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">);</span>
<span class="p">}</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">color</span> <span class="o">=</span> <span class="mi">1</span>
<span class="o">%</span><span class="p">(</span><span class="o">#</span><span class="n">colors</span><span class="p">)</span>
<span class="n">Frame</span> <span class="s2">&quot;mainFrame&quot;</span> <span class="p">{</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span>
<span class="kr">while</span> <span class="kc">true</span> <span class="kr">do</span>
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="kr">end</span>
</code></pre></div></td></tr></table></div>
</div>
<div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
</code></pre></div></td></tr></table></div>
</div>
</div>
</div>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Tween</span><span class="p">(</span><span class="nx">options</span><span class="o">:</span><span class="kt">TweenOptions</span><span class="p">)</span><span class="w"></span></code> </p>
<blockquote>
<p>트윈을 이용해 변경사항을 적용합니다(처음 오브젝트 생성시에는 적용되지 않음) 옵션은 Tween 문서에 나와있는 옵션과 같습니다.
<em>주의 : 구조의 복잡성을 피하고자, 여러번 호출시 가장 마지막 호출된 것만 사용됩니다</em></p>
</blockquote>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Style</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Style</span>
<span class="kd">local</span> <span class="n">Frame</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;Frame&quot;</span>
<span class="kd">local</span> <span class="n">myStore</span> <span class="o">=</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetStore</span><span class="p">(</span><span class="s2">&quot;myStore&quot;</span><span class="p">)</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">pos</span> <span class="o">=</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
<span class="n">Style</span> <span class="s2">&quot;TweenFrame&quot;</span> <span class="p">{</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">50</span><span class="p">);</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">255</span><span class="p">);</span>
<span class="p">}</span>
<span class="n">Frame</span> <span class="s2">&quot;mainFrame&quot;</span> <span class="p">{</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">);</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">500</span><span class="p">,</span><span class="mi">500</span><span class="p">);</span>
<span class="n">Frame</span> <span class="s2">&quot;TweenFrame&quot;</span> <span class="p">{</span>
<span class="n">Position</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;pos&quot;</span><span class="p">:</span><span class="n">Tween</span><span class="p">{</span><span class="n">Time</span> <span class="o">=</span> <span class="mi">2</span><span class="p">};</span>
<span class="p">};</span>
<span class="n">Frame</span> <span class="s2">&quot;TweenFrame&quot;</span> <span class="p">{</span>
<span class="n">Position</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;pos&quot;</span>
<span class="p">:</span><span class="n">Add</span><span class="p">(</span><span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">))</span>
<span class="p">:</span><span class="n">Tween</span><span class="p">{</span><span class="n">Time</span> <span class="o">=</span> <span class="mi">2</span><span class="p">};</span>
<span class="p">};</span>
<span class="n">Frame</span> <span class="s2">&quot;TweenFrame&quot;</span> <span class="p">{</span>
<span class="n">Position</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;pos&quot;</span>
<span class="p">:</span><span class="n">Add</span><span class="p">(</span><span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">200</span><span class="p">))</span>
<span class="p">:</span><span class="n">Tween</span><span class="p">{</span><span class="n">Time</span> <span class="o">=</span> <span class="mi">2</span><span class="p">};</span>
<span class="p">};</span>
<span class="n">Frame</span> <span class="s2">&quot;TweenFrame&quot;</span> <span class="p">{</span>
<span class="n">Position</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;pos&quot;</span>
<span class="p">:</span><span class="n">Add</span><span class="p">(</span><span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">300</span><span class="p">))</span>
<span class="p">:</span><span class="n">Tween</span><span class="p">{</span><span class="n">Time</span> <span class="o">=</span> <span class="mi">2</span><span class="p">};</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span>
<span class="kd">local</span> <span class="n">on</span> <span class="o">=</span> <span class="kc">false</span>
<span class="kr">while</span> <span class="kc">true</span> <span class="kr">do</span>
<span class="n">on</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">on</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">pos</span> <span class="o">=</span> <span class="n">on</span> <span class="ow">and</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
<span class="kr">end</span>
</code></pre></div></td></tr></table></div>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Default</span><span class="p">(</span><span class="nx">value</span><span class="o">:</span><span class="kt">any</span><span class="p">)</span><span class="w"></span></code> </p>
<blockquote>
<p>기본값을 정합니다. 만약 값이 <code class="highlight"><span class="kc">nil</span></code> 인 경우 이 값을 사용하게 됩니다. Add 나 With 등 다른것에 영향받지 않습니다.<br />
<em>주의 : 처음 오브젝트가 생성될 때에만 이 값이 사용됩니다.</em></p>
</blockquote>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">ScreenGUI</span> <span class="o">=</span> <span class="n">script</span><span class="p">.</span><span class="n">Parent</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">Class</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Class</span>
<span class="kd">local</span> <span class="n">Mount</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Mount</span>
<span class="kd">local</span> <span class="n">Frame</span> <span class="o">=</span> <span class="n">Class</span> <span class="s2">&quot;Frame&quot;</span>
<span class="kd">local</span> <span class="n">myStore</span> <span class="o">=</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetStore</span><span class="p">(</span><span class="s2">&quot;myStore&quot;</span><span class="p">)</span>
<span class="n">Frame</span> <span class="s2">&quot;mainFrame&quot;</span> <span class="p">{</span>
<span class="n">Size</span> <span class="o">=</span> <span class="n">UDim2</span><span class="p">.</span><span class="n">fromOffset</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">);</span>
<span class="c1">-- color 값이 없으므로 Default 안의 값이 사용됩니다.</span>
<span class="n">BackgroundColor3</span> <span class="o">=</span> <span class="n">myStore</span> <span class="s2">&quot;color&quot;</span>
<span class="p">:</span><span class="n">Default</span><span class="p">(</span><span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">));</span>
<span class="p">}</span>
<span class="n">Mount</span><span class="p">(</span><span class="n">ScreenGUI</span><span class="p">,</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetObject</span><span class="p">(</span><span class="s2">&quot;mainFrame&quot;</span><span class="p">))</span>
<span class="n">task</span><span class="p">.</span><span class="n">wait</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">color</span> <span class="o">=</span> <span class="n">Color3</span><span class="p">.</span><span class="n">fromRGB</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
<hr />
<p><code class="highlight"><span class="o">:</span><span class="nx">Register</span><span class="p">((</span><span class="nx">store</span><span class="o">:</span><span class="kt">valueStore</span><span class="p">,</span><span class="w"> </span><span class="nx">newValue</span><span class="o">:</span><span class="kt">any</span><span class="p">,</span><span class="w"> </span><span class="nx">key</span><span class="o">:</span><span class="kt">string</span><span class="p">)</span><span class="o">-&gt;</span><span class="p">())</span><span class="o">-&gt;</span><span class="nx">nil</span><span class="w"></span></code> </p>
<blockquote>
<p>레지스터에 함수를 등록합니다. 값이 변경되면 함수가 실행됩니다. 첫번째 값에는 편의상 스토어 값이 제공되며, 새로운 값과, 바뀐 값에 대한 키가 제공됩니다<br />
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1">-- 용법</span>
<span class="kd">local</span> <span class="n">Quad</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">path</span><span class="p">.</span><span class="n">to</span><span class="p">.</span><span class="n">module</span><span class="p">).</span><span class="n">Init</span><span class="p">()</span>
<span class="kd">local</span> <span class="n">Store</span> <span class="o">=</span> <span class="n">Quad</span><span class="p">.</span><span class="n">Store</span>
<span class="kd">local</span> <span class="n">myStore</span> <span class="o">=</span> <span class="n">Store</span><span class="p">.</span><span class="n">GetStore</span><span class="p">(</span><span class="s2">&quot;myStore&quot;</span><span class="p">)</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">test1</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">test2</span> <span class="o">=</span> <span class="s2">&quot;Hello&quot;</span>
<span class="n">myStore</span> <span class="s2">&quot;test1,test2&quot;</span><span class="p">:</span><span class="n">Register</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">myStore</span><span class="p">.</span><span class="n">test1</span><span class="p">,</span><span class="n">myStore</span><span class="p">.</span><span class="n">test2</span><span class="p">)</span>
<span class="kr">end</span><span class="p">)</span>
<span class="n">myStore</span><span class="p">.</span><span class="n">test1</span> <span class="o">=</span> <span class="mi">2</span>
</code></pre></div></td></tr></table></div></p>
</blockquote>
</article>
</div>
</div>
<a href="#" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
맨위로
</a>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../7_quadProperty/" class="md-footer__link md-footer__link--prev" aria-label="이전: QuadProperty" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</div>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
이전
</span>
QuadProperty
</div>
</div>
</a>
<a href="../9_lang/" class="md-footer__link md-footer__link--next" aria-label="다음: Lang" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
다음
</span>
Lang
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2020 - 2023 Qwreey
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.indexes", "navigation.footer", "navigation.tabs", "navigation.top"], "search": "../../assets/javascripts/workers/search.b97dbffb.min.js", "translations": {"clipboard.copied": "\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac\ub428", "clipboard.copy": "\ud074\ub9bd\ubcf4\ub4dc\ub85c \ubcf5\uc0ac", "search.config.lang": "en", "search.config.pipeline": " ", "search.config.separator": "[\\s\\-]+", "search.placeholder": "\uac80\uc0c9", "search.result.more.one": "\uc774 \ubb38\uc11c\uc5d0\uc11c 1\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.more.other": "\uc774 \ubb38\uc11c\uc5d0\uc11c #\uac1c\uc758 \uac80\uc0c9 \uacb0\uacfc \ub354 \ubcf4\uae30", "search.result.none": "\uac80\uc0c9\uc5b4\uc640 \uc77c\uce58\ud558\ub294 \ubb38\uc11c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4", "search.result.one": "1\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.other": "#\uac1c\uc758 \uc77c\uce58\ud558\ub294 \ubb38\uc11c", "search.result.placeholder": "\uac80\uc0c9\uc5b4\ub97c \uc785\ub825\ud558\uc138\uc694", "search.result.term.missing": "\ud3ec\ud568\ub418\uc9c0 \uc54a\uc740 \uac80\uc0c9\uc5b4", "select.version.title": "\ubc84\uc804 \uc120\ud0dd"}}</script>
<script src="../../assets/javascripts/bundle.6c7ad80a.min.js"></script>
</body>
</html>