项目作者: fairygui

项目描述 :
A GUI Editor & framework for Three.js
高级语言: TypeScript
项目地址: git://github.com/fairygui/FairyGUI-threejs.git
创建时间: 2020-06-08T03:21:57Z
项目社区:https://github.com/fairygui/FairyGUI-threejs

开源协议:MIT License

下载


FairyGUI-three

A GUI Editor&framework for Three.js

Official website: www.fairygui.com

Usage

Step 1, we use the editor to create the UI.

Step 2, we only need a little code to display it.

  1. import * as fgui from "fairygui-three";
  2. var renderer;
  3. var scene;
  4. var view;
  5. init();
  6. animate();
  7. function init() {
  8. //THREE initialization code here
  9. fgui.Stage.init(renderer, { screenMode:'horizontal' }); //screenMode is optional if you dont want to rotate the screen
  10. fgui.Stage.scene = scene;
  11. fgui.UIPackage.loadPackage('path/to/UI').then(()=> {
  12. view = fgui.UIPackage.CreateObject('Basics', 'Main');
  13. view.makeFullScreen();
  14. fgui.GRoot.inst.addChild(view);
  15. });
  16. }
  17. function animate() {
  18. requestAnimationFrame( animate );
  19. fgui.Stage.update();
  20. renderer.render(scene, fgui.Stage.camera);
  21. }

You should see this

In the example above, an UI is created and displayed by an orthographic camera (fgui.Stage.camera) . It’s easy to display UI by an specific perspective camera.

  1. import * as fgui from "fairygui-three";
  2. var renderer;
  3. var scene;
  4. var camera;
  5. var view;
  6. init();
  7. animate();
  8. function init() {
  9. //THREE initialization code here
  10. camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
  11. camera.position.z = 1;
  12. fgui.Stage.init(renderer);
  13. fgui.Stage.scene = scene;
  14. fgui.UIPackage.loadPackage('path/to/UI').then(()=> {
  15. view = fgui.UIPackage.CreateObject('3DInventory', 'Main');
  16. view.displayObject.camera = camera;
  17. view.displayObject.setLayer(0);
  18. let container = new Group();
  19. container.scale.set(0.5, 0.5, 0.5);
  20. container.add(view.obj3D);
  21. scene.add(container);
  22. });
  23. }
  24. function animate() {
  25. requestAnimationFrame( animate );
  26. fgui.Stage.update();
  27. renderer.render(scene, camera);
  28. }

You should see this

If a perspective camera is using for all UI,

  1. Stage.init(renderer, { defaultLayer:0 });
  2. Stage.camera = yourCamera;

License

MIT