@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
50 lines (49 loc) • 1.63 kB
TypeScript
import { PlayerView } from "../engine/engine_playerview.js";
import { Camera } from "./Camera.js";
import { Behaviour } from "./Component.js";
export declare enum SpectatorMode {
FirstPerson = 0,
ThirdPerson = 1
}
/**
* @category Networking
* @group Components
*/
export declare class SpectatorCamera extends Behaviour {
cam: Camera | null;
/** when enabled pressing F will send a request to all connected users to follow me, ESC to stop */
useKeys: boolean;
private _mode;
get mode(): SpectatorMode;
set mode(val: SpectatorMode);
/** if this user is currently spectating someone else */
get isSpectating(): boolean;
isSpectatingUser(userId: string): boolean;
isFollowedBy(userId: string): boolean;
/** list of other users that are following me */
get followers(): string[];
stopSpectating(): void;
private get localId();
/** player view to follow */
set target(target: PlayerView | undefined);
get target(): PlayerView | undefined;
requestAllFollowMe(): void;
private get isSpectatingSelf();
private orbit;
private _handler?;
private eventSub_WebXRRequestStartEvent;
private eventSub_WebXRStartEvent;
private eventSub_WebXREndEvent;
private _debug?;
private _networking;
awake(): void;
onDestroy(): void;
private isSupportedPlatform;
onBeforeXR(_evt: any): void;
onEnterXR(_evt: any): void;
onLeaveXR(_evt: any): void;
private followSelf;
onAfterRender(): void;
private setAvatarFlagsBeforeRender;
private resetAvatarFlags;
}