@galacean/effects-threejs 2.6.2 → 2.6.4

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.js 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.6.2
6
+ * Version: v2.6.4
7
7
  */
8
8
 
9
9
  'use strict';
@@ -817,6 +817,28 @@ function noop() {}
817
817
  */ function isObject(obj) {
818
818
  return Object.prototype.toString.call(obj) === "[object Object]";
819
819
  }
820
+ /**
821
+ * 判断对象是否是`Plain Object`类型
822
+ *
823
+ * @param obj - 要判断的对象
824
+ * @returns
825
+ */ function isPlainObject(obj) {
826
+ if (obj === null || typeof obj !== "object") {
827
+ return false;
828
+ }
829
+ // 先排除 Array/Date/Map/Set/RegExp 等
830
+ if (Object.prototype.toString.call(obj) !== "[object Object]") {
831
+ return false;
832
+ }
833
+ var proto = Object.getPrototypeOf(obj);
834
+ if (proto === null) {
835
+ return true;
836
+ } // Object.create(null)
837
+ var hasOwn = Object.prototype.hasOwnProperty;
838
+ var Ctor = hasOwn.call(proto, "constructor") && proto.constructor;
839
+ // 构造器需要是 Object(跨 realm 用函数源码比对)
840
+ return typeof Ctor === "function" && Function.prototype.toString.call(Ctor) === Function.prototype.toString.call(Object);
841
+ }
820
842
  function isCanvas(canvas) {
821
843
  var _canvas_tagName;
822
844
  // 小程序 Canvas 无法使用 instanceof HTMLCanvasElement 判断
@@ -23921,9 +23943,17 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23921
23943
  */ _this.paused = false;
23922
23944
  _this.isEndCalled = false;
23923
23945
  _this._textures = [];
23946
+ _this.videos = [];
23924
23947
  var _props_reusable = props.reusable, reusable = _props_reusable === void 0 ? false : _props_reusable, _props_speed = props.speed, speed = _props_speed === void 0 ? 1 : _props_speed, _props_baseRenderOrder = props.baseRenderOrder, baseRenderOrder = _props_baseRenderOrder === void 0 ? 0 : _props_baseRenderOrder, renderer = props.renderer, event = props.event, width = props.width, height = props.height, handleItemMessage = props.handleItemMessage;
23925
23948
  _this.renderer = renderer;
23926
23949
  _this._textures = scene.textures;
23950
+ for(var _iterator = _create_for_of_iterator_helper_loose(Object.keys(scene.assets)), _step; !(_step = _iterator()).done;){
23951
+ var key = _step.value;
23952
+ var videoAsset = scene.assets[key];
23953
+ if (_instanceof1(videoAsset, HTMLVideoElement)) {
23954
+ _this.videos.push(videoAsset);
23955
+ }
23956
+ }
23927
23957
  var _scene_jsonScene_renderSettings_postProcessingEnabled;
23928
23958
  _this.postProcessingEnabled = (_scene_jsonScene_renderSettings_postProcessingEnabled = (_scene_jsonScene_renderSettings = scene.jsonScene.renderSettings) == null ? void 0 : _scene_jsonScene_renderSettings.postProcessingEnabled) != null ? _scene_jsonScene_renderSettings_postProcessingEnabled : false;
23929
23959
  _this.getEngine().renderLevel = scene.renderLevel;
@@ -23932,8 +23962,8 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23932
23962
  scene.consumed = true;
23933
23963
  }
23934
23964
  var sourceContent = scene.jsonScene.compositions[0];
23935
- for(var _iterator = _create_for_of_iterator_helper_loose(scene.jsonScene.compositions), _step; !(_step = _iterator()).done;){
23936
- var composition = _step.value;
23965
+ for(var _iterator1 = _create_for_of_iterator_helper_loose(scene.jsonScene.compositions), _step1; !(_step1 = _iterator1()).done;){
23966
+ var composition = _step1.value;
23937
23967
  if (composition.id === scene.jsonScene.compositionId) {
23938
23968
  sourceContent = composition;
23939
23969
  }
@@ -23948,8 +23978,8 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23948
23978
  // Create rootItem components
23949
23979
  //@ts-expect-error TODO update spec.
23950
23980
  var componentPaths = sourceContent.components;
23951
- for(var _iterator1 = _create_for_of_iterator_helper_loose(componentPaths), _step1; !(_step1 = _iterator1()).done;){
23952
- var componentPath = _step1.value;
23981
+ for(var _iterator2 = _create_for_of_iterator_helper_loose(componentPaths), _step2; !(_step2 = _iterator2()).done;){
23982
+ var componentPath = _step2.value;
23953
23983
  var component = _this.getEngine().findObject(componentPath);
23954
23984
  _this.rootItem.components.push(component);
23955
23985
  component.item = _this.rootItem;
@@ -24409,6 +24439,13 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
24409
24439
  });
24410
24440
  }
24411
24441
  }
