@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
TypeScript
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.
*
* 
*
* **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;
}