@galacean/effects-threejs 2.0.0-alpha.8 → 2.0.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime threejs plugin for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.0.0-alpha.8
6
+ * Version: v2.0.0-alpha.9
7
7
  */
8
8
 
9
9
  import * as THREE from 'three';
@@ -9597,6 +9597,36 @@ var seed$9 = 1;
9597
9597
  type: glContext.UNSIGNED_BYTE
9598
9598
  }, options);
9599
9599
  };
9600
+ /**
9601
+ * 通过 URL 创建 Texture 对象。
9602
+ * @param url - 要创建的 Texture URL
9603
+ * @since 2.0.0
9604
+ */ Texture.fromImage = function fromImage(url, engine) {
9605
+ return _async_to_generator(function() {
9606
+ var image, texture;
9607
+ return __generator(this, function(_state) {
9608
+ switch(_state.label){
9609
+ case 0:
9610
+ return [
9611
+ 4,
9612
+ loadImage(url)
9613
+ ];
9614
+ case 1:
9615
+ image = _state.sent();
9616
+ texture = Texture.create(engine, {
9617
+ sourceType: TextureSourceType.image,
9618
+ image: image,
9619
+ id: generateGUID$1()
9620
+ });
9621
+ texture.initialize();
9622
+ return [
9623
+ 2,
9624
+ texture
9625
+ ];
9626
+ }
9627
+ });
9628
+ })();
9629
+ };
9600
9630
  _create_class(Texture, [
9601
9631
  {
9602
9632
  key: "isDestroyed",
@@ -10569,14 +10599,10 @@ var seed$7 = 1;
10569
10599
  if (!this.getVisible()) {
10570
10600
  return;
10571
10601
  }
10572
- var material = this.material;
10573
- var geo = this.geometry;
10574
10602
  if (renderer.renderingData.currentFrame.globalUniforms) {
10575
10603
  renderer.setGlobalMatrix("effects_ObjectToWorld", this.worldMatrix);
10576
10604
  }
10577
- // 执行 Geometry 的数据刷新
10578
- geo.flush();
10579
- renderer.drawGeometry(geo, material);
10605
+ renderer.drawGeometry(this.geometry, this.material);
10580
10606
  };
10581
10607
  /**
10582
10608
  * 获取当前 Mesh 的第一个 geometry。
@@ -13695,6 +13721,23 @@ var SpriteComponent = /*#__PURE__*/ function(RendererComponent) {
13695
13721
  */ _proto.getVisible = function getVisible() {
13696
13722
  return this.visible;
13697
13723
  };
13724
+ /**
13725
+ * 设置当前图层的颜色
13726
+ * > Tips: 透明度也属于颜色的一部分,当有透明度/颜色 K 帧变化时,该 API 会失效
13727
+ * @since 2.0.0
13728
+ * @param color - 颜色值
13729
+ */ _proto.setColor = function setColor(color) {
13730
+ this.color = color;
13731
+ this.material.setVector4("_Color", new Vector4().setFromArray(color));
13732
+ };
13733
+ /**
13734
+ * 设置当前 Mesh 的纹理
13735
+ * @since 2.0.0
13736
+ * @param texture - 纹理对象
13737
+ */ _proto.setTexture = function setTexture(texture) {
13738
+ this.renderer.texture = texture;
13739
+ this.material.setTexture("uSampler0", texture);
13740
+ };
13698
13741
  _proto.render = function render(renderer) {
13699
13742
  if (!this.getVisible()) {
13700
13743
  return;
@@ -13705,8 +13748,6 @@ var SpriteComponent = /*#__PURE__*/ function(RendererComponent) {
13705
13748
  renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
13706
13749
  }
13707
13750
  this.material.setVector2("_Size", this.transform.size);
13708
- // 执行 Geometry 的数据刷新
13709
- geo.flush();
13710
13751
  renderer.drawGeometry(geo, material);
13711
13752
  };
13712
13753
  _proto.start = function start() {
@@ -14099,7 +14140,7 @@ SpriteComponent = __decorate([
14099
14140
 
14100
14141
  var RUNTIME_ENV = "runtime_env";
14101
14142
  var RENDER_PREFER_LOOKUP_TEXTURE = "lookup_texture";
14102
- // 数据模板使用 offscreen canvas 绘制
14143
+ // 文本元素使用 offscreen canvas 绘制
14103
14144
  var TEMPLATE_USE_OFFSCREEN_CANVAS = "offscreen_canvas";
14104
14145
  // 后处理配置相关
14105
14146
  var POST_PROCESS_SETTINGS = "post_process_settings";
@@ -17972,12 +18013,6 @@ var TextStyle = function TextStyle(options) {
17972
18013
  }
17973
18014
  };
17974
18015
 
17975
- var DEFAULT_FONTS = [
17976
- "serif",
17977
- "sans-serif",
17978
- "monospace",
17979
- "courier"
17980
- ];
17981
18016
  var CanvasPool = /*#__PURE__*/ function() {
17982
18017
  function CanvasPool() {
17983
18018
  this.elements = [];
@@ -17987,12 +18022,11 @@ var CanvasPool = /*#__PURE__*/ function() {
17987
18022
  this.elements.forEach(function(e) {
17988
18023
  return e.remove();
17989
18024
  });
17990
- // @ts-expect-error
17991
- this.elements = [];
18025
+ // clearing the array
18026
+ this.elements.length = 0;
17992
18027
  };
17993
18028
  _proto.getCanvas = function getCanvas() {
17994
- if (this.elements.length) {
17995
- // @ts-expect-error
18029
+ if (this.elements.length !== 0) {
17996
18030
  return this.elements.shift();
17997
18031
  }
17998
18032
  if (getConfig(TEMPLATE_USE_OFFSCREEN_CANVAS)) {
@@ -18007,12 +18041,13 @@ var CanvasPool = /*#__PURE__*/ function() {
18007
18041
  return defCanvas;
18008
18042
  }
18009
18043
  };
18010
- _proto.saveCanvas = function saveCanvas(cvs) {
18011
- cvs.width = cvs.height = 1;
18044
+ _proto.saveCanvas = function saveCanvas(canvas) {
18045
+ canvas.width = 1;
18046
+ canvas.height = 1;
18012
18047
  if (this.elements.length < 3) {
18013
- addItem(this.elements, cvs);
18048
+ addItem(this.elements, canvas);
18014
18049
  } else {
18015
- cvs.remove();
18050
+ canvas.remove();
18016
18051
  }
18017
18052
  };
18018
18053
  return CanvasPool;
@@ -18021,117 +18056,13 @@ var canvasPool = new CanvasPool();
18021
18056
  function getDefaultTemplateCanvasPool() {
18022
18057
  return canvasPool;
18023
18058
  }
18024
- function getBackgroundImage(template, variables) {
18025
- var templateBackground;
18026
- var _template_background;
18027
- var _ref = (_template_background = template == null ? void 0 : template.background) != null ? _template_background : {}, name = _ref.name, url = _ref.url;
18028
- if (name) {
18029
- if (variables && variables[name]) {
18030
- templateBackground = variables[name];
18031
- } else if (url) {
18032
- templateBackground = url;
18033
- }
18034
- }
18035
- return templateBackground;
18036
- }
18037
- function drawImageByTemplate(image, template, variables) {
18038
- return _drawImageByTemplate.apply(this, arguments);
18039
- }
18040
- function _drawImageByTemplate() {
18041
- _drawImageByTemplate = _async_to_generator(function(image, template, variables) {
18042
- var drawImage, templateBackground, _tmp;
18043
- return __generator(this, function(_state) {
18044
- switch(_state.label){
18045
- case 0:
18046
- if (!image) {
18047
- throw Error("image not provided");
18048
- }
18049
- if (!template) {
18050
- return [
18051
- 2,
18052
- image
18053
- ];
18054
- }
18055
- drawImage = image;
18056
- // 获取动态换图的图片对象或 url 地址
18057
- templateBackground = getBackgroundImage(template, variables);
18058
- if (!(templateBackground && templateBackground !== image.src)) return [
18059
- 3,
18060
- 4
18061
- ];
18062
- if (!isString(templateBackground)) return [
18063
- 3,
18064
- 2
18065
- ];
18066
- return [
18067
- 4,
18068
- loadImage(templateBackground)
18069
- ];
18070
- case 1:
18071
- _tmp = _state.sent();
18072
- return [
18073
- 3,
18074
- 3
18075
- ];
18076
- case 2:
18077
- _tmp = templateBackground;
18078
- _state.label = 3;
18079
- case 3:
18080
- drawImage = _tmp;
18081
- _state.label = 4;
18082
- case 4:
18083
- return [
18084
- 2,
18085
- drawImage
18086
- ];
18087
- }
18088
- });
18089
- });
18090
- return _drawImageByTemplate.apply(this, arguments);
18091
- }
18092
- /**
18093
- * @param url
18094
- * @param template
18095
- * @param variables
18096
- * @param options
18097
- * @returns
18098
- */ function combineImageTemplate(url, template, variables) {
18099
- return _combineImageTemplate.apply(this, arguments);
18100
- }
18101
- function _combineImageTemplate() {
18102
- _combineImageTemplate = _async_to_generator(function(url, template, variables) {
18103
- var image;
18104
- return __generator(this, function(_state) {
18105
- switch(_state.label){
18106
- case 0:
18107
- if (!(typeof url === "string")) return [
18108
- 3,
18109
- 2
18110
- ];
18111
- return [
18112
- 4,
18113
- loadImage(url)
18114
- ];
18115
- case 1:
18116
- image = _state.sent();
18117
- return [
18118
- 3,
18119
- 3
18120
- ];
18121
- case 2:
18122
- image = url;
18123
- _state.label = 3;
18124
- case 3:
18125
- return [
18126
- 2,
18127
- drawImageByTemplate(image, template, variables)
18128
- ];
18129
- }
18130
- });
18131
- });
18132
- return _combineImageTemplate.apply(this, arguments);
18133
- }
18134
18059
 
18060
+ var DEFAULT_FONTS = [
18061
+ "serif",
18062
+ "sans-serif",
18063
+ "monospace",
18064
+ "courier"
18065
+ ];
18135
18066
  var TextComponent = /*#__PURE__*/ function(SpriteComponent) {
18136
18067
  _inherits(TextComponent, SpriteComponent);
18137
18068
  function TextComponent(engine, props) {
@@ -18514,14 +18445,10 @@ var EffectComponent = /*#__PURE__*/ function(RendererComponent) {
18514
18445
  this.item.getHitTestParams = this.getHitTestParams;
18515
18446
  };
18516
18447
  _proto.render = function render(renderer) {
18517
- var material = this.material;
18518
- var geo = this.geometry;
18519
18448
  if (renderer.renderingData.currentFrame.globalUniforms) {
18520
18449
  renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
18521
18450
  }
18522
- // 执行 Geometry 的数据刷新
18523
- geo.flush();
18524
- renderer.drawGeometry(geo, material);
18451
+ renderer.drawGeometry(this.geometry, this.material);
18525
18452
  };
18526
18453
  /**
18527
18454
  * 获取当前 Mesh 的可见性。
@@ -21346,10 +21273,110 @@ function passRenderLevel(l, renderLevel) {
21346
21273
  return false;
21347
21274
  }
21348
21275
 
21349
- function isScene(scene) {
21276
+ function isSceneJSON(scene) {
21350
21277
  // TODO: 判断不太优雅,后期试情况优化
21351
21278
  return isObject(scene) && "jsonScene" in scene;
21352
21279
  }
21280
+ function isSceneURL(scene) {
21281
+ return isObject(scene) && "url" in scene;
21282
+ }
21283
+ function isSceneWithOptions(scene) {
21284
+ // TODO: 判断不太优雅,后期试情况优化
21285
+ return isObject(scene) && "options" in scene;
21286
+ }
21287
+
21288
+ function getBackgroundImage(template, variables) {
21289
+ var templateBackground;
21290
+ var _template_background;
21291
+ var _ref = (_template_background = template == null ? void 0 : template.background) != null ? _template_background : {}, name = _ref.name, url = _ref.url;
21292
+ if (name) {
21293
+ if (variables && variables[name]) {
21294
+ templateBackground = variables[name];
21295
+ } else if (url) {
21296
+ templateBackground = url;
21297
+ }
21298
+ }
21299
+ return templateBackground;
21300
+ }
21301
+ /**
21302
+ * @param url
21303
+ * @param template
21304
+ * @param variables
21305
+ * @param options
21306
+ * @returns
21307
+ */ function combineImageTemplate(url, template, variables) {
21308
+ return _combineImageTemplate.apply(this, arguments);
21309
+ }
21310
+ function _combineImageTemplate() {
21311
+ _combineImageTemplate = _async_to_generator(function(url, template, variables) {
21312
+ var image, drawImage, templateBackground, _tmp;
21313
+ return __generator(this, function(_state) {
21314
+ switch(_state.label){
21315
+ case 0:
21316
+ if (!(typeof url === "string")) return [
21317
+ 3,
21318
+ 2
21319
+ ];
21320
+ return [
21321
+ 4,
21322
+ loadImage(url)
21323
+ ];
21324
+ case 1:
21325
+ image = _state.sent();
21326
+ return [
21327
+ 3,
21328
+ 3
21329
+ ];
21330
+ case 2:
21331
+ image = url;
21332
+ _state.label = 3;
21333
+ case 3:
21334
+ if (!image) {
21335
+ throw new Error("image not provided.");
21336
+ }
21337
+ if (!template) {
21338
+ return [
21339
+ 2,
21340
+ image
21341
+ ];
21342
+ }
21343
+ drawImage = image;
21344
+ // 获取动态换图的图片对象或 url 地址
21345
+ templateBackground = getBackgroundImage(template, variables);
21346
+ if (!(templateBackground && isString(templateBackground) && templateBackground !== image.src)) return [
21347
+ 3,
21348
+ 7
21349
+ ];
21350
+ if (!isString(templateBackground)) return [
21351
+ 3,
21352
+ 5
21353
+ ];
21354
+ return [
21355
+ 4,
21356
+ loadImage(templateBackground)
21357
+ ];
21358
+ case 4:
21359
+ _tmp = _state.sent();
21360
+ return [
21361
+ 3,
21362
+ 6
21363
+ ];
21364
+ case 5:
21365
+ _tmp = templateBackground;
21366
+ _state.label = 6;
21367
+ case 6:
21368
+ drawImage = _tmp;
21369
+ _state.label = 7;
21370
+ case 7:
21371
+ return [
21372
+ 2,
21373
+ drawImage
21374
+ ];
21375
+ }
21376
+ });
21377
+ });
21378
+ return _combineImageTemplate.apply(this, arguments);
21379
+ }
21353
21380
 
21354
21381
  var seed$1 = 1;
21355
21382
  /**
@@ -21378,22 +21405,19 @@ var seed$1 = 1;
21378
21405
  };
21379
21406
  /**
21380
21407
  * 根据用户传入的参数修改场景数据
21381
- */ _proto.updateSceneData = function updateSceneData(compositions) {
21408
+ */ _proto.updateSceneData = function updateSceneData(items) {
21382
21409
  var variables = this.options.variables;
21383
- if (!variables || Object.keys(variables).length <= 0) {
21384
- return compositions;
21385
- }
21386
- compositions.forEach(function(composition) {
21387
- composition.items.forEach(function(item) {
21388
- if (item.type === ItemType$1.text) {
21389
- var textVariable = variables[item.name];
21390
- if (textVariable) {
21391
- item.content.options.text = textVariable;
21392
- }
21410
+ if (!variables || Object.keys(variables).length === 0) {
21411
+ return;
21412
+ }
21413
+ items.forEach(function(item) {
21414
+ if (item.type === ItemType$1.text) {
21415
+ var textVariable = variables[item.name];
21416
+ if (textVariable) {
21417
+ item.content.options.text = textVariable;
21393
21418
  }
21394
- });
21419
+ }
21395
21420
  });
21396
- return compositions;
21397
21421
  };
21398
21422
  /**
21399
21423
  * 场景创建,通过 json 创建出场景对象,并进行提前编译等工作
@@ -21418,7 +21442,7 @@ var seed$1 = 1;
21418
21442
  cancelLoading = true;
21419
21443
  _this.removeTimer(loadTimer);
21420
21444
  var totalTime = performance.now() - startTime;
21421
- reject("Load time out: totalTime: " + totalTime.toFixed(4) + "ms " + timeInfos.join(" ") + ", url: " + assetUrl);
21445
+ reject(new Error("Load time out: totalTime: " + totalTime.toFixed(4) + "ms " + timeInfos.join(" ") + ", url: " + assetUrl));
21422
21446
  }, _this.timeout * 1000);
21423
21447
  _this.timers.push(loadTimer);
21424
21448
  });
@@ -21453,9 +21477,9 @@ var seed$1 = 1;
21453
21477
  ];
21454
21478
  case 3:
21455
21479
  e = _state.sent();
21456
- throw new Error("load error in " + label + ", " + e);
21480
+ throw new Error("Load error in " + label + ", " + e);
21457
21481
  case 4:
21458
- throw new Error("load canceled.");
21482
+ throw new Error("Load canceled.");
21459
21483
  }
21460
21484
  });
21461
21485
  });
@@ -21489,7 +21513,7 @@ var seed$1 = 1;
21489
21513
  rawJSON = _state.sent();
21490
21514
  _state.label = 3;
21491
21515
  case 3:
21492
- if (!isScene(rawJSON)) return [
21516
+ if (!isSceneJSON(rawJSON)) return [
21493
21517
  3,
21494
21518
  6
21495
21519
  ];
@@ -21519,7 +21543,7 @@ var seed$1 = 1;
21519
21543
  for(i1 = 0; i1 < scene.images.length; i1++){
21520
21544
  scene.textureOptions[i1].image = scene.images[i1];
21521
21545
  }
21522
- scene.jsonScene.compositions = _this.updateSceneData(scene.jsonScene.compositions);
21546
+ _this.updateSceneData(scene.jsonScene.items);
21523
21547
  _state.label = 5;
21524
21548
  case 5:
21525
21549
  return [
@@ -21568,7 +21592,7 @@ var seed$1 = 1;
21568
21592
  ];
21569
21593
  case 10:
21570
21594
  loadedTextures = _state.sent();
21571
- jsonScene.compositions = _this.updateSceneData(jsonScene.compositions);
21595
+ _this.updateSceneData(jsonScene.items);
21572
21596
  scene = {
21573
21597
  url: url,
21574
21598
  renderLevel: _this.options.renderLevel,
@@ -21791,7 +21815,7 @@ var seed$1 = 1;
21791
21815
  _this_options = _this.options, useCompressedTexture = _this_options.useCompressedTexture, variables = _this_options.variables;
21792
21816
  baseUrl = _this.baseUrl;
21793
21817
  jobs = images.map(/*#__PURE__*/ _async_to_generator(function(img, idx) {
21794
- var png, webp, imageURL, webpURL, template, isTemplateV2, background, url, isVideo, loadFn, resultImage, resultImage1, compressed, src, bufferURL, _ref, url1, image;
21818
+ var png, webp, imageURL, webpURL, template, background, url, isVideo, loadFn, resultImage, compressed, src, bufferURL, _ref, url1, image;
21795
21819
  return __generator(this, function(_state) {
21796
21820
  switch(_state.label){
21797
21821
  case 0:
@@ -21808,17 +21832,15 @@ var seed$1 = 1;
21808
21832
  webpURL = webp && new URL(webp, baseUrl).href;
21809
21833
  if (!("template" in img)) return [
21810
21834
  3,
21811
- 13
21835
+ 8
21812
21836
  ];
21813
21837
  // 1. 数据模板
21814
21838
  template = img.template;
21815
- // 判断是否为新版数据模板
21816
- isTemplateV2 = "v" in template && template.v === 2 && template.background;
21817
- // 获取新版数据模板 background 参数
21818
- background = isTemplateV2 ? template.background : undefined;
21819
- if (!(isTemplateV2 && background)) return [
21839
+ // 获取数据模板 background 参数
21840
+ background = template.background;
21841
+ if (!background) return [
21820
21842
  3,
21821
- 8
21843
+ 7
21822
21844
  ];
21823
21845
  url = getBackgroundImage(template, variables);
21824
21846
  isVideo = background.type === BackgroundType$1.video;
@@ -21871,48 +21893,10 @@ var seed$1 = 1;
21871
21893
  case 7:
21872
21894
  return [
21873
21895
  3,
21874
- 12
21896
+ 9
21875
21897
  ];
21876
21898
  case 8:
21877
- _state.trys.push([
21878
- 8,
21879
- 11,
21880
- ,
21881
- 12
21882
- ]);
21883
- return [
21884
- 4,
21885
- loadWebPOptional(imageURL, webpURL)
21886
- ];
21887
- case 9:
21888
- resultImage1 = _state.sent();
21889
- return [
21890
- 4,
21891
- combineImageTemplate(resultImage1.image, template, variables)
21892
- ];
21893
- case 10:
21894
- return [
21895
- 2,
21896
- _state.sent()
21897
- ];
21898
- case 11:
21899
- _state.sent();
21900
- throw new Error("Failed to load. Check the template, URL: " + imageURL + ".");
21901
- case 12:
21902
- return [
21903
- 3,
21904
- 14
21905
- ];
21906
- case 13:
21907
- if ("type" in img && img.type === "video") {
21908
- // 视频
21909
- // TODO: 2024.03.28 后面考虑下掉非推荐的视频元素使用方式
21910
- console.warn("The video element is deprecated. Use template BackgroundType.video instead.");
21911
- return [
21912
- 2,
21913
- loadVideo(img.url)
21914
- ];
21915
- } else if ("compressed" in img && useCompressedTexture && compressedTexture) {
21899
+ if ("compressed" in img && useCompressedTexture && compressedTexture) {
21916
21900
  // 2. 压缩纹理
21917
21901
  compressed = img.compressed;
21918
21902
  if (compressedTexture === COMPRESSED_TEXTURE.ASTC) {
@@ -21932,6 +21916,7 @@ var seed$1 = 1;
21932
21916
  ];
21933
21917
  }
21934
21918
  } else if ("sourceType" in img) {
21919
+ // TODO: 确定是否有用
21935
21920
  return [
21936
21921
  2,
21937
21922
  img
@@ -21942,13 +21927,13 @@ var seed$1 = 1;
21942
21927
  img
21943
21928
  ];
21944
21929
  }
21945
- _state.label = 14;
21946
- case 14:
21930
+ _state.label = 9;
21931
+ case 9:
21947
21932
  return [
21948
21933
  4,
21949
21934
  loadWebPOptional(imageURL, webpURL)
21950
21935
  ];
21951
- case 15:
21936
+ case 10:
21952
21937
  _ref = _state.sent(), url1 = _ref.url, image = _ref.image;
21953
21938
  _this.assets[idx] = {
21954
21939
  url: url1,
@@ -22802,6 +22787,15 @@ var tmpScale = new Vector3(1, 1, 1);
22802
22787
  this.speed = speed;
22803
22788
  };
22804
22789
  /**
22790
+ * 设置合成的可见性
22791
+ * @since 2.0.0
22792
+ * @param visible - 是否可见
22793
+ */ _proto.setVisible = function setVisible(visible) {
22794
+ this.items.forEach(function(item) {
22795
+ item.setVisible(visible);
22796
+ });
22797
+ };
22798
+ /**
22805
22799
  * 获取合成的动画速度
22806
22800
  * @returns
22807
22801
  */ _proto.getSpeed = function getSpeed() {
@@ -24938,6 +24932,12 @@ var _obj3;
24938
24932
  _proto.setVector4 = function setVector4(name, value) {
24939
24933
  this.setUniform(name, value);
24940
24934
  };
24935
+ _proto.getColor = function getColor(name) {
24936
+ return this.uniforms[name].value;
24937
+ };
24938
+ _proto.setColor = function setColor(name, value) {
24939
+ this.setUniform(name, value);
24940
+ };
24941
24941
  _proto.getQuaternion = function getQuaternion(name) {
24942
24942
  return this.uniforms[name].value;
24943
24943
  };
@@ -26029,9 +26029,11 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
26029
26029
  opts = _extends({
26030
26030
  autoplay: true
26031
26031
  }, options);
26032
- if (isSceneWithOptions(url)) {
26033
- source = url.scene;
26034
- opts = _extends({}, opts, url.options || {});
26032
+ if (isSceneURL(url)) {
26033
+ source = url.url;
26034
+ if (isSceneWithOptions(url)) {
26035
+ opts = _extends({}, opts, url.options || {});
26036
+ }
26035
26037
  } else {
26036
26038
  source = url;
26037
26039
  }
@@ -26116,10 +26118,6 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
26116
26118
  ]);
26117
26119
  return ThreeDisplayObject;
26118
26120
  }(THREE.Group);
26119
- function isSceneWithOptions(scene) {
26120
- // TODO: 判断不太优雅,后期试情况优化
26121
- return isObject(scene) && "scene" in scene;
26122
- }
26123
26121
 
26124
26122
  var ThreeSpriteComponent = /*#__PURE__*/ function(SpriteComponent) {
26125
26123
  _inherits(ThreeSpriteComponent, SpriteComponent);
@@ -26256,8 +26254,8 @@ setMaxSpriteMeshItemCount(8);
26256
26254
  */ Mesh.create = function(engine, props) {
26257
26255
  return new ThreeMesh(engine, props);
26258
26256
  };
26259
- var version = "2.0.0-alpha.8";
26257
+ var version = "2.0.0-alpha.9";
26260
26258
  logger.info("THREEJS plugin version: " + version);
26261
26259
 
26262
- export { AbstractPlugin, ActivationPlayable, AssetLoader, AssetManager, BYTES_TYPE_MAP, Behaviour, BezierSegments, COMPRESSED_TEXTURE, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, Component, Composition, CompositionComponent, CompositionSourceManager, CurveValue, DEFAULT_FONTS, Database, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, Engine, EventSystem, FilterMode, Float16ArrayWrapper, FrameBuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractBehavior$1 as InteractBehavior, InteractComponent, InteractLoader, InteractMesh, Item, ItemBehaviour, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, Mesh, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, PassTextureCache, PathSegments, PluginSystem, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderBuffer, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderer, RendererComponent, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderType, ShaderVariant, SpriteColorPlayable, SpriteComponent, SpriteLoader, StaticValue, TEMPLATE_USE_OFFSCREEN_CANVAS, TEXTURE_UNIFORM_MAP, TextComponent, TextLoader, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTexture, Ticker, TimelineClip, TimelineComponent, Track, Transform, TransformAnimationPlayable, TransformAnimationPlayableAsset, VFXItem, ValueGetter, addByOrder, addItem, addItemWithOrder, assertExist, asserts, blend, calculateTranslation, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, compatible_frag as compatibleFrag, compatible_vert as compatibleVert, createCopyShader, createGLContext, createKeyFrameMeta, createShaderWithMarcos, createShape, createVFXItem, createValueGetter, deepClone, defaultGlobalVolume, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID$1 as generateGUID, generateHalfFloatTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTemplateCanvasPool, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAndroid, isArray, isFunction, isIOS, isObject, isScene, isSceneWithOptions, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isWebGL2, item_define as itemDefine, itemFrag, itemFrameFrag, itemVert, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, maxSpriteTextureCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleVert, pluginLoaderMap, random, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxFragmentTextures, setSpriteMeshMaxItemCountByGPU, setUniformValue, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecAssign, vecFill, vecMulCombine, vecNormalize, version };
26260
+ export { AbstractPlugin, ActivationPlayable, AssetLoader, AssetManager, BYTES_TYPE_MAP, Behaviour, BezierSegments, COMPRESSED_TEXTURE, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, Component, Composition, CompositionComponent, CompositionSourceManager, CurveValue, DEFAULT_FONTS, Database, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, Engine, EventSystem, FilterMode, Float16ArrayWrapper, FrameBuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractBehavior$1 as InteractBehavior, InteractComponent, InteractLoader, InteractMesh, Item, ItemBehaviour, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, Mesh, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, PassTextureCache, PathSegments, PluginSystem, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderBuffer, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderer, RendererComponent, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderType, ShaderVariant, SpriteColorPlayable, SpriteComponent, SpriteLoader, StaticValue, TEMPLATE_USE_OFFSCREEN_CANVAS, TEXTURE_UNIFORM_MAP, TextComponent, TextLoader, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTexture, Ticker, TimelineClip, TimelineComponent, Track, Transform, TransformAnimationPlayable, TransformAnimationPlayableAsset, VFXItem, ValueGetter, addByOrder, addItem, addItemWithOrder, assertExist, asserts, blend, calculateTranslation, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, compatible_frag as compatibleFrag, compatible_vert as compatibleVert, createCopyShader, createGLContext, createKeyFrameMeta, createShaderWithMarcos, createShape, createVFXItem, createValueGetter, deepClone, defaultGlobalVolume, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID$1 as generateGUID, generateHalfFloatTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTemplateCanvasPool, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAndroid, isArray, isFunction, isIOS, isObject, isSceneJSON, isSceneURL, isSceneWithOptions, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isWebGL2, item_define as itemDefine, itemFrag, itemFrameFrag, itemVert, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, maxSpriteTextureCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleVert, pluginLoaderMap, random, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxFragmentTextures, setSpriteMeshMaxItemCountByGPU, setUniformValue, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecAssign, vecFill, vecMulCombine, vecNormalize, version };
26263
26261
  //# sourceMappingURL=index.mjs.map