24442
+ for(var _iterator = _create_for_of_iterator_helper_loose(this.videos), _step; !(_step = _iterator()).done;){
24443
+ var video = _step.value;
24444
+ video.pause();
24445
+ video.removeAttribute("src");
24446
+ video.load();
24447
+ }
24448
+ this.videos = [];
24412
24449
  this.rootItem.dispose();
24413
24450
  // FIXME: 注意这里增加了renderFrame销毁
24414
24451
  this.renderFrame.dispose();
@@ -29450,7 +29487,7 @@ var SerializationHelper = /*#__PURE__*/ function() {
29450
29487
  } else if (SerializationHelper.checkDataPath(property)) {
29451
29488
  var referenceObject = engine.findObject(property);
29452
29489
  return overrideDataPath ? referenceObject : property;
29453
- } else if (isObject(property) && property.constructor === Object) {
29490
+ } else if (isPlainObject(property)) {
29454
29491
  var res1;
29455
29492
  if (type) {
29456
29493
  res1 = new type();
@@ -31121,7 +31158,7 @@ function getStandardSpriteContent(sprite, transform) {
31121
31158
  return ret;
31122
31159
  }
31123
31160
 
31124
- var version$2 = "2.6.2";
31161
+ var version$2 = "2.6.4";
31125
31162
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
31126
31163
  var standardVersion = /^(\d+)\.(\d+)$/;
31127
31164
  var reverseParticle = false;
@@ -31709,6 +31746,10 @@ var seed$1 = 1;
31709
31746
  ];
31710
31747
  case 1:
31711
31748
  rawJSON = _state.sent();
31749
+ // 小程序环境下,如果产物是相对路径,adapter 返回的是字符串,需要兼容
31750
+ if (isString(rawJSON)) {
31751
+ rawJSON = JSON.parse(rawJSON);
31752
+ }
31712
31753
  return [
31713
31754
  3,
31714
31755
  3
@@ -34031,7 +34072,7 @@ var FBGeometryDataT = /*#__PURE__*/ function() {
34031
34072
  * @ignore
34032
34073
  */ _proto.findObject = function findObject(guid) {
34033
34074
  // 编辑器可能传 Class 对象,这边判断处理一下直接返回原对象。
34034
- if (!(isObject(guid) && guid.constructor === Object)) {
34075
+ if (!isPlainObject(guid)) {
34035
34076
  return guid;
34036
34077
  }
34037
34078
  if (this.objectInstance[guid.id]) {
@@ -34371,7 +34412,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem);
34371
34412
  registerPlugin("particle", ParticleLoader, exports.VFXItem);
34372
34413
  registerPlugin("cal", CalculateLoader, exports.VFXItem);
34373
34414
  registerPlugin("interact", InteractLoader, exports.VFXItem);
34374
- var version$1 = "2.6.2";
34415
+ var version$1 = "2.6.4";
34375
34416
  logger.info("Core version: " + version$1 + ".");
34376
34417
 
34377
34418
  var _obj;
@@ -35976,7 +36017,7 @@ setMaxSpriteMeshItemCount(8);
35976
36017
  */ Mesh.create = function(engine, props) {
35977
36018
  return new ThreeMesh(engine, props);
35978
36019
  };
35979
- var version = "2.6.2";
36020
+ var version = "2.6.4";
35980
36021
  logger.info("THREEJS plugin version: " + version + ".");
35981
36022
 
35982
36023
  exports.AbstractPlugin = AbstractPlugin;
@@ -36214,6 +36255,7 @@ exports.isIOSByUA = isIOSByUA;
36214
36255
  exports.isMiniProgram = isMiniProgram;
36215
36256
  exports.isObject = isObject;
36216
36257
  exports.isOpenHarmony = isOpenHarmony;
36258
+ exports.isPlainObject = isPlainObject;
36217
36259
  exports.isSimulatorCellPhone = isSimulatorCellPhone;
36218
36260
  exports.isString = isString;
36219
36261
  exports.isUniformStruct = isUniformStruct;