UNPKG

@needle-tools/engine

Version:

Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.

77 lines (76 loc) 2.59 kB
import { Behaviour } from './Component.js'; /** * [NeedleMenu](https://engine.needle.tools/docs/api/NeedleMenu) provides configuration for the built-in UI menu. * The menu renders as HTML overlay in browser mode and automatically * switches to a 3D spatial menu in VR/AR. * * ![](https://cloud.needle.tools/-/media/YKleg1oPy_I8Hv8sg_k40Q.png) * * **Features:** * - Fullscreen toggle button * - Audio mute/unmute button * - QR code sharing (desktop only) * - Spatial menu in XR (appears when looking up) * - Custom positioning (top/bottom) * * **Programmatic access:** * Access the menu API via `this.context.menu` to add custom buttons, * show/hide elements, or modify behavior at runtime. * * @example Configure menu from code * ```ts * // Access the menu API * this.context.menu.appendChild(myCustomButton); * this.context.menu.setPosition("top"); * this.context.menu.showFullscreenOption(true); * ``` * * @summary Configuration component for the Needle Menu overlay * @category User Interface * @group Components * @see {@link Context.menu} for programmatic menu control * @see {@link NeedleButtonElement} for standalone <needle-button> web component * @see {@link NeedleEngineWebComponent} for the main <needle-engine> element * @see {@link Voip} adds a microphone button to the menu * @see {@link ScreenCapture} adds a screen sharing button **/ export declare class NeedleMenu extends Behaviour { /** * Determines the vertical positioning of the menu on the screen */ position: "top" | "bottom"; /** * Controls the visibility of the Needle logo in the menu (requires PRO license) */ showNeedleLogo: boolean; /** * When enabled, displays the menu in VR/AR mode when the user looks up * @default undefined */ showSpatialMenu?: boolean; /** * When enabled, adds a fullscreen toggle button to the menu * @default undefined */ createFullscreenButton?: boolean; /** * When enabled, adds an audio mute/unmute button to the menu * @default undefined */ createMuteButton?: boolean; /** * When enabled, adds a button to display a QR code for sharing the application. * The QR code is only displayed on desktop devices. * @default undefined */ createQRCodeButton?: boolean; /** * Applies the configured menu options when the component is enabled * @hidden */ onEnable(): void; /** * Applies all configured options to the active {@link Context.menu}. */ applyOptions(): void; }