prefab-user-properties-prefab-instance.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. <!DOCTYPE html>
  2. <html class="writer-html5" lang="en" >
  3. <head>
  4. <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>User properties in a prefab instance &mdash; Phaser Editor 2D Help</title>
  7. <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
  8. <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  9. <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
  10. <link rel="shortcut icon" href="../_static/icon.png"/>
  11. <!--[if lt IE 9]>
  12. <script src="../_static/js/html5shiv.min.js"></script>
  13. <![endif]-->
  14. <script src="../_static/jquery.js?v=5d32c60e"></script>
  15. <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
  16. <script src="../_static/documentation_options.js?v=a1f35292"></script>
  17. <script src="../_static/doctools.js?v=888ff710"></script>
  18. <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
  19. <script src="../_static/js/theme.js"></script>
  20. <link rel="index" title="Index" href="../genindex.html" />
  21. <link rel="search" title="Search" href="../search.html" />
  22. <link rel="next" title="Creating a prefab instance" href="prefab-create-instance.html" />
  23. <link rel="prev" title="Initializing other properties" href="prefab-user-properties-initializing.html" />
  24. </head>
  25. <body class="wy-body-for-nav">
  26. <div class="wy-grid-for-nav">
  27. <nav data-toggle="wy-nav-shift" class="wy-nav-side">
  28. <div class="wy-side-scroll">
  29. <div class="wy-side-nav-search" style="background: #343131" >
  30. <a href="../index.html" class="icon icon-home">
  31. Phaser Editor 2D
  32. <img src="../_static/logo.png" class="logo" alt="Logo"/>
  33. </a>
  34. <div class="version">
  35. v3.67.0
  36. </div>
  37. <div role="search">
  38. <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
  39. <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
  40. <input type="hidden" name="check_keywords" value="yes" />
  41. <input type="hidden" name="area" value="default" />
  42. </form>
  43. </div>
  44. </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
  45. <ul class="current">
  46. <li class="toctree-l1"><a class="reference internal" href="../intro/index.html">Introduction</a></li>
  47. <li class="toctree-l1"><a class="reference internal" href="../first-steps/index.html">First steps</a></li>
  48. <li class="toctree-l1"><a class="reference internal" href="../workbench/index.html">Workbench</a></li>
  49. <li class="toctree-l1"><a class="reference internal" href="../asset-pack-editor/index.html">Asset Pack Editor</a></li>
  50. <li class="toctree-l1 current"><a class="reference internal" href="index.html">Scene Editor</a><ul class="current">
  51. <li class="toctree-l2"><a class="reference internal" href="create-new-scene-file.html">Create a new Scene file</a></li>
  52. <li class="toctree-l2"><a class="reference internal" href="add-object.html">Adding an object to the scene</a></li>
  53. <li class="toctree-l2"><a class="reference internal" href="inspector-view.html">Inspector view</a></li>
  54. <li class="toctree-l2"><a class="reference internal" href="game-objects.html">Game Object types</a></li>
  55. <li class="toctree-l2"><a class="reference internal" href="scene-properties.html">Scene properties</a></li>
  56. <li class="toctree-l2"><a class="reference internal" href="arcade-physics.html">Arcade Physics</a></li>
  57. <li class="toctree-l2"><a class="reference internal" href="sprite-animations.html">Sprite animations</a></li>
  58. <li class="toctree-l2"><a class="reference internal" href="spine-animations.html">Spine animations</a></li>
  59. <li class="toctree-l2"><a class="reference internal" href="shader-effects.html">Shader Effects</a></li>
  60. <li class="toctree-l2"><a class="reference internal" href="working-with-parent-objects.html">Working with parent objects</a></li>
  61. <li class="toctree-l2"><a class="reference internal" href="object-list.html">Object List</a></li>
  62. <li class="toctree-l2"><a class="reference internal" href="input.html">Input</a></li>
  63. <li class="toctree-l2 current"><a class="reference internal" href="prefabs.html">Prefabs</a><ul class="current">
  64. <li class="toctree-l3"><a class="reference internal" href="prefab-new-file.html">Creating a prefab file</a></li>
  65. <li class="toctree-l3"><a class="reference internal" href="prefab-object.html">The prefab object</a></li>
  66. <li class="toctree-l3 current"><a class="reference internal" href="prefab-user-properties.html">Prefab user properties</a><ul class="current">
  67. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-create.html">Creating a prefab user property</a></li>
  68. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-simple-type.html">Simple property type</a></li>
  69. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-options-type.html">Option property type</a></li>
  70. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-color-type.html">Color property type</a></li>
  71. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-expression-type.html">Expression property type</a></li>
  72. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-object-variable-type.html">Object Variable property type</a></li>
  73. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-object-constructor-type.html">Object Constructor property type</a></li>
  74. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-event-type.html">Event property type</a></li>
  75. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-keycode-type.html">Key Code property type</a></li>
  76. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-texture-type.html">Texture Config property type</a></li>
  77. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-asset-key-type.html">Asset Key property type</a></li>
  78. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-animation-key-type.html">Animation Key property type</a></li>
  79. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-audio-key-type.html">Audio Key property type</a></li>
  80. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-scene-key-type.html">Scene Key property type</a></li>
  81. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-spine-skin-name.html">Spine Skin Name property type</a></li>
  82. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-spine-animation-name.html">Spine Animation Name property type</a></li>
  83. <li class="toctree-l4"><a class="reference internal" href="prefab-user-properties-initializing.html">Initializing other properties</a></li>
  84. <li class="toctree-l4 current"><a class="current reference internal" href="#">User properties in a prefab instance</a></li>
  85. </ul>
  86. </li>
  87. <li class="toctree-l3"><a class="reference internal" href="prefab-create-instance.html">Creating a prefab instance</a></li>
  88. <li class="toctree-l3"><a class="reference internal" href="prefab-display-properties.html">Prefab instance display properties</a></li>
  89. <li class="toctree-l3"><a class="reference internal" href="prefab-code.html">Prefab code generation</a></li>
  90. <li class="toctree-l3"><a class="reference internal" href="prefab-set-properties.html">Changing a property of a prefab instance</a></li>
  91. <li class="toctree-l3"><a class="reference internal" href="prefab-variant.html">Prefab variants</a></li>
  92. <li class="toctree-l3"><a class="reference internal" href="prefab-nested.html">Nested prefabs</a></li>
  93. <li class="toctree-l3"><a class="reference internal" href="prefab-instance-children.html">Adding children to a prefab instance</a></li>
  94. <li class="toctree-l3"><a class="reference internal" href="prefab-black-box.html">Using a prefab as a black box</a></li>
  95. </ul>
  96. </li>
  97. <li class="toctree-l2"><a class="reference internal" href="script-node.html">Script Nodes</a></li>
  98. <li class="toctree-l2"><a class="reference internal" href="user-components.html">User Components</a></li>
  99. <li class="toctree-l2"><a class="reference internal" href="manipulation-tools.html">Manipulation tools</a></li>
  100. <li class="toctree-l2"><a class="reference internal" href="layout-tools.html">Layout tools</a></li>
  101. <li class="toctree-l2"><a class="reference internal" href="scene-compiler.html">The scene compiler</a></li>
  102. <li class="toctree-l2"><a class="reference internal" href="misc.html">Miscellaneous</a></li>
  103. <li class="toctree-l2"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
  104. </ul>
  105. </li>
  106. <li class="toctree-l1"><a class="reference internal" href="../code-editor/index.html">Code Editor</a></li>
  107. <li class="toctree-l1"><a class="reference internal" href="../animations-editor/index.html">Animations Editor</a></li>
  108. <li class="toctree-l1"><a class="reference internal" href="../atlas-editor/index.html">Atlas Editor</a></li>
  109. <li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Miscellaneous</a></li>
  110. <li class="toctree-l1"><a class="reference internal" href="../pricing/index.html">License and pricing</a></li>
  111. </ul>
  112. </div>
  113. </div>
  114. </nav>
  115. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #343131" >
  116. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  117. <a href="../index.html">Phaser Editor 2D</a>
  118. </nav>
  119. <div class="wy-nav-content">
  120. <div class="rst-content">
  121. <div role="navigation" aria-label="Page navigation">
  122. <ul class="wy-breadcrumbs">
  123. <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
  124. <li class="breadcrumb-item"><a href="index.html">Scene Editor</a></li>
  125. <li class="breadcrumb-item"><a href="prefabs.html">Prefabs</a></li>
  126. <li class="breadcrumb-item"><a href="prefab-user-properties.html">Prefab user properties</a></li>
  127. <li class="breadcrumb-item active">User properties in a prefab instance</li>
  128. <li class="wy-breadcrumbs-aside">
  129. </li>
  130. </ul>
  131. <hr/>
  132. </div>
  133. <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
  134. <div itemprop="articleBody">
  135. <section id="user-properties-in-a-prefab-instance">
  136. <h1>User properties in a prefab instance<a class="headerlink" href="#user-properties-in-a-prefab-instance" title="Link to this heading"></a></h1>
  137. <p>This is how the properties you defined in a <a class="reference external" href="../scene-editor/prefabs.html">prefab</a> are presented in the <strong>Prefab Instance</strong> section of a <a class="reference external" href="../scene-editor/prefabs.html">prefab</a> instance:</p>
  138. <img alt="User properties in a prefab instance." src="../_images/prefab-user-props-prefab-instance-20230627.webp" />
  139. <p>The <a class="reference external" href="../workbench/inspector-view.html">Inspector view</a> shows a section for every <a class="reference external" href="../scene-editor/prefabs.html">prefab</a> (and <a class="reference external" href="../scene-editor/prefab-variant.html">prefab variant</a>) of the object. The user properties are shown just like any other property of a <a class="reference external" href="../scene-editor/prefabs.html">prefab</a> instance.</p>
  140. <p>Each section contains a menu with the options:</p>
  141. <ul class="simple">
  142. <li><p><strong>Open Prefab</strong>: opens the prefab file.</p></li>
  143. <li><p><strong>Select All &lt;Prefab&gt;</strong>: select all objects in the scene instancing the same prefab.</p></li>
  144. </ul>
  145. <img alt="Prefab instance section and menu." src="../_images/prefab-user-props-prefab-instance-menu-20230627.webp" />
  146. <p>The code, generated by the <a class="reference external" href="../scene-editor/scene-compiler.html">scene compiler</a>, that creates the <a class="reference external" href="../scene-editor/prefabs.html">prefab</a> instance and initialize the properties will look like following. Note the <strong>dragon</strong> instance is created first, and the user properties are initialized later, at the end of the method. By setting the user properties at the end, it allows you to set references to another objects created in the scene:</p>
  147. <div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kd">class</span><span class="w"> </span><span class="nx">Level</span><span class="w"> </span><span class="k">extends</span><span class="w"> </span><span class="nx">Phaser</span><span class="p">.</span><span class="nx">Scene</span><span class="w"> </span><span class="p">{</span>
  148. <span class="p">...</span>
  149. <span class="w"> </span><span class="nx">create</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
  150. <span class="w"> </span><span class="p">...</span>
  151. <span class="w"> </span><span class="c1">// dragon</span>
  152. <span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">dragon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">Dragon</span><span class="p">(</span><span class="k">this</span><span class="p">,</span><span class="w"> </span><span class="mf">370</span><span class="p">,</span><span class="w"> </span><span class="mf">218</span><span class="p">);</span>
  153. <span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">add</span><span class="p">.</span><span class="nx">existing</span><span class="p">(</span><span class="nx">dragon</span><span class="p">);</span>
  154. <span class="w"> </span><span class="p">...</span>
  155. <span class="w"> </span><span class="c1">// dragon (prefab fields)</span>
  156. <span class="w"> </span><span class="nx">dragon</span><span class="p">.</span><span class="nx">maxSpeed</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">300</span><span class="p">;</span>
  157. <span class="w"> </span><span class="nx">dragon</span><span class="p">.</span><span class="nx">flameType</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;smoke&quot;</span><span class="p">;</span>
  158. <span class="w"> </span><span class="nx">dragon</span><span class="p">.</span><span class="nx">onClickHandler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">obj</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">selectDragon</span><span class="p">();</span>
  159. <span class="w"> </span><span class="nx">dragon</span><span class="p">.</span><span class="nx">emit</span><span class="p">(</span><span class="s2">&quot;prefab-awake&quot;</span><span class="p">);</span>
  160. <span class="w"> </span><span class="p">...</span>
  161. <span class="w"> </span><span class="p">}</span>
  162. <span class="p">...</span>
  163. <span class="p">}</span>
  164. </pre></div>
  165. </div>
  166. <p>In the next sections are covered the topics to create <a class="reference external" href="../scene-editor/prefabs.html">prefab</a> instances and to change the properties.</p>
  167. </section>
  168. </div>
  169. </div>
  170. <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
  171. <a href="prefab-user-properties-initializing.html" class="btn btn-neutral float-left" title="Initializing other properties" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
  172. <a href="prefab-create-instance.html" class="btn btn-neutral float-right" title="Creating a prefab instance" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
  173. </div>
  174. <hr/>
  175. <div role="contentinfo">
  176. <p>&#169; Copyright 2016-2024, Arian Fornaris.</p>
  177. </div>
  178. Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
  179. <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
  180. provided by <a href="https://readthedocs.org">Read the Docs</a>.
  181. </footer>
  182. </div>
  183. </div>
  184. </section>
  185. </div>
  186. <script>
  187. jQuery(function () {
  188. SphinxRtdTheme.Navigation.enable(true);
  189. });
  190. </script>
  191. <!-- Theme Analytics -->
  192. <script async src="https://www.googletagmanager.com/gtag/js?id=UA-67206336-2"></script>
  193. <script>
  194. window.dataLayer = window.dataLayer || [];
  195. function gtag(){dataLayer.push(arguments);}
  196. gtag('js', new Date());
  197. gtag('config', 'UA-67206336-2', {
  198. 'anonymize_ip': false,
  199. });
  200. </script>
  201. </body>
  202. </html>