Enables an Entity to render a model or a primitive shape. This Component attaches additional model geometry in to the scene graph below the Entity.

Hierarchy (view full)

Constructors

Properties

_asset: number | Asset = null
_batchGroupId: number = -1
_castShadows: boolean = true
_castShadowsLightmap: boolean = true
_clonedModel: boolean = false
_customAabb: BoundingBox = null
_layers: number[] = ...
_lightmapSizeMultiplier: number = 1
_lightmapped: boolean = false
_mapping: {} = {}

Type declaration

    _material: Material
    _materialAsset: number | Asset = null
    _model: Model = null
    _receiveShadows: boolean = true
    _type: string = 'asset'
    entity: Entity

    The Entity that this Component is attached to.

    isStatic: boolean = false

    Mark meshes as non-movable (optimization).

    The ComponentSystem used to create this Component.

    Accessors

    • get type(): string
    • Returns string

    • set type(value): void
    • The type of the model. Can be:

      • "asset": The component will render a model asset
      • "box": The component will render a box (1 unit in each dimension)
      • "capsule": The component will render a capsule (radius 0.5, height 2)
      • "cone": The component will render a cone (radius 0.5, height 1)
      • "cylinder": The component will render a cylinder (radius 0.5, height 1)
      • "plane": The component will render a plane (1 unit in each dimension)
      • "sphere": The component will render a sphere (radius 0.5)
      • "torus": The component will render a torus (tubeRadius: 0.2, ringRadius: 0.3)

      Parameters

      • value: string

      Returns void

    Methods

    • Private

      Parameters

      • asset: Asset

        The model asset on which an asset change event has been fired.

      • attr: string

        The attribute that was changed.

      • _new: any

        The new value of the attribute.

      • _old: any

        The old value of the attribute.

      Returns void

    • Private

      Parameters

      • index: number

        The index of the mesh instance.

      • event: string

        The event name.

      • id: number

        The asset id.

      • handler: any

        The handler function to be bound to the specified event.

      Returns void

    • Fire an event, all additional arguments are passed on to the event listener.

      Parameters

      • name: string

        Name of event to fire.

      • Optional arg1: any

        First argument that is passed to the event handler.

      • Optional arg2: any

        Second argument that is passed to the event handler.

      • Optional arg3: any

        Third argument that is passed to the event handler.

      • Optional arg4: any

        Fourth argument that is passed to the event handler.

      • Optional arg5: any

        Fifth argument that is passed to the event handler.

      • Optional arg6: any

        Sixth argument that is passed to the event handler.

      • Optional arg7: any

        Seventh argument that is passed to the event handler.

      • Optional arg8: any

        Eighth argument that is passed to the event handler.

      Returns EventHandler

      Self for chaining.

      Example

      obj.fire('test', 'This is the message');
      
    • Test if there are any handlers bound to an event name.

      Parameters

      • name: string

        The name of the event to test.

      Returns boolean

      True if the object has handlers bound to the specified event name.

      Example

      obj.on('test', function () { }); // bind an event to 'test'
      obj.hasEvent('test'); // returns true
      obj.hasEvent('hello'); // returns false
    • Stop rendering model without removing it from the scene hierarchy. This method sets the MeshInstance#visible property of every MeshInstance in the model to false Note, this does not remove the model or mesh instances from the scene hierarchy or draw call list. So the model component still incurs some CPU overhead.

      Returns void

      Example

      this.timer = 0;
      this.visible = true;
      // ...
      // blink model every 0.1 seconds
      this.timer += dt;
      if (this.timer > 0.1) {
      if (!this.visible) {
      this.entity.model.show();
      this.visible = true;
      } else {
      this.entity.model.hide();
      this.visible = false;
      }
      this.timer = 0;
      }
    • Detach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.

      Parameters

      • Optional name: string

        Name of the event to unbind.

      • Optional callback: HandleEventCallback

        Function to be unbound.

      • Optional scope: object

        Scope that was used as the this when the event is fired.

      Returns EventHandler

      Self for chaining.

      Example

      const handler = function () {
      };
      obj.on('test', handler);

      obj.off(); // Removes all events
      obj.off('test'); // Removes all events called 'test'
      obj.off('test', handler); // Removes all handler functions, called 'test'
      obj.off('test', handler, this); // Removes all handler functions, called 'test' with scope this
    • Attach an event handler to an event.

      Parameters

      • name: string

        Name of the event to bind the callback to.

      • callback: HandleEventCallback

        Function that is called when event is fired. Note the callback is limited to 8 arguments.

      • Optional scope: object = ...

        Object to use as 'this' when the event is fired, defaults to current this.

      Returns EventHandle

      Can be used for removing event in the future.

      Example

      obj.on('test', function (a, b) {
      console.log(a + b);
      });
      obj.fire('test', 1, 2); // prints 3 to the console

      Example

      const evt = obj.on('test', function (a, b) {
      console.log(a + b);
      });
      // some time later
      evt.off();
    • Attach an event handler to an event. This handler will be removed after being fired once.

      Parameters

      • name: string

        Name of the event to bind the callback to.

      • callback: HandleEventCallback

        Function that is called when event is fired. Note the callback is limited to 8 arguments.

      • Optional scope: object = ...

        Object to use as 'this' when the event is fired, defaults to current this.

      Returns EventHandle

      • can be used for removing event in the future.

      Example

      obj.once('test', function (a, b) {
      console.log(a + b);
      });
      obj.fire('test', 1, 2); // prints 3 to the console
      obj.fire('test', 1, 2); // not going to get handled