engine icon indicating copy to clipboard operation
engine copied to clipboard

When make camera disable in `_render` function will error

Open singlecoder opened this issue 3 years ago • 0 comments

Test code

Test.ts

import { Camera, Renderer } from "oasis-engine";

export class Test extends Renderer {
  private _camera: Camera;

  set camera(value: Camera) {
    this._camera = value;
  }
  
  _render(camera: Camera): void {
    this._camera && (this._camera.enabled = false);
  }
}

index.ts

import {
  Camera,
  Vector3,
  WebGLEngine,
} from "oasis-engine";
import { Test } from "./Test";

export async function createOasis() {
  const engine = new WebGLEngine("canvas");
  engine.canvas.resizeByClientSize();
  const scene = engine.sceneManager.activeScene;
  const rootEntity = scene.createRootEntity();

  // init camera
  const cameraEntity = rootEntity.createChild("camera");
  cameraEntity.addComponent(Camera);
  const pos = cameraEntity.transform.position;
  pos.set(0, 0, 10);
  cameraEntity.transform.position = pos;
  cameraEntity.transform.lookAt(new Vector3(0, 0, 0));

  const testCameraEntity = rootEntity.createChild("testCamera");
  rootEntity.addComponent(Test).camera = testCameraEntity.addComponent(Camera);

  engine.run();
}

Error

image

singlecoder avatar Sep 22 '22 09:09 singlecoder