prefab-user-properties-create.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  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>Creating a prefab user property &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="Simple property type" href="prefab-user-properties-simple-type.html" />
  23. <link rel="prev" title="Prefab user properties" href="prefab-user-properties.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 current"><a class="current reference internal" href="#">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"><a class="reference internal" href="prefab-user-properties-prefab-instance.html">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">Creating a prefab user property</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="creating-a-prefab-user-property">
  136. <h1>Creating a prefab user property<a class="headerlink" href="#creating-a-prefab-user-property" title="Link to this heading"></a></h1>
  137. <p>The <strong>Prefab Properties</strong> section of the <a class="reference external" href="../workbench/inspector-view.html">Inspector view</a> shows a button to create a new user property. This section is shown when you select the scene (click on a blank space of the scene), or when you select the <strong>Prefab Properties</strong> element in the <a class="reference external" href="../workbench/outline-view.html">Outline view</a>:</p>
  138. <img alt="The Prefabs Properties in the Outline view." src="../_images/prefab-user-props-node-outline-view-20221102.webp" />
  139. <p>Click on the <strong>Add Property</strong> button to create a new property. It opens a dialog with the different type of properties:</p>
  140. <img alt="Property types dialog." src="../_images/prefab-user-props-add-property-dialog-20230626.webp" />
  141. <img alt="Add Property button." src="../_images/prefab-user-props-add-property-button-20230626.webp" />
  142. <p>The properties are shown as children of the <strong>Prefab Properties</strong> element. Click a property for editing it in the <a class="reference external" href="../workbench/inspector-view.html">Inspector view</a>:</p>
  143. <img alt="Display all properties of a prefab." src="../_images/prefab-user-props-as-children-outline-20221102.webp" />
  144. <p>All type of properties requires some common parameters that you should provide:</p>
  145. <ul class="simple">
  146. <li><p>The <strong>Name</strong> of the property. It is used by the compiler to generate a property declaration code. It should be a valid JavaScript identifier.</p></li>
  147. <li><p>The <strong>Label</strong>. It is a UI friendly version of the <strong>Name</strong>. For example, the label for the <strong>maxSpeed</strong> name could be <strong>Maximum Speed</strong>. In code, is generated a <strong>maxSpeed</strong> field, but the UI shows <strong>Maximum Speed</strong>.</p></li>
  148. <li><p>The <strong>Tooltip</strong>. Used in the UI as documentation of the property.</p></li>
  149. <li><p>The <strong>Default</strong> value.</p></li>
  150. <li><p>The <strong>Custom Definition</strong> flag. If enabled, the <a class="reference external" href="../scene-editor/scene-compiler.html">scene compiler</a> skips the generation of the code with the property declaration. It allows you writing a custom implementation of the property. For example, using a custom getter and setter. Learn more about <a class="reference external" href="prefab-user-properties-initializing.html#using-properties-with-custom-definition">using properties with custom definition</a>.</p></li>
  151. </ul>
  152. <img alt="Common parameters of a property." src="../_images/prefab-user-props-common-params-20221102.webp" />
  153. <p>The menu of the property section shows the following actions:</p>
  154. <blockquote>
  155. <div><ul class="simple">
  156. <li><p>Change the type of the property.</p></li>
  157. <li><p>Delete the property.</p></li>
  158. </ul>
  159. </div></blockquote>
  160. <p>To change the order of the properties, go with the context menu’s <strong>Edit</strong> → <strong>Move</strong> commands.</p>
  161. <p>You can undo/redo all these changes.</p>
  162. <img alt="Property menu." src="../_images/prefab-user-props-menu-20230627.webp" />
  163. </section>
  164. </div>
  165. </div>
  166. <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
  167. <a href="prefab-user-properties.html" class="btn btn-neutral float-left" title="Prefab user properties" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
  168. <a href="prefab-user-properties-simple-type.html" class="btn btn-neutral float-right" title="Simple property type" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
  169. </div>
  170. <hr/>
  171. <div role="contentinfo">
  172. <p>&#169; Copyright 2016-2024, Arian Fornaris.</p>
  173. </div>
  174. Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
  175. <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
  176. provided by <a href="https://readthedocs.org">Read the Docs</a>.
  177. </footer>
  178. </div>
  179. </div>
  180. </section>
  181. </div>
  182. <script>
  183. jQuery(function () {
  184. SphinxRtdTheme.Navigation.enable(true);
  185. });
  186. </script>
  187. <!-- Theme Analytics -->
  188. <script async src="https://www.googletagmanager.com/gtag/js?id=UA-67206336-2"></script>
  189. <script>
  190. window.dataLayer = window.dataLayer || [];
  191. function gtag(){dataLayer.push(arguments);}
  192. gtag('js', new Date());
  193. gtag('config', 'UA-67206336-2', {
  194. 'anonymize_ip': false,
  195. });
  196. </script>
  197. </body>
  198. </html>