@needle-tools/engine 3.28.6-beta → 3.28.7-beta.1

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.
Files changed (848) hide show
  1. package/CHANGELOG.md +2259 -2253
  2. package/LICENSE.md +10 -10
  3. package/README.md +52 -52
  4. package/dist/needle-engine.js +7 -10
  5. package/dist/needle-engine.light.js +7 -10
  6. package/dist/needle-engine.light.min.js +7 -10
  7. package/dist/needle-engine.light.umd.cjs +7 -10
  8. package/dist/needle-engine.min.js +7 -10
  9. package/dist/needle-engine.umd.cjs +7 -10
  10. package/lib/engine/api.d.ts +52 -52
  11. package/lib/engine/api.js +51 -51
  12. package/lib/engine/assets/index.d.ts +1 -1
  13. package/lib/engine/assets/index.js +4 -4
  14. package/lib/engine/codegen/register_types.d.ts +1 -1
  15. package/lib/engine/codegen/register_types.js +439 -439
  16. package/lib/engine/debug/debug.d.ts +12 -12
  17. package/lib/engine/debug/debug.js +26 -26
  18. package/lib/engine/debug/debug_console.d.ts +2 -2
  19. package/lib/engine/debug/debug_console.js +204 -204
  20. package/lib/engine/debug/debug_overlay.d.ts +10 -10
  21. package/lib/engine/debug/debug_overlay.js +277 -277
  22. package/lib/engine/debug/index.d.ts +1 -1
  23. package/lib/engine/debug/index.js +1 -1
  24. package/lib/engine/engine_addressables.d.ts +75 -75
  25. package/lib/engine/engine_addressables.js +441 -441
  26. package/lib/engine/engine_application.d.ts +19 -19
  27. package/lib/engine/engine_application.js +45 -45
  28. package/lib/engine/engine_assetdatabase.d.ts +25 -25
  29. package/lib/engine/engine_assetdatabase.js +341 -341
  30. package/lib/engine/engine_camera.d.ts +6 -6
  31. package/lib/engine/engine_camera.js +23 -23
  32. package/lib/engine/engine_components.d.ts +17 -17
  33. package/lib/engine/engine_components.js +273 -273
  34. package/lib/engine/engine_components_internal.d.ts +11 -11
  35. package/lib/engine/engine_components_internal.js +41 -41
  36. package/lib/engine/engine_constants.d.ts +5 -5
  37. package/lib/engine/engine_constants.js +32 -32
  38. package/lib/engine/engine_context.d.ts +269 -269
  39. package/lib/engine/engine_context.js +1242 -1242
  40. package/lib/engine/engine_context_registry.d.ts +50 -50
  41. package/lib/engine/engine_context_registry.js +89 -89
  42. package/lib/engine/engine_coroutine.d.ts +4 -4
  43. package/lib/engine/engine_coroutine.js +21 -21
  44. package/lib/engine/engine_create_objects.d.ts +13 -13
  45. package/lib/engine/engine_create_objects.js +33 -33
  46. package/lib/engine/engine_default_parameters.d.ts +2 -2
  47. package/lib/engine/engine_default_parameters.js +3 -3
  48. package/lib/engine/engine_editor-sync.d.ts +17 -17
  49. package/lib/engine/engine_editor-sync.js +7 -7
  50. package/lib/engine/engine_element.d.ts +55 -55
  51. package/lib/engine/engine_element.js +559 -559
  52. package/lib/engine/engine_element_attributes.d.ts +49 -49
  53. package/lib/engine/engine_element_attributes.js +1 -1
  54. package/lib/engine/engine_element_extras.d.ts +6 -6
  55. package/lib/engine/engine_element_extras.js +13 -13
  56. package/lib/engine/engine_element_loading.d.ts +40 -40
  57. package/lib/engine/engine_element_loading.js +312 -312
  58. package/lib/engine/engine_element_overlay.d.ts +19 -19
  59. package/lib/engine/engine_element_overlay.js +143 -143
  60. package/lib/engine/engine_fileloader.d.ts +3 -3
  61. package/lib/engine/engine_fileloader.js +7 -7
  62. package/lib/engine/engine_gameobject.d.ts +39 -39
  63. package/lib/engine/engine_gameobject.js +559 -559
  64. package/lib/engine/engine_generic_utils.d.ts +1 -1
  65. package/lib/engine/engine_generic_utils.js +13 -13
  66. package/lib/engine/engine_gizmos.d.ts +26 -26
  67. package/lib/engine/engine_gizmos.js +282 -282
  68. package/lib/engine/engine_gltf.d.ts +13 -13
  69. package/lib/engine/engine_gltf.js +15 -15
  70. package/lib/engine/engine_gltf_builtin_components.d.ts +7 -7
  71. package/lib/engine/engine_gltf_builtin_components.js +298 -298
  72. package/lib/engine/engine_hot_reload.d.ts +5 -5
  73. package/lib/engine/engine_hot_reload.js +182 -182
  74. package/lib/engine/engine_input.d.ts +129 -129
  75. package/lib/engine/engine_input.js +799 -799
  76. package/lib/engine/engine_input_utils.d.ts +2 -2
  77. package/lib/engine/engine_input_utils.js +22 -22
  78. package/lib/engine/engine_instancing.d.ts +16 -16
  79. package/lib/engine/engine_instancing.js +36 -36
  80. package/lib/engine/engine_license.d.ts +4 -4
  81. package/lib/engine/engine_license.js +398 -398
  82. package/lib/engine/engine_lifecycle_api.d.ts +14 -14
  83. package/lib/engine/engine_lifecycle_api.js +24 -24
  84. package/lib/engine/engine_lifecycle_functions_internal.d.ts +6 -6
  85. package/lib/engine/engine_lifecycle_functions_internal.js +28 -28
  86. package/lib/engine/engine_lightdata.d.ts +23 -23
  87. package/lib/engine/engine_lightdata.js +86 -86
  88. package/lib/engine/engine_loaders.d.ts +7 -7
  89. package/lib/engine/engine_loaders.js +69 -69
  90. package/lib/engine/engine_mainloop_utils.d.ts +13 -13
  91. package/lib/engine/engine_mainloop_utils.js +426 -426
  92. package/lib/engine/engine_math.d.ts +43 -43
  93. package/lib/engine/engine_math.js +147 -147
  94. package/lib/engine/engine_networking.d.ts +176 -176
  95. package/lib/engine/engine_networking.js +649 -649
  96. package/lib/engine/engine_networking_auto.d.ts +24 -24
  97. package/lib/engine/engine_networking_auto.js +324 -324
  98. package/lib/engine/engine_networking_files.d.ts +23 -23
  99. package/lib/engine/engine_networking_files.js +176 -176
  100. package/lib/engine/engine_networking_files_default_components.d.ts +3 -3
  101. package/lib/engine/engine_networking_files_default_components.js +39 -39
  102. package/lib/engine/engine_networking_instantiate.d.ts +39 -39
  103. package/lib/engine/engine_networking_instantiate.js +302 -302
  104. package/lib/engine/engine_networking_peer.d.ts +15 -15
  105. package/lib/engine/engine_networking_peer.js +132 -132
  106. package/lib/engine/engine_networking_streams.d.ts +90 -90
  107. package/lib/engine/engine_networking_streams.js +428 -428
  108. package/lib/engine/engine_networking_types.d.ts +14 -14
  109. package/lib/engine/engine_networking_types.js +7 -7
  110. package/lib/engine/engine_networking_utils.d.ts +2 -2
  111. package/lib/engine/engine_networking_utils.js +20 -20
  112. package/lib/engine/engine_patcher.d.ts +10 -10
  113. package/lib/engine/engine_patcher.js +142 -142
  114. package/lib/engine/engine_physics.d.ts +115 -115
  115. package/lib/engine/engine_physics.js +228 -228
  116. package/lib/engine/engine_physics.types.d.ts +37 -37
  117. package/lib/engine/engine_physics.types.js +33 -33
  118. package/lib/engine/engine_physics_rapier.d.ts +112 -112
  119. package/lib/engine/engine_physics_rapier.js +1266 -1266
  120. package/lib/engine/engine_playerview.d.ts +26 -26
  121. package/lib/engine/engine_playerview.js +64 -64
  122. package/lib/engine/engine_scenelighting.d.ts +74 -74
  123. package/lib/engine/engine_scenelighting.js +285 -285
  124. package/lib/engine/engine_scenetools.d.ts +35 -35
  125. package/lib/engine/engine_scenetools.js +212 -212
  126. package/lib/engine/engine_serialization.d.ts +4 -4
  127. package/lib/engine/engine_serialization.js +4 -4
  128. package/lib/engine/engine_serialization_builtin_serializer.d.ts +62 -62
  129. package/lib/engine/engine_serialization_builtin_serializer.js +369 -369
  130. package/lib/engine/engine_serialization_core.d.ts +84 -84
  131. package/lib/engine/engine_serialization_core.js +576 -576
  132. package/lib/engine/engine_serialization_decorator.d.ts +15 -15
  133. package/lib/engine/engine_serialization_decorator.js +54 -54
  134. package/lib/engine/engine_setup.d.ts +1 -1
  135. package/lib/engine/engine_setup.js +2 -2
  136. package/lib/engine/engine_shaders.d.ts +31 -31
  137. package/lib/engine/engine_shaders.js +229 -229
  138. package/lib/engine/engine_shims.d.ts +3 -3
  139. package/lib/engine/engine_shims.js +22 -22
  140. package/lib/engine/engine_texture.d.ts +20 -20
  141. package/lib/engine/engine_texture.js +57 -57
  142. package/lib/engine/engine_three_utils.d.ts +51 -51
  143. package/lib/engine/engine_three_utils.js +342 -342
  144. package/lib/engine/engine_time.d.ts +19 -19
  145. package/lib/engine/engine_time.js +47 -47
  146. package/lib/engine/engine_types.d.ts +358 -358
  147. package/lib/engine/engine_types.js +72 -72
  148. package/lib/engine/engine_typestore.d.ts +16 -16
  149. package/lib/engine/engine_typestore.js +35 -35
  150. package/lib/engine/engine_util_decorator.d.ts +12 -12
  151. package/lib/engine/engine_util_decorator.js +115 -115
  152. package/lib/engine/engine_utils.d.ts +104 -104
  153. package/lib/engine/engine_utils.js +518 -518
  154. package/lib/engine/engine_utils_screenshot.d.ts +10 -10
  155. package/lib/engine/engine_utils_screenshot.js +70 -70
  156. package/lib/engine/engine_web_api.d.ts +12 -12
  157. package/lib/engine/engine_web_api.js +112 -112
  158. package/lib/engine/extensions/EXT_texture_exr.d.ts +8 -8
  159. package/lib/engine/extensions/EXT_texture_exr.js +32 -32
  160. package/lib/engine/extensions/NEEDLE_animator_controller_model.d.ts +116 -116
  161. package/lib/engine/extensions/NEEDLE_animator_controller_model.js +91 -91
  162. package/lib/engine/extensions/NEEDLE_components.d.ts +33 -33
  163. package/lib/engine/extensions/NEEDLE_components.js +206 -206
  164. package/lib/engine/extensions/NEEDLE_gameobject_data.d.ts +10 -10
  165. package/lib/engine/extensions/NEEDLE_gameobject_data.js +57 -57
  166. package/lib/engine/extensions/NEEDLE_lighting_settings.d.ts +38 -38
  167. package/lib/engine/extensions/NEEDLE_lighting_settings.js +183 -183
  168. package/lib/engine/extensions/NEEDLE_lightmaps.d.ts +18 -18
  169. package/lib/engine/extensions/NEEDLE_lightmaps.js +108 -108
  170. package/lib/engine/extensions/NEEDLE_persistent_assets.d.ts +11 -11
  171. package/lib/engine/extensions/NEEDLE_persistent_assets.js +63 -63
  172. package/lib/engine/extensions/NEEDLE_progressive.d.ts +41 -41
  173. package/lib/engine/extensions/NEEDLE_progressive.js +366 -366
  174. package/lib/engine/extensions/NEEDLE_render_objects.d.ts +13 -13
  175. package/lib/engine/extensions/NEEDLE_render_objects.js +159 -159
  176. package/lib/engine/extensions/NEEDLE_techniques_webgl.d.ts +39 -39
  177. package/lib/engine/extensions/NEEDLE_techniques_webgl.js +544 -544
  178. package/lib/engine/extensions/extension_resolver.d.ts +4 -4
  179. package/lib/engine/extensions/extension_resolver.js +1 -1
  180. package/lib/engine/extensions/extension_utils.d.ts +2 -2
  181. package/lib/engine/extensions/extension_utils.js +140 -140
  182. package/lib/engine/extensions/extensions.d.ts +21 -21
  183. package/lib/engine/extensions/extensions.js +94 -94
  184. package/lib/engine/extensions/index.d.ts +5 -5
  185. package/lib/engine/extensions/index.js +5 -5
  186. package/lib/engine/extensions/usage_tracker.d.ts +13 -13
  187. package/lib/engine/extensions/usage_tracker.js +61 -61
  188. package/lib/engine/js-extensions/Camera.d.ts +1 -1
  189. package/lib/engine/js-extensions/Camera.js +36 -36
  190. package/lib/engine/js-extensions/Layers.d.ts +3 -3
  191. package/lib/engine/js-extensions/Layers.js +19 -19
  192. package/lib/engine/js-extensions/index.d.ts +2 -2
  193. package/lib/engine/js-extensions/index.js +2 -2
  194. package/lib/engine/shaders/shaderData.d.ts +55 -55
  195. package/lib/engine/shaders/shaderData.js +58 -58
  196. package/lib/engine/tests/test_utils.d.ts +2 -2
  197. package/lib/engine/tests/test_utils.js +53 -53
  198. package/lib/engine-components/AlignmentConstraint.d.ts +10 -10
  199. package/lib/engine-components/AlignmentConstraint.js +39 -39
  200. package/lib/engine-components/Animation.d.ts +53 -53
  201. package/lib/engine-components/Animation.js +333 -333
  202. package/lib/engine-components/AnimationCurve.d.ts +16 -16
  203. package/lib/engine-components/AnimationCurve.js +97 -97
  204. package/lib/engine-components/AnimationUtils.d.ts +8 -8
  205. package/lib/engine-components/AnimationUtils.js +110 -110
  206. package/lib/engine-components/Animator.d.ts +81 -81
  207. package/lib/engine-components/Animator.js +229 -229
  208. package/lib/engine-components/AnimatorController.d.ts +57 -57
  209. package/lib/engine-components/AnimatorController.js +887 -887
  210. package/lib/engine-components/AudioListener.d.ts +7 -7
  211. package/lib/engine-components/AudioListener.js +30 -30
  212. package/lib/engine-components/AudioSource.d.ts +61 -61
  213. package/lib/engine-components/AudioSource.js +422 -422
  214. package/lib/engine-components/AvatarLoader.d.ts +19 -19
  215. package/lib/engine-components/AvatarLoader.js +173 -173
  216. package/lib/engine-components/AxesHelper.d.ts +9 -9
  217. package/lib/engine-components/AxesHelper.js +44 -44
  218. package/lib/engine-components/BasicIKConstraint.d.ts +9 -9
  219. package/lib/engine-components/BasicIKConstraint.js +43 -43
  220. package/lib/engine-components/BoxHelperComponent.d.ts +16 -16
  221. package/lib/engine-components/BoxHelperComponent.js +89 -89
  222. package/lib/engine-components/Camera.d.ts +70 -70
  223. package/lib/engine-components/Camera.js +450 -450
  224. package/lib/engine-components/CameraUtils.d.ts +1 -1
  225. package/lib/engine-components/CameraUtils.js +77 -77
  226. package/lib/engine-components/CharacterController.d.ts +46 -46
  227. package/lib/engine-components/CharacterController.js +227 -227
  228. package/lib/engine-components/Collider.d.ts +46 -46
  229. package/lib/engine-components/Collider.js +153 -153
  230. package/lib/engine-components/Component.d.ts +228 -228
  231. package/lib/engine-components/Component.js +541 -541
  232. package/lib/engine-components/ContactShadows.d.ts +23 -23
  233. package/lib/engine-components/ContactShadows.js +233 -233
  234. package/lib/engine-components/DeleteBox.d.ts +9 -9
  235. package/lib/engine-components/DeleteBox.js +30 -30
  236. package/lib/engine-components/DeviceFlag.d.ts +12 -12
  237. package/lib/engine-components/DeviceFlag.js +43 -43
  238. package/lib/engine-components/DragControls.d.ts +51 -51
  239. package/lib/engine-components/DragControls.js +516 -516
  240. package/lib/engine-components/DropListener.d.ts +15 -15
  241. package/lib/engine-components/DropListener.js +120 -120
  242. package/lib/engine-components/Duplicatable.d.ts +16 -16
  243. package/lib/engine-components/Duplicatable.js +150 -150
  244. package/lib/engine-components/EventList.d.ts +28 -28
  245. package/lib/engine-components/EventList.js +105 -105
  246. package/lib/engine-components/EventTrigger.d.ts +12 -12
  247. package/lib/engine-components/EventTrigger.js +50 -50
  248. package/lib/engine-components/EventType.d.ts +19 -19
  249. package/lib/engine-components/EventType.js +71 -71
  250. package/lib/engine-components/FlyControls.d.ts +7 -7
  251. package/lib/engine-components/FlyControls.js +25 -25
  252. package/lib/engine-components/Fog.d.ts +20 -20
  253. package/lib/engine-components/Fog.js +60 -60
  254. package/lib/engine-components/Gizmos.d.ts +12 -12
  255. package/lib/engine-components/Gizmos.js +60 -60
  256. package/lib/engine-components/GridHelper.d.ts +12 -12
  257. package/lib/engine-components/GridHelper.js +47 -47
  258. package/lib/engine-components/GroundProjection.d.ts +21 -21
  259. package/lib/engine-components/GroundProjection.js +97 -97
  260. package/lib/engine-components/Interactable.d.ts +10 -10
  261. package/lib/engine-components/Interactable.js +11 -11
  262. package/lib/engine-components/Joints.d.ts +19 -19
  263. package/lib/engine-components/Joints.js +51 -51
  264. package/lib/engine-components/LODGroup.d.ts +30 -30
  265. package/lib/engine-components/LODGroup.js +145 -145
  266. package/lib/engine-components/Light.d.ts +75 -75
  267. package/lib/engine-components/Light.js +475 -475
  268. package/lib/engine-components/LookAtConstraint.d.ts +7 -7
  269. package/lib/engine-components/LookAtConstraint.js +17 -17
  270. package/lib/engine-components/NestedGltf.d.ts +11 -11
  271. package/lib/engine-components/NestedGltf.js +74 -74
  272. package/lib/engine-components/Networking.d.ts +11 -11
  273. package/lib/engine-components/Networking.js +70 -70
  274. package/lib/engine-components/OffsetConstraint.d.ts +14 -14
  275. package/lib/engine-components/OffsetConstraint.js +65 -65
  276. package/lib/engine-components/OrbitControls.d.ts +111 -111
  277. package/lib/engine-components/OrbitControls.js +646 -646
  278. package/lib/engine-components/ParticleSystem.d.ts +145 -145
  279. package/lib/engine-components/ParticleSystem.js +1077 -1077
  280. package/lib/engine-components/ParticleSystemModules.d.ts +489 -489
  281. package/lib/engine-components/ParticleSystemModules.js +1667 -1667
  282. package/lib/engine-components/ParticleSystemSubEmitter.d.ts +25 -25
  283. package/lib/engine-components/ParticleSystemSubEmitter.js +86 -86
  284. package/lib/engine-components/PlayerColor.d.ts +13 -13
  285. package/lib/engine-components/PlayerColor.js +83 -83
  286. package/lib/engine-components/ReflectionProbe.d.ts +22 -22
  287. package/lib/engine-components/ReflectionProbe.js +181 -181
  288. package/lib/engine-components/Renderer.d.ts +112 -112
  289. package/lib/engine-components/Renderer.js +1029 -1029
  290. package/lib/engine-components/RendererLightmap.d.ts +19 -19
  291. package/lib/engine-components/RendererLightmap.js +127 -127
  292. package/lib/engine-components/RigidBody.d.ts +120 -120
  293. package/lib/engine-components/RigidBody.js +452 -452
  294. package/lib/engine-components/SceneSwitcher.d.ts +72 -72
  295. package/lib/engine-components/SceneSwitcher.js +583 -583
  296. package/lib/engine-components/ScreenCapture.d.ts +64 -64
  297. package/lib/engine-components/ScreenCapture.js +405 -405
  298. package/lib/engine-components/ShadowCatcher.d.ts +18 -18
  299. package/lib/engine-components/ShadowCatcher.js +144 -144
  300. package/lib/engine-components/Skybox.d.ts +23 -23
  301. package/lib/engine-components/Skybox.js +287 -287
  302. package/lib/engine-components/SmoothFollow.d.ts +14 -14
  303. package/lib/engine-components/SmoothFollow.js +63 -63
  304. package/lib/engine-components/SpatialTrigger.d.ts +27 -27
  305. package/lib/engine-components/SpatialTrigger.js +144 -144
  306. package/lib/engine-components/SpectatorCamera.d.ts +45 -45
  307. package/lib/engine-components/SpectatorCamera.js +593 -593
  308. package/lib/engine-components/SpriteRenderer.d.ts +48 -48
  309. package/lib/engine-components/SpriteRenderer.js +257 -257
  310. package/lib/engine-components/SyncedCamera.d.ts +27 -27
  311. package/lib/engine-components/SyncedCamera.js +187 -187
  312. package/lib/engine-components/SyncedRoom.d.ts +24 -24
  313. package/lib/engine-components/SyncedRoom.js +162 -162
  314. package/lib/engine-components/SyncedTransform.d.ts +35 -35
  315. package/lib/engine-components/SyncedTransform.js +265 -265
  316. package/lib/engine-components/TestRunner.d.ts +13 -13
  317. package/lib/engine-components/TestRunner.js +99 -99
  318. package/lib/engine-components/TransformGizmo.d.ts +16 -16
  319. package/lib/engine-components/TransformGizmo.js +148 -148
  320. package/lib/engine-components/VideoPlayer.d.ts +86 -86
  321. package/lib/engine-components/VideoPlayer.js +792 -792
  322. package/lib/engine-components/Voip.d.ts +29 -29
  323. package/lib/engine-components/Voip.js +203 -203
  324. package/lib/engine-components/XRFlag.d.ts +33 -33
  325. package/lib/engine-components/XRFlag.js +128 -128
  326. package/lib/engine-components/api.d.ts +15 -15
  327. package/lib/engine-components/api.js +15 -15
  328. package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +10 -10
  329. package/lib/engine-components/avatar/AvatarBlink_Simple.js +75 -75
  330. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +13 -13
  331. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +74 -74
  332. package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +27 -27
  333. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +119 -119
  334. package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +13 -13
  335. package/lib/engine-components/avatar/Avatar_MouthShapes.js +78 -78
  336. package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +8 -8
  337. package/lib/engine-components/avatar/Avatar_MustacheShake.js +28 -28
  338. package/lib/engine-components/codegen/components.d.ts +216 -216
  339. package/lib/engine-components/codegen/components.js +217 -217
  340. package/lib/engine-components/debug/LogStats.d.ts +5 -5
  341. package/lib/engine-components/debug/LogStats.js +18 -18
  342. package/lib/engine-components/export/gltf/GltfExport.d.ts +25 -25
  343. package/lib/engine-components/export/gltf/GltfExport.js +215 -215
  344. package/lib/engine-components/export/index.d.ts +1 -1
  345. package/lib/engine-components/export/index.js +1 -1
  346. package/lib/engine-components/export/usdz/Extension.d.ts +10 -10
  347. package/lib/engine-components/export/usdz/Extension.js +1 -1
  348. package/lib/engine-components/export/usdz/ThreeUSDZExporter.d.ts +114 -114
  349. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +1211 -1211
  350. package/lib/engine-components/export/usdz/USDZExporter.d.ts +59 -59
  351. package/lib/engine-components/export/usdz/USDZExporter.js +450 -450
  352. package/lib/engine-components/export/usdz/extensions/Animation.d.ts +69 -69
  353. package/lib/engine-components/export/usdz/extensions/Animation.js +650 -650
  354. package/lib/engine-components/export/usdz/extensions/DocumentExtension.d.ts +5 -5
  355. package/lib/engine-components/export/usdz/extensions/DocumentExtension.js +6 -6
  356. package/lib/engine-components/export/usdz/extensions/USDZText.d.ts +55 -55
  357. package/lib/engine-components/export/usdz/extensions/USDZText.js +246 -246
  358. package/lib/engine-components/export/usdz/extensions/USDZUI.d.ts +8 -8
  359. package/lib/engine-components/export/usdz/extensions/USDZUI.js +100 -100
  360. package/lib/engine-components/export/usdz/extensions/behavior/Actions.d.ts +30 -30
  361. package/lib/engine-components/export/usdz/extensions/behavior/Actions.js +88 -88
  362. package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.d.ts +9 -9
  363. package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.js +52 -52
  364. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +22 -22
  365. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js +134 -134
  366. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +126 -126
  367. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +824 -824
  368. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.d.ts +133 -133
  369. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js +464 -464
  370. package/lib/engine-components/export/usdz/index.d.ts +3 -3
  371. package/lib/engine-components/export/usdz/index.js +2 -2
  372. package/lib/engine-components/export/usdz/utils/animationutils.d.ts +3 -3
  373. package/lib/engine-components/export/usdz/utils/animationutils.js +85 -85
  374. package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -2
  375. package/lib/engine-components/export/usdz/utils/quicklook.js +35 -35
  376. package/lib/engine-components/export/usdz/utils/timeutils.d.ts +1 -1
  377. package/lib/engine-components/export/usdz/utils/timeutils.js +14 -14
  378. package/lib/engine-components/js-extensions/ExtensionUtils.d.ts +6 -6
  379. package/lib/engine-components/js-extensions/ExtensionUtils.js +65 -65
  380. package/lib/engine-components/js-extensions/Object3D.d.ts +2 -2
  381. package/lib/engine-components/js-extensions/Object3D.js +140 -140
  382. package/lib/engine-components/js-extensions/RGBAColor.d.ts +14 -14
  383. package/lib/engine-components/js-extensions/RGBAColor.js +49 -49
  384. package/lib/engine-components/js-extensions/index.d.ts +3 -3
  385. package/lib/engine-components/js-extensions/index.js +3 -3
  386. package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +13 -13
  387. package/lib/engine-components/postprocessing/Effects/Antialiasing.js +45 -45
  388. package/lib/engine-components/postprocessing/Effects/Bloom.d.ts +12 -12
  389. package/lib/engine-components/postprocessing/Effects/Bloom.js +77 -77
  390. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +8 -8
  391. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +38 -38
  392. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +12 -12
  393. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +81 -81
  394. package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +21 -21
  395. package/lib/engine-components/postprocessing/Effects/DepthOfField.js +97 -97
  396. package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +7 -7
  397. package/lib/engine-components/postprocessing/Effects/Pixelation.js +28 -28
  398. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +13 -13
  399. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +86 -86
  400. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +24 -24
  401. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +94 -94
  402. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +13 -13
  403. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +62 -62
  404. package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +16 -16
  405. package/lib/engine-components/postprocessing/Effects/Tonemapping.js +51 -51
  406. package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +11 -11
  407. package/lib/engine-components/postprocessing/Effects/Vignette.js +56 -56
  408. package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +33 -33
  409. package/lib/engine-components/postprocessing/PostProcessingEffect.js +126 -126
  410. package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +22 -22
  411. package/lib/engine-components/postprocessing/PostProcessingHandler.js +201 -201
  412. package/lib/engine-components/postprocessing/Volume.d.ts +25 -25
  413. package/lib/engine-components/postprocessing/Volume.js +193 -193
  414. package/lib/engine-components/postprocessing/VolumeParameter.d.ts +22 -22
  415. package/lib/engine-components/postprocessing/VolumeParameter.js +80 -80
  416. package/lib/engine-components/postprocessing/VolumeProfile.d.ts +7 -7
  417. package/lib/engine-components/postprocessing/VolumeProfile.js +41 -41
  418. package/lib/engine-components/postprocessing/index.d.ts +4 -4
  419. package/lib/engine-components/postprocessing/index.js +4 -4
  420. package/lib/engine-components/timeline/PlayableDirector.d.ts +107 -107
  421. package/lib/engine-components/timeline/PlayableDirector.js +624 -624
  422. package/lib/engine-components/timeline/SignalAsset.d.ts +18 -18
  423. package/lib/engine-components/timeline/SignalAsset.js +124 -124
  424. package/lib/engine-components/timeline/TimelineModels.d.ts +88 -88
  425. package/lib/engine-components/timeline/TimelineModels.js +22 -22
  426. package/lib/engine-components/timeline/TimelineTracks.d.ts +90 -90
  427. package/lib/engine-components/timeline/TimelineTracks.js +825 -825
  428. package/lib/engine-components/timeline/index.d.ts +4 -4
  429. package/lib/engine-components/timeline/index.js +3 -3
  430. package/lib/engine-components/ui/BaseUIComponent.d.ts +31 -31
  431. package/lib/engine-components/ui/BaseUIComponent.js +161 -161
  432. package/lib/engine-components/ui/Button.d.ts +56 -56
  433. package/lib/engine-components/ui/Button.js +282 -282
  434. package/lib/engine-components/ui/Canvas.d.ts +67 -67
  435. package/lib/engine-components/ui/Canvas.js +382 -382
  436. package/lib/engine-components/ui/CanvasGroup.d.ts +15 -15
  437. package/lib/engine-components/ui/CanvasGroup.js +53 -53
  438. package/lib/engine-components/ui/EventSystem.d.ts +102 -102
  439. package/lib/engine-components/ui/EventSystem.js +641 -641
  440. package/lib/engine-components/ui/Graphic.d.ts +45 -45
  441. package/lib/engine-components/ui/Graphic.js +236 -236
  442. package/lib/engine-components/ui/Image.d.ts +27 -27
  443. package/lib/engine-components/ui/Image.js +107 -107
  444. package/lib/engine-components/ui/InputField.d.ts +34 -34
  445. package/lib/engine-components/ui/InputField.js +234 -234
  446. package/lib/engine-components/ui/Interfaces.d.ts +38 -38
  447. package/lib/engine-components/ui/Interfaces.js +12 -12
  448. package/lib/engine-components/ui/Layout.d.ts +72 -72
  449. package/lib/engine-components/ui/Layout.js +318 -318
  450. package/lib/engine-components/ui/Outline.d.ts +7 -7
  451. package/lib/engine-components/ui/Outline.js +20 -20
  452. package/lib/engine-components/ui/PointerEvents.d.ts +64 -64
  453. package/lib/engine-components/ui/PointerEvents.js +68 -68
  454. package/lib/engine-components/ui/RaycastUtils.d.ts +11 -11
  455. package/lib/engine-components/ui/RaycastUtils.js +67 -67
  456. package/lib/engine-components/ui/Raycaster.d.ts +18 -18
  457. package/lib/engine-components/ui/Raycaster.js +69 -69
  458. package/lib/engine-components/ui/RectTransform.d.ts +61 -61
  459. package/lib/engine-components/ui/RectTransform.js +343 -343
  460. package/lib/engine-components/ui/SpatialHtml.d.ts +6 -6
  461. package/lib/engine-components/ui/SpatialHtml.js +57 -57
  462. package/lib/engine-components/ui/Text.d.ts +74 -74
  463. package/lib/engine-components/ui/Text.js +534 -534
  464. package/lib/engine-components/ui/Utils.d.ts +23 -23
  465. package/lib/engine-components/ui/Utils.js +90 -90
  466. package/lib/engine-components/ui/index.d.ts +1 -1
  467. package/lib/engine-components/ui/index.js +1 -1
  468. package/lib/engine-components/utils/LookAt.d.ts +13 -13
  469. package/lib/engine-components/utils/LookAt.js +59 -59
  470. package/lib/engine-components/utils/OpenURL.d.ts +21 -21
  471. package/lib/engine-components/utils/OpenURL.js +124 -124
  472. package/lib/engine-components/webxr/WebARCameraBackground.d.ts +19 -19
  473. package/lib/engine-components/webxr/WebARCameraBackground.js +193 -193
  474. package/lib/engine-components/webxr/WebARSessionRoot.d.ts +38 -38
  475. package/lib/engine-components/webxr/WebARSessionRoot.js +407 -407
  476. package/lib/engine-components/webxr/WebXR.d.ts +110 -110
  477. package/lib/engine-components/webxr/WebXR.js +672 -672
  478. package/lib/engine-components/webxr/WebXRAvatar.d.ts +61 -61
  479. package/lib/engine-components/webxr/WebXRAvatar.js +289 -289
  480. package/lib/engine-components/webxr/WebXRController.d.ts +154 -154
  481. package/lib/engine-components/webxr/WebXRController.js +1028 -1028
  482. package/lib/engine-components/webxr/WebXRGrabRendering.d.ts +42 -42
  483. package/lib/engine-components/webxr/WebXRGrabRendering.js +137 -137
  484. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +49 -49
  485. package/lib/engine-components/webxr/WebXRImageTracking.js +336 -336
  486. package/lib/engine-components/webxr/WebXRPlaneTracking.d.ts +49 -49
  487. package/lib/engine-components/webxr/WebXRPlaneTracking.js +372 -372
  488. package/lib/engine-components/webxr/WebXRRig.d.ts +4 -4
  489. package/lib/engine-components/webxr/WebXRRig.js +19 -19
  490. package/lib/engine-components/webxr/WebXRSync.d.ts +54 -54
  491. package/lib/engine-components/webxr/WebXRSync.js +410 -410
  492. package/lib/engine-components/webxr/index.d.ts +4 -4
  493. package/lib/engine-components/webxr/index.js +4 -4
  494. package/lib/engine-components-experimental/Presentation.d.ts +6 -6
  495. package/lib/engine-components-experimental/Presentation.js +9 -9
  496. package/lib/engine-components-experimental/api.d.ts +1 -1
  497. package/lib/engine-components-experimental/api.js +1 -1
  498. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +50 -50
  499. package/lib/engine-components-experimental/networking/PlayerSync.js +200 -200
  500. package/lib/engine-schemes/api.d.ts +1 -1
  501. package/lib/engine-schemes/api.js +1 -1
  502. package/lib/engine-schemes/schemes.d.ts +7 -7
  503. package/lib/engine-schemes/schemes.js +19 -19
  504. package/lib/engine-schemes/synced-camera-model.d.ts +25 -25
  505. package/lib/engine-schemes/synced-camera-model.js +67 -67
  506. package/lib/engine-schemes/synced-transform-model.d.ts +31 -31
  507. package/lib/engine-schemes/synced-transform-model.js +66 -66
  508. package/lib/engine-schemes/transform.d.ts +12 -12
  509. package/lib/engine-schemes/transform.js +39 -39
  510. package/lib/engine-schemes/vec3.d.ts +11 -11
  511. package/lib/engine-schemes/vec3.js +29 -29
  512. package/lib/engine-schemes/vec4.d.ts +12 -12
  513. package/lib/engine-schemes/vec4.js +33 -33
  514. package/lib/engine-schemes/vr-user-state-buffer.d.ts +36 -36
  515. package/lib/engine-schemes/vr-user-state-buffer.js +103 -103
  516. package/lib/include/three/ARButton.d.ts +3 -3
  517. package/lib/include/three/ARButton.js +151 -151
  518. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -6
  519. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +45 -45
  520. package/lib/include/three/VRButton.d.ts +5 -5
  521. package/lib/include/three/VRButton.js +118 -118
  522. package/lib/needle-engine.d.ts +6 -6
  523. package/lib/needle-engine.js +49 -49
  524. package/package.json +1 -1
  525. package/plugins/common/config.cjs +14 -14
  526. package/plugins/common/config.js +19 -19
  527. package/plugins/common/generator.js +10 -10
  528. package/plugins/common/license.cjs +30 -30
  529. package/plugins/common/version.js +11 -11
  530. package/plugins/next/license.cjs +4 -4
  531. package/plugins/next/next.js +70 -70
  532. package/plugins/types/index.d.ts +1 -1
  533. package/plugins/types/needleConfig.d.ts +21 -21
  534. package/plugins/types/userconfig.d.ts +42 -42
  535. package/plugins/vite/alias.js +70 -70
  536. package/plugins/vite/build.js +19 -19
  537. package/plugins/vite/config.js +73 -73
  538. package/plugins/vite/copyfiles.js +134 -134
  539. package/plugins/vite/defines.js +45 -45
  540. package/plugins/vite/dependency-watcher.js +224 -224
  541. package/plugins/vite/drop-client.js +76 -76
  542. package/plugins/vite/drop.js +82 -82
  543. package/plugins/vite/editor-connection.js +121 -121
  544. package/plugins/vite/facebook-instant-games.js +99 -99
  545. package/plugins/vite/gzip.js +5 -5
  546. package/plugins/vite/imports-logger.js +143 -143
  547. package/plugins/vite/index.js +81 -81
  548. package/plugins/vite/license.js +42 -42
  549. package/plugins/vite/meta.js +149 -149
  550. package/plugins/vite/peer.js +31 -31
  551. package/plugins/vite/poster-client.js +59 -59
  552. package/plugins/vite/poster.js +73 -73
  553. package/plugins/vite/reload-client.js +15 -15
  554. package/plugins/vite/reload.js +363 -363
  555. package/plugins/vite/transform-codegen.js +55 -55
  556. package/plugins/vite/vite-4.4-hack.js +31 -31
  557. package/src/engine/api.ts +54 -54
  558. package/src/engine/assets/index.ts +4 -4
  559. package/src/engine/codegen/register_types.ts +441 -441
  560. package/src/engine/debug/debug.ts +29 -29
  561. package/src/engine/debug/debug_console.ts +213 -213
  562. package/src/engine/debug/debug_overlay.ts +283 -283
  563. package/src/engine/engine.ts +13 -13
  564. package/src/engine/engine_addressables.ts +494 -494
  565. package/src/engine/engine_application.ts +53 -53
  566. package/src/engine/engine_assetdatabase.ts +383 -383
  567. package/src/engine/engine_camera.ts +32 -32
  568. package/src/engine/engine_components.ts +266 -266
  569. package/src/engine/engine_components_internal.ts +42 -42
  570. package/src/engine/engine_constants.ts +42 -42
  571. package/src/engine/engine_context.ts +1386 -1386
  572. package/src/engine/engine_context_registry.ts +103 -103
  573. package/src/engine/engine_coroutine.ts +24 -24
  574. package/src/engine/engine_create_objects.ts +39 -39
  575. package/src/engine/engine_default_parameters.ts +3 -3
  576. package/src/engine/engine_editor-sync.ts +29 -29
  577. package/src/engine/engine_element.ts +592 -592
  578. package/src/engine/engine_element_attributes.ts +61 -61
  579. package/src/engine/engine_element_extras.ts +16 -16
  580. package/src/engine/engine_element_loading.ts +341 -341
  581. package/src/engine/engine_element_overlay.ts +160 -160
  582. package/src/engine/engine_fileloader.js +8 -8
  583. package/src/engine/engine_gameobject.ts +621 -621
  584. package/src/engine/engine_generic_utils.js +13 -13
  585. package/src/engine/engine_gizmos.ts +321 -321
  586. package/src/engine/engine_gltf.ts +30 -30
  587. package/src/engine/engine_gltf_builtin_components.ts +350 -350
  588. package/src/engine/engine_hot_reload.ts +196 -196
  589. package/src/engine/engine_input.ts +879 -879
  590. package/src/engine/engine_input_utils.ts +23 -23
  591. package/src/engine/engine_instancing.ts +42 -42
  592. package/src/engine/engine_license.ts +413 -413
  593. package/src/engine/engine_lifecycle_api.ts +29 -29
  594. package/src/engine/engine_lifecycle_functions_internal.ts +36 -36
  595. package/src/engine/engine_lightdata.ts +113 -113
  596. package/src/engine/engine_loaders.ts +77 -77
  597. package/src/engine/engine_mainloop_utils.ts +431 -431
  598. package/src/engine/engine_math.ts +174 -174
  599. package/src/engine/engine_networking.ts +742 -742
  600. package/src/engine/engine_networking_auto.ts +373 -373
  601. package/src/engine/engine_networking_files.ts +206 -206
  602. package/src/engine/engine_networking_files_default_components.ts +54 -54
  603. package/src/engine/engine_networking_instantiate.ts +362 -362
  604. package/src/engine/engine_networking_peer.ts +158 -158
  605. package/src/engine/engine_networking_streams.ts +489 -489
  606. package/src/engine/engine_networking_types.ts +18 -18
  607. package/src/engine/engine_networking_utils.ts +23 -23
  608. package/src/engine/engine_networking_websocket.ts +2 -2
  609. package/src/engine/engine_patcher.ts +199 -199
  610. package/src/engine/engine_physics.ts +287 -287
  611. package/src/engine/engine_physics.types.ts +43 -43
  612. package/src/engine/engine_physics_rapier.ts +1385 -1385
  613. package/src/engine/engine_playerview.ts +79 -79
  614. package/src/engine/engine_scenelighting.ts +313 -313
  615. package/src/engine/engine_scenetools.ts +242 -242
  616. package/src/engine/engine_serialization.ts +6 -6
  617. package/src/engine/engine_serialization_builtin_serializer.ts +415 -415
  618. package/src/engine/engine_serialization_core.ts +680 -680
  619. package/src/engine/engine_serialization_decorator.ts +68 -68
  620. package/src/engine/engine_setup.ts +1 -1
  621. package/src/engine/engine_shaders.ts +242 -242
  622. package/src/engine/engine_shims.ts +28 -28
  623. package/src/engine/engine_texture.ts +70 -70
  624. package/src/engine/engine_three_utils.ts +382 -382
  625. package/src/engine/engine_time.ts +55 -55
  626. package/src/engine/engine_types.ts +489 -489
  627. package/src/engine/engine_typestore.ts +41 -41
  628. package/src/engine/engine_util_decorator.ts +134 -134
  629. package/src/engine/engine_utils.ts +605 -605
  630. package/src/engine/engine_utils_screenshot.ts +84 -84
  631. package/src/engine/engine_web_api.ts +119 -119
  632. package/src/engine/extensions/EXT_texture_exr.ts +49 -49
  633. package/src/engine/extensions/NEEDLE_animator_controller_model.ts +193 -193
  634. package/src/engine/extensions/NEEDLE_components.ts +250 -250
  635. package/src/engine/extensions/NEEDLE_gameobject_data.ts +82 -82
  636. package/src/engine/extensions/NEEDLE_lighting_settings.ts +210 -210
  637. package/src/engine/extensions/NEEDLE_lightmaps.ts +130 -130
  638. package/src/engine/extensions/NEEDLE_persistent_assets.ts +75 -75
  639. package/src/engine/extensions/NEEDLE_progressive.ts +412 -412
  640. package/src/engine/extensions/NEEDLE_render_objects.ts +209 -209
  641. package/src/engine/extensions/NEEDLE_techniques_webgl.ts +618 -618
  642. package/src/engine/extensions/extension_resolver.ts +4 -4
  643. package/src/engine/extensions/extension_utils.ts +149 -149
  644. package/src/engine/extensions/extensions.ts +118 -118
  645. package/src/engine/extensions/index.ts +4 -4
  646. package/src/engine/extensions/usage_tracker.ts +95 -95
  647. package/src/engine/js-extensions/Camera.ts +34 -34
  648. package/src/engine/js-extensions/Layers.ts +19 -19
  649. package/src/engine/js-extensions/index.ts +1 -1
  650. package/src/engine/shaders/shaderData.ts +67 -67
  651. package/src/engine/tests/test_utils.ts +63 -63
  652. package/src/engine-components/AlignmentConstraint.ts +35 -35
  653. package/src/engine-components/Animation.ts +345 -345
  654. package/src/engine-components/AnimationCurve.ts +83 -83
  655. package/src/engine-components/AnimationUtils.ts +117 -117
  656. package/src/engine-components/Animator.ts +243 -243
  657. package/src/engine-components/AnimatorController.ts +1020 -1020
  658. package/src/engine-components/AudioListener.ts +32 -32
  659. package/src/engine-components/AudioSource.ts +419 -419
  660. package/src/engine-components/AvatarLoader.ts +204 -204
  661. package/src/engine-components/AxesHelper.ts +33 -33
  662. package/src/engine-components/BasicIKConstraint.ts +53 -53
  663. package/src/engine-components/BoxCollider.ts +1 -1
  664. package/src/engine-components/BoxHelperComponent.ts +100 -100
  665. package/src/engine-components/Camera.ts +454 -454
  666. package/src/engine-components/CameraUtils.ts +89 -89
  667. package/src/engine-components/CharacterController.ts +243 -243
  668. package/src/engine-components/Collider.ts +160 -160
  669. package/src/engine-components/Component.ts +670 -670
  670. package/src/engine-components/ContactShadows.ts +265 -265
  671. package/src/engine-components/DeleteBox.ts +35 -35
  672. package/src/engine-components/DeviceFlag.ts +42 -42
  673. package/src/engine-components/DragControls.ts +574 -574
  674. package/src/engine-components/DropListener.ts +112 -112
  675. package/src/engine-components/Duplicatable.ts +146 -146
  676. package/src/engine-components/EventList.ts +125 -125
  677. package/src/engine-components/EventTrigger.ts +47 -47
  678. package/src/engine-components/EventType.ts +87 -87
  679. package/src/engine-components/FlyControls.ts +31 -31
  680. package/src/engine-components/Fog.ts +59 -59
  681. package/src/engine-components/Gizmos.ts +52 -52
  682. package/src/engine-components/GridHelper.ts +40 -40
  683. package/src/engine-components/GroundProjection.ts +97 -97
  684. package/src/engine-components/Interactable.ts +18 -18
  685. package/src/engine-components/Joints.ts +51 -51
  686. package/src/engine-components/LODGroup.ts +145 -145
  687. package/src/engine-components/Light.ts +493 -493
  688. package/src/engine-components/LookAtConstraint.ts +11 -11
  689. package/src/engine-components/NestedGltf.ts +70 -70
  690. package/src/engine-components/Networking.ts +72 -72
  691. package/src/engine-components/OffsetConstraint.ts +59 -59
  692. package/src/engine-components/OrbitControls.ts +653 -653
  693. package/src/engine-components/ParticleSystem.ts +1192 -1192
  694. package/src/engine-components/ParticleSystemModules.ts +1481 -1481
  695. package/src/engine-components/ParticleSystemSubEmitter.ts +110 -110
  696. package/src/engine-components/PlayerColor.ts +93 -93
  697. package/src/engine-components/ReflectionProbe.ts +192 -192
  698. package/src/engine-components/Renderer.ts +1125 -1125
  699. package/src/engine-components/RendererLightmap.ts +145 -145
  700. package/src/engine-components/RigidBody.ts +453 -453
  701. package/src/engine-components/SceneSwitcher.ts +594 -594
  702. package/src/engine-components/ScreenCapture.ts +437 -437
  703. package/src/engine-components/ShadowCatcher.ts +149 -149
  704. package/src/engine-components/Skybox.ts +281 -281
  705. package/src/engine-components/SmoothFollow.ts +57 -57
  706. package/src/engine-components/SpatialTrigger.ts +142 -142
  707. package/src/engine-components/SpectatorCamera.ts +675 -675
  708. package/src/engine-components/SphereCollider.ts +1 -1
  709. package/src/engine-components/SpriteRenderer.ts +244 -244
  710. package/src/engine-components/SyncedCamera.ts +208 -208
  711. package/src/engine-components/SyncedRoom.ts +166 -166
  712. package/src/engine-components/SyncedTransform.ts +336 -336
  713. package/src/engine-components/TestRunner.ts +114 -114
  714. package/src/engine-components/TransformGizmo.ts +157 -157
  715. package/src/engine-components/VideoPlayer.ts +831 -831
  716. package/src/engine-components/Voip.ts +214 -214
  717. package/src/engine-components/XRFlag.ts +138 -138
  718. package/src/engine-components/api.ts +22 -22
  719. package/src/engine-components/avatar/AvatarBlink_Simple.ts +67 -67
  720. package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +68 -68
  721. package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +136 -136
  722. package/src/engine-components/avatar/Avatar_MouthShapes.ts +81 -81
  723. package/src/engine-components/avatar/Avatar_MustacheShake.ts +28 -28
  724. package/src/engine-components/codegen/components.ts +216 -216
  725. package/src/engine-components/debug/LogStats.ts +21 -21
  726. package/src/engine-components/export/gltf/GltfExport.ts +231 -231
  727. package/src/engine-components/export/usdz/Extension.ts +11 -11
  728. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +1773 -1773
  729. package/src/engine-components/export/usdz/USDZExporter.ts +477 -477
  730. package/src/engine-components/export/usdz/extensions/Animation.ts +774 -774
  731. package/src/engine-components/export/usdz/extensions/DocumentExtension.ts +9 -9
  732. package/src/engine-components/export/usdz/extensions/USDZText.ts +287 -287
  733. package/src/engine-components/export/usdz/extensions/USDZUI.ts +119 -119
  734. package/src/engine-components/export/usdz/extensions/behavior/Actions.ts +98 -98
  735. package/src/engine-components/export/usdz/extensions/behavior/AudioExtension.ts +67 -67
  736. package/src/engine-components/export/usdz/extensions/behavior/Behaviour.ts +202 -202
  737. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +963 -963
  738. package/src/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.ts +517 -517
  739. package/src/engine-components/export/usdz/index.ts +2 -2
  740. package/src/engine-components/export/usdz/utils/animationutils.ts +100 -100
  741. package/src/engine-components/export/usdz/utils/quicklook.ts +42 -42
  742. package/src/engine-components/export/usdz/utils/timeutils.ts +19 -19
  743. package/src/engine-components/js-extensions/ExtensionUtils.ts +81 -81
  744. package/src/engine-components/js-extensions/Object3D.ts +181 -181
  745. package/src/engine-components/js-extensions/RGBAColor.ts +54 -54
  746. package/src/engine-components/js-extensions/Vector.ts +16 -16
  747. package/src/engine-components/js-extensions/index.ts +2 -2
  748. package/src/engine-components/postprocessing/Effects/Antialiasing.ts +51 -51
  749. package/src/engine-components/postprocessing/Effects/Bloom.ts +76 -76
  750. package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +35 -35
  751. package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +96 -96
  752. package/src/engine-components/postprocessing/Effects/DepthOfField.ts +93 -93
  753. package/src/engine-components/postprocessing/Effects/Pixelation.ts +26 -26
  754. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +84 -84
  755. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +98 -98
  756. package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +55 -55
  757. package/src/engine-components/postprocessing/Effects/Tonemapping.ts +54 -54
  758. package/src/engine-components/postprocessing/Effects/Vignette.ts +54 -54
  759. package/src/engine-components/postprocessing/PostProcessingEffect.ts +148 -148
  760. package/src/engine-components/postprocessing/PostProcessingHandler.ts +232 -232
  761. package/src/engine-components/postprocessing/Volume.ts +216 -216
  762. package/src/engine-components/postprocessing/VolumeParameter.ts +92 -92
  763. package/src/engine-components/postprocessing/VolumeProfile.ts +40 -40
  764. package/src/engine-components/postprocessing/index.ts +3 -3
  765. package/src/engine-components/timeline/PlayableDirector.ts +666 -666
  766. package/src/engine-components/timeline/SignalAsset.ts +138 -138
  767. package/src/engine-components/timeline/TimelineModels.ts +93 -93
  768. package/src/engine-components/timeline/TimelineTracks.ts +906 -906
  769. package/src/engine-components/timeline/index.ts +3 -3
  770. package/src/engine-components/ui/BaseUIComponent.ts +195 -195
  771. package/src/engine-components/ui/Button.ts +283 -283
  772. package/src/engine-components/ui/Canvas.ts +390 -390
  773. package/src/engine-components/ui/CanvasGroup.ts +49 -49
  774. package/src/engine-components/ui/EventSystem.ts +736 -736
  775. package/src/engine-components/ui/Graphic.ts +255 -255
  776. package/src/engine-components/ui/Image.ts +102 -102
  777. package/src/engine-components/ui/InputField.ts +290 -290
  778. package/src/engine-components/ui/Interfaces.ts +57 -57
  779. package/src/engine-components/ui/Layout.ts +322 -322
  780. package/src/engine-components/ui/Outline.ts +12 -12
  781. package/src/engine-components/ui/PointerEvents.ts +118 -118
  782. package/src/engine-components/ui/RaycastUtils.ts +68 -68
  783. package/src/engine-components/ui/Raycaster.ts +73 -73
  784. package/src/engine-components/ui/RectTransform.ts +364 -364
  785. package/src/engine-components/ui/SpatialHtml.ts +63 -63
  786. package/src/engine-components/ui/Text.ts +572 -572
  787. package/src/engine-components/ui/Utils.ts +110 -110
  788. package/src/engine-components/utils/LookAt.ts +65 -65
  789. package/src/engine-components/utils/OpenURL.ts +118 -118
  790. package/src/engine-components/webxr/WebARCameraBackground.ts +224 -224
  791. package/src/engine-components/webxr/WebARSessionRoot.ts +446 -446
  792. package/src/engine-components/webxr/WebXR.ts +761 -761
  793. package/src/engine-components/webxr/WebXRAvatar.ts +356 -356
  794. package/src/engine-components/webxr/WebXRController.ts +1168 -1168
  795. package/src/engine-components/webxr/WebXRGrabRendering.ts +150 -150
  796. package/src/engine-components/webxr/WebXRImageTracking.ts +371 -371
  797. package/src/engine-components/webxr/WebXRPlaneTracking.ts +429 -429
  798. package/src/engine-components/webxr/WebXRRig.ts +21 -21
  799. package/src/engine-components/webxr/WebXRSync.ts +463 -463
  800. package/src/engine-components/webxr/index.ts +3 -3
  801. package/src/engine-components-experimental/Presentation.ts +12 -12
  802. package/src/engine-components-experimental/networking/PlayerSync.ts +217 -217
  803. package/src/engine-schemes/COMPILE_SCHEMES.bat +3 -3
  804. package/src/engine-schemes/COMPILE_TS.bat +11 -11
  805. package/src/engine-schemes/schemes.ts +27 -27
  806. package/src/engine-schemes/synced-camera-model.ts +92 -92
  807. package/src/engine-schemes/synced-transform-model.ts +90 -90
  808. package/src/engine-schemes/syncedCamera.fbs +10 -10
  809. package/src/engine-schemes/transform.ts +50 -50
  810. package/src/engine-schemes/transforms.fbs +25 -25
  811. package/src/engine-schemes/vec.fbs +19 -19
  812. package/src/engine-schemes/vec2.ts +33 -33
  813. package/src/engine-schemes/vec3.ts +38 -38
  814. package/src/engine-schemes/vec4.ts +43 -43
  815. package/src/engine-schemes/vr-user-state-buffer.ts +138 -138
  816. package/src/engine-schemes/vrUserStateBuffer.fbs +16 -16
  817. package/src/include/draco/draco_decoder.js +34 -34
  818. package/src/include/draco/draco_wasm_wrapper.js +117 -117
  819. package/src/include/ktx2/basis_transcoder.js +21 -21
  820. package/src/include/needle/arial-msdf.json +1471 -1471
  821. package/src/include/three/ARButton.js +231 -231
  822. package/src/include/three/DragControls.js +231 -231
  823. package/src/include/three/EXT_mesh_gpu_instancing_exporter.js +66 -66
  824. package/src/include/three/VRButton.js +194 -194
  825. package/src/needle-engine.ts +55 -55
  826. package/src/engine/dist/api.js +0 -73
  827. package/src/engine/dist/api.js.meta +0 -7
  828. package/src/engine/dist/engine_networking_streams.js +0 -474
  829. package/src/engine/dist/engine_networking_streams.js.meta +0 -7
  830. package/src/engine-schemes/dist/api.js +0 -17
  831. package/src/engine-schemes/dist/api.js.meta +0 -7
  832. package/src/engine-schemes/dist/schemes.js +0 -25
  833. package/src/engine-schemes/dist/schemes.js.meta +0 -7
  834. package/src/engine-schemes/dist/synced-camera-model.js +0 -74
  835. package/src/engine-schemes/dist/synced-camera-model.js.meta +0 -7
  836. package/src/engine-schemes/dist/synced-transform-model.js +0 -73
  837. package/src/engine-schemes/dist/synced-transform-model.js.meta +0 -7
  838. package/src/engine-schemes/dist/transform.js +0 -46
  839. package/src/engine-schemes/dist/transform.js.meta +0 -7
  840. package/src/engine-schemes/dist/vec2.js +0 -32
  841. package/src/engine-schemes/dist/vec2.js.meta +0 -7
  842. package/src/engine-schemes/dist/vec3.js +0 -36
  843. package/src/engine-schemes/dist/vec3.js.meta +0 -7
  844. package/src/engine-schemes/dist/vec4.js +0 -40
  845. package/src/engine-schemes/dist/vec4.js.meta +0 -7
  846. package/src/engine-schemes/dist/vr-user-state-buffer.js +0 -110
  847. package/src/engine-schemes/dist/vr-user-state-buffer.js.meta +0 -7
  848. package/src/engine-schemes/flatc.exe +0 -0
package/CHANGELOG.md CHANGED
@@ -1,2254 +1,2260 @@
1
- # Changelog
2
- All notable changes to this package will be documented in this file.
3
-
4
- The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
- and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
-
7
- ## [3.28.6-beta] - 2023-12-30
8
- - Add: EventList can now have multiple arguments allowing support for e.g. `setBool` on Animator component being called from a Button directly
9
- - Add: Animator `toggleBool` method
10
- - Fix: Issue where destroying an object in `onCollisionEnter` it would not be removed from the physics event queue and result in `onCollisionStay` being called with an already destroyed component
11
- - Fix: Rigidbody matrix changed watcher should ignore events during physics to threejs synchronization
12
- - Fix: Set gizmos renderOrder to be always rendered last to avoid cases where gizmos are hidden due to custom renderOrder on scene objects
13
-
14
- ## [3.28.5-beta] - 2023-12-22
15
- - Fix: WebXRController falsely triggering click in EventSystem
16
-
17
- ## [3.28.3-beta] - 2023-12-21
18
- - Fix: Issue in pointer events not triggering onPointerEnter and Exit in VR
19
- - Remove: warning log in USDZ export about double sided materials not being supported
20
-
21
- ## [3.28.2-beta] - 2023-12-20
22
- - Add: Support double sided material export for USDZ
23
- - Fix: `PlayAudioOnClick` when explicit clip is given, use loop from attached audio source
24
- - Change: Improve Everywhere Action `SetActiveOnClick`
25
-
26
- ## [3.28.1-beta] - 2023-12-18
27
- - Add: `context.recreate` to destroy the whole scene and reload everything (including all script instances)
28
- - Fix: issue where EventSystem pointer events would not be received anymore if the event component was on e.g. an empty object in the parent hierarchy
29
-
30
- ## [3.28.0-beta] - 2023-12-14
31
- - Fix: USDZ: `emissiveIntensity` was not applied and `emissiveColor` wasn't used for scale/bias properly
32
- - Fix: USDZ: compressed textures with alpha channel were not being read back correctly
33
- - Change: USDZ: bake `effectiveOpacity` into the opacity texture if needed, since QuickLook/usdview don't support `.a` scale values
34
- - Change: Bump UnityGLTF version to 2.6.0-exp to support GPU Instancing on imported glTF materials
35
-
36
- ## [3.27.5-beta] - 2023-12-12
37
- - Fix: Offscreencanvas support for iOS 16.x
38
- - Fix: `PlayAudioOnClick` now respects playOnAwake if an explicit audio source is assigned
39
- - Change: `EventSystem` should only check objects if they're meshes
40
-
41
- ## [3.27.4-beta] - 2023-12-11
42
- - Fix: instancing now updating bounds in Needle Engine before render callback if necessary
43
- - Change: expose `onPauseChanged` on components
44
- - Change: handle case where a added coroutine function is not a coroutine (Generator)
45
-
46
- ## [3.27.3-beta] - 2023-12-09
47
- - Add: `InstancingUtil.getRenderer` to get the three InstancedMesh for any Object3D (if it's using instancing)
48
- - Add: instancing does now automatically update culling bounds if it's dirty. This can be disabled via `InstancingUtil.setAutoUpdateBounds(obj, false)`
49
- - Add: Rigidbody method documentation
50
- - Add: `ParticleSystem.addBehaviour` method and expose underlying particle system. We now also export the particle types
51
- - Fix: Issue where `this.physics.raycastFromRay` was modifying the default raycast options
52
- - Fix: Issue where sprites would be falsely interpreted as builtin sprite causing the image to be not displayed correctly
53
- - Change: `this.physics.raycast()` can now be called with anonymous options (instead of having to use a `RaycastOptions` class), for example `this.physics.raycast({ray:myRay})`
54
-
55
-
56
- ## [3.27.2-beta] - 2023-12-08
57
- - Fix: don't set font on `<needle-engine>` host styles to prevent leaking into child elements
58
- - Fix: `AssetReference.loadAsync` being called multiple times should always return the `asset` result
59
- - Change: register OrbitControls events on the canvas and not the needle engine element to allow child HTML objects to capture input
60
-
61
- ## [3.27.1-beta] - 2023-12-06
62
- - Add `addCustomExtensionPlugin` API to register custom glTF importer and exporter extensions
63
- - Fix: issue where instanced and animated object was rendered for one frame with a wrong matrix
64
- - Change: expose `imageToCanvas` method from USDZExporter
65
- - Change: GltfExporter component does not cache exporter anymore and expose all exporter options
66
-
67
- ## [3.27.0-beta] - 2023-12-04
68
- - Add: USDZ: skinned mesh export, including animations
69
- - Add: USDZ: ability to specify if we're exporting for QuickLook or not
70
- - Add: USDZ: animation export respects basic root motion (translation and rotation)
71
- - Add: USDZ: `USDZExporter` API supports exporting binary buffer similar to `GLTFExport` API
72
- - Fix: USDZ: correct `defaultPrim` encapsulation so that it also contains materials
73
- - Fix: USDZ: render texture readback failure when exporting
74
- - Fix: `ISceneEventListener` only being found when first component
75
- - Fix: error in vite plugin facebook instant games if no config would exist
76
- - Fix: Gizmo label padding and border radius were not properly applied when re-using label
77
- - Change: USDZ: animation export now automatically includes Animator states
78
- - Change: USDZ: `PlayAnimationOnClick` now automatically uses Animator state logic to determine looping and continuation of animation (what happens after the specified animation has finished playing)
79
- - Change: USDZ: current animator states are exported as `PlayAnimation` on scene start
80
-
81
- ## [3.26.2-beta] - 2023-11-28
82
- - Add physics NaN safeguards to avoid invalid rapier data propagating through three objects
83
-
84
- ## [3.26.1-beta] - 2023-11-27
85
- - Add: information about mouse button, hit point, hit normal, hit distance to `PointerEventData`
86
- - Fix: EventSystem regression where UI events stopped working
87
-
88
- ## [3.26.0-beta] - 2023-11-27
89
- - Fix: LOD update frame delay
90
- - Change: EventSystem optimization to avoid raycasting objects without event receiver components
91
-
92
- ## [3.25.5] - 2023-11-24
93
- - Add: vite plugin for facebook deployment
94
- - Fix: Physics collider center being not applied correctly with rotated parent
95
-
96
- ## [3.25.4] - 2023-11-23
97
- - Add: `onInitialized(ctx => {...})` and `onBeforeRender` event functions
98
- - Add: `Camera.cullingLayer` property
99
- - Fix: Physics collider center being modified causing rapier runtime error
100
-
101
- ## [3.25.3] - 2023-11-23
102
- - Add: `onStart((ctx)=>{})` and `onUpdate((ctx)=>{})` functions API
103
- - Fix: AudioSource not starting autoplay anymore after registered user interaction (which is necessary to playback audio in the browser)
104
- - Fix: `TransformGizmo` component not working as expected anymore since it also defines `worldPosition`
105
- - Change: Improve performance for colliders without rigidbody to not create an implicity rapier rigidbody anymore
106
-
107
- ## [3.25.2] - 2023-11-20
108
- - Add: `worldForward`, `worldRight` and `worldUp` to Object3D and GameObject types
109
- - Add: `getTempVector` utility method that has a circular array of vector3 instances for re-use
110
- - Fix: ImageTracking hysteresis for images to stay visible during bad tracking for up to a second after tracking has been lost
111
-
112
- ## [3.25.1] - 2023-11-18
113
- - Add: getters and setters on Object3D and GameObject types for `worldPosition`, `worldRotation`, `worldQuaternion` and `worldScale`
114
- - Fix: ImageTracking now has hysteresis for how long to keep a tracked object visible before disabling it (if tracking is lost just for a few frames)
115
- - Fix: Catch and log exception in rapier during collider creation
116
- - Change: WebXRImageTracking objects that are already present in the scene are now hidden when entering WebXR/AR
117
-
118
- ## [3.25.0] - 2023-11-18
119
- - Add: `Mathf.easinOutCubic` utility method
120
- - Add: ObjectRaycaster expose option to ignore skinned mesh renderers
121
- - Fix: detecing website interaction to allow playing audio before any component or audio component has been loaded
122
- - Fix: Physics capsule height creation
123
- - Fix: WebXRImageTracking not hiding tracked objects after tracking has been lost
124
- - Change: Improved ContactShadows component
125
- - Change: Improve OrbitControls for smoother lerping. Add methods to set camera position and look at target by passing in an Object3D reference.
126
- - Change: PlayAudioOnClick does now create an AudioSource implictly if non is assigned
127
- - Change: EventSystem does ignore SkinnedMeshRenderers by default now
128
- - Change: WebXR reticle is now hidden when image tracking starts
129
-
130
- ## [3.24.1] - 2023-11-15
131
- - Fix: Everywhere Action material otherVariants was not cleared between behaviour generation
132
- - Fix: Everywhere Action Change Material loosing track of the target material
133
- - Fix: issue where SpatialTrigger calling AudioSource.play doesnt work because of wrong argument
134
- - Fix: text linebreak in USDZ
135
- - Fix: material bindings API for Preliminary_Text and don't apply material when no geometry is found
136
- - Fix: material assignments for USDZ text and fix color space
137
- - Fix: Capsulecollider height
138
- - Fix: Core networking issue where throwing callbacks would silently be ignored and causing not all callbacks being called
139
- - Fix: PlayerSync `owner-changed` being raised twice
140
- - Fix: PlayerSync unsubscribe from UserLeftRoom event once the player is leaving/has left
141
- - Fix: Catch exception in creating `new type()` during deserialization of animationclip if the clip is just a string and could not be resolved because it's missing, falsely serialized or annotated
142
- - Change: OnClick Everywhere Actions now ensure they have a raycaster component assigned or in parent hierarchy
143
- - Change: Everywhere Action PlayAnimationOnClick remove target field
144
-
145
- ## [3.24.0] - 2023-11-13
146
- - Add: ContactShadows component
147
- - Add: `Gizmos.DrawLabel`
148
- - Fix: issue with AnimatorController behaviour when using loop and cycle offset
149
- - Fix: error when loading component with missing AnimatorController field
150
- - Fix: use correct colorspace for UI components
151
- - Fix: loading of remote GLB and `skybox-image` url where default camera should set clearflags to skybox
152
- - Fix: Various colorspace issues fixed
153
- - Change: USDZ export `imageToCanvas` now uses OffscreenCanvas for improved performance
154
- - Change: Update pmndrs postprocessing package to 6.33.3 to fix SSAO not working on mobile android
155
- - Change: `ObjectUtils.createPrimitive` so all primitives use the same settings
156
-
157
- ## [3.23.1] - 2023-11-09
158
- - Add: `Gizmos.DrawLabel` method
159
- - Add: `LookAtObject` utils method with options to keep upwards direction and copying target rotation to stay screen aligned
160
- - Fix: WebXRPlaneTracking dispose old mesh data properly, heuristically determine if a shape should be convex or not
161
- - Fix: AudioSource `play` not working anymore if called without parameters
162
- - Internal: rapier meshcolliders now use convexHull instead of convexMesh, the latter already expects the input data to be convex
163
-
164
- ## [3.23.0] - 2023-11-08
165
- - Add: support for changing animatorcontroller at runtime
166
- - Add: AnimatorController support for cycle offset and speed being used from parameter (or fixed serialized value)
167
- - Add: `OrbtiControls.allowInterrupt` property that can be set to false to prevent animation to a target point or autoRotate being interrupted by user input like clicking or dragging
168
- - Add: Physics collision now includes tangent vector for contact points
169
- - Add: Physics exposes API for getting the object velocity per collider (`context.physics.engine.getLinearVelocity`)
170
- - Add: Physics Material can now be updated at runtime. Call `updatePhysicsMaterial` on the collider with the changed physics material
171
- - Fix: scaled capsule collider being created with wrong size
172
- - Fix: timeline audiotracks not respecting speed property on PlayableDirector (effectively being cut-off instead of being played back at another speed/playbackRate)
173
- - Fix: Prevent using XRAnchor on Quest in AR mode (pass-through)
174
- - Fix: Timeline evaluate is now done in lateUpdate which gives animated objects time to apply the changed data (e.g. OrbitControls where the target object may be animated)
175
- - Fix: Timeline Audio tracks do not require AudioListener in scene anymore
176
-
177
- ## [3.22.6] - 2023-11-06
178
- - Change: work on approximated transmission export in USDZ
179
-
180
- ## [3.22.4] - 2023-11-03
181
- - Add: Option to WebXRControllers to disable default controls (`enableDefaultControls`) and raycasting (`enableRaycasts`)
182
- - Fix: AnimatorController transition with exitTime and trigger didnt work since trigger was reset before transition could be made
183
- - Fix: USDZExporter isssue where compressed textures always ended up as JPG after decompression since format check was only checking for RGBAFormat, now also checks for compressed formats
184
- - Change: catch and display unhandled exceptions during creation of engine, make sure bubble messages are on top of loading overlay
185
- - Change: USDZExporter should re-use renderer
186
-
187
- ## [3.22.3] - 2023-11-02
188
- - Add: Coroutine can now yield on promise and wait for the promise to be resolved
189
- - Fix: CharacterController not being grounded on mesh collider
190
- - Fix: ShadowCatcher set to additive mode didnt work anymore
191
-
192
- ## [3.22.2] - 2023-11-01
193
- - Add: Optional `RectTransform.minWidth` and `RectTransform.maxWidth`
194
- - Fix: GameObject instantiate should clone color objects (to not share instance)
195
- - Fix: Call to `parseSync` with full url argument now correctly passes base url to three GLTFLoader for resolving external resources
196
- - Change: PhysicsMaterial properties are now all optional (e.g. so we can set only friction)
197
- - Change: `Rigidbody.setForce` to take a vec3
198
- - Change: `AudioSource.onDisable` should pause not stop
199
- - Change: `Mathf.random(<min>?, <max>?)` now takes optional min and max parameters
200
-
201
- ## [3.22.1] - 2023-10-30
202
- - Fix: `Screencapture.autoconnect` when already connected to networking server or connection is in progress / window selection is currently open
203
- - Change: when `isManagedExternally` is enabled then framerate is user controlled and not automatically clamped
204
- - Change: add more documentation to networking methods
205
-
206
- ## [3.22.0] - 2023-10-26
207
- - Fix: SyncedCamera deserialization warning
208
- - Change: Collider property updates now trigger rigidbody mass recalculation immediately (if set to auto-mass)
209
- - Change: Rigidbody methods now take Vec3 object as well as arguments like `{x:0, y:1, z:0}`
210
- - Change: Improve Screencapture
211
- - Change: Screencapture now also allows `Microphone` as input device
212
- - Change: Updated VOIP script and removed old VOIP implementation - it now uses the same underlying codebase as screencapture
213
- - Change: Update imports to use `type` where appropriate
214
-
215
- ## [3.21.5] - 2023-10-25
216
- - Fix: remove leftover console.log
217
- - Fix: Hovered button should reset pointer state when destroyed
218
- - Fix: WebXR Rig parenting in VR when switching scenes
219
- - Fix: Timeline activation track not properly evaluating when timeline is paused and manually evaluated from user code
220
- - Fix: Sphere Collider radius not being set correctly
221
-
222
- ## [3.21.3] - 2023-10-23
223
- - Fix: Issue where Chrome touch emulation caused "onPointerClick" being called twice per click
224
- - Fix: EventList instances are now not shared anymore between components created via `instantiate`
225
- - Fix: Regression where SphereCollider radius was not being applied
226
-
227
- ## [3.21.2] - 2023-10-23
228
- - Change: Expose EventList subscriber count
229
- - Change: `PointerEventArgs.use()` should not stop propagation
230
-
231
- ## [3.21.1-alpha] - 2023-10-20
232
- - Add: Multitouch support on `input` events, our EventSystem implementation now handles multitouch cases and is using the browser events directly and immediately (before events via `window` where deferred and hanlded during the engine update loop)
233
-
234
- ## [3.21.0-alpha] - 2023-10-19
235
- - Add: support for translate, rotate and scale of AR scene on android devices (needs `WebXRSessionRoot.arTouchTransform` set to true right now)
236
- - Add: `SphereCollider.radius` and `BoxCollider.size` updates at runtime are now automatically propagated to the physics engine updating the physics shapes. Additionally the object scale for SphereCollider objects is watched and automatically applied on change
237
- - Fix: removal of all colliders on an object now also fully cleansup the implictly created RigidBody
238
- - Change: `Context.isManagedExternally` can now be set at runtime as a first step towards allowing complete external control over the Needle Engine lifecycle loop in cases where Needle Engine scenes or components are mixed with an external three.js scene (and projects that require more explicit control)
239
-
240
- ## [3.20.3] - 2023-10-18
241
- - Add: Expose Rapier dominance group option on Rigidbody
242
- - Fix: Ignore root motion when animator weight is <= 0 due to Timeline playing
243
- - Fix: Rapier race condition caused by dynamic loading
244
- - Change: Allow setting Rigidbody mass explictly now by either setting `autoMass` to false or by setting the `mass` property
245
-
246
- ## [3.20.2] - 2023-10-17
247
- - Fix: renderer access nullreference exceptions caused by deferred initialization
248
- - Fix: disabling postprocessing now restores renderer clear state (which got disabled by the postprocessing package)
249
- - Fix: disable generating WebXRPlane tangents
250
-
251
- ## [3.20.1] - 2023-10-16
252
- - Change: `addComponent` can now take component instance or type
253
-
254
- ## [3.20.0] - 2023-10-13
255
- - Fix: issue where physics colliders where not yet fully initialized in `start` event
256
- - Fix: Pointer delta while cursor is locked
257
- - Change: Expose `context.phyiscs.engine.world` and `context.physics.engine.getComponent` method to directly work with rapier physics engine and to easily get access to Needle Engine components from rapier colliders
258
- - Change: Expose `Context.DefaultWebGLRendererParameters` that can be modified in static context before renderer is created
259
-
260
- ## [3.19.9] - 2023-10-11
261
- - Change: `AnimatorController.createFromClips` now sets the state hash to index of clip
262
- - Fix: AnimatorController root motion direction when runtime instantiating and using the same clip on multiple objects
263
- - Fix: AnimatorController root motion forward direction when rotating object from script as well
264
-
265
- ## [3.19.8] - 2023-10-10
266
- - Add: `AnimatorController.createFromClips` utility method taking in a animationclips array to create a simple controller from. By default it creates transitions to the next clip
267
- - Fix: occasional issue where the scrollbar would cause flickering due to hiding/showing when the website was zoomed
268
- - Fix: screenshot utility method respecting page zoom
269
- - Fix: vite dependency watcher plugin running installation if dependency in package.json would change
270
- - Fix: Animator root motion working with multiple states, clips and transitions
271
-
272
- ## [3.19.7] - 2023-10-04
273
- - Add: OrbitControls `enableRotate` property
274
- - Fix: LODGroup not using last LOD in cases where the last LOD is never culled
275
- - Fix: PostProcessing EffectStack correctly ordered when using N8 Ambient Occlusion (together with Bloom for example)
276
- - Fix: Postprocessing N8 should not modify gamma if it's not the last effect in the stack
277
-
278
- ## [3.19.6] - 2023-10-02
279
- - Fix: AudioSource does now create an AudioListener on the main camera if none is found in the scene
280
- - Change: VideoPlayer does fallback to clip if src is empty or null
281
- - Change: OrbitControls now expose `enableRotate` property
282
-
283
- ## [3.19.5] - 2023-10-02
284
- - Fix: web component font import
285
-
286
- ## [3.19.4] - 2023-09-29
287
- - Fix: Remove leftover OrbitControls log
288
- - Change: Timeline TrackModel `markers` and `clips` fields are now optional
289
- - Change: VideoPlayer is set to use url as default video source (if nothing is defined)
290
-
291
- ## [3.19.3] - 2023-09-28
292
- - Fix: regression in OrbitControls without lookat target assigned
293
- - Fix: progressive textures loading with custom reflection probe
294
- - Fix: WebAR touch event screenspace position using `this.context.input`
295
-
296
- ## [3.19.2] - 2023-09-27
297
- - Add: OrbitControls `autoFit` property
298
- - Add: API to access underlying Rapier physics body using `context.physics.engine.getBody(IComponent | IRigidbody)`
299
-
300
- ## [3.19.1] - 2023-09-27
301
- - Add: ParticleSystem now supports HorizontalBillboard and VerticalBillboard
302
- - Fix: [WebXR chromium bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1475680) where the tracking transform matrix rotates roughly by 90° - we now add an WebXR Anchor to keep the scene at the placed location in the real world
303
- - Fix: SceneSwitcher does now call event on first `ISceneEventListener` found on root level of a loaded scene (e.g. if a Unity scene is loaded that contains multiple children and does not have just one root object)
304
- - Fix: Text UI clipping with multiple active screenspace canvases in scene
305
- - Fix: Screenspace canvas events should not be blocked anymore by objects in 3D scene
306
- - Fix: FirstPersonController rotation not being correctly / falsely resetted and flipped in some cases
307
-
308
- ## [3.19.0] - 2023-09-26
309
- - Fix: collider scale wrongly affecting physics objects
310
- - Fix: collider debug lines should not be raycastable
311
- - Fix: mesh-collider behaving unexpectedly
312
- - Fix: animator root motion causing error due to uninitialized Quaternion object
313
-
314
- ## [3.18.0] - 2023-09-21
315
- - Add: SceneSwitcher has now a field for `loadingScene` which can be used to display a scene while loading other scenes
316
- - Add: `ISceneEventListener` which is called by the SceneSwitcher when a scene has been loaded or a scene is being unloaded. It can be used to handle showing and hiding content gracefully. It has to be added to the root of the scene that is being loaded (e.g. the root of the scene or prefab assigned to the `loadingScene` field or the root of a scene assigned to the `scenes` array)
317
- - Add: `hide-loading-overlay` attribute to `<needle-engine>` webcomponent (use like `<needle-engine hide-loading-overlay>`). Custom loading requires a PRO license. See [all attributes in the documentation](https://engine.needle.tools/docs/reference/needle-engine-attributes.html).
318
- - Fix: Loading overlay should not link to needle website anymore when using a custom logo
319
- - Fix: Add safeguard to user assigned events on `<needle-engine>` for cases where methods are not defined in the global scope
320
- - Change: Update loading message displayed in overlay while waiting for `ContextCreated` promise (e.g. in cases where a large environment skybox is being loaded)
321
-
322
- ## [3.17.0] - 2023-09-20
323
- - Fix: handle exception when loading GLB/glTF files with invalid lightmapping extension
324
-
325
- ## [3.16.5] - 2023-09-18
326
- - Change: Ignore shadow catcher and GroundProjectedEnvironment sphere when running OrbitControls.fit
327
-
328
- ## [3.16.4] - 2023-09-16
329
- - Add: help balloon message if user tries to open a local file without using a webserver
330
- - Add: helpful console.log if user tries to add a component that is not a Needle Engine component
331
-
332
- ## [3.16.3] - 2023-09-15
333
- - Add: logo now respects prefer-reduced-motion, reduce and is immediately added instead of after 1s
334
- - Fix: use default background color if GLB without camera and skybox is loaded
335
- - Fix: ensure custom KTX2 loader is correctly initialized
336
- - Fix: revert RectTransform change that broke hotspot rendering
337
- - Change: adjust default backgroundBlurriness to match Blender defaults
338
-
339
- ## [3.16.2] - 2023-09-15
340
- - Add: mesh collider handling for invalid mesh data (non-indexed geometry)
341
-
342
- ## [3.16.2-beta] - 2023-09-13
343
- - Add: `camera.environmentIntensity` property
344
- - Change: default background blurriness for fallback camera to match blender default
345
-
346
- ## [3.16.1-beta] - 2023-09-13
347
- - Change: if loaded glTF doesnt contain a camera we now also create the default OrbitControls (e.g. glTF exported from a Blender scene without a camera)
348
-
349
- ## [3.16.0-beta] - 2023-09-13
350
- - Add: `NEEDLE_lightmaps` entries `pointer` property can now also be a path to a local texture on disc instead of a texture pointer. This allows Blender EXR and HDR maps to be used at runtime until Blender export supports hdr and exr images to be stored inside the GLB
351
-
352
- ## [3.15.0-beta] - 2023-09-13
353
- - Fix: remove leftover console.log
354
- - Fix: `DeviceFlag` component not detecting devices correctly for iOS safari
355
- - Fix: loading glTF without any nodes
356
- - Fix: `SceneSwitcher` bug where a scene would be added twice when switching in fast succession
357
- - Fix: `Animation.isPlaying` bool was always returning false
358
- - Fix: Handle typescript 5 decorator change to prevent VSCode error message (or cases where `experimentalDecorators` is off in tsconfig). See [179](https://github.com/needle-tools/needle-engine-support/issues/179)
359
- - Fix: Improve internal lifecycle checks and component method calls
360
- - Change: Improse ContextRegistry/NeedleEngine `ContextEvent` enum documentation
361
- - Change: `<needle-engine skybox-image=` and `environment-image=` attributes are now awaited (loading overlay is still being displayed until loading the images have finished or failed loading)
362
-
363
- ## [3.14.0-beta] - 2023-09-11
364
- - Add: exposing `Needle.glTF.loadFromURL` in global scope to support loading of any glTF or GLB file with needle extensions and components when using the prebundled needle engine library (via CDN)
365
- - Add: `context.update` method for cases where needle engine is now owning renderer/scene/camera and the update loop is managed externally
366
- - Fix: animating custom shader property named `_Color`
367
- - Fix: issue with wrong CSS setting in Needle Engine breaking touch scroll
368
- - Change: `?stats` now logs renderer statistics every few seconds
369
- - Change: simplify creating a new Needle Context that is controlled externally (not owning camera/renderer)
370
-
371
- ## [3.13.0-beta] - 2023-09-08
372
- - Add: ParticleSystem now also uses material color
373
- - Add: `IEditorModificationListener.onAfterEditorModification` callback (requires `@needle-tools/editor-sync@2.0.1-beta`)
374
- - Bump: Three.Quarks dependency to 0.10.6
375
- - Update draco decoder include files
376
-
377
- ## [3.12.2-beta] - 2023-09-04
378
- - Add: option to override peerjs host and id (options) via `setPeerOptions`
379
- - Fix: potential nullreference error in AudioListener
380
- - Fix: Networking component cases where invalid localhost input with "/" causes url to contain "//" sometimes -> we can skip one "/" in this case and make it just work for users
381
- - Fix: package.json `overrides` syntax for quarks three.js version
382
- - Change: Screensharing bool to disable click to start networking + add deviceFilter to share(opts:ScreenCaptureOptions)
383
-
384
- ## [3.12.1-beta] - 2023-09-04
385
- - Fix: next.js/webpack useRapier setting
386
- - Change: typestore is now globally registered
387
-
388
- ## [3.12.0-beta.1] - 2023-08-28
389
- - Fix: vite hot reload plugin to dynamically import needle engine to support usage in server-side rendering context
390
-
391
- ## [3.12.0-beta] - 2023-08-28
392
- - Add: Timeline api for modifying final timeline position and rotation values (implement `ITimelineAnimationCallbacks` and call `director.registerAnimationCallback(this)`)
393
- - Change: Update three quarks particlesystem library to latest
394
- - Fix: issue where onPointerExit was being called when cursor stops moving
395
- - Fix: USDZ normal scale Z was incorrect
396
- - Fix: Timeline Signal events using different casing than UnityEvent events
397
- - Fix: issue where `isLocalNetwork` was falsely determined
398
-
399
- ## [3.11.6] - 2023-08-15
400
- - Remove beta
401
-
402
- ## [3.11.6-beta] - 2023-08-14
403
- - Fix: find exported animation by PropertyBinding
404
- - Fix: USDZExporter was not exporting animation from Animation component but only from Animator
405
- - Fix: potential issues with Animation component `clip.tracks` being null/undefined on USDZ export
406
- - Fix: `loadstart` event not being called
407
- - Fix: getComponent should always either the component or null (never undefined)
408
- - Fix: dynamic import of websocket-ts package
409
- - Fix: progressive texture loading wasn't properly awaited on USDZ export
410
- - Fix: apply XR flags when exporting to QuickLook
411
- - Fix: USDZ alpha clipping for materials without textures
412
- - Fix: USDZ same material used in different ChangeMaterialOnClick resulted in duplicate behaviour names
413
- - Change: set default WebARSessionRoot to "1" instead of "5"
414
-
415
- ## [3.11.5-beta] - 2023-08-10
416
- - Fix: components keep their gameObject references until `destroy` call of object's is completed when destroying an hierarchy. Previously child components might already be destroyed resulting in `myChildComponent.gameObject` being null when called in `onDestroy` from a parent component
417
- - Fix: regression where timeline was not updating animations anymore if Animator had an empty AnimatorController assigned (without any states)
418
- - Fix: `SceneSwitcher.switchScene` can now handle cases where it's called with a string url instead of an AssetReference
419
- - Fix: issue where `onPointerMove` event was being called continuously on mobile after touch had already ended
420
- - Fix: issue where GLTFLoader extensions where missing name field resulting in extensions not being properly registered (causing stencils to not work sometimes)
421
- - Change: EventSystem raycast is now only performed when pointer has changed (moved, pressed, down, up) which should improve performance on mobile devices when raycasting on skinned meshes
422
- - Change: peer and websocket-ts import asynchronously
423
- - Remove: legacy include files
424
-
425
- ## [3.11.4-beta] - 2023-08-04
426
- - Fix: USDZExporter exception caused by programmatically calling `exportAsync` without quicklook button
427
- - Fix: Timeline `evaluate` while being paused
428
- - Bump three to fix issue with blend shape animation not being applied to Group objects (KHR_animation_pointer)
429
-
430
- ## [3.11.3-beta] - 2023-08-03
431
- - Change: improve styling of `<needle-engine>` DOM overlay element to allow positioning of child elements
432
- - Fix: USDZExporter normal bias when normalScale is used
433
- - Fix: Nullreference in SceneSwitcher when creating the component from code and calling `select` with a new scene url
434
- - Fix: Quicklook button creation
435
- - Fix: Particlesystem layermask not being respected
436
-
437
- ## [3.11.2-beta] - 2023-07-31
438
- - Fix: `ChangeMaterialOnClick` with multi material objects
439
- - Fix: progressive textures regression
440
-
441
- ## [3.11.1-beta] - 2023-07-31
442
- - Add: `saveImage` utility method and make `screenshot` parameter optional
443
- - Add: `loading-style="auto"`
444
- - Fix: skybox image caching
445
- - Fix: finding animation tracks for unnamed nodes when using the `autoplay` attribute
446
- - Change: improved `<needle-engine>` default sizes
447
- - Change: smoother src changes on `<needle-engine>` by only showing loading overlay when loading of files takes longer than a second
448
- - Change: bump three version to 154.2 fixing KHR_animation_pointer not working with SkinnedMesh
449
-
450
- ## [3.11.0-beta] - 2023-07-29
451
- - Add: Support for blending between Timeline and Animator animation by fading out animation clips allowing to blend idle and animator timeline animations
452
- - Fix: WebXR buttons style to stay inside `<needle-engine>` web component
453
- - Fix: `OrbitControls.fitCamera` now sets rotation target to the center of the bounding box
454
- - Fix: Timeline animation regression causing Animator not being enabled again after timeline has finished playing
455
- - Fix: Timeline should re-enable animator when ended reached end with wrap-mode set to None
456
- - Change: add `.js` extensions to all imports
457
- - Change: allow overriding loading style in local develoopment
458
- - Change: expose flatbuffer scheme helper methods
459
-
460
- ## [3.10.7-beta] - 2023-07-28
461
- - Fix: Camera using RenderTarget (RenderTexture) now applies clear flags before rendering (to render with solid color or another skybox for example)
462
- - Fix: RenderTexture not working in production build due to texture being compressed
463
- - Fix: RenderTexture warning `Feedback loop formed between Framebuffer and active Texture`
464
- - Fix: Handle Subparticlesystem not being properly serialized avoiding runtime error
465
- - Internal: add resource usage tracking of textures and materials
466
-
467
- ## [3.10.6-beta] - 2023-07-27
468
- - Fix: Timeline ActivationTrack behaves like `leave as is` when timeline is disabled (not changing the activate state anymore)
469
- - Fix: Timeline Signal Track with duration of 0 and signal at time 0 does now trigger
470
- - Fix: Timeline disabling or pausing does now activate animator again
471
- - Fix: CustomShader Time node for BiRP
472
- - Fix: ParticleSystem simulation mode local now correctly applies parent scale
473
- - Change: Show warning for wrong usage of `@serializable` with `Object3D` where a `AssetReference` is expected
474
- - Change: ParticleSystem shows warning when using unsupported scale mode (we only support local right now)
475
-
476
- ## [3.10.5-beta] - 2023-07-25
477
- - Fix: warning at runtime when methods called by `EventList`/`UnityEvent` are in the wrong format
478
- - Fix: OrbitControls issue where double clicking/focus on screenspace UI would cause the camera to be moved far away
479
- - Fix: `OrbitControls.fitCamera` where three `expandByObject` now requires an additional call to `updateWorldMatrix` [26485](https://github.com/mrdoob/three.js/issues/26485#issuecomment-1649596717)
480
- - Change: replace some old `Texture.encoding` calls with new `Texture.colorSpace`
481
- - Change: improve `PlayerSync` networking and add `onPlayerSpawned` event
482
- - Remove: `RectTransform.offsetMin` and `offsetMax` because it's not implemented at the moment
483
-
484
- ## [3.10.4-beta] - 2023-07-24
485
- - Fix: activating UI elements in VR not applying transform
486
-
487
- ## [3.10.3-beta] - 2023-07-21
488
- - Fix: AnimatorController error caused by missing animationclip
489
- - Fix: next.js webpack versions plugin
490
- - Fix: Occasional `failed to load glb` error caused by not properly registering `KHR_animation_pointer` extension
491
- - Fix: UI issue where Text in worldspace canvas would be visible at wrong position for a frame
492
- - Fix: UI issue where Text would not properly update when switching between text with and without richtext
493
- - Fix: UI issue where Image would not automatically update when setting texture from script
494
- - Fix: issue where RenderTexture would not be cleared before rendering
495
- - Change: make `addEventListener` attribute on `<needle-engine>` optional
496
-
497
- ## [3.10.2-beta] - 2023-07-19
498
- - Fix: iOS double touch / input
499
- - Change: minor WebXRController refactor moving functionality into separate methods to be patchable
500
-
501
- ## [3.10.1-beta] - 2023-07-18
502
- - Fix: prebundled package
503
- - Fix: runtime license check
504
- - Fix: Input being ignored after first touch
505
- - Fix: SpatialTrigger, reverting previous change where we removed the trigger arguments
506
-
507
- ## [3.10.0-beta.2] - 2023-07-18
508
- - Fix: prebundled package by locking vite to <= 4.3.9
509
-
510
- ## [3.10.0-beta.1] - 2023-07-17
511
- - Fix: prebundled package
512
-
513
- ## [3.10.0-beta] - 2023-07-17
514
- - Fix: Text clipping in VR
515
- - Fix: AR overlay `quit-ar` button not being properly detected
516
- - Fix: Timeline animation track post-extrapolate set to `Hold`
517
- - Fix: iOS touch event always producing double click due to not properly ignoring mouse-up event
518
- - Change: DragControls to automatically add ObjectRaycaster if none is found in parent hierarchy
519
- - Change: DragControls now expose options to hide gizmo and to disable view-dependant behaviour
520
-
521
- ## [3.10.0-alpha] - 2023-07-15
522
- - Change: WebXR component now automatically adds a WebARSessionRoot on entering AR when no session root was found in the scene
523
- - Change: `@syncField` can now sync objects by re-assigning the object to the same field (e.g. `this.mySyncedObject = this.mySyncedObject` to trigger syncing)
524
- - Change: log error when `@syncField` is being used in unsupported types (currently we only support syncField being used inside Components directly)
525
- - Change: improve message when circular scene loading is detected and link to documentation page
526
-
527
- ## [3.9.1-alpha] - 2023-07-14
528
- - Add: SceneSwitcher now uses scene name by default. Can be turned off in component
529
- - Fix: ParticleSystem lifetime not respecting simulation speed
530
- - Fix: ParticleSystem prewarm with simulation speed and improved calculation of how many frames to simulate
531
- - Fix: Exit AR and Exit VR now restores previous field of view
532
- - Change: close AR button adjusted for better visibility on bright backgrounds
533
- - Change: bump @types/three to 154
534
-
535
- ## [3.9.0-alpha.1] - 2023-07-12
536
- - Add: vite plugin to clamp version to `<= 4.3.9` since 4.4 and above currently cause issues with typescript decorators, [vite#13736](https://github.com/vitejs/vite/issues/13736)
537
-
538
- ## [3.9.0-alpha] - 2023-07-12
539
- - Add: `<needle-engine>` web component slot support, AR DOM overlay can now be added by simple adding HTML elements inside the `<needle-engine></needle-engine>` web component. Fixing [164](https://github.com/needle-tools/needle-engine-support/issues/164)
540
- - Add: Basic USDZ exporting of UI shadow hierarchies as mesh hierarchies for UI in Quicklook AR support
541
- - Fix: WebXR Rig not being rotated as expected when setting up in Unity [129](https://github.com/needle-tools/needle-engine-support/issues/129)
542
- - Fix: WebXR VR button click, hover is still not working
543
- - Fix: Issue with Lightmaps breaking when switching back and forth between multiple lightmapped scenes
544
- - Change: Button click should not invoke with middle or right mouse
545
-
546
- ## [3.8.0-alpha] - 2023-07-11
547
- - Update three.js to 154 (latest)
548
- - Bump postprocessing dependency
549
- - Add: `this.context.xrCamera` property
550
- - Fix: screenspace canvas should not run in VR
551
- - Fix: OrbitControls should not update while in AR and touching the screen
552
- - Change: allow using vanilla three.js by dynamically importing KHR_animation pointer api
553
-
554
- ## [3.7.7-beta] - 2023-07-11
555
- - Fix: LookAt copyTarget + keepUpDirection
556
- - Fix: DragControls not working on first touch on mobile / clone input event
557
- - Fix: Renderer assigning renderOrder in URP on SkinnedMesh with multi-material
558
-
559
- ## [3.7.5-beta] - 2023-07-07
560
- - Fix: USDZExporter should not show Needle banner when branding information is empty (pro only)
561
- - Fix: USDZExporter sessionroot scale should be applied to object to be exported when the root is in the parent
562
- - Fix: DropListener localhost without explicit backend url + dropping file caused exceptions
563
- - Fix: instanceof error that tsc complained about
564
- - Change: Fonts handle semibold variant
565
- - Internal: DropListener re-use addFiles method, remove old code
566
- - Internal: Bump tools package dependency
567
-
568
- ## [3.7.5-alpha] - 2023-07-06
569
- - Add: SignalEvents support for arguments
570
- - Fix: SpatialTrigger Unity events removing extra (unexpected) event arguments
571
- - Fix: safeguard `AudioSource.play` to not fail when `clip` argument is not a string
572
- - Change: change Timeline signal event trigger time to use last frame deltatime with padding to estimate if the event should fire
573
-
574
- ## [3.7.4-alpha] - 2023-07-05
575
- - Change: targetFps, use timestamp that we get from the animation callback event because it is more reliable on Firefox
576
-
577
- ## [3.7.3-alpha] - 2023-06-26
578
- - Add: physics gravity to `IPhysicsEngine` interface to be available via `this.context.physics.engine.gravity`
579
- - Fix: USDZ text alignment
580
-
581
- ## [3.7.2-alpha] - 2023-06-23
582
- - Fix: Nullref in SpectatorCamera.onDestroy when camera wasnt active
583
-
584
- ## [3.7.1-alpha] - 2023-06-22
585
- - Add: ChangeMaterialOnClick `fadeDuration` option (Quicklook only)
586
- - Change: USDZ export now enforces progressive textures to be loaded before export
587
- - Change: USDZ export callbacks for `beforeCreateDocument` and `afterCreateDocument` can now run async
588
- - Fix: USDZExporter quicklook button
589
- - Fix: USDZExporter Quicklook button not being removed when exporter gets removed or disabled
590
- - Fix: USDZ ChangeMaterialOnClick clear cache before exporting, this caused USDZ export to fail on third export in USDZ sample scene
591
- - Fix: Engine loading bar not being updated
592
- - Fix: USDZ text linebreaks
593
- - Fix: UI font name style check. Unknown font styles are now not touched anymore (e.g. font name ending with `-Medium`)
594
-
595
- ## [3.7.0-alpha] - 2023-06-21
596
- - Change: Move HTML elements into <needle-engine> shadow dom
597
-
598
- ## [3.6.13] - 2023-06-21
599
- - Add: static Context.DefaultTargetFrameRate
600
- - Add: option to prevent USDZExporter from creating the button
601
- - Fix: `@prefix` handling promise resolving to false
602
-
603
- ## [3.6.12] - 2023-06-20
604
- - Update Readme
605
-
606
- ## [3.6.11] - 2023-06-19
607
- - Add: UI InputField API for clear, select and deselect from code
608
- - Change: LODGroup serialization
609
- - Fix: mobile debug console should be above loading overlay if error happens during loading
610
- - Fix: LODGroup not being able to resolve renderer reference
611
- - Fix: Particles direction being wrong in some causes with scaled parent and scaled particle system
612
- - Fix: Particles subsystem emitter position being wrong when main particle system was scaled
613
- - Fix: Bundled library failing to load due to undeclared variable
614
- - Fix: UI InputField hide html element
615
- - Fix: Joining empty room name is not allowed anymore
616
- - Fix: Clamp Room name length to 1024 chars
617
-
618
- ## [3.6.10] - 2023-06-14
619
- - Fix: Text with richText not updating properly
620
- - Internal: Change font style parsing
621
-
622
- ## [3.6.9] - 2023-06-12
623
- - Fix: Particles SizeOverLifetime module for mesh particles
624
-
625
- ## [3.6.6] - 2023-06-12
626
- - Internal updates
627
-
628
- ## [3.6.5] - 2023-06-09
629
- - Add: NestedGltf `loaded` event being raised when the glb has been loaded
630
- - Add: AnimationCurve cubic interpolation support
631
- - Change: set targetFramerate to 60 by default (in `context.targetFrameRate`)
632
- - Fix: USDZ metalness/roughness potentially being undefined when exporting Unlit materials
633
- - Fix: Handle exception when loading components due to bug when using meshopt compression and material count changes
634
- - Fix: ColorAdjustments setting tonemapping exposure to 0 when exposure parameter override is off [824]
635
-
636
- ## [3.6.4] - 2023-06-02
637
- - Add: `ObjectUtils.createPrimitive` for cube and sphere
638
- - Change: expose `ObjectUtils`
639
- - Fix: BoxGizmo component
640
- - Fix: vite copy plugin when needle.config.json "assets" directory starts with "/"
641
-
642
- ## [3.6.3] - 2023-06-01
643
- - Change: OrbitControls apply settings in update
644
- - Fix: Rapier stripping not being respected
645
-
646
- ## [3.6.2] - 2023-06-01
647
- - Fix: wrong UI z-offset in some cases
648
- - Fix: Particle velocity over lifetime not using world rotation
649
- - Fix: Particle burst being played twice
650
- - Fix: Particle `playOnAwake` option not being respected
651
-
652
- ## [3.6.2-beta] - 2023-05-31
653
- - Add: `setAllowOverlayMessages` to explictly disable overlay messages without url parameter
654
- - Add: allow larger textures for USDZ generation
655
- - Fix: nested gltf with disposing of resources leading to broken files
656
-
657
- ## [3.6.1-beta] - 2023-05-29
658
- - Fix: removing `<needle-engine>` from DOM does now dispose the context properly and unsubscribes from browser events. Add `keep-alive` attribute to disable disposing
659
-
660
- ## [3.6.0-beta] - 2023-05-29
661
- - Add callbacks for ContextClearing
662
- - Add: [n8AO postprocessing effect](https://github.com/N8python/n8ao) (Screenspace Ambient Occlusion) support
663
- - Add: option to disable automatic poster generation (use `noPoster` in options in vite.config)
664
- - Fix: `<needle-engine>` without any src should setup an empty scene
665
- - Change: `OrbitControls.fit` now handles empty scene and ignores GridHelper
666
- - Change: TimelineAudio disconnect audio in onDestroy
667
- - Change: Ensure PostProcessing VolumeParameters are initialized
668
- - Change: Improve memory allocs and disposing of resources
669
- - Change: Update three.js fixing GLTFLoader memory leak
670
-
671
- ## [3.6.0-alpha.3] - 2023-05-27
672
- - Add: `auto-rotate` attribute
673
- - Add: `autoplay` attribute
674
- - Change: await loading of `skybox-image` and `environment-image`
675
- - Change: do not clear renderer when switching `src` attribute
676
-
677
- ## [3.6.0-alpha.2] - 2023-05-27
678
- - Fix: error in vite plugin when `meta.json` was missing
679
- - Fix: three.js OrbitControls causing look direction to not work anymore due to forcing an update in the constructor
680
-
681
- ## [3.6.0-alpha] - 2023-05-27
682
- - Add: Changing `src` attribute now does scene cleanup and loads new files
683
- - Add: `skybox-image` and `environment-image` attributes, allow changing both at runtime
684
- - Fix: error display overlapping in cases where somehow engine is imported twice
685
- - Fix: logo overlay should only show when loading is done, change error during render loop message
686
- - Fix: OrbitControls camera fitting now done once before rendering when loaded glb does not contain any camera
687
- - Fix: Vite client plugin imports
688
- - Change: Context now handle errors during initializing or when starting render loop
689
- - Change: ContextRegistry exported as NeedleEngine and export hasIndieLicense function
690
- - Change: Remove need to manually define global engine variables in cases without bundler or Needle plugins
691
-
692
- ## [3.5.13-beta.1] - 2023-05-26
693
- - Change: embed logo svg and avoid loading it
694
-
695
- ## [3.5.13-beta] - 2023-05-26
696
- - Change: OrbitControls camera fitting improved
697
-
698
- ## [3.5.12-beta] - 2023-05-24
699
- - Add: option to toggle collider visibility from script via `this.context.physics.engine.debugRenderColliders`
700
- - Change: engine.physics raycast doesnt need any parameters now anymore
701
- - Change: OrbitControls default target should be related to distance to center (if nothing is hit by raycast)
702
- - Fix: EventList object and component argument deserialization
703
-
704
- ## [3.5.11-beta] - 2023-05-22
705
- - Add: `@registerType` decorator that can be added to classes for registration in TypeStore. Currently only useful for cases outside of Unity or Blender for Hot Reload support
706
- - Fix: `Component.name` should return Object3D name
707
- - Fix: GameObject static methods generic
708
- - Fix: Logo animation causing browser scrollbar to appear
709
-
710
- ## [3.5.10-beta] - 2023-05-22
711
- - Add: SpriteRenderer now exposes shadow casting and transparency options
712
- - Fix: vite plugin issue caused by missing src/generated/meta
713
- - Fix: nullref in debug_overlay, typo in physics comment
714
- - Fix: disabling collider with rigidbody component did cause an error in rapier
715
- - Fix: HTMLElement css, cleanup loading element, move logo into html element
716
- - Fix: GameObject.addComponent now takes Object3D type too
717
- - Fix: loading overlay not hiding when <needle-engine> src changes
718
- - Change: OrbitControls now sets target to 10 meter by default if nothing is assigned or hit in the scene (previously it was set to 1 meter)
719
- - Change: fit camera to scene after loading when no camera is present in file
720
-
721
- ## [3.5.9-beta.2] - 2023-05-20
722
- - Add: WebXRPlaneTracking should initiate room setup on Quest when no tracked planes are found
723
-
724
- ## [3.5.9-beta.1] - 2023-05-19
725
- - Fix: SceneSwitcher should ignore swipe events when `useSwipe` is disabled
726
-
727
- ## [3.5.9-beta] - 2023-05-19
728
- - Add: Support for progressive texture loading for custom shaders
729
- - Fix: react-three-fiber template
730
-
731
- ## [3.5.9-alpha.2] - 2023-05-18
732
- - Add: needle-engine attributes documentation
733
- - Change: assign main camera during gltf component deserialization when no camera is currently assigned
734
-
735
- ## [3.5.9-alpha] - 2023-05-18
736
- - Add: add nextjs plugin to handle transpiling and defines
737
- - Change: expose USD types to make custom behaviours, add proximityToCameraTrigger
738
- - Fix: loading element position to absolute to avoid jumps when added to e.g. nextjs template
739
- - Fix: texcoords werren't quicklook compatible in ThreeUSDZExporter
740
- - Fix: `LookAt` component with invertForward option was flipped vertically in QuickLook
741
-
742
- ## [3.5.8-alpha] - 2023-05-16
743
- - Add NeedleConfig `baseUrl` for codegen
744
- - Change: AudioSource should pause in background on mobile
745
- - Fix: logo svg import for nextjs
746
- - Fix: particle system playOnAwake
747
-
748
- ## [3.5.7-alpha] - 2023-05-15
749
- - Add: Initial support for text in USDZ
750
- - Change: add generic to `networking.send` for validation of model
751
- - Change: SyncedRoom, expose tryJoinRoom method + remove error thrown when roomName.length <= 0, join room in onEnable
752
- - Fix: setting position on UI object (RectTransform) works again
753
- - Fix addressable instantiate options called with `{ position: .... }` and without a parent, it should then still take the scene as the default parent
754
- - Fix: WebXR `arEnabled` option
755
- - Fix: Worldspace canvas always being rendered on top
756
- - Fix: CanvasGroup alpha not being applied to text
757
-
758
- ## [3.5.6-alpha] - 2023-05-12
759
- - Fix defines for vanilla JS usage
760
- - Fix CanvasGroup not overriding alpha
761
- - Remove some spurious logs
762
- - Add `addComponent` method to this.gameObject
763
- - Add "light" version on bundle processing
764
-
765
- ## [3.5.5-alpha.1] - 2023-05-11
766
- - Fix: declare missing defines for pre-bundled engine
767
-
768
- ## [3.5.5-alpha] - 2023-05-11
769
- - Add: getWorldDirection
770
- - Add: needle.config.json `build.copy = []` to copy files on build from arbitrary locations into the dist folder for example:
771
- ```md
772
- "build": {
773
- "copy": [
774
- "cards" <-- can be relative or absolute folder or file. In this case the folder is named "cards" in the web project directory
775
- ]
776
- }
777
- ```
778
- - Add ip and location utils
779
- - Change: add buffers for getWorldQuaternion, getWorldScale util methods
780
- - Change: animatorcontroller should only log "no-action" warning when in debug mode
781
- - Fix: apply and check license
782
-
783
- ## [3.5.4-alpha] - 2023-05-11
784
- - Fix: wrong serialization check if a property is writeable
785
- - Fix: mark UI dirty when text changes
786
- - Change: allow UI graphic texture to be set to null to remove any texture/image
787
- - Change: rename USDZExporter `overlay` to `branding`
788
-
789
- ## [3.5.3-alpha.1] - 2023-05-10
790
- - Fix: wrong check in serialization causing particles to break (introduced in 3.5.3-exp)
791
-
792
- ## [3.5.3-alpha] - 2023-05-10
793
- - Add: `IPointerMoveHandler` interface providing `onPointerMove` event while hovered
794
- - Add: USDZ AudioSource support and PlayAudioOnClick
795
- - Change: balloon messages can now loop
796
- - Change: pointer event methods are now lowercase
797
- - Change: allow `moveComponent` to be called with component instance that was not added to a gameObject before (e.g. created in global scope and not using the `addComponent` methods)
798
- - Fix: input pointer position delta when browser console is open
799
- - Fix: GameObject.destroy nullcheck
800
- - Fix: typescript error because of import.meta.env acccess
801
- - Fix: issue where added scenelighting component by extension caused animation binding to break
802
- - Fix: UI layout adding objects dynamically by setting anchorMinMax
803
- - Fix: Prevent exception during de-serialization when implictly assigning value to setter property
804
- - Fix: screenspace canvas being rendered twice when using explicit additional canvas data component
805
- - Fix: EventSystem cached state of hovered canvasgroup not being reset causing no element to receive any input anymore after having hovered a non-interactable canvasgroup once
806
- - Fix: empty array being returned in `GameObject.getComponents` call when the passed in object was null or undefined
807
-
808
- ## [3.5.2-alpha] - 2023-05-09
809
- - Add: SceneSwitcher preload feature
810
- - Change: interactive behaviours for QuickLook are on by default now
811
- - Fix: SetActiveOnClick toggle for QuickLook
812
- - Fix: USDZ texture transform export works in more cases
813
-
814
- ## [3.5.1-alpha] - 2023-05-09
815
- - Fix: reflection probes not working anymore
816
- - Fix: false RectTransform return breaking some cases with reparenting
817
- - Fix: RectTransform mark dirty when anchors change (due to animation for example)
818
-
819
- ## [3.5.0-alpha] - 2023-05-08
820
- - Change: allow tree-shaking rapier physics
821
- - Fix various USDZ export issues:
822
- - fix UV2 for occlusion maps (paves the way for lightmaps), had to be texCoord2f[] instead of float2[]
823
- - fix missing MaterialBindingAPI schema
824
- - fix normal scale for non-ARQL systems (ARQL doesn't support it though, but needed for other viewers)
825
- - fix input:scale for textures not being used if it's (1,1,1,1)
826
- - fix normal maps not being in raw colorSpace
827
-
828
- ## [3.4.0-alpha] - 2023-05-05
829
- - Add: low-level USD Actions/Triggers API for building complex interactions for iOS devices
830
- - Add: high-level USDBehaviours components: ChangeMaterialOnClick, PlayAnimationOnClick, SetActiveOnClick, HideOnStart
831
- - Add: LookAt component now supports iOS AR
832
- - Add: more settings for LookAt
833
- - Add: support for Horizontal- and VerticalLayoutGroup (UI)
834
- - Fix: `setWorldScale` was setting incorrect scale in some cases
835
- - Fix: WebXR Image Tracking now works with WebARSessionRoot / rig movements
836
- - Fix: vite reload only when files inside "assets" change and only if its a known file type
837
-
838
- ## [3.3.0-alpha] - 2023-05-02
839
- - Add: AssetReference can now handle scene reference
840
- - Add: UI update with support for screenspace UI, anchoring, pivots, image outline effect, image pixelPerUnit multiplier
841
- - Add: basic LookAt component
842
- - Add: basic UI outline support + handle builtin Knob image
843
- - Add: WebXRImageTracking ability to directly add a tracked object to an image marker
844
- - Fix: OrbitControls should only update when being the active camera
845
- - Fix: UI input ignored browser "mouseDown" for each "touchUp" event
846
- - Fix: OrbitControls requiring additional tab after having clicked on UI
847
- - Fix: OrbitControls only being deactivated when down event starts on UI element
848
- - Fix: loading bar text not being decoded (displayed e.g. `%20` for a space)
849
- - Fix: TransformGizmo not working anymore
850
-
851
- ## [3.2.15-alpha] - 2023-04-28
852
- - Add: SceneSwitcher.select(AssetReference) support to be invoked from a UnityEvent with an object reference (must be an asset)
853
- - USDZExporter: change exported usdz name, remove needle name for license holders
854
-
855
- ## [3.2.14-alpha] - 2023-04-28
856
- - Add: OpenURL component
857
- - Change: Implictly add Raycaster to scene if it is not found.
858
- - Fix: USDZ export breaking if the object name is just a number
859
-
860
- ## [3.2.13-alpha] - 2023-04-27
861
- - Add: USDZExporter editor shows warning if no objects are assigned and exposes quicklook overlay texts
862
- - Add: USDZExporter callToActionButton can now invoke url to open
863
- - Add: SceneSwitcher can now use history without updating the url parameter
864
- - Fix: Fix vite html transform plugin
865
-
866
- ## [3.2.12-alpha] - 2023-04-26
867
- - Fix: issue where removing an object from the scene would disable all its components
868
-
869
- ## [3.2.11-alpha] - 2023-04-25
870
- - Fix: lighting settings being implictly switched (enabled/disabled) when using SyncCamera / any loaded prefab at runtime
871
-
872
- ## [3.2.10-alpha] - 2023-04-25
873
- - Fix: Remove log in `Animator.SetTrigger`
874
- - Fix: GroundEnv radius property setting wrong value internally
875
- - Fix: Apply license to unnamed local vite chunk files
876
-
877
- ## [3.2.9-alpha] - 2023-04-23
878
- - Fix: VideoPlayer not restarting when enable/disable being toggled
879
- - Fix: Builtin serializer for URLs `@serializable(URL)` should ignore empty strings
880
- - Change: set `enabled` to true before calling `onEnable`
881
- - Change: VideoPlayer now deferrs loading of the video until the video should play
882
- - Change: ScreenSharing component now changes cursor pointer on hover to indicate that is can be clicked
883
-
884
- ## [3.2.8-alpha] - 2023-04-23
885
- - Add: this.context.getPointerUsed(index) and setPointerUsed(index)
886
- - Change: physics now by default receives collisions/triggers between two colliders that are set to trigger
887
-
888
- ## [3.2.7-alpha] - 2023-04-22
889
- - Change: ambient light does now look closer to Unity ambient light
890
- - Fix: guard calls to component event methods when the component or object has been destroyed
891
-
892
- ## [3.2.6-alpha] - 2023-04-21
893
- - Add: SceneSwitcher has now option to automatically set scene environment lighting
894
- - Fix: Issue caused by NeedleEngineHTMLElement import from SceneSwitcher
895
- - Change: Allow component to be disabled in awake (e.g. calling `this.enabled = false` in awake callback)
896
- - Change: Export more types e.g. AnimatorStateMachineBehaviour
897
- - Change: VolumeParameter.value should return rawValue (unprocessed)
898
- - Change: rename "rendererData" to "sceneLighting"
899
- - Change: scene lighting must now be enabled explictly when additional scene are being loaded, use `this.context.sceneLighting.enable(...)` with the AssetReference or sourceId of the scene you want to enable
900
-
901
- ## [3.2.5-alpha.1] - 2023-04-20
902
- - Change: export more types
903
-
904
- ## [3.2.5-alpha] - 2023-04-20
905
- - Add: WebXRPlaneTracking
906
- - Add: `<needle-engine loading-style="light">` for a brighter loading screen
907
- - Fix: InputField.onEndEdit should send string
908
- - Change: move webxr into subfolder
909
- - Change: export more types
910
-
911
- ## [3.2.4-alpha.2] - 2023-04-20
912
- - Change: export more types
913
-
914
- ## [3.2.4-alpha] - 2023-04-20
915
- - Change: export more types (e.g. `syncField`)
916
- - Fix: PlayerSync
917
- - Fix: Environment lighting
918
- - Fix: license check
919
-
920
- ## [3.2.3-alpha] - 2023-04-20
921
- - Fix: VideoPlayer AudioOutput.None should mute video
922
- - Fix: SpriteRenderer applies layer from current object (e.g. for IgnoreRaycast)
923
-
924
- ## [3.2.2-alpha] - 2023-04-19
925
- - Fix: issue where the environment lighting would be falsely disabled
926
- - Change: minor improvements to initial state of the SceneSwitcher
927
-
928
- ## [3.2.1-alpha] - 2023-04-19
929
- - Change: SceneSwitcher clamp option
930
- - Change: timeline signals without bound receiver are now invoked globally on all active SignalReceivers with the specific signal asset
931
- - Change: internal check preventing errors during initialization for projects where the package is falsely added multiple times to the project by importing from internal types directly instead of `from "@needle-tools/engine"`
932
-
933
- ## [3.2.0-alpha] - 2023-04-19
934
- - Add: built-in SceneSwitcher component
935
- - Change: VideoPlayer.playInBackground is set to true by default
936
- - Change: Screensharing should continue playback of receiving video when the sending tab becomes inactive
937
- - Change: log additional information when button events can not be resolved
938
- - Change: AudioSource.playInBackground set to true by default to allow audio playback when tab is not active
939
- - Change: syncField can now take function argument
940
- - Change: Renderer.sharedMaterials can now be iterated using `for(const mat of myRenderer.sharedMaterials)`
941
- - Fix: lightmap not being resolved anymore
942
- - Fix: environment lighting / reflection not switching with scenes
943
- - Fix: progressive texture did not check if the texture was disposed when switching to an unloaded scene resulting in textures being black/missing
944
- - Fix: timeline does enable animator again when pausing/stopping allowing to switch to e.g. idle animations controlled by an AnimatorController
945
- - Fix: changing material on renderer with lightmapping will now re-assign the lightmap to the new material
946
-
947
- ## [3.1.0-alpha.2] - 2023-04-18
948
- - Fix: UI font style resolving
949
-
950
- ## [3.1.0-alpha.1] - 2023-04-18
951
- - Fix: RemoteSkybox not being able to load locally reference dimage
952
- - Fix: ParticleSystem sphere scale not being applied anymore
953
- - Fix: WebXRImageTracking url not being resolved
954
-
955
- ## [3.1.0-alpha] - 2023-04-18
956
- - Add: `ImageReference` type, use to export textures to external files and load them as `img`, `texture` or to get the binary data for e.g. image tracking
957
- - Add: api for `WebXRImageTracking`, this does currently require the ``webxr-incubations`` flag to be enabled
958
- - Add: TiltShift postprocessing effect
959
- - Add: AnimatorController support for negative speed
960
- - Change: ParticleSystem now has a reset method to allow for clearing state, stop has options for calling stop on Sub-Emitters and to clear already emitted particles
961
-
962
- ## [3.0.1-alpha.5] - 2023-04-17
963
- - Add: `this.context.xrFrame` to get access to the current XRFrame from every lifecycle event method
964
- - Change: license check is now baked
965
- - Change: Rename "EngineElement" to NeedleEngineHTMLElement
966
- - Change: disable "Enable Keys" on OrbitControls by default as it conflicts with so many things
967
- - Fix: ParticleSystem circle shape
968
- - Fix: balloon messages are now truncated to 300 characters
969
- - Fix: Screensharing connection setup and start of video playback
970
- - Fix: Screensharing muting now local audio
971
- - Fix: AudioSource does not play again when it did finish and the user switches tabs
972
- - Fix: ParticleSystem prewarm
973
- - Fix: ParticleSystem minMax size, it's currently not supported and should thus not affect rendering
974
-
975
- ## [3.0.1-alpha.4] - 2023-04-12
976
- - Bump with changed package.json
977
-
978
- ## [3.0.1-alpha.3] - 2023-04-11
979
- - Fix: WebXR all layers should be visible
980
- - Fix: WebXRController raycast on all layers
981
- - Fix: issue with mouse vector position being re-used causing delta position being falsely modified
982
- - Change: store static Context.Current in globalThis
983
- - Change: alias resolve imports `@needle-tools/engine/engine` and `@needle-tools/engine/src` to lib folder
984
-
985
- ## [3.0.0-alpha] - 2023-04-05
986
- - Add: vite alias plugin
987
- - Add: vite copyfiles plugin
988
- - Fix: lib sourcemap path
989
- - Fix: Postprocessing not being applied
990
- - Internal: needle vite plugin names now all start with "needle-"
991
-
992
- ## [2.67.16] - 2023-04-13
993
- - Add: static ``AudioTrackHandler.dispose`` for disposing loaded audio data in timeline
994
- - Fix: issue where only the first audio clip would be played in a timeline with multiple audio clips of the same file
995
- - Change: Text should not change font name casing
996
- - Change: Timeline does now wait for audio and first interaction by default (if any audio track is being used, this can be disabled by setting `waitForAudio` to false on the PlayableDirector component)
997
- - Change: postprocessing DOF exposes resolution scale and takes device pixel density into account. By default the resolution is slightly lowered on mobile devices
998
-
999
- ## [2.67.14-pre] - 2023-04-12
1000
- - Change: WebXR camera now copies culling mask from main camera
1001
- - Fix: WebXRController raycast on all layers
1002
- - Fix: WebXR all layers should be visible
1003
- - Fix: set pointer position properly on mouse down to prevent jumps in delta
1004
- - Fix: respect IgnoreRaycast in physics raycasts
1005
- - Fix: issue with CircularBuffer where sometimes the same item was returned twice
1006
- - Fix: boxcolliders with scale 0 (such as adding a BoxCollider to a plane) resulted in flipped normals being returned from raycasts
1007
- - Fix: parenthesis error in CharacterController
1008
- - Fix: issue with mouse vector position being re-used causing delta position being falsely modified
1009
-
1010
- ## [2.67.13-pre] - 2023-04-11
1011
- - Fix: Animation component settings
1012
- - Fix: instanced renderer matrix auto update
1013
- - Change: enable shadow casting in instanced rendering when any mesh has castShadow enabled
1014
- - Change: export ui pointer events
1015
-
1016
- ## [2.67.12-pre] - 2023-04-09
1017
- - Add: SSAO color and luminance influence options
1018
- - Change: postprocessing now exposes effect order
1019
-
1020
- ## [2.67.11-pre] - 2023-04-08
1021
- - Add: some checks for WebGPURenderer
1022
-
1023
- ## [2.67.10-pre] - 2023-04-06
1024
- - Add vite copy files build plugin
1025
- - Fix: PostProcessing not applying effects when enabled for the second time as well as removing earlier hack
1026
- - Change: update user-select/touch-action in project templates style.css to prevent accidental iOS selection of canvas
1027
- - Change: disable text selection on Needle logo
1028
- - Bump three version, see changes below
1029
-
1030
- ### Three
1031
- - change USDZExporter: pass writer into onAfterHierarchy callback, move onAfterHierarchy callback after scene hierarchy write
1032
- - fix USDZExporter: fix exception when trying to process render targets
1033
- - fix WebXRManager: Correctly update the user camera when it has a parent with a non-identity transform.
1034
-
1035
- ## [2.67.9-pre] - 2023-04-03
1036
- - Change: SpriteRenderer material to transparent
1037
- - Bump: tools package dependency
1038
-
1039
- ## [2.67.8-pre.1] - 2023-03-31
1040
- - Fix: exception when using BoxColliders caused by error in initial activeInHierarchy state assignment
1041
-
1042
- ## [2.67.8-pre] - 2023-03-31
1043
- - Fix: vite plugins must have a name
1044
- - Fix: activeInHierarchy update when key is undefined (e.g. in r3f context)
1045
- - Change: cleanup r3f component
1046
-
1047
- ## [2.67.7-pre] - 2023-03-30
1048
- - Add: time smoothed delta time
1049
- - Add this.context.targetFrameRate
1050
- - Fix: enum / type conversion errors
1051
- - Fix: CanvasGroup overriding text `raycastTarget` state in event handling causing problems with button events
1052
- - Fix: Text z-fighting from invisible ThreeMeshUI frame object
1053
- - Change: Canvas `renderOnTop` moved into separate render call to avoid ordering issues and postprocessing affecting overlay UI
1054
- - Internal: Move context from engine_setup to engine_context
1055
-
1056
- ## [2.67.6-pre] - 2023-03-30
1057
- - Fix: Postprocessing enforce effect order
1058
- - Change: gizmos should not render depth
1059
-
1060
- ## [2.67.5-pre] - 2023-03-30
1061
- - Fix: issue where postprocessing did not check composer type (e.g. when using threejs composer instead of pmndrs package)
1062
- - Change: Postprocessing now uses stencil layers
1063
-
1064
- ## [2.67.4-pre] - 2023-03-28
1065
- - Change: Postprocessing effects value mapping / settings improved (Bloom & ColorAdjustments)
1066
-
1067
- ## [2.67.3-pre] - 2023-03-28
1068
- - Fix: issue where progressive textures would not be applied correctly anymore
1069
- - Fix: Timeline audio loading on firefox
1070
- - Fix: issue where progressive textures with reflection probes wouldn't be applied correctly anymore
1071
-
1072
- ## [2.67.2-pre] - 2023-03-28
1073
- - Change: calculations for rect transform animation offsets
1074
- - Change: Warn if engine element src contains a url without .glb or .gltf
1075
-
1076
- ## [2.67.1-pre] - 2023-03-28
1077
- - Fix: PostProcessing failing to be re-applied after exit XR
1078
-
1079
- ## [2.67.0-pre] - 2023-03-27
1080
- - Add: `this.gameObject.destroy` as a shorthand for `GameObject.destroy(this.gameObject)`
1081
- - Add: support for camera `targetTexture` to render into a RenderTexture (when assigned to e.g. the main camera in Unity)
1082
- - Add: utility methods to toplevel engine export (for example `getParam`, `delay`, `isMobileDevice`, `isQuest`)
1083
- - Add: first version of usage tracking of materials, textures and meshes. This is off by default and can be enabled using the `?trackusage` url parameter. When enabled `findUsers` can be used to find users of an object.
1084
- - Add: pmnders postprocessing package
1085
- - Change: improved PlayerState component and added event for PlayerState events for owner change (to properly listen to first assignment)
1086
- - Change: `AssetReference.unload` now calls dispose to free all resources
1087
- - Change: `WebXR` component now has static field for modifying optionalFeatures
1088
- - Change: `Physics.RaycastOptions` now have a `setLayer` method to simplify setting the correct layer mask (similar to Unity's layers to enable e.g. just layer 4 for raycasting)
1089
- - Change: `RemoteSkybox` now requests to re-apply clear flags on main camera when disabling to restore previous state.
1090
- - Fix: issue where component instances were created using wrong method causing arrow functions to be bound to the wrong instance
1091
- - Fix: `@syncField` now properly handles destroy of an component
1092
- - Fix: react-three-fiber template
1093
- - Fix: ParticleSystem prewarm safeguard and additional checks where emission is set to 0
1094
- - Fix: Timeline only playing first audio clip
1095
- - Fix: Issue where scene with multiple root glbs cross-referencing each other were not being resolved correctly in all cases
1096
- - Fix: Progressive textures not being loaded when using tiling
1097
- - Fix: Text UI anchoring
1098
-
1099
- ## [2.66.1-pre] - 2023-03-16
1100
- - Add: `sphereOverlapPhysics` function for more accurate sphere overlap detection using rapier
1101
- - Fix: Gizmos should be excluded from being hit by raycasts
1102
- - Fix: Gizmo sphere radius was twice the desired size
1103
- - Fix: Physics now prevent negative collider scale
1104
- - Fix: renderer instancing auto update when using multi material objects
1105
- - Change: Show warning that stencil and instancing doesnt work together at the moment
1106
-
1107
- ## [2.66.0-pre] - 2023-03-14
1108
- - Add: particle system prewarm support
1109
- - Add: `poseMatrix` argument in WebARSessionRoot.placedSession event
1110
- - Add: MeshCollider minimal support for submeshes (they can be added but currently not removed from the physics world)
1111
- - Fix: debug_overlay error when rejection reason is null
1112
- - Fix typo beginListenBinrary → beginListenBinary
1113
- - Fix: particle system staying visible after disabling gameObject
1114
- - Fix particle system not finding subemitter in certain cases
1115
- - Fix: particles with subemitters and trails and disabled "die with particle" should emit subemitter when the particle dies (and not when the trail dies)
1116
- - Fix: Loading overlay now hides when loading is done and the first frame has finished rendering
1117
- - Change: rename networking `stopListening` to `stopListen` for consistency
1118
- - Change: addressables allow up to 10k instantiations per frame before aborting
1119
- - Change: set material shadowSide to match side
1120
- - Change: generate poster image with 1080x1080 px and add `og:image:width` and `og:image:height` meta tags
1121
-
1122
- ## [2.65.2-pre] - 2023-03-11
1123
- - Change: custom shaders should not log warning for unsupported ``OrthoParams`` shader property
1124
- - Change: Animator methods starting with uppercase are marked as deprecated because UnityEvent methods are now exported starting with lowercase letter, added lowercase methods
1125
-
1126
- ## [2.65.1-pre] - 2023-03-10
1127
- - Fix: ParticleSystem using `min/max` size in the renderer module is now minimally handled
1128
- - Fix: ParticleSystem emission when using local space with scaled parents
1129
- - Fix: ParticleSystem not finding SubEmitter systems
1130
- - Fix: ParticleSystem simulation speed not being applied to gravity and initial speed
1131
- - Fix: RemoteSkybox not resolving relative url correctly (when assigning a cubemap in the editor)
1132
-
1133
- ## [2.65.0-pre.1] - 2023-03-10
1134
- - Fix: issue where `<needle-engine>` element was not yet in the DOM when queried by exporter codegen which caused the paths to not be assigned and the engine to not load
1135
-
1136
- ## [2.65.0-pre] - 2023-03-09
1137
- - Add: runtime checks for recursive loading to prevent it from breaking
1138
- - Change: internal duplicate active state on `Object3D` has been removed, instead `visible` is used. This was previously a workaround for the `Renderer` setting the visible state when being enabled or disabled but this has been changed in a previous version and it now only sets a flag in the object's Layers instead (which allows for a single object in the hierarchy to not being rendered by setting `Renderer.enabled = false` while objects in the child hierarchy stay visible)
1139
- - Change: `<needle-engine>` src attribute can now also take an array of glbs to load. This simplifies codegen done by exporters and also prevents errors due to bundler optimizations as well as being easier to understand. Runtime changes of the `src` attribute (especially when using arrays of files) have not been tested for this release. Networking for `src` changes has been removed in this release.
1140
- - Change: move engine into src subfolder. All paths to explicit script files are now `@needle-tools/engine/src/...`
1141
- - Change: poster screenshot will be taken after 200ms now
1142
- - Change: canvas default set to false for castShadow and receiveShadow
1143
- - Change: Remote skybox should not set `scene.background` when in XR with pass through device (e.g. when using Quest Pro AR or AR on mobile)
1144
- - Fix: issue where ColorAdjustments Volume effect was applied with `active` set to false
1145
- - Fix: `Light` not being enabled again after disabling the component once
1146
-
1147
- ## [2.64.0-pre] - 2023-03-07
1148
- - Add: `PlayableDirector` now correctly applies timescale
1149
- - Add: `PlayableDirector.speed` property allowing to play the timeline at different speeds or even reverse (reversed audio playback is not supported at the moment)
1150
- - Add: `Physics.enabled` property for disabling physics updates. This also prevents any collider shapes to be created
1151
- - Add: `this.gameObject.transform` property to ease getting started for devs coming from Unity. This property is merely a forward to `this.gameObject` and shouldnt really be used. The property description contains information and a [link to the docs](https://fwd.needle.tools/needle-engine/docs/transform) with further information.
1152
- - Fix: instanced materials using progressive loading are now correctly updated
1153
- - Fix: Timeline animation tracks now disable the `Animator`. This fixes cases where two animations were played at the same time. When the PlayableDirector is paused or stopped the animator state is reset
1154
- - Fix: License styles leaking into website
1155
- - Fix: Timeline audio not stopping correctly at end of timeline when set to hold
1156
- - Change: improve instancing updates, instanced objects now auto update detect matrix changes. This includes improvements of instancing when used with `Animation` components
1157
- - Change: set particle system layers to `IgnoreRaycast` to not receive wrong click events on batched particle meshes
1158
- - Change: Timeline audio is now loaded on evaluation. Only clips in a range of 1 second to the current time are loading. To manually trigger preload of audio you can invoke `loadAudio` with a time range on audio tracks of a timeline
1159
-
1160
- ## [2.63.3-pre] - 2023-03-03
1161
- - Fix: engine published to npm was missing vite plugins
1162
-
1163
- ## [2.63.2-pre] - 2023-03-03
1164
- - Fix: license styling in some cases
1165
- - Fix: duplicatable + draggable issue causing drag to not release the object (due to wrong event handling)
1166
- - Fix duplicatable + deletion not working properly
1167
- - Fix: timeline breaking when time is set to NaN
1168
-
1169
- ## [2.63.1-pre] - 2023-03-02
1170
- - Add: components now have `up` and `right` vectors (access via ``this.up`` from a component)
1171
- - Fix: import of license and logo for npm package
1172
-
1173
- ## [2.63.0-pre] - 2023-03-01
1174
- - Add: licensing information
1175
- - Add: logo to loading display
1176
- - Change: VideoPlayer now exposes VideoMaterial
1177
- - Change: Screencapture now only accepts clicks with pointerId 0 (left mouse button, first touch) to toggle screen capture
1178
- - Change: expose physics gravity setting `this.context.physics.gravity`
1179
-
1180
- ## [2.62.2-pre] - 2023-02-27
1181
- - Add: support for `camera-controls` attribute on `<needle-engine>` element. When added it will automatically add an `OrbitControls` component on start if the active main camera has no controller (you can assign custom controllers by calling `setCameraController` with the camera that is being controlled)
1182
- - Fix: rare error in extension_util
1183
- - Fix: timeline preExtrapolation setting
1184
- - Fix: disabling Light component should turn off light
1185
- - Fix: animating camera fov, near or far plane
1186
- - Fix: threejs layer patch for Renderer visibility is now always applied
1187
- - Fix: UI runtime instantiate of canvas from templates in scene
1188
- - Fix: UI text did not update shadow-component-owner on font loading
1189
- - Fix: UI EventSystem raising click event multiple times in some cases
1190
- - Fix: UI Text raycast now respects object layer (NoRaycast)
1191
- - Fix: UI duplicate pointerUp event
1192
- - Fix: UI highlighting getting stuck in wrong state sometimes
1193
-
1194
- ## [2.62.1-pre] - 2023-02-23
1195
- - Fix: pause wasn't evaluating and thus not pausing audio tracks
1196
- - Fix: debug overlay styles were not properly scoped and affected objects inside needle-engine tag
1197
- - Fix: Addressables wrong recursive instantiation error
1198
- - Fix: UI not showing fully when setting active at runtime
1199
- - Change: timeline tracks are now created immediately but their audio clips are deferred until audio is allowed
1200
-
1201
- ## [2.62.0-pre] - 2023-02-13
1202
- - Bump version
1203
-
1204
- ## [2.61.0-pre] - 2023-01-30
1205
- - Add: canvas applyRenderSettings
1206
- - Add: progressive support for particle system textures
1207
-
1208
- ## [2.60.4-pre] - 2023-01-27
1209
- - Fix UI prefab instantiate throwing error at runtime
1210
- - Change: show warning when unsupported canvas type is selected
1211
- - Change: show warning when trying to use webxr features in non-secure context
1212
-
1213
- ## [2.60.3-pre] - 2023-01-26
1214
- - Fix: camera fov for blender export allowing fieldOfView property to be undefined, where the fov should be handled by the blender exporter completely.
1215
-
1216
- ## [2.60.2-pre] - 2023-01-26
1217
- - Fix: particle textures being flipped horizontally
1218
-
1219
- ## [2.60.1-pre] - 2023-01-25
1220
- - Change: export Mathf in `@needle.tools/engine`
1221
-
1222
- ## [2.60.0-pre] - 2023-01-25
1223
- - Add: Particles support for horizontal and vertical billboards
1224
- - Add: Timeline now supports reversed clip (for blender timeline)
1225
- - Change: bump gltf pipeline package dependency adding support for global `NEEDLE_TOKTX` environment variable
1226
- - Change: timeline clip pos and rot are now optional (for blender timeline)
1227
- - Fix: when first loading a gltf pass guidsmap to components (for blender timeline)
1228
- - Fix: scrubbing TimelineTrack scrubs audio sources as well now
1229
- - Fix: stencils for multimaterial objects
1230
-
1231
- ## [2.59.2-pre] - 2023-01-21
1232
- - Add: particles basic support for on birth and ondeath subemitter behaviour
1233
-
1234
- ## [2.59.1-pre.1] - 2023-01-20
1235
- - Fix: issue where click on overlay html element did also trigger events in the underlying engine scene
1236
-
1237
- ## [2.59.1-pre] - 2023-01-20
1238
- - Add: SpectatorCam.useKeys to allow users to disable spectator cam keyboard input usage (`f` to send follow request to connected users and `esc` to stop following)
1239
- - Change: expose SyncedRoom.RoomPrefix
1240
-
1241
- ## [2.59.0-pre] - 2023-01-18
1242
- - Add: AssetReference.unload does now dispose materials and mesh geometry
1243
- - Add: ``setParamWithoutReload`` now accepts null as paramValue which will remove the query parameter from the url
1244
- - Change: timeline does now skip export for muted tracks
1245
- - Change: OrbitControls can now use a custom html target when added via script and before enable/awake is being called (e.g. ``const orbit = GameObject.addNewComponent(this.gameObject, OrbitControls, false); orbit.targetElement = myElement``)
1246
- - Change: Input start events are now being ignored if a html element is ontop of the canvas
1247
- - Fix: use custom element registry to avoid error with `needle-engine element has already been defined`
1248
- - Fix: timeline not stopping audio on stop
1249
- - Fix: input click event being invoked twice in certain cases
1250
- - Fix: ParticleSystem start color from gradient
1251
- - Fix: ParticleSystem not properly cleaning up / removing particles in the scene in onDestroy
1252
- - Fix: ParticleSystem velocity now respects scale (when mode is set to worldscale)
1253
-
1254
- ## [2.58.4-pre] - 2023-01-14
1255
- - Update gltf-extensions package dependency
1256
-
1257
- ## [2.58.3-pre] - 2023-01-13
1258
- - Bump version
1259
-
1260
- ## [2.58.2-pre] - 2023-01-12
1261
- - Change: use draco and ktx loader from gstatic server by default
1262
- - Change: reduce circular dependencies
1263
- - Fix: Reflectionprobe selecting wrong probe when multiple probes had the exact same position
1264
-
1265
- ## [2.58.1-pre] - 2023-01-09
1266
- - Add: Prewarm rendering of newly loaded objects to remove lag/jitter when they become visible for the first time
1267
- - Change: renderer now warns when sharedMaterials have missing entries. It then tries to remap those values when accessing them by index (e.g. when another component has a material index serialized and relies on that index to be pointing to the correct object)
1268
-
1269
- ## [2.58.0-pre] - 2023-01-09
1270
- - Add: EventSystem input events (e.g. IPointerClick) are now invoked for all buttons (e.g. right click)
1271
- - Add: Hot reload for components
1272
-
1273
- ## [2.57.0-pre] - 2023-01-07
1274
- - Remove: Meshline dependency
1275
- - Fix: Testrunner Rigidbody import error
1276
-
1277
- ## [2.56.2-pre] - 2023-01-06
1278
- - Change: Component.addEventListener argument can now derive from Event
1279
-
1280
- ## [2.56.1-pre] - 2023-01-05
1281
- - Fix: UI setting Image.sprite property did apply vertical flip every time the sprite was set
1282
-
1283
- ## [2.56.0-pre] - 2023-01-04
1284
- - Add: file-dropped event to DropListener
1285
- - Add: UI image and raw image components now support updating texture/sprite at runtime
1286
- - Change: Bump needle gltf-transform extensions package adding mesh compression and caching for texture compression leading to significant speedups for subsequent production builds (only changed textures are re-processed)
1287
- - Fix: light normal bias defaults
1288
-
1289
- ## [2.55.2-pre] - 2023-01-02
1290
- - Add: Rigidbody.gravityScale property
1291
- - Add: Gizmos.DrawArrow method
1292
- - Add: Rigidbody.getAngularVelocity method
1293
- - Fix: Mesh collider center of mass
1294
-
1295
- ## [2.55.1-pre] - 2022-12-30
1296
- - Add: Warning when serialized component field name is starting with uppercase letter
1297
- - Change: bump component compiler dependency
1298
- - Fix: Particle rotation over lifetime
1299
- - Fix: Particles should not emit when emission module is disabled
1300
- - Fix: LODGroup breaking rendering when used with multi-material objects or added on mesh to be culled directly
1301
-
1302
- ## [2.55.0-pre] - 2022-12-21
1303
- - Add: PhysicsMaterial support
1304
- - Add: ``Time.timesScale`` factor
1305
- - Change: VideoPlayer exposes underlying HTML video element
1306
- - Change: EffectComposer check if ``setPixelRatio`` method exists before calling
1307
- - Change: WebARSessionRoot and Rig rotation
1308
- - Fix: WebXRController raycast line not being visible in Quest AR
1309
- - Fix: Renderer that is disabled initially now hides object
1310
- - Fix: Some ParticleSystem worldspace settings when calling emit directly
1311
-
1312
- ## [2.54.2-pre] - 2022-12-19
1313
- - Change: debug parameter can now take ``=0`` for disabling them (e.g. ``freecam=0``)
1314
- - Fix: InputField opens keyboard on iOS
1315
-
1316
- ## [2.54.1-pre] - 2022-12-15
1317
- - Fix: issue with progressive loading, loading files multiple times if a texture was used in multiple materials/material slots. This was causing problems and sometimes crashes on mobile devices
1318
- - Fix: balloon messages using cached containers didnt update the message sometimes and displaying an old message instead
1319
-
1320
- ## [2.54.0-pre.1] - 2022-12-14
1321
- - Fix: bump gltf extensions package fixing issue with progressive texture loading when multiple textures had the same name
1322
-
1323
- ## [2.54.0-pre] - 2022-12-14
1324
- - Add: start and end events for progressive loading
1325
- - Add: USDZExporter events for button creation and after export
1326
- - Change: apply WebARSessionRoot scale to exported object, e.g. if scene is scaled down on Android it should receive the same scale when exporting for Quicklook
1327
- - Fix: process reflection probe update in update event to avoid visible flickr after component enabled state has changed
1328
-
1329
- ## [2.53.1-pre.1] - 2022-12-12
1330
- - Fix: implement ButtonColors
1331
-
1332
- ## [2.53.1-pre] - 2022-12-12
1333
- - Add: GroundProjection appyOnAwake to make it possible to just use it when the environment changes via remote skybox and not apply it to the default skybox
1334
- - Change: more strict tsconfig
1335
- - Change: allow overriding loading element
1336
- - Fix: apply shape module rotation to direction
1337
- - Fix: ParticleSystem world position not being set when shape module was disabled
1338
-
1339
- ## [2.53.0-pre] - 2022-12-08
1340
- - Add: InstantiateIdProvider constructor can now take string too for initializing seed
1341
- - Add: USDZExpoter component enabling ``Open in Quicklook`` option by default when running on iOS Safari
1342
- - Fix: Light intensity
1343
- - Fix: Add workaround texture image encoding issue: https://github.com/needle-tools/needle-engine-support/issues/109
1344
- - Fix: OrbitControls.enableKeys
1345
- - Fix: Remove warning message about missing ``serializable`` when the reference is really missing
1346
- - Fix: ``context.domX`` and ``domY`` using wrong values when in AR mode
1347
-
1348
- ## [2.52.0-pre] - 2022-12-05
1349
- - Add iOS platform util methods
1350
- - Add ``?debugrig`` to render XRRig gizmo
1351
- - Add support for Spritesheet Animation
1352
- - Add: EventTrigger implementations for onPointerClick, onPointerEnter, onPointerExit, onPointerDown, onPointerUp
1353
- - Add: RemoteSkybox environmentBlurriness setting
1354
- - Fix: Renderer reflection probe event order issue not applying reflection probes when enabling/disabling object because reflection probes have not been enabled
1355
- - Fix: remove log in ParticleSystemModules
1356
-
1357
- ## [2.51.0-pre] - 2022-11-30
1358
- - Change: remove nebula, dat.gui and symlink package dependencies
1359
- - Change: Light does not change renderer shadowtype anymore
1360
- - Change: update threejs to 146
1361
- - Change: update threejs types
1362
- - Change: Screencapture should not start on click when not connected to networked room
1363
- - Change: WebXR returns ar supported when using Mozilla WebXR
1364
- - Fix DragControls drag interaction not disabling OrbitControls at right time
1365
- - Fix physics collider position in certain cases
1366
- - Fix Rigidbody not syncing physics position when parent transform changes
1367
- - Fix Timeline awake / active and enable
1368
- - Fix: OrbitControls calulcating target position with middle mouse click in worldspace instead of localspace causing wrong movement when parent is transformed
1369
- - Fix: Raycast in Mozilla WebXR / using window sizes instead of dom element sizes
1370
- - Fix input with scrolled window
1371
- - Fix: destroy local avatar on end of webxr session (https://github.com/needle-tools/needle-engine-support/issues/117)
1372
- - Fix: WebXRAvatar setting correct XRFlags
1373
-
1374
- ## [2.50.0-pre] - 2022-11-28
1375
- - Add warning to Light when soft shadows change renderer shadow type
1376
- - Add: RemoteSkybox can now load jpg and png textures as skybox
1377
- - Change: Instantiate does now copy Vector, Quaternion and Euler objects to ensure multiple components dont share the same objects
1378
- - Fix: AnimatorController causes threejs error when creating empty animationclip (Blender)
1379
- - Fix: AnimatorController error when transition has no conditions array (Blender)
1380
-
1381
- ## [2.49.1-pre] - 2022-11-25
1382
- - Add circular instantiation check to AssetReference
1383
- - Allow filtering ``context.input.foreachPointerId()`` by pointer types (e.g. mouse or touch)
1384
- - Fix typescript error in particle system module function (happened only when ``strict`` was set to false in tsconfig)
1385
- - Fix XRFlag component not being applied on startup
1386
-
1387
- ## [2.49.0-pre] - 2022-11-24
1388
- - Add: input iterator methods to loop over currently active input pointer ids
1389
- - Change: input refactor to work better with touch
1390
- - Fix GraphicRaycaster serialization warning
1391
- - Fix deserialization bug when Animation clips array is not serialized (exported from blender)
1392
- - Fix: remove leftover log in AnimatorController when cloning
1393
- - Fix XR flag not correctly restoring state
1394
- - Fix reticle not being rendered when XRRig is inside WebARSessionRoot
1395
- - Fix Mozilla XR AR overlay (https://github.com/needle-tools/needle-engine-support/issues/81)
1396
- - Fix Mozilla XR removing renderer canvas on exit AR (https://github.com/needle-tools/needle-engine-support/issues/115)
1397
-
1398
- ## [2.48.0-pre] - 2022-11-23
1399
- - Add: debug console for better mobile debugging (shows up on error on mobile in local dev environment or when using the ``?console`` query parameter)
1400
- - Add: dom element visibility checks and suspend rendering and update loops (if ``this.context.runInBackground`` is false)
1401
- - Add: ``this.context.isPaused`` to manually suspend rendering
1402
- - Add: ``IComponent.onPausedChanged`` event method which is called when rendering is paused or resumed
1403
- - Change: update copy-from-to dev dependency version to fix build error when path contains ``(``
1404
- - Change: ``this.context.input`` does now support pointer lock state (properly reports delta)
1405
- - Fix: make sure VRButton has the same logic as in three again (regex instead of try-catch)
1406
- - Fix: WebXRViewer DOM Overlay bugs when dom overlay element is inside canvas
1407
- - Fix: exitAR not being called in some cases when exiting AR
1408
- - Fix: ``this.context.domX`` and ``this.context.domY`` when web component is not fullscreen
1409
-
1410
- ## [2.47.0-pre] - 2022-11-17
1411
- - Add: Initial react three fiber components
1412
- - Change: OrbitControls made lerp stop distance smaller
1413
- - Change: expose ``*enumerateActions()`` in AnimatorController
1414
- - Fix: Flipped custom reflection texture
1415
- - Fix: Volume exposure not being applied when no Tonemapping effect was set
1416
- - Fix: Volume tonemapping not respecting override state setting
1417
- - Fix: ``AudioSource.loop`` not working
1418
- - Fix: Collider center being not not applied correctly
1419
- - Fix: MeshCollider scale not being applied from object
1420
-
1421
- ## [2.46.0-pre] - 2022-11-16
1422
- - Add: Particles subemitter support
1423
- - Add: Particles inherit velocity support
1424
- - Add: Particles size by speed support
1425
- - Add: Particles color by speed support
1426
- - Add: Particles trail now fadeout properly when "die with particle" is disabled
1427
- - Add: Particles circle shape
1428
- - Change: button hover now sets cursor to pointer
1429
- - Fix: WebXR controller disabling raycast line for hands
1430
- - Fix: WebXR hands path when not assigned in Unity
1431
- - Fix: Mesh Particles not rendering because of rotation being wrongly applied
1432
- - Fix: Mesh particles size in AR
1433
- - Fix: Particles color and size lerp between two curves
1434
-
1435
- ## [2.45.0-pre] - 2022-11-14
1436
- - Add: RemoteSkybox option to control if its set as background and/or environment
1437
- - Add: @serializable decorator, @serializeable will be removed in a future version
1438
- - Add: getComponent etc methods to IGameObject interface
1439
- - Add: Renderer.enable does now set visible state only without affecting the hierarchy or component active state
1440
- - Change: Expose Typestore
1441
- - Change: Animation componet does loop by default (use the AdditionalAnimationData component to set the default loop setting)
1442
- - Fix: WebXR relative hands path in subfolders
1443
- - Fix: Rigidbody did not properly detect object position change if the position change was applied a second time at the exact same target position (it worked setting it once and didnt work in subsequent calls - now it does always detect it)
1444
-
1445
- ## [2.44.1-pre] - 2022-11-13
1446
- - Add: RemoteSkybox exposes ``background`` and ``environmnet`` properties to configure if the loaded skybox is set for the scene background and/or the environment light
1447
- - Change: Expose TypeStore
1448
-
1449
- ## [2.44.0-pre] - 2022-11-11
1450
- - Add: Particles limit velocity over time
1451
- - Add: Particles rotation by speed
1452
- - Add: ParticleSystem play, pause, stop and emit(count) methods
1453
- - Add: ``WebXR.showRaycastLine`` exposed so it can be disabled from code
1454
- - Fix: issues in applying some forces/values for different scaling and worldspace <> localspace scenarios
1455
- - Change: raise input events in core method to also allow receiving WebAR mock touch events
1456
- - Change: ``Animation.play()`` does not require argument anymore
1457
-
1458
- ## [2.43.0-pre] - 2022-11-10
1459
- - Add: particles emission over distance
1460
- - Add: particles can enable trail (settings are not yet applied tho)
1461
- - Add: camera now useses culling mask settings
1462
- - Add: particle VelocityOverLife
1463
- - Add: particle basic texture sheet animation support
1464
- - Change: ensure ``time.deltaTime`` is always > 0 and nevery exactly 0
1465
- - Fix: progressbar handle progress event not reporting total file size
1466
- - Fix: layer on camera did affect visibility
1467
- - Fix: cloning animatorcontrollers in builds did fail because of legacy AnimatorAction name check
1468
- - Fix: ``RGBAColor.lerpColors`` did produce wrong alpha value
1469
- - Fix: custom shader ``_ZTest`` value is now applied as threejs depthTest function
1470
-
1471
- ## [2.42.0-pre] - 2022-11-09
1472
- - add ``Graphics.copyTexture``
1473
- - add ``Renderer.allowProgressiveLoad``
1474
- - add ``Gizmos.DrawBox`` and ``DrawBox3``
1475
- - add particles burst emission
1476
- - add particles color interpolation between two gradients
1477
- - fix: reflection probe material caching for when material is being changed at certain times outside of animation loop and cache applied wrong material
1478
- - fix: AnimationCurve evaluation when time and keyframe are both exactly 0
1479
- - change: reflection probe now requires anchor override
1480
- - change: bump threejs dependency
1481
-
1482
- ## [2.41.0-pre] - 2022-11-07
1483
- - Add: start adding particle systems support again
1484
- - Change: update dependency version to needle gltf-transform-extensions package
1485
- - Change: light set to soft shadows now changes renderer shadow mode to ``VSMShadowMap`` (can be disabled by setting ``Light.allowChangingShadowMapType`` to false)
1486
- - Fix: WebXR creating AR button when called from script in awake
1487
- - Fix: ``AnimationCurve.evaluate``
1488
-
1489
- ## [2.40.0-pre] - 2022-11-05
1490
- - Add support for deleting all room state by calling ``context.connection.sendDeleteRemoteStateAll()`` (requires backend to update ``@needle-tools/needle-tiny-networking-ws`` to ``^1.1.0-pre``)
1491
- - Add Hinge joint
1492
- - Add ``Gizmos.DrawLine``, ``DrawRay`` ``DrawWireSphere`` and ``DrawSphere``
1493
- - Add: physics Collision Contacts now contain information about ``impulse`` and ``friction``
1494
- - Add ``physics.raycastPhysicsFast`` as a first method to raycast against physics colliders, the returning object contains the point in worldspace and the collider. This is the most simplest and thus fastest way to raycast using Rapier. More complex options will follow in future versions.
1495
- - Fix joint matrix calculation
1496
- - Fix and improve physics Contacts point calculations
1497
- - Fix issue in physics event callbacks where ``onCollisionStay`` and ``onCollisionExit`` would only be called when ``onCollisionEnter`` was defined
1498
-
1499
- ## [2.39.0-pre] - 2022-11-04
1500
- - Add: physics FixedJoint
1501
- - Change: CharacterController now rotates with camera
1502
- - Change: scaled mesh colliders are now cached
1503
- - Change: disable OrbitControls when in XR
1504
- - Change: first enabled camera component sets itself as rendering camera if no camera is yet assigned (mainCamera still overrides that)
1505
- - Change: package module field now shows to ``src/needle-engine``
1506
- - Change: ``Camera.backgroundColor`` assigning Color without alpha sets alpha to 1 now
1507
- - Fix: improved missing ``serializable`` detection / warning: now only shows warning for members actually declared in script
1508
- - Fix: wrong light intensity in VR when light is child of WebARSessionRoot [issue 103](https://github.com/needle-tools/needle-engine-support/issues/103)
1509
-
1510
- ## [2.38.0-pre] - 2022-11-02
1511
- - Add ``context.isInAR`` and ``context.isInVR`` properties
1512
- - Add physics capsule collider support
1513
- - Add basic character controller implementation (experimental)
1514
- - Add ``context.input.getMouseWheelDeltaY()``
1515
- - Add: SmoothFollow option to restrict following on certain axes only for position
1516
- - Add: ``Rigidbody.teleport`` method to properly reset internal state
1517
- - Add: load glbs using build hash (appended as ``?v=123``)
1518
- - Change: Collision event args now exposes contacts array
1519
- - Fix Exit AR (X) button not showing up
1520
- - Fix physics collider center offset
1521
- - Fix removing colliders and rigidbodies throwing error (when trying to access properties for already removed bodies)
1522
- - Fix bug in AnimatorController causing broken animations when the same clip is used in multiple states (caused by ``mixer.uncacheCip``)
1523
- - Fix rigidbody friction allowing for physical bodies being transported on e.g. platforms
1524
- - Fix ``onTriggerStay`` being invoked with the correct collider argument
1525
- - Fix AnimatorController exit time not being used properly
1526
- - Fix AnimatorController not checking all possible transitions if one transition did match conditions but could not be made due to exit time setting
1527
- - Fix ``Renderer.sharedMaterials`` not handling SkinnedMeshRenderer
1528
- - Fix environment blend mode for mozilla XR browser on iOS
1529
- - Fix: Camera now removing self from being set as currently rendering in ``onDisable``
1530
-
1531
- ## [2.37.0-pre] - 2022-10-28
1532
- - Add: rapier physics backend and overall improved physics system like constraint support, fixed physics collider updates and synchronization between rendering and physics world or animation of physical bodies
1533
- - Remove: cannon-es
1534
- - Add basic mesh collider support
1535
- - Add ``@validate`` decorator and ``onValidate`` event method that can be used to automatically get callbacks when marked properties are being written to (for example internally this is used on the Rigidbody to update the physics body when values on the Rigidbody component are being updated)
1536
- - Change: assign nested gltf layers
1537
- - Change: reworked Rigidbody api
1538
- - Fix: allow Draco and KRTX compression on custom hand models
1539
- - Fix: applying Unity layers to threejs objects
1540
- - Fix: BoxHelper stopped working with SpatialTrigger
1541
- - Fix: AR reticle showing up in wrong position with transformed WebARSessionRoot
1542
-
1543
- ## [2.36.0-pre] - 2022-10-26
1544
- - Add: Expose WebXR hand model path
1545
- - Add: Animation component can now be configured with random time scale and offset
1546
- - Change: allow blocking overlay errors using the ``?noerrors`` query parameter
1547
- - Change: don't use Composer for postprocessing in XR (see [issue](https://github.com/needle-tools/needle-engine-support/issues/101))
1548
- - Change: physics intersections causing NaN's are now reported prominently and physics bodies are removed from physics world as an interim solution, this provides more information about problematic colliders for debugging
1549
- - Fix: bug that caused component events for onEnable and onDisable not being called anymore in some cases
1550
- - Fix: cases where loading overlay using old project template wouldnt be removed/hidden anymore
1551
- - Fix: WebXR hide large hand grab sphere
1552
- - Fix: onPointerUp event not firing using WebXR controllers when grabbing an object for the second time
1553
- - Fix: GroundProjection can now be removed again
1554
- - Fix: Custom shaders exported using builtin RP can now use _Time property
1555
- - Fix: Only create two controllers when in AR on oculus browser
1556
- - Fix: BoxHelperComponent can now handle multi-material objects (groups)
1557
-
1558
- ## [2.35.6-pre] - 2022-10-24
1559
- - Add: warning balloon when unknown components are detected and have been most likely forgot to be installed, linking to npmdef docs
1560
- - Fix: dont show serialization warning for builtin components where specific fields are not deserialized on purpose (since right now the serializer does not check which fields are actually implemented)
1561
-
1562
- ## [2.35.5-pre] - 2022-10-24
1563
- - Change: AudioSource exposes ``clip`` field
1564
- - Change: improve error and messaging overlay
1565
- - Change: detect when serialized Object3D and AssetReference are missing ``@serializable`` attribute and show message in overlay
1566
- - Change: add WebXR hands path to controllers
1567
- - Fix: WebXR controllers now use interactable object when grabbing (instead of hit object previously) which fixes interaction with nested hierarchies in XR and DragControls
1568
-
1569
- ## [2.35.4-pre] - 2022-10-23
1570
- - Change: Renderer ``material`` is now ``sharedMaterial`` to make it more clear for Unity devs that the material is not being cloned when accessed
1571
- - Fix: When not specifying any explicit networking backend for glitch deployment it now falls back to the current glitch instance for networking
1572
-
1573
- ## [2.35.3-pre] - 2022-10-21
1574
- - Add: Screenshare component ``share`` method now takes optional options to configure device and MediaStreamConstraints for starting the stream
1575
- - Fix: WebXR should show EnterVR button when enabled in Unity
1576
- - Fix: component ``enable`` boolean wasnt correctly initialized when loaded from gltf
1577
- - Fix: Object3D prototype extensions weren't correctly applied anymore
1578
- - Fix: Interaction bug when using DragControls with OrbitControls with multitouch
1579
-
1580
- ## [2.35.2-pre] - 2022-10-20
1581
- - Add ``Renderer.mesh`` getter property
1582
- - Change: ``Renderer.material`` now returns first entry in ``sharedMaterials`` array so it automatically works in cases where a Renderer is actually a multi-material object
1583
- - Change: warn when trying to access components using string name instead of type
1584
- - Change: update needle gltf-transform-extensions to 0.6.2
1585
- - Fix: remove log from UIRaycastUtil
1586
- - Fix: move TypeStore import in builtin engine again to not break cases where ``import @needle-engine`` was never used
1587
- - Fix: React3Fiber template and AR overlay container access when using react
1588
-
1589
- ## [2.35.1-pre] - 2022-10-19
1590
- - Change: unify component access methods, first argument is now always the object with the component type as second argument
1591
- - Fix physics collision events throwing caused by refactoring in last version
1592
- - Fix loading screen css
1593
-
1594
- ## [2.35.0-pre] - 2022-10-19
1595
- - Change: First pass of reducing circular dependencies
1596
- - Change: Update @needle-tools/gltf-transform-extensions version
1597
- - Change: Update component compiler to 1.9.0. Changed include:
1598
- * Private and protected methods will now not be emitted anymore
1599
- * ``onEnable/onDisable`` will be emitted as ``OnEnable`` and ``OnDisable`` [issue 93](https://github.com/needle-tools/needle-engine-support/issues/93)
1600
- - Change: handle Vector3 prototype extensions
1601
- - Fix: issue with UI causing rendering to break when enabling text components during runtime that have not yet been active before
1602
- - Fix: OrbitControls LookAtConstraint reference deserialization
1603
- - Fix: WebXRController raycasting against UI marked as ``noRaycastTarget`` or in CanvasGroup with disabled ``interactable`` or ``blocksRaycast``
1604
-
1605
- ## [2.34.0-pre] - 2022-10-17
1606
- - Add: start adding support for 2D video overlay mode
1607
- - Change: Install threejs from @needle-tools/npm - this removes the requirement to have git installed and should fix a case where pulling the package from github would fail
1608
- - Change: Move Screensharing aspect mode settings into VideoPlayer component
1609
- - Change: Move ``InstancingUtils`` into ``engine/engine_instancing.ts``
1610
- - Change: BoxCollider now checks if ``attachedRigidBody`` is assigned at start
1611
- - Change: Collision now exposes internal cannon data via ``__internalCollision`` property
1612
- - Fix: EventSystem now properly unsubscribes WebXRController events
1613
-
1614
- ## [2.33.0-pre] - 2022-10-17
1615
- - Add: ScreenCapture has mode for capturing webgl canvas (unfortunately it doesnt seem to work well in Chrome or Firefox yet)
1616
- - Change: move threejs prototype extensions into own file and make available to vanilla js builds
1617
- - Change: ScreenCapture component has explicit VideoPlayer component reference
1618
- - Fix: animating properties on custom shaders
1619
-
1620
- ## [2.32.0-pre] - 2022-10-15
1621
- - Add: start implementing trigger callbacks for ``onTriggerEnter``, ``onTriggerExit`` and ``onTriggerStay``
1622
- - Change: ``GameObject.setActive`` now updates ``isActiveAndEnabled`` state and executes ``awake`` and ``onEnable`` calls when the object was activated for the first time (e.g. when instantiating from an previously inactive prefab)
1623
- - Change: improve collision callback events for components (``onCollisionEnter``, ``onCollisionExit`` and ``onCollisionStay``)
1624
- - Change: this.context.input keycode enums are now strings
1625
- - Fix: local dev error overlay now also displays errors that happen before web component is completely loaded (e.g. when script has import error)
1626
- - Fix: Rigidbody force is now correctly applied when the component was just instantiated (from inactive prefab) and added to the physics world for the first time
1627
- - Fix: DragControls component keyboard events ("space" and "d" for modifying height and rotation)
1628
-
1629
- ## [2.31.1-pre] - 2022-10-14
1630
- - Change: Rigidbody now tracks position changes to detect when to update/override simulated physics body
1631
- - Fix: loading relative font paths when exported via Asset context menu
1632
-
1633
- ## [2.31.0-pre] - 2022-10-13
1634
- - Add: inital ScreenCapture component for sharing screens and camera streams across all connected users
1635
- - Add: ``onCollisionEnter``, ``onCollisionStay`` and ``onCollisionExit`` event methods to components
1636
-
1637
- ## [2.30.0-pre] - 2022-10-12
1638
- - Add: Quest 2 passthrough support
1639
- - Add: UI Graphic components now support ``raycastTarget`` again
1640
- - Add: VideoPlayer now supports ``materialTarget`` option which allows for assigning any renderer in the scene that should be used as a video canvas
1641
- - Changed: updated three-mesh-ui dependency version
1642
- - Changed: updated needle-gltfTransform extensions package, fixing an issue with passthrough of texture json pointers
1643
- - Changed: selecting SpectatorCam now requires click (instead of just listening to pointer up event)
1644
- - Fix: Avatars using instanced materials should now update transforms correctly again
1645
-
1646
- ## [2.29.0-pre] - 2022-10-10
1647
- - Add: Context.removeCamera method
1648
- - Add: SpectatorCam allows to follow other users across devices by clicking on respective avatar (e.g. clicking SyncedCam avatar or WebXR avatar, ESC or long press to stop spectating)
1649
- - Add: ``Input`` events for pointerdown, pointerup, pointermove and keydown, keyup, keypress. Subscribe via ``this.context.input.addEventListener(InputEvents.pointerdown, evt => {...})``
1650
- - Change: Default WebXR rig matches Unity forward
1651
- - Fix: WebXRController raycast line being rendered as huge line before first world hit
1652
- - Fix: SpectatorCam works again
1653
- - Fix: ``serializable()`` does now not write undefined values if serialize data is undefined
1654
- - Fix: exit VR lighting
1655
-
1656
- ## [2.28.0-pre] - 2022-10-06
1657
- - Add: ``resolutionScaleFactor`` to context
1658
- - Fix ``IsLocalNetwork`` regex
1659
- - Fix custom shaders failing to render caused by json pointer change
1660
- - Change: rename Context ``AROverlayElement`` to ``arOverlayElement``
1661
-
1662
- ## [2.27.0-pre] - 2022-10-06
1663
- - Fix: EventList failing to find target when targeting a Object3D without any components
1664
- - Fix: text now showing up when disabling and enabling again after the underlying three-mesh-ui components have been created
1665
- - Fix: Builtin sprites not rendering correctly in production builds
1666
- - Change: Bump needle glTF transform extensions version
1667
- - Change: json pointers now have correct format (e.g. ``/textures/0`` instead ``textures/0``)
1668
- - Change: Bump UnityGLTF version
1669
-
1670
- ## [2.26.1-pre] - 2022-10-05
1671
- - Fix animating ``activeSelf`` on GameObject in canvas hierarchy
1672
- - Fix SpectatorCam component
1673
- - Fix WebXRController raycast line being rendered as huge line before first world hit
1674
-
1675
- ## [2.26.0-pre] - 2022-10-05
1676
- - Add: experimental AlignmentConstraint and OffsetConstraint
1677
- - Remove: MeshCollider script since it is not supported yet
1678
- - Change: Camera does now use XRSession environment blend mode to determine if background should be transparent or not.
1679
- - Change: WebXR exposes ``IsInVR`` and ``IsInAR``
1680
- - Fix: RGBAColor copy alpha fix
1681
- - Fix: Avatar mouth shapes in networked environment
1682
-
1683
- ## [2.25.1-pre] - 2022-10-04
1684
- - Change: DropListener file drop event does send whole gltf instead of just the scene
1685
-
1686
- ## [2.25.0-pre] - 2022-10-04
1687
- - Add: allow overriding draco and ktx2 decoders on <needle-engine> web component by setting ``dracoDecoderPath``, ``dracoDecoderType``, ``ktx2DecoderPath``
1688
- - Add: ``loadstart`` and ``progress`` events to <needle-engine> web component
1689
- - Fix rare timeline animation bug where position and rotation of objects would be falsely applied
1690
- - Change: update to three v245
1691
- - Change: export ``THREE`` to global scope for bundled version
1692
-
1693
- ## [2.24.0-pre] - 2022-10-01
1694
- - Add: make engine code easily accessible from vanilla javascript
1695
- - Fix: handle number animation setting component enable where values are interpolated
1696
- - Change: Remove internal shadow bias multiplication
1697
- - Change: Addressable references are now resolved using relative paths
1698
- - Change: Update package json
1699
-
1700
- ## [2.23.2-pre] - 2022-09-29
1701
- - Add: Light component shadow settings can not be set/updated at runtime
1702
- - Fix: enter XR using GroundProjectedEnv component
1703
- - Fix: Light shadows missing when LightShadowData component was not added in Unity (was using wrong shadowResolution)
1704
- - Change: dont allow raycasting by default on GroundProjectedEnv sphere
1705
-
1706
- ## [2.23.1-pre] - 2022-09-29
1707
- - Add: Light exposes shadow resolution
1708
-
1709
- ## [2.23.0-pre] - 2022-09-28
1710
- - Add RemoteSkybox component to use HDRi images from e.g. polyhaven
1711
- - Add GroundProjectedEnv component to use threejs skybox projection
1712
- - Fix: export ``GameObject`` in ``@needle-tools/engine``
1713
-
1714
- ## [2.22.1-pre] - 2022-09-28
1715
- - Add: ``noerrors`` url parameter to hide overlay
1716
- - Fix: WebXR avatar rendering may be visually offset due to root transform. Will now reset root transform to identity
1717
-
1718
- ## [2.22.0-pre] - 2022-09-28
1719
- - Add: ``@needle-tools/engine`` now exports all components
1720
- - Add: environment light from tricolor (used for envlight when set to custom but without custom cubemap assigned)
1721
- - Add: show console error on screen for localhost / local dev environment
1722
- - Fix: create environment lighting textures from exported colors
1723
- - Change: UI InputField expose text
1724
- - Change: Bump threejs version to latest (> r144) which also contains USDZExporter PR
1725
-
1726
- ## [2.21.0-pre] - 2022-09-26
1727
- - Add: custom shader set ``_ScreenParams``
1728
- - Change: DropListener event ``details`` now contains whole gltf file (instead of just scene object)
1729
-
1730
- ## [2.20.1-pre] - 2022-09-23
1731
- - Add: AudioSource volume and spatial blending settings can now be set at runtime
1732
- - Fix: AudioSource not playing on ``play`` when ``playOnAwake`` is false
1733
-
1734
- ## [2.20.0-pre] - 2022-09-23
1735
- - Add: VideoPlayer crossorigin attribute support
1736
- - Add: ``debuginstancing`` url parameter flag
1737
- - Add: Image handle builtin ``Background`` sprite
1738
- - Add: Component now implements EventTargt so you can use ``addEventListener`` etc on every component
1739
- - Add: EventList does automatically dispatch event with same name on component. E.g. UnityEvent named ``onClick`` will be dispatched on component as ``on-click``
1740
- - Add: experimental progressive loading of textures
1741
- - Add: ``WebXR`` exposes ``IsARSupported`` and ``IsVRSupported``
1742
- - Fix: remove Ambient Intensity
1743
- - Fix: ShadowCatcher material should not write depth
1744
-
1745
- ## [2.19.1-pre] - 2022-09-21
1746
- - Fix: SpatialTrigger intersection check when it's not a mesh
1747
- - Fix: UnityEvent / EventList argument of ``0`` not being passed to the receiving method
1748
- - Fix: Physics rigidbody/collider instantiate calls
1749
- - Fix: Physics rigidbody transform changes will now be applied to internal physics body
1750
- - Fix: ``needle-engine.getContext`` now listens to loading finished event namely ``loadfinished``
1751
- - Change: cleanup some old code in Rigidbody component
1752
-
1753
- ## [2.19.0-pre] - 2022-09-20
1754
- - Add: initial support for ``InputField`` UI (rendering, input handling on desktop, mobile and AR, change and endedit events)
1755
- - Add: ``EventList.invoke`` can now handle an arbitrary number of arguments
1756
- - Change: lower double click threshold to 200ms instead of 500ms
1757
- - Change: runtime font-style does not change font being used in this version. This will temporarely break rich text support.
1758
- - Fix: custom shader regression where multiple objects using the same material were not rendered correctly
1759
- - Fix: Text sometimes using invalid path
1760
- - Fix: Remove unused imports
1761
-
1762
- ## [2.18.0-pre] - 2022-09-20
1763
- - Add basic support for ``CameraDepth`` and ``OpaqueTexture`` (the opaque texture still contains transparent textures in this first version) being used in custom shaders
1764
-
1765
- ## [2.17.1-pre] - 2022-09-17
1766
- - Improve Animator root motion blending
1767
- - Fix SpatialTrigger error when adding both SpatialTrigger as well as SpatialTrigger receiver components to the same object
1768
- - AnimatorController can now handle states with empty motion or missing clips
1769
-
1770
- ## [2.17.0-pre] - 2022-09-15
1771
- - Add: automatic runtime font atlas generation from Unity font assets
1772
- - Remove: shipped font assets in ``include/fonts``
1773
- - Fix: Physics pass custom vector into ``getWorldPosition``, internal vector buffer size increased to 100
1774
- - Fix: SpatialTrigger and SpatialTrigger receivers didnt work anymore due to LayerMask serialization
1775
-
1776
- ## [2.16.1-pre] - 2022-09-14
1777
- - Change: UI disable shadow receiving and casting by default, can be configured via Canvas
1778
- - Fix: ``gameObject.getComponentInParent`` was making false call to ``getComponentsInParent`` and returning an array instead of a single object
1779
- - Fix: light intensity in AR
1780
-
1781
- ## [2.16.0-pre] - 2022-09-14
1782
- - Add: first draft of Animator root motion support
1783
- - Fix: ``Renderer.sharedMaterials`` assignment bug when GameObject was mesh
1784
- - Fix: Buttons set to color transition did not apply transition colors
1785
- - Fix: UI textures being flipped
1786
- - Fix: UI textures were not stretched across panel but instead being clipped if the aspect ratio didnt match perfectly
1787
-
1788
- ## [2.15.0-pre] - 2022-09-12
1789
- - Add stencil support to ``Renderer``
1790
- - Add timeline ``removeTrackOffset`` support
1791
- - Fix timeline animation track offset only being applied to root
1792
- - Fix timeline clip offsets not being applied when no track for e.g. rotation or translation exists
1793
-
1794
- ## [2.14.0-pre] - 2022-09-11
1795
- - Add initial UI anchoring support
1796
- - Add initial support for URP RenderObject Stencil via ``NEEDLE_render_objects`` extension
1797
-
1798
- ## [2.13.4-pre] - 2022-09-09
1799
- - Fix UI transform handling for [issue 42](https://github.com/needle-tools/needle-engine-support/issues/42) and [issue 30](https://github.com/needle-tools/needle-engine-support/issues/30)
1800
- - Fix AudioSource not restarting to play at onEnable when ``playOnAwake`` is true (this is the default behaviour in Unity)
1801
-
1802
- ## [2.13.3-pre] - 2022-09-09
1803
- - Fix RGBAColor not implementing copy which caused alpha to be set to 0 (this caused ``Camera.backgroundColor`` to not work properly)
1804
-
1805
- ## [2.13.2-pre] - 2022-09-07
1806
- - Add support to set OrbitControls camera position immediately
1807
-
1808
- ## [2.13.1-pre] - 2022-09-07
1809
- - Fix EventList invocation not using deserialized method arguments
1810
-
1811
- ## [2.13.0-pre] - 2022-09-07
1812
- - Add ``context`` to ``StateMachineBehaviour``
1813
- - Fix ``StateMachineBehaviour`` binding (event functions were called with wrong binding)
1814
-
1815
- ## [2.12.0-pre.1] - 2022-09-06
1816
- - Fix deserialization error when data is null or undefined
1817
-
1818
- ## [2.12.0-pre] - 2022-09-05
1819
- - Add initial tonemapping and exposure support
1820
- - Add AR shadow catcher
1821
- - Fix objects parented to camera appear behind camera
1822
- - Fix reticle showing and never disappearing when no WebARSessionRoot is in scene
1823
- - Fix WebARSessionRoot when on same gameobject as WebXR component
1824
- - Fix deserialization of ``@serializable(Material)`` producing a new default instance in certain cases
1825
- - Fix ``OrbitControls`` enable when called from UI button event
1826
- - Fix EventList / UnityEvent calls to properties (e.g. ``MyComponent.enable = true`` works now from UnityEvent)
1827
-
1828
- ## [2.11.1-pre] - 2022-09-02
1829
- - Change: ``OrbitControls.setTarget`` does now lerp by default. Use method parameter ``immediate`` to change it immediately
1830
- - Change: bump component compiler dependency to ``1.8.0``
1831
-
1832
- ## [2.10.3-pre] - 2022-09-01
1833
- - Fix EventList serialization for cross-glb references
1834
- - Fix AnimatorController transition from state without animation
1835
-
1836
- ## [2.10.2-pre] - 2022-09-01
1837
- - Fix: skybox/camera background on exit AR
1838
- - Change: AnimatorController can now contain empty states
1839
- - Change: Expose ``Animator.Play`` transition duration
1840
-
1841
- ## [2.10.1-pre] - 2022-08-31
1842
- - Improved RectTransform animation support and canvas element positioning
1843
- - Fix ``Animator.Play``
1844
- - Change: Expose ``AnimatorController.FindState(name)``
1845
-
1846
- ## [2.10.0-pre] - 2022-08-29
1847
- - Add UI to gltf export
1848
- - Add button animation transition support for triggers ``Normal``, ``Highlighted`` and ``Pressed``
1849
-
1850
- ## [2.9.0-pre] - 2022-08-26
1851
- - Add ``Canvas.renderOnTop`` option
1852
- - Fix ``OrbitControls`` changing focus/moving when interacting with the UI
1853
- - Fix nullref in AnimatorController with empty state
1854
-
1855
- ## [2.8.0-pre] - 2022-08-25
1856
- - Add export for ``Renderer.allowOcclusionWhenDynamic``
1857
- - Fix: bug in ``@serializable`` type assignment for inherited classes with multiple members with same name but different serialized types
1858
- - Change: ``GameObject.findObjectOfType`` now also accepts an object as a search root
1859
-
1860
- ## [2.7.3-pre] - 2022-08-25
1861
- - Fix canvas button breaking orbit controls [issue #4](https://github.com/needle-tools/needle-engine-support/issues/4)
1862
-
1863
- ## [2.7.2-pre] - 2022-08-23
1864
- - Fix SyncedRoom to not append room parameter multiple times
1865
-
1866
- ## [2.7.1-pre] - 2022-08-22
1867
- - Add: Timeline AudioTrack nullcheck when audio file is missing
1868
- - Fix: AnimatorController error when behaviours are undefined
1869
- - Change StateMachineBehaviour methods to be lowercase
1870
-
1871
- ## [2.7.0-pre] - 2022-08-22
1872
- - Add initial StateMachineBehaviour support with "OnStateEnter", "OnStateUpdate" and "OnStateExit"
1873
- - Fix input raycast position calculation for scrolled content
1874
-
1875
- ## [2.6.1-pre] - 2022-08-22
1876
- - Fix texture pointer remapping in gltf-transform opaque extension
1877
- - Change: skip texture-transform for textures starting with "Lightmap" for now until we can configure this properly
1878
-
1879
- ## [2.6.0-pre] - 2022-08-18
1880
- - Add scale to instantiation sync messages
1881
- - Fix ``BoxHelper``
1882
- - Fix AR reticle being not visible when ``XRRig`` is child of ``WebARSessionRoot`` component
1883
- - Fix exception in ``DragControls`` when dragged object was deleted while dragging
1884
-
1885
- ## [2.5.0-pre] - 2022-08-18
1886
- - Change name of ``KHR_webgl_extension`` to ``NEEDLE_webgl_extension``
1887
- - Change: dont write depth for custom shader set to transparent
1888
- - Deprecate and disable ``AssetDatabase``
1889
-
1890
- ## [2.4.1-pre] - 2022-08-17
1891
- - Add ``Mathf.MoveTowards``
1892
- - Change: rename ``needle-tiny`` webcomponent to ``needle-engine``
1893
- - Fix ordering issue in needle web component when codegen.js is executed too late
1894
-
1895
- ## [2.3.0-pre] - 2022-08-16
1896
- - Add SyncedCamera prefab/AssetReference support
1897
- - Add TypeArray support for ``serializable`` to provide multiple possible deserialization types for one field (e.g. ``serializable([Object3D, AssetReference])`` to try to deserialize a type as Object3D first and then as AssetReference)
1898
-
1899
- ## [2.2.0-pre] - 2022-08-14
1900
- - Add event callbacks for Gltf loading: ``BeforeLoad`` (use to register custom extensions), ``AfterLoaded`` (to receive loaded gltf), ``FinishedSetup`` (called after components have been created)
1901
-
1902
- ## [2.1.2-pre] - 2022-08-14
1903
- - Fix AnimatorController exit state
1904
- - Fix AR camera background alpha to be fully transparent by default
1905
-
1906
- ## [2.1.1-pre] - 2022-08-12
1907
- - Fix: light shadow bias
1908
-
1909
- ## [2.1.0-pre] - 2022-08-11
1910
- - Add ``@needle-tools/engine`` to be used as import for "most used" apis and functions
1911
- - Change: remove obsolete ``Renderer.materialProperties``
1912
- - Fix: ``NEEDLE_persistent_assets`` extension is now valid format (change from array to object)
1913
-
1914
- ## [2.0.0-pre] - 2022-08-08
1915
- - Renamed package
1916
-
1917
- ## [1.21.2-pre] - 2022-08-08
1918
- - Fix: NestedGltf transform
1919
-
1920
- ## [1.20.1-pre] - 2022-08-06
1921
- - Remove: Duplicateable animation time offset hack
1922
- - Change: GameObjectData extension properly await assigning values
1923
- - Change: NestedGltf instantiate using guid
1924
- - Change: ``instantiate`` does now again create guids for three Objects too
1925
-
1926
- ## [1.20.0-pre] - 2022-08-05
1927
- - Add: NestedGltf ``listenToProgress`` method
1928
- - Add: Allow changing Renderer lightmap at runtime
1929
- - Fix: Environment lighting when set to flat or gradient (instead of skybox)
1930
- - Fix: ``this.gameObject.getComponentInChildren`` - was internally calling wrong method
1931
- - Fix: Spectator camera, requires Camera component in glb now
1932
-
1933
- ## [1.19.0-pre] - 2022-08-03
1934
- - Add: Animator.keepAnimatorStateOnDisable, defaults to false as in Unity so start state is entered on enable again
1935
- - Add: warning if different types with the same name are registered
1936
- - Add: timeline track ``onMutedChanged`` callback
1937
- - Change: PlayableDirector expose audio tracks
1938
- - Change: BoxCollider and SphereCollider being added to the physics scene just once
1939
- - Change: try catch around physics step
1940
-
1941
- ## [1.18.0-pre] - 2022-08-01
1942
- - Add: Addressable download progress is now observeable
1943
- - Add: Addressable preload support, allows to load raw bytes without actually building any components
1944
- - Add: PlayableDirector exposes tracks / clips
1945
- - Change: modify default engine loading progress bar to be used from user code
1946
- - Change: add option to Instantiate call to keep world position (set ``keepWorldPosition`` in ``InstantiateOptions`` object that you can pass into instantiate)
1947
- - Change: light uses shadow bias from Unity
1948
- - Fix: instancing requiring worldmatrix update being not properly processed
1949
- - Fix: Duplicatable world position being off (using ``keepWorldPosition``)
1950
- - Fix: ``Animation`` component, it does allow to use one main clip only now, for more complex setups please use AnimationController or Timeline
1951
- - Fix: ``SyncedRoom`` room connection on enter WebXR
1952
- - Fix: WebXR avatar loading
1953
-
1954
- ## [1.17.1-pre] - 2022-07-27
1955
- - Change: bump component compiler dependency to ``1.7.1``
1956
- - Change: ``context.mainCameraComponent`` is now of type ``Camera``
1957
- - Fix: timeline control track
1958
- - Fix: timeline animation track post extrapolation
1959
- - Fix: custom shader does not fail when scene uses object with transmission (additional render pass)
1960
-
1961
- ## [1.17.0-pre] - 2022-07-21
1962
- - engine: add loading bar and show loading state text
1963
-
1964
- ## [1.16.0-pre] - 2022-07-20
1965
- - engine: add using ambient light settings (Intensity Multiplier) exported from Unity
1966
-
1967
- ## [1.15.1-pre] - 2022-07-18
1968
- - engine: fix nullref in registering texture
1969
-
1970
- ## [1.15.0-pre] - 2022-07-15
1971
- - engine: remove legacy file
1972
- - engine: add basic implementation of ``Context.destroy``
1973
- - engine: fix ``<needle-tiny>`` src attribute
1974
- - engine: add implictly creating camera with orbit controls when loaded glb doesnt contain any (e.g. via src)
1975
-
1976
- ## [1.14.2-pre] - 2022-07-12
1977
- - engine: fix dont apply lightmaps to unlit materials
1978
- - engine: remove log in PlayableDirector
1979
- - engine: add support to override (not automatically create) WebXR buttons
1980
-
1981
- ## [1.14.1-pre] - 2022-07-11
1982
- - engine: Fix AnimatorController finding clip when cloned via ``AssetReference.instantiate``
1983
- - engine: Fix deep clone array type
1984
- - engine: Fix PlayableDirectory binding when cloned via ``AssetReference.instantiate``
1985
-
1986
- ## [1.14.0] - 2022-07-10
1987
- - engine: add VideoPlayer using ``AudioOutputMode.None``
1988
- - engine: fix VideoPlayer waiting for input before playing video with audio (unmuted) and being loaded lazily
1989
-
1990
- ## [1.13.0-pre] - 2022-07-07
1991
- - engine: Add ``getComponent`` etc methods to THREE.Object3D prototype so we can use it like in Unity: ``this.gameObject.getComponent...``
1992
- - engine: Change ``Duplictable`` serialization
1993
-
1994
- ## [1.12.2-pre] - 2022-07-06
1995
- - engine: Fix networking localhost detection
1996
- - engine: update component generator package version (supporting now CODEGEN_START and END sections as well as //@ifdef for fields)
1997
-
1998
- ## [1.12.1-pre] - 2022-07-06
1999
- - engine: change lightmap extension to be object
2000
-
2001
- ## [1.12.0-pre] - 2022-07-06
2002
- - engine: Add DeviceFlag component
2003
- - engine: Fix VideoPlayer loop and playback speed
2004
- - engine: Improve VideoTrack sync
2005
-
2006
- ## [1.11.0-pre] - 2022-07-04
2007
- - engine: fix ``enabled`` not being always assigned
2008
- - engine: fix react-three-fiber component setting camera
2009
- - engine: add support for custom timeline track
2010
- - engine: add VideoTrack npmdef
2011
-
2012
- ## [1.10.3-pre] - 2022-07-01
2013
- - engine: Change; PlayableDirector Wrap.None now stops/resets timeline on end
2014
- - engine: Change; PlayableDirector now stops on disabling
2015
-
2016
- ## [1.10.2-pre] - 2022-07-01
2017
- - engine: fix timeline clip offsets and hold
2018
- - engine: fix timeline animationtrack support for post-extrapolation (hold, loop, pingpong)
2019
-
2020
- ## [1.10.1-pre] - 2022-06-30
2021
- - engine: improve timeline clip offsets
2022
-
2023
- ## [1.10.0-pre] - 2022-06-30
2024
- - engine: Improved timeline clip- and track offset (ongoing)
2025
- - engine: Change assigning all serialized properties by default again (instead of require ``@allProperties`` decorator)
2026
- - engine: Change; deprecate ``@allProperties`` and ``@strict`` decorators
2027
-
2028
- ## [1.9.1-pre] - 2022-06-29
2029
- - engine: add methods for unsubscribing to EventList and make constructor args optional
2030
- - engine: change camera to not change transform anymore
2031
-
2032
- ## [1.9.0-pre] - 2022-06-28
2033
- - engine: add support for transparent rendering using camera background alpha
2034
-
2035
- ## [1.8.0-pre] - 2022-06-27
2036
- - Add: transform gizmo component
2037
- - Change: component generator for npmdef is not required anymore
2038
- - Change: component gen runs in background now
2039
- - Fix: typescript drag drop adding component twice in some cases
2040
- - engine: update component gen package dependency
2041
- - engine: fix redundant camera creation when exported in GLTF
2042
- - engine: fix orbit controls focus lerp, stops now on input
2043
-
2044
- ## [1.7.1-pre] - 2022-06-25
2045
- - Override PlayMode in sub-scene
2046
- - engine: lightmaps encoding fix
2047
- - engine: directional light direction fix
2048
-
2049
- ## [1.7.0-pre] - 2022-06-25
2050
- - engine: animator controler can handle multiple target animators
2051
- - engine: fix WebXR being a child of WebARSessionRoot
2052
- - engine: improve Camera, OrbitControls, Lights OnEnable/Disable behaviour
2053
- - engine: add ``Input.getKeyPressed()``
2054
-
2055
- ## [1.6.0-pre] - 2022-06-23
2056
- - engine: fix light error "can't add object to self" when re-enabled
2057
- - engine: remove extension log
2058
- - engine: log missing info when UnityEvent has not target (or method not found)
2059
- - engine: use lightmap index for supporting multiple lightmaps
2060
-
2061
- ## [1.5.2-pre] - 2022-06-23
2062
- - engine: Camera dont set skybox when in XR
2063
- - engine: dont add lights to scene if baked
2064
-
2065
- ## [1.5.1-pre] - 2022-06-22
2066
- - engine: fix threejs dependency pointer
2067
-
2068
- ## [1.5.0-pre] - 2022-06-22
2069
- - engine: ``<needle-tiny>`` added awaitable ``getContext()`` (waits for scene being loaded to be used in external js)
2070
- - engine: fix finding main camera warning
2071
- - engine: add ``SourceIdentifier`` to components to be used to get gltf specific data (e.g. lightmaps shipped per gltf)
2072
- - engine: persistent asset resolve fix
2073
- - engine: update three dependency to support khr_pointer
2074
- - engine: remove custom khr_pointer extension
2075
- - engine: fix WebARSessionRoot exported in gltf
2076
- - engine: smaller AR reticle
2077
-
2078
- ## [1.4.1-pre] - 2022-06-17
2079
- - engine: create new GltfLoader per loading request
2080
- - engine: fix bug in core where it could happen that scripts were added multiple times
2081
- - engine: Added SyncedRoom auto rejoin option (to handle disconnection by server due to window inactivity)
2082
- - engine: guid resolving first in loaded gltf and retry in whole scene on fail
2083
- - engine: fix nullref in DropListener
2084
- - engine: register main camera before first awake
2085
-
2086
- ## [1.4.0-pre] - 2022-06-15
2087
- - engine: add ``GameObject.getOrAddComponent``
2088
- - engine: ``OrbitControl`` exposing controlled object
2089
- - engine: ``getWorldPosition`` now uses buffer of cached vector3's instead of only one
2090
- - engine: add ``AvatarMarker`` to synced camera (also allows to easily attach ``PlayerColor``)
2091
- - engine: fix ``Animation`` component when using khr_pointer extension
2092
- - engine: ``VideoPlayer`` expose current time
2093
- - engine: fix ``Animator.runtimeController`` serialization
2094
- - engine: make ``SyncedRoom.tryJoinRoom`` public
2095
-
2096
- ## [1.3.1-pre] - 2022-06-10
2097
- - engine: allow ``@serializeable`` taking abstract types
2098
- - engine: add ``Renderer.sharedMaterials`` support
2099
-
2100
- ## [1.3.0-pre] - 2022-06-09
2101
- - engine: move log behind debug flag
2102
- - engine: improved serialization property assignment respecting getter only properties
2103
- - engine: add optional serialization callbacks to ``ISerializable``
2104
- - engine: default to only assign declared properties
2105
-
2106
- ## [1.2.3-pre] - 2022-06-09
2107
- - engine: downloading dropped file shows minimal preview box
2108
- - engine: ``DropListener`` can use localhost
2109
- - engine: ``SyncedRoom`` avoid reload due to room parameter
2110
- - engine: ``LODGroup`` instantiate workaround
2111
- - engine: improve deserialization supporting multiple type levels
2112
-
2113
- ## [1.2.2-pre] - 2022-05-30
2114
- - engine: change md5 hashing package
2115
- - engine: file upload logs proper server error
2116
-
2117
- ## [1.2.1-pre] - 2022-05-30
2118
- - engine: disable light in gltf if mode is baked
2119
- - engine: use tiny starter as default networking backend
2120
- - engine: synced file init fix for resolving references
2121
- - engine: allow removing of gen.js completely
2122
- - engine: expose ``Camera.buildCamera`` for core allowing to use blender camera
2123
- - engine: on filedrop only add drag control if none is found
2124
-
2125
- ## [1.2.0-pre] - 2022-05-27
2126
- - engine: fix networked flatbuffer state not being stored
2127
- - engine: make ``src`` on ``<needle-tiny>`` web component optional
2128
- - engine: ``src`` can now point to glb or gltf directly
2129
- - engine: fix ``Raycaster`` registration
2130
- - engine: add ``GameObject.destroySynced``
2131
- - engine: add ``context.setCurrentCamera``
2132
- - engine: make ``DropListener`` to EventTarget
2133
- - engine: make ``DropListener`` accept explicit backend url
2134
-
2135
- ## [1.1.0-pre.6] - 2022-05-26
2136
- - Fix gltf transform textures output when used in custom shaders only
2137
-
2138
- ## [1.1.0-pre.5] - 2022-05-25
2139
- - engine: fix ``VideoPlayer`` being hidden, play automatically muted until interaction
2140
- - engine: added helpers to update window history
2141
- - engine: fix setting custom shader ``Vector4`` property
2142
- -
2143
- ## [1.1.0-pre.4] - 2022-05-25
2144
- - engine: fix tsc error in ``Animation`` component
2145
- - engine: fix ``Animation`` component assigning animations for GameObject again
2146
- - engine: fix ``Animation`` calling play before awake
2147
- - engine: ``AnimatorController`` handle missing motion (not assigned in Unity)
2148
- - engine: ``AnimatorController.IsInTransition()`` fix
2149
-
2150
- ## [1.1.0-pre.1] - 2022-05-20
2151
- - engine: minor tsc issues fixed
2152
-
2153
- ## [1.1.0-pre] - 2022-05-20
2154
- - engine: add ``isManagedExternally`` if renderer is not owned (e.g. when using react-fiber)
2155
-
2156
- ## [1.0.0-pre.18] - 2022-05-19
2157
- - engine: add basic support for ``stopEventPropagation`` (to make e.g. ``DragControls`` camera control agnostic in preparation of react support)
2158
-
2159
- ## [1.0.0-pre.17] - 2022-05-17
2160
- - fix ``EventList`` outside of gltf
2161
- - fix ``EventList`` without any function assigned (``No Function`` in Unity)
2162
- - engine: support changing ``WebARSessionRoot.arScale`` changing at runtime
2163
-
2164
- ## [1.0.0-pre.16] - 2022-05-12
2165
- - engine: fix webx avatar instantiate
2166
- - engine: stop input preventing key event defaults
2167
-
2168
- ## [1.0.0-pre.15] - 2022-05-12
2169
- - engine: log error if ``instantiate`` is called with false parent
2170
- - engine: fix instantiate with correct ``AnimatorController`` cloning
2171
-
2172
- ## [1.0.0-pre.14] - 2022-05-11
2173
- - engine: fix ``@syncField()``
2174
- - engine: fix ``AssetReference.instantiate`` and ``AssetReference.instantiateSynced`` parenting
2175
- - engine: improve ``PlayerSync`` and ``PlayerState``
2176
-
2177
- ## [1.0.0-pre.13] - 2022-05-11
2178
- - engine: prepend three canvas to the web element instead of appending
2179
- - engine: ``SyncedRoom`` logs warning when disconnected
2180
- - engine: internal networking does not attempt to reconnect on connection closed
2181
- - engine: internal networking now empties user list when disconnected from room
2182
- - engine: ``GameObject.instantiate`` does not always generate new guid to support cases where e.g. ``SyncTransform`` is on cloned object and requires unique id
2183
- - engine: ``syncedInstantiate`` add fallback to ``Context.Current`` when missing
2184
- - engine: ``EventList`` refactored to use list of ``CallInfo`` objects internally instead of plain function array to more easily attach meta info like ``UnityEvent.off``
2185
- - engine: add ``GameObject.instantiateSynced``
2186
-
2187
- ## [1.0.0-pre.12] - 2022-05-10
2188
- - engine: fix font path
2189
- - engine: add ``debugnewscripts`` url parameter
2190
- - engine: start adding simplifcation to automatic instance creation + sync per player
2191
- - engine: allow InstantiateOptions in ``GameObject.instantiate`` to be inlined as e.g. ``{ position: ... }``
2192
- - engine: add ``AvatarMarker`` creation and destroy events
2193
- - engine: fix networking message buffering
2194
-
2195
- ## [1.0.0-pre.11] - 2022-05-08
2196
- - engine: ``SpatialTrigger`` is serializable
2197
- - engine: fix ``DragControls`` offset when using without ground
2198
- - engine: fix ``WebXRController`` interaction with UI ``Button.onClick``
2199
-
2200
- ## [1.0.0-pre.10] - 2022-05-04
2201
- - engine: fix gltf extension not awaiting dependencies
2202
- - engine: fix persistent asset @serializable check for arrays
2203
- - engine: add ``setWorldScale``
2204
- - engine: fix ``instantiate`` setting position
2205
- - engine: ``AssetReference`` does now create new instance in ``instantiate`` call
2206
- - engine: add awaitable ``delay`` util method
2207
- - engine: fix scripts being active when loaded in gltf but never added to scene
2208
- - engine: minimal support for mocking pointer input
2209
- - engine: emit minimal down and up input events when in AR
2210
-
2211
- ## [1.0.0-pre.9] - 2022-05-03
2212
- - improved default loading element
2213
- - changed animation pointer to support emissive intensity
2214
-
2215
- ## [1.0.0-pre.8] - 2022-05-02
2216
- - lightmaps fixed
2217
- - glitch upload shows time estimate
2218
- - deployment build error fix
2219
- - json pointer resolve
2220
- - improved auto install
2221
- - started basic ``SpriteRenderer`` support
2222
- - basic ``AnimationCurve`` support
2223
- - fixed ``PlayerColor``
2224
- - fixed ``persistent_assets`` and ``serializeable`` conflict
2225
- - basic export of references to components in root prefab
2226
-
2227
- ## [1.0.0-pre.7] - 2022-04-30
2228
- - ``WebXR`` does not load avatar from prefab reference
2229
- - ``WebXRSync`` is added implictly and creates local avatar even when not networked
2230
- - ``SpectatorCam`` is using local avatar
2231
- - ``SpectatorCam`` camera component in Unity is now optional and implictly added if missing
2232
-
2233
- ## [1.0.0-pre.6] - 2022-04-29
2234
- - fix environment light
2235
- - fix light shadows setting
2236
- - fix video player in extension
2237
- - fix video player texture not overlaying rendering while awaiting interaction
2238
- - fix webAR root reticle when no rig component is in scene
2239
-
2240
- ## [1.0.0-pre.5] - 2022-04-28
2241
- - start adding support for ``AssetReference`` again
2242
-
2243
- ## [1.0.0-pre.4] - 2022-04-27
2244
- - add persistent asset extension
2245
- - removed timeline and animator controller extensions as both are now serialized and resolved in assets
2246
- - can resolve json pointers (``animations/``, ``materials/``, ``textures/``, ``extensions``) in component paths
2247
- - add ``syncField()`` decorator
2248
-
2249
- ## [1.0.0-pre.2] - 2022-04-20
2250
- - updated to https:// three.js url instead of git:// url
2251
- - fixated flatbuffers dependency to 2.0.4 due to breaking changes and bugs in 2.0.6
2252
-
2253
- ## [1.0.0-pre] - 2022-04-19
1
+ # Changelog
2
+ All notable changes to this package will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
+ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [3.28.7-beta.1] - 2023-12-30
8
+ - Fix: Revert AnimatorController condition evaluation change
9
+
10
+ ## [3.28.7-beta] - 2023-12-30
11
+ - Fix: Issue in AnimatorController evaluation of bool condition where the threshold wasnt taken into account (e.g. only making a transition if a bool parameter was set to false)
12
+
13
+ ## [3.28.6-beta] - 2023-12-30
14
+ - Add: EventList can now have multiple arguments allowing support for e.g. `setBool` on Animator component being called from a Button directly
15
+ - Add: Animator `toggleBool` method
16
+ - Fix: Issue where destroying an object in `onCollisionEnter` it would not be removed from the physics event queue and result in `onCollisionStay` being called with an already destroyed component
17
+ - Fix: Rigidbody matrix changed watcher should ignore events during physics to threejs synchronization
18
+ - Fix: Set gizmos renderOrder to be always rendered last to avoid cases where gizmos are hidden due to custom renderOrder on scene objects
19
+
20
+ ## [3.28.5-beta] - 2023-12-22
21
+ - Fix: WebXRController falsely triggering click in EventSystem
22
+
23
+ ## [3.28.3-beta] - 2023-12-21
24
+ - Fix: Issue in pointer events not triggering onPointerEnter and Exit in VR
25
+ - Remove: warning log in USDZ export about double sided materials not being supported
26
+
27
+ ## [3.28.2-beta] - 2023-12-20
28
+ - Add: Support double sided material export for USDZ
29
+ - Fix: `PlayAudioOnClick` when explicit clip is given, use loop from attached audio source
30
+ - Change: Improve Everywhere Action `SetActiveOnClick`
31
+
32
+ ## [3.28.1-beta] - 2023-12-18
33
+ - Add: `context.recreate` to destroy the whole scene and reload everything (including all script instances)
34
+ - Fix: issue where EventSystem pointer events would not be received anymore if the event component was on e.g. an empty object in the parent hierarchy
35
+
36
+ ## [3.28.0-beta] - 2023-12-14
37
+ - Fix: USDZ: `emissiveIntensity` was not applied and `emissiveColor` wasn't used for scale/bias properly
38
+ - Fix: USDZ: compressed textures with alpha channel were not being read back correctly
39
+ - Change: USDZ: bake `effectiveOpacity` into the opacity texture if needed, since QuickLook/usdview don't support `.a` scale values
40
+ - Change: Bump UnityGLTF version to 2.6.0-exp to support GPU Instancing on imported glTF materials
41
+
42
+ ## [3.27.5-beta] - 2023-12-12
43
+ - Fix: Offscreencanvas support for iOS 16.x
44
+ - Fix: `PlayAudioOnClick` now respects playOnAwake if an explicit audio source is assigned
45
+ - Change: `EventSystem` should only check objects if they're meshes
46
+
47
+ ## [3.27.4-beta] - 2023-12-11
48
+ - Fix: instancing now updating bounds in Needle Engine before render callback if necessary
49
+ - Change: expose `onPauseChanged` on components
50
+ - Change: handle case where a added coroutine function is not a coroutine (Generator)
51
+
52
+ ## [3.27.3-beta] - 2023-12-09
53
+ - Add: `InstancingUtil.getRenderer` to get the three InstancedMesh for any Object3D (if it's using instancing)
54
+ - Add: instancing does now automatically update culling bounds if it's dirty. This can be disabled via `InstancingUtil.setAutoUpdateBounds(obj, false)`
55
+ - Add: Rigidbody method documentation
56
+ - Add: `ParticleSystem.addBehaviour` method and expose underlying particle system. We now also export the particle types
57
+ - Fix: Issue where `this.physics.raycastFromRay` was modifying the default raycast options
58
+ - Fix: Issue where sprites would be falsely interpreted as builtin sprite causing the image to be not displayed correctly
59
+ - Change: `this.physics.raycast()` can now be called with anonymous options (instead of having to use a `RaycastOptions` class), for example `this.physics.raycast({ray:myRay})`
60
+
61
+
62
+ ## [3.27.2-beta] - 2023-12-08
63
+ - Fix: don't set font on `<needle-engine>` host styles to prevent leaking into child elements
64
+ - Fix: `AssetReference.loadAsync` being called multiple times should always return the `asset` result
65
+ - Change: register OrbitControls events on the canvas and not the needle engine element to allow child HTML objects to capture input
66
+
67
+ ## [3.27.1-beta] - 2023-12-06
68
+ - Add `addCustomExtensionPlugin` API to register custom glTF importer and exporter extensions
69
+ - Fix: issue where instanced and animated object was rendered for one frame with a wrong matrix
70
+ - Change: expose `imageToCanvas` method from USDZExporter
71
+ - Change: GltfExporter component does not cache exporter anymore and expose all exporter options
72
+
73
+ ## [3.27.0-beta] - 2023-12-04
74
+ - Add: USDZ: skinned mesh export, including animations
75
+ - Add: USDZ: ability to specify if we're exporting for QuickLook or not
76
+ - Add: USDZ: animation export respects basic root motion (translation and rotation)
77
+ - Add: USDZ: `USDZExporter` API supports exporting binary buffer similar to `GLTFExport` API
78
+ - Fix: USDZ: correct `defaultPrim` encapsulation so that it also contains materials
79
+ - Fix: USDZ: render texture readback failure when exporting
80
+ - Fix: `ISceneEventListener` only being found when first component
81
+ - Fix: error in vite plugin facebook instant games if no config would exist
82
+ - Fix: Gizmo label padding and border radius were not properly applied when re-using label
83
+ - Change: USDZ: animation export now automatically includes Animator states
84
+ - Change: USDZ: `PlayAnimationOnClick` now automatically uses Animator state logic to determine looping and continuation of animation (what happens after the specified animation has finished playing)
85
+ - Change: USDZ: current animator states are exported as `PlayAnimation` on scene start
86
+
87
+ ## [3.26.2-beta] - 2023-11-28
88
+ - Add physics NaN safeguards to avoid invalid rapier data propagating through three objects
89
+
90
+ ## [3.26.1-beta] - 2023-11-27
91
+ - Add: information about mouse button, hit point, hit normal, hit distance to `PointerEventData`
92
+ - Fix: EventSystem regression where UI events stopped working
93
+
94
+ ## [3.26.0-beta] - 2023-11-27
95
+ - Fix: LOD update frame delay
96
+ - Change: EventSystem optimization to avoid raycasting objects without event receiver components
97
+
98
+ ## [3.25.5] - 2023-11-24
99
+ - Add: vite plugin for facebook deployment
100
+ - Fix: Physics collider center being not applied correctly with rotated parent
101
+
102
+ ## [3.25.4] - 2023-11-23
103
+ - Add: `onInitialized(ctx => {...})` and `onBeforeRender` event functions
104
+ - Add: `Camera.cullingLayer` property
105
+ - Fix: Physics collider center being modified causing rapier runtime error
106
+
107
+ ## [3.25.3] - 2023-11-23
108
+ - Add: `onStart((ctx)=>{})` and `onUpdate((ctx)=>{})` functions API
109
+ - Fix: AudioSource not starting autoplay anymore after registered user interaction (which is necessary to playback audio in the browser)
110
+ - Fix: `TransformGizmo` component not working as expected anymore since it also defines `worldPosition`
111
+ - Change: Improve performance for colliders without rigidbody to not create an implicity rapier rigidbody anymore
112
+
113
+ ## [3.25.2] - 2023-11-20
114
+ - Add: `worldForward`, `worldRight` and `worldUp` to Object3D and GameObject types
115
+ - Add: `getTempVector` utility method that has a circular array of vector3 instances for re-use
116
+ - Fix: ImageTracking hysteresis for images to stay visible during bad tracking for up to a second after tracking has been lost
117
+
118
+ ## [3.25.1] - 2023-11-18
119
+ - Add: getters and setters on Object3D and GameObject types for `worldPosition`, `worldRotation`, `worldQuaternion` and `worldScale`
120
+ - Fix: ImageTracking now has hysteresis for how long to keep a tracked object visible before disabling it (if tracking is lost just for a few frames)
121
+ - Fix: Catch and log exception in rapier during collider creation
122
+ - Change: WebXRImageTracking objects that are already present in the scene are now hidden when entering WebXR/AR
123
+
124
+ ## [3.25.0] - 2023-11-18
125
+ - Add: `Mathf.easinOutCubic` utility method
126
+ - Add: ObjectRaycaster expose option to ignore skinned mesh renderers
127
+ - Fix: detecing website interaction to allow playing audio before any component or audio component has been loaded
128
+ - Fix: Physics capsule height creation
129
+ - Fix: WebXRImageTracking not hiding tracked objects after tracking has been lost
130
+ - Change: Improved ContactShadows component
131
+ - Change: Improve OrbitControls for smoother lerping. Add methods to set camera position and look at target by passing in an Object3D reference.
132
+ - Change: PlayAudioOnClick does now create an AudioSource implictly if non is assigned
133
+ - Change: EventSystem does ignore SkinnedMeshRenderers by default now
134
+ - Change: WebXR reticle is now hidden when image tracking starts
135
+
136
+ ## [3.24.1] - 2023-11-15
137
+ - Fix: Everywhere Action material otherVariants was not cleared between behaviour generation
138
+ - Fix: Everywhere Action Change Material loosing track of the target material
139
+ - Fix: issue where SpatialTrigger calling AudioSource.play doesnt work because of wrong argument
140
+ - Fix: text linebreak in USDZ
141
+ - Fix: material bindings API for Preliminary_Text and don't apply material when no geometry is found
142
+ - Fix: material assignments for USDZ text and fix color space
143
+ - Fix: Capsulecollider height
144
+ - Fix: Core networking issue where throwing callbacks would silently be ignored and causing not all callbacks being called
145
+ - Fix: PlayerSync `owner-changed` being raised twice
146
+ - Fix: PlayerSync unsubscribe from UserLeftRoom event once the player is leaving/has left
147
+ - Fix: Catch exception in creating `new type()` during deserialization of animationclip if the clip is just a string and could not be resolved because it's missing, falsely serialized or annotated
148
+ - Change: OnClick Everywhere Actions now ensure they have a raycaster component assigned or in parent hierarchy
149
+ - Change: Everywhere Action PlayAnimationOnClick remove target field
150
+
151
+ ## [3.24.0] - 2023-11-13
152
+ - Add: ContactShadows component
153
+ - Add: `Gizmos.DrawLabel`
154
+ - Fix: issue with AnimatorController behaviour when using loop and cycle offset
155
+ - Fix: error when loading component with missing AnimatorController field
156
+ - Fix: use correct colorspace for UI components
157
+ - Fix: loading of remote GLB and `skybox-image` url where default camera should set clearflags to skybox
158
+ - Fix: Various colorspace issues fixed
159
+ - Change: USDZ export `imageToCanvas` now uses OffscreenCanvas for improved performance
160
+ - Change: Update pmndrs postprocessing package to 6.33.3 to fix SSAO not working on mobile android
161
+ - Change: `ObjectUtils.createPrimitive` so all primitives use the same settings
162
+
163
+ ## [3.23.1] - 2023-11-09
164
+ - Add: `Gizmos.DrawLabel` method
165
+ - Add: `LookAtObject` utils method with options to keep upwards direction and copying target rotation to stay screen aligned
166
+ - Fix: WebXRPlaneTracking dispose old mesh data properly, heuristically determine if a shape should be convex or not
167
+ - Fix: AudioSource `play` not working anymore if called without parameters
168
+ - Internal: rapier meshcolliders now use convexHull instead of convexMesh, the latter already expects the input data to be convex
169
+
170
+ ## [3.23.0] - 2023-11-08
171
+ - Add: support for changing animatorcontroller at runtime
172
+ - Add: AnimatorController support for cycle offset and speed being used from parameter (or fixed serialized value)
173
+ - Add: `OrbtiControls.allowInterrupt` property that can be set to false to prevent animation to a target point or autoRotate being interrupted by user input like clicking or dragging
174
+ - Add: Physics collision now includes tangent vector for contact points
175
+ - Add: Physics exposes API for getting the object velocity per collider (`context.physics.engine.getLinearVelocity`)
176
+ - Add: Physics Material can now be updated at runtime. Call `updatePhysicsMaterial` on the collider with the changed physics material
177
+ - Fix: scaled capsule collider being created with wrong size
178
+ - Fix: timeline audiotracks not respecting speed property on PlayableDirector (effectively being cut-off instead of being played back at another speed/playbackRate)
179
+ - Fix: Prevent using XRAnchor on Quest in AR mode (pass-through)
180
+ - Fix: Timeline evaluate is now done in lateUpdate which gives animated objects time to apply the changed data (e.g. OrbitControls where the target object may be animated)
181
+ - Fix: Timeline Audio tracks do not require AudioListener in scene anymore
182
+
183
+ ## [3.22.6] - 2023-11-06
184
+ - Change: work on approximated transmission export in USDZ
185
+
186
+ ## [3.22.4] - 2023-11-03
187
+ - Add: Option to WebXRControllers to disable default controls (`enableDefaultControls`) and raycasting (`enableRaycasts`)
188
+ - Fix: AnimatorController transition with exitTime and trigger didnt work since trigger was reset before transition could be made
189
+ - Fix: USDZExporter isssue where compressed textures always ended up as JPG after decompression since format check was only checking for RGBAFormat, now also checks for compressed formats
190
+ - Change: catch and display unhandled exceptions during creation of engine, make sure bubble messages are on top of loading overlay
191
+ - Change: USDZExporter should re-use renderer
192
+
193
+ ## [3.22.3] - 2023-11-02
194
+ - Add: Coroutine can now yield on promise and wait for the promise to be resolved
195
+ - Fix: CharacterController not being grounded on mesh collider
196
+ - Fix: ShadowCatcher set to additive mode didnt work anymore
197
+
198
+ ## [3.22.2] - 2023-11-01
199
+ - Add: Optional `RectTransform.minWidth` and `RectTransform.maxWidth`
200
+ - Fix: GameObject instantiate should clone color objects (to not share instance)
201
+ - Fix: Call to `parseSync` with full url argument now correctly passes base url to three GLTFLoader for resolving external resources
202
+ - Change: PhysicsMaterial properties are now all optional (e.g. so we can set only friction)
203
+ - Change: `Rigidbody.setForce` to take a vec3
204
+ - Change: `AudioSource.onDisable` should pause not stop
205
+ - Change: `Mathf.random(<min>?, <max>?)` now takes optional min and max parameters
206
+
207
+ ## [3.22.1] - 2023-10-30
208
+ - Fix: `Screencapture.autoconnect` when already connected to networking server or connection is in progress / window selection is currently open
209
+ - Change: when `isManagedExternally` is enabled then framerate is user controlled and not automatically clamped
210
+ - Change: add more documentation to networking methods
211
+
212
+ ## [3.22.0] - 2023-10-26
213
+ - Fix: SyncedCamera deserialization warning
214
+ - Change: Collider property updates now trigger rigidbody mass recalculation immediately (if set to auto-mass)
215
+ - Change: Rigidbody methods now take Vec3 object as well as arguments like `{x:0, y:1, z:0}`
216
+ - Change: Improve Screencapture
217
+ - Change: Screencapture now also allows `Microphone` as input device
218
+ - Change: Updated VOIP script and removed old VOIP implementation - it now uses the same underlying codebase as screencapture
219
+ - Change: Update imports to use `type` where appropriate
220
+
221
+ ## [3.21.5] - 2023-10-25
222
+ - Fix: remove leftover console.log
223
+ - Fix: Hovered button should reset pointer state when destroyed
224
+ - Fix: WebXR Rig parenting in VR when switching scenes
225
+ - Fix: Timeline activation track not properly evaluating when timeline is paused and manually evaluated from user code
226
+ - Fix: Sphere Collider radius not being set correctly
227
+
228
+ ## [3.21.3] - 2023-10-23
229
+ - Fix: Issue where Chrome touch emulation caused "onPointerClick" being called twice per click
230
+ - Fix: EventList instances are now not shared anymore between components created via `instantiate`
231
+ - Fix: Regression where SphereCollider radius was not being applied
232
+
233
+ ## [3.21.2] - 2023-10-23
234
+ - Change: Expose EventList subscriber count
235
+ - Change: `PointerEventArgs.use()` should not stop propagation
236
+
237
+ ## [3.21.1-alpha] - 2023-10-20
238
+ - Add: Multitouch support on `input` events, our EventSystem implementation now handles multitouch cases and is using the browser events directly and immediately (before events via `window` where deferred and hanlded during the engine update loop)
239
+
240
+ ## [3.21.0-alpha] - 2023-10-19
241
+ - Add: support for translate, rotate and scale of AR scene on android devices (needs `WebXRSessionRoot.arTouchTransform` set to true right now)
242
+ - Add: `SphereCollider.radius` and `BoxCollider.size` updates at runtime are now automatically propagated to the physics engine updating the physics shapes. Additionally the object scale for SphereCollider objects is watched and automatically applied on change
243
+ - Fix: removal of all colliders on an object now also fully cleansup the implictly created RigidBody
244
+ - Change: `Context.isManagedExternally` can now be set at runtime as a first step towards allowing complete external control over the Needle Engine lifecycle loop in cases where Needle Engine scenes or components are mixed with an external three.js scene (and projects that require more explicit control)
245
+
246
+ ## [3.20.3] - 2023-10-18
247
+ - Add: Expose Rapier dominance group option on Rigidbody
248
+ - Fix: Ignore root motion when animator weight is <= 0 due to Timeline playing
249
+ - Fix: Rapier race condition caused by dynamic loading
250
+ - Change: Allow setting Rigidbody mass explictly now by either setting `autoMass` to false or by setting the `mass` property
251
+
252
+ ## [3.20.2] - 2023-10-17
253
+ - Fix: renderer access nullreference exceptions caused by deferred initialization
254
+ - Fix: disabling postprocessing now restores renderer clear state (which got disabled by the postprocessing package)
255
+ - Fix: disable generating WebXRPlane tangents
256
+
257
+ ## [3.20.1] - 2023-10-16
258
+ - Change: `addComponent` can now take component instance or type
259
+
260
+ ## [3.20.0] - 2023-10-13
261
+ - Fix: issue where physics colliders where not yet fully initialized in `start` event
262
+ - Fix: Pointer delta while cursor is locked
263
+ - Change: Expose `context.phyiscs.engine.world` and `context.physics.engine.getComponent` method to directly work with rapier physics engine and to easily get access to Needle Engine components from rapier colliders
264
+ - Change: Expose `Context.DefaultWebGLRendererParameters` that can be modified in static context before renderer is created
265
+
266
+ ## [3.19.9] - 2023-10-11
267
+ - Change: `AnimatorController.createFromClips` now sets the state hash to index of clip
268
+ - Fix: AnimatorController root motion direction when runtime instantiating and using the same clip on multiple objects
269
+ - Fix: AnimatorController root motion forward direction when rotating object from script as well
270
+
271
+ ## [3.19.8] - 2023-10-10
272
+ - Add: `AnimatorController.createFromClips` utility method taking in a animationclips array to create a simple controller from. By default it creates transitions to the next clip
273
+ - Fix: occasional issue where the scrollbar would cause flickering due to hiding/showing when the website was zoomed
274
+ - Fix: screenshot utility method respecting page zoom
275
+ - Fix: vite dependency watcher plugin running installation if dependency in package.json would change
276
+ - Fix: Animator root motion working with multiple states, clips and transitions
277
+
278
+ ## [3.19.7] - 2023-10-04
279
+ - Add: OrbitControls `enableRotate` property
280
+ - Fix: LODGroup not using last LOD in cases where the last LOD is never culled
281
+ - Fix: PostProcessing EffectStack correctly ordered when using N8 Ambient Occlusion (together with Bloom for example)
282
+ - Fix: Postprocessing N8 should not modify gamma if it's not the last effect in the stack
283
+
284
+ ## [3.19.6] - 2023-10-02
285
+ - Fix: AudioSource does now create an AudioListener on the main camera if none is found in the scene
286
+ - Change: VideoPlayer does fallback to clip if src is empty or null
287
+ - Change: OrbitControls now expose `enableRotate` property
288
+
289
+ ## [3.19.5] - 2023-10-02
290
+ - Fix: web component font import
291
+
292
+ ## [3.19.4] - 2023-09-29
293
+ - Fix: Remove leftover OrbitControls log
294
+ - Change: Timeline TrackModel `markers` and `clips` fields are now optional
295
+ - Change: VideoPlayer is set to use url as default video source (if nothing is defined)
296
+
297
+ ## [3.19.3] - 2023-09-28
298
+ - Fix: regression in OrbitControls without lookat target assigned
299
+ - Fix: progressive textures loading with custom reflection probe
300
+ - Fix: WebAR touch event screenspace position using `this.context.input`
301
+
302
+ ## [3.19.2] - 2023-09-27
303
+ - Add: OrbitControls `autoFit` property
304
+ - Add: API to access underlying Rapier physics body using `context.physics.engine.getBody(IComponent | IRigidbody)`
305
+
306
+ ## [3.19.1] - 2023-09-27
307
+ - Add: ParticleSystem now supports HorizontalBillboard and VerticalBillboard
308
+ - Fix: [WebXR chromium bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1475680) where the tracking transform matrix rotates roughly by 90° - we now add an WebXR Anchor to keep the scene at the placed location in the real world
309
+ - Fix: SceneSwitcher does now call event on first `ISceneEventListener` found on root level of a loaded scene (e.g. if a Unity scene is loaded that contains multiple children and does not have just one root object)
310
+ - Fix: Text UI clipping with multiple active screenspace canvases in scene
311
+ - Fix: Screenspace canvas events should not be blocked anymore by objects in 3D scene
312
+ - Fix: FirstPersonController rotation not being correctly / falsely resetted and flipped in some cases
313
+
314
+ ## [3.19.0] - 2023-09-26
315
+ - Fix: collider scale wrongly affecting physics objects
316
+ - Fix: collider debug lines should not be raycastable
317
+ - Fix: mesh-collider behaving unexpectedly
318
+ - Fix: animator root motion causing error due to uninitialized Quaternion object
319
+
320
+ ## [3.18.0] - 2023-09-21
321
+ - Add: SceneSwitcher has now a field for `loadingScene` which can be used to display a scene while loading other scenes
322
+ - Add: `ISceneEventListener` which is called by the SceneSwitcher when a scene has been loaded or a scene is being unloaded. It can be used to handle showing and hiding content gracefully. It has to be added to the root of the scene that is being loaded (e.g. the root of the scene or prefab assigned to the `loadingScene` field or the root of a scene assigned to the `scenes` array)
323
+ - Add: `hide-loading-overlay` attribute to `<needle-engine>` webcomponent (use like `<needle-engine hide-loading-overlay>`). Custom loading requires a PRO license. See [all attributes in the documentation](https://engine.needle.tools/docs/reference/needle-engine-attributes.html).
324
+ - Fix: Loading overlay should not link to needle website anymore when using a custom logo
325
+ - Fix: Add safeguard to user assigned events on `<needle-engine>` for cases where methods are not defined in the global scope
326
+ - Change: Update loading message displayed in overlay while waiting for `ContextCreated` promise (e.g. in cases where a large environment skybox is being loaded)
327
+
328
+ ## [3.17.0] - 2023-09-20
329
+ - Fix: handle exception when loading GLB/glTF files with invalid lightmapping extension
330
+
331
+ ## [3.16.5] - 2023-09-18
332
+ - Change: Ignore shadow catcher and GroundProjectedEnvironment sphere when running OrbitControls.fit
333
+
334
+ ## [3.16.4] - 2023-09-16
335
+ - Add: help balloon message if user tries to open a local file without using a webserver
336
+ - Add: helpful console.log if user tries to add a component that is not a Needle Engine component
337
+
338
+ ## [3.16.3] - 2023-09-15
339
+ - Add: logo now respects prefer-reduced-motion, reduce and is immediately added instead of after 1s
340
+ - Fix: use default background color if GLB without camera and skybox is loaded
341
+ - Fix: ensure custom KTX2 loader is correctly initialized
342
+ - Fix: revert RectTransform change that broke hotspot rendering
343
+ - Change: adjust default backgroundBlurriness to match Blender defaults
344
+
345
+ ## [3.16.2] - 2023-09-15
346
+ - Add: mesh collider handling for invalid mesh data (non-indexed geometry)
347
+
348
+ ## [3.16.2-beta] - 2023-09-13
349
+ - Add: `camera.environmentIntensity` property
350
+ - Change: default background blurriness for fallback camera to match blender default
351
+
352
+ ## [3.16.1-beta] - 2023-09-13
353
+ - Change: if loaded glTF doesnt contain a camera we now also create the default OrbitControls (e.g. glTF exported from a Blender scene without a camera)
354
+
355
+ ## [3.16.0-beta] - 2023-09-13
356
+ - Add: `NEEDLE_lightmaps` entries `pointer` property can now also be a path to a local texture on disc instead of a texture pointer. This allows Blender EXR and HDR maps to be used at runtime until Blender export supports hdr and exr images to be stored inside the GLB
357
+
358
+ ## [3.15.0-beta] - 2023-09-13
359
+ - Fix: remove leftover console.log
360
+ - Fix: `DeviceFlag` component not detecting devices correctly for iOS safari
361
+ - Fix: loading glTF without any nodes
362
+ - Fix: `SceneSwitcher` bug where a scene would be added twice when switching in fast succession
363
+ - Fix: `Animation.isPlaying` bool was always returning false
364
+ - Fix: Handle typescript 5 decorator change to prevent VSCode error message (or cases where `experimentalDecorators` is off in tsconfig). See [179](https://github.com/needle-tools/needle-engine-support/issues/179)
365
+ - Fix: Improve internal lifecycle checks and component method calls
366
+ - Change: Improse ContextRegistry/NeedleEngine `ContextEvent` enum documentation
367
+ - Change: `<needle-engine skybox-image=` and `environment-image=` attributes are now awaited (loading overlay is still being displayed until loading the images have finished or failed loading)
368
+
369
+ ## [3.14.0-beta] - 2023-09-11
370
+ - Add: exposing `Needle.glTF.loadFromURL` in global scope to support loading of any glTF or GLB file with needle extensions and components when using the prebundled needle engine library (via CDN)
371
+ - Add: `context.update` method for cases where needle engine is now owning renderer/scene/camera and the update loop is managed externally
372
+ - Fix: animating custom shader property named `_Color`
373
+ - Fix: issue with wrong CSS setting in Needle Engine breaking touch scroll
374
+ - Change: `?stats` now logs renderer statistics every few seconds
375
+ - Change: simplify creating a new Needle Context that is controlled externally (not owning camera/renderer)
376
+
377
+ ## [3.13.0-beta] - 2023-09-08
378
+ - Add: ParticleSystem now also uses material color
379
+ - Add: `IEditorModificationListener.onAfterEditorModification` callback (requires `@needle-tools/editor-sync@2.0.1-beta`)
380
+ - Bump: Three.Quarks dependency to 0.10.6
381
+ - Update draco decoder include files
382
+
383
+ ## [3.12.2-beta] - 2023-09-04
384
+ - Add: option to override peerjs host and id (options) via `setPeerOptions`
385
+ - Fix: potential nullreference error in AudioListener
386
+ - Fix: Networking component cases where invalid localhost input with "/" causes url to contain "//" sometimes -> we can skip one "/" in this case and make it just work for users
387
+ - Fix: package.json `overrides` syntax for quarks three.js version
388
+ - Change: Screensharing bool to disable click to start networking + add deviceFilter to share(opts:ScreenCaptureOptions)
389
+
390
+ ## [3.12.1-beta] - 2023-09-04
391
+ - Fix: next.js/webpack useRapier setting
392
+ - Change: typestore is now globally registered
393
+
394
+ ## [3.12.0-beta.1] - 2023-08-28
395
+ - Fix: vite hot reload plugin to dynamically import needle engine to support usage in server-side rendering context
396
+
397
+ ## [3.12.0-beta] - 2023-08-28
398
+ - Add: Timeline api for modifying final timeline position and rotation values (implement `ITimelineAnimationCallbacks` and call `director.registerAnimationCallback(this)`)
399
+ - Change: Update three quarks particlesystem library to latest
400
+ - Fix: issue where onPointerExit was being called when cursor stops moving
401
+ - Fix: USDZ normal scale Z was incorrect
402
+ - Fix: Timeline Signal events using different casing than UnityEvent events
403
+ - Fix: issue where `isLocalNetwork` was falsely determined
404
+
405
+ ## [3.11.6] - 2023-08-15
406
+ - Remove beta
407
+
408
+ ## [3.11.6-beta] - 2023-08-14
409
+ - Fix: find exported animation by PropertyBinding
410
+ - Fix: USDZExporter was not exporting animation from Animation component but only from Animator
411
+ - Fix: potential issues with Animation component `clip.tracks` being null/undefined on USDZ export
412
+ - Fix: `loadstart` event not being called
413
+ - Fix: getComponent should always either the component or null (never undefined)
414
+ - Fix: dynamic import of websocket-ts package
415
+ - Fix: progressive texture loading wasn't properly awaited on USDZ export
416
+ - Fix: apply XR flags when exporting to QuickLook
417
+ - Fix: USDZ alpha clipping for materials without textures
418
+ - Fix: USDZ same material used in different ChangeMaterialOnClick resulted in duplicate behaviour names
419
+ - Change: set default WebARSessionRoot to "1" instead of "5"
420
+
421
+ ## [3.11.5-beta] - 2023-08-10
422
+ - Fix: components keep their gameObject references until `destroy` call of object's is completed when destroying an hierarchy. Previously child components might already be destroyed resulting in `myChildComponent.gameObject` being null when called in `onDestroy` from a parent component
423
+ - Fix: regression where timeline was not updating animations anymore if Animator had an empty AnimatorController assigned (without any states)
424
+ - Fix: `SceneSwitcher.switchScene` can now handle cases where it's called with a string url instead of an AssetReference
425
+ - Fix: issue where `onPointerMove` event was being called continuously on mobile after touch had already ended
426
+ - Fix: issue where GLTFLoader extensions where missing name field resulting in extensions not being properly registered (causing stencils to not work sometimes)
427
+ - Change: EventSystem raycast is now only performed when pointer has changed (moved, pressed, down, up) which should improve performance on mobile devices when raycasting on skinned meshes
428
+ - Change: peer and websocket-ts import asynchronously
429
+ - Remove: legacy include files
430
+
431
+ ## [3.11.4-beta] - 2023-08-04
432
+ - Fix: USDZExporter exception caused by programmatically calling `exportAsync` without quicklook button
433
+ - Fix: Timeline `evaluate` while being paused
434
+ - Bump three to fix issue with blend shape animation not being applied to Group objects (KHR_animation_pointer)
435
+
436
+ ## [3.11.3-beta] - 2023-08-03
437
+ - Change: improve styling of `<needle-engine>` DOM overlay element to allow positioning of child elements
438
+ - Fix: USDZExporter normal bias when normalScale is used
439
+ - Fix: Nullreference in SceneSwitcher when creating the component from code and calling `select` with a new scene url
440
+ - Fix: Quicklook button creation
441
+ - Fix: Particlesystem layermask not being respected
442
+
443
+ ## [3.11.2-beta] - 2023-07-31
444
+ - Fix: `ChangeMaterialOnClick` with multi material objects
445
+ - Fix: progressive textures regression
446
+
447
+ ## [3.11.1-beta] - 2023-07-31
448
+ - Add: `saveImage` utility method and make `screenshot` parameter optional
449
+ - Add: `loading-style="auto"`
450
+ - Fix: skybox image caching
451
+ - Fix: finding animation tracks for unnamed nodes when using the `autoplay` attribute
452
+ - Change: improved `<needle-engine>` default sizes
453
+ - Change: smoother src changes on `<needle-engine>` by only showing loading overlay when loading of files takes longer than a second
454
+ - Change: bump three version to 154.2 fixing KHR_animation_pointer not working with SkinnedMesh
455
+
456
+ ## [3.11.0-beta] - 2023-07-29
457
+ - Add: Support for blending between Timeline and Animator animation by fading out animation clips allowing to blend idle and animator timeline animations
458
+ - Fix: WebXR buttons style to stay inside `<needle-engine>` web component
459
+ - Fix: `OrbitControls.fitCamera` now sets rotation target to the center of the bounding box
460
+ - Fix: Timeline animation regression causing Animator not being enabled again after timeline has finished playing
461
+ - Fix: Timeline should re-enable animator when ended reached end with wrap-mode set to None
462
+ - Change: add `.js` extensions to all imports
463
+ - Change: allow overriding loading style in local develoopment
464
+ - Change: expose flatbuffer scheme helper methods
465
+
466
+ ## [3.10.7-beta] - 2023-07-28
467
+ - Fix: Camera using RenderTarget (RenderTexture) now applies clear flags before rendering (to render with solid color or another skybox for example)
468
+ - Fix: RenderTexture not working in production build due to texture being compressed
469
+ - Fix: RenderTexture warning `Feedback loop formed between Framebuffer and active Texture`
470
+ - Fix: Handle Subparticlesystem not being properly serialized avoiding runtime error
471
+ - Internal: add resource usage tracking of textures and materials
472
+
473
+ ## [3.10.6-beta] - 2023-07-27
474
+ - Fix: Timeline ActivationTrack behaves like `leave as is` when timeline is disabled (not changing the activate state anymore)
475
+ - Fix: Timeline Signal Track with duration of 0 and signal at time 0 does now trigger
476
+ - Fix: Timeline disabling or pausing does now activate animator again
477
+ - Fix: CustomShader Time node for BiRP
478
+ - Fix: ParticleSystem simulation mode local now correctly applies parent scale
479
+ - Change: Show warning for wrong usage of `@serializable` with `Object3D` where a `AssetReference` is expected
480
+ - Change: ParticleSystem shows warning when using unsupported scale mode (we only support local right now)
481
+
482
+ ## [3.10.5-beta] - 2023-07-25
483
+ - Fix: warning at runtime when methods called by `EventList`/`UnityEvent` are in the wrong format
484
+ - Fix: OrbitControls issue where double clicking/focus on screenspace UI would cause the camera to be moved far away
485
+ - Fix: `OrbitControls.fitCamera` where three `expandByObject` now requires an additional call to `updateWorldMatrix` [26485](https://github.com/mrdoob/three.js/issues/26485#issuecomment-1649596717)
486
+ - Change: replace some old `Texture.encoding` calls with new `Texture.colorSpace`
487
+ - Change: improve `PlayerSync` networking and add `onPlayerSpawned` event
488
+ - Remove: `RectTransform.offsetMin` and `offsetMax` because it's not implemented at the moment
489
+
490
+ ## [3.10.4-beta] - 2023-07-24
491
+ - Fix: activating UI elements in VR not applying transform
492
+
493
+ ## [3.10.3-beta] - 2023-07-21
494
+ - Fix: AnimatorController error caused by missing animationclip
495
+ - Fix: next.js webpack versions plugin
496
+ - Fix: Occasional `failed to load glb` error caused by not properly registering `KHR_animation_pointer` extension
497
+ - Fix: UI issue where Text in worldspace canvas would be visible at wrong position for a frame
498
+ - Fix: UI issue where Text would not properly update when switching between text with and without richtext
499
+ - Fix: UI issue where Image would not automatically update when setting texture from script
500
+ - Fix: issue where RenderTexture would not be cleared before rendering
501
+ - Change: make `addEventListener` attribute on `<needle-engine>` optional
502
+
503
+ ## [3.10.2-beta] - 2023-07-19
504
+ - Fix: iOS double touch / input
505
+ - Change: minor WebXRController refactor moving functionality into separate methods to be patchable
506
+
507
+ ## [3.10.1-beta] - 2023-07-18
508
+ - Fix: prebundled package
509
+ - Fix: runtime license check
510
+ - Fix: Input being ignored after first touch
511
+ - Fix: SpatialTrigger, reverting previous change where we removed the trigger arguments
512
+
513
+ ## [3.10.0-beta.2] - 2023-07-18
514
+ - Fix: prebundled package by locking vite to <= 4.3.9
515
+
516
+ ## [3.10.0-beta.1] - 2023-07-17
517
+ - Fix: prebundled package
518
+
519
+ ## [3.10.0-beta] - 2023-07-17
520
+ - Fix: Text clipping in VR
521
+ - Fix: AR overlay `quit-ar` button not being properly detected
522
+ - Fix: Timeline animation track post-extrapolate set to `Hold`
523
+ - Fix: iOS touch event always producing double click due to not properly ignoring mouse-up event
524
+ - Change: DragControls to automatically add ObjectRaycaster if none is found in parent hierarchy
525
+ - Change: DragControls now expose options to hide gizmo and to disable view-dependant behaviour
526
+
527
+ ## [3.10.0-alpha] - 2023-07-15
528
+ - Change: WebXR component now automatically adds a WebARSessionRoot on entering AR when no session root was found in the scene
529
+ - Change: `@syncField` can now sync objects by re-assigning the object to the same field (e.g. `this.mySyncedObject = this.mySyncedObject` to trigger syncing)
530
+ - Change: log error when `@syncField` is being used in unsupported types (currently we only support syncField being used inside Components directly)
531
+ - Change: improve message when circular scene loading is detected and link to documentation page
532
+
533
+ ## [3.9.1-alpha] - 2023-07-14
534
+ - Add: SceneSwitcher now uses scene name by default. Can be turned off in component
535
+ - Fix: ParticleSystem lifetime not respecting simulation speed
536
+ - Fix: ParticleSystem prewarm with simulation speed and improved calculation of how many frames to simulate
537
+ - Fix: Exit AR and Exit VR now restores previous field of view
538
+ - Change: close AR button adjusted for better visibility on bright backgrounds
539
+ - Change: bump @types/three to 154
540
+
541
+ ## [3.9.0-alpha.1] - 2023-07-12
542
+ - Add: vite plugin to clamp version to `<= 4.3.9` since 4.4 and above currently cause issues with typescript decorators, [vite#13736](https://github.com/vitejs/vite/issues/13736)
543
+
544
+ ## [3.9.0-alpha] - 2023-07-12
545
+ - Add: `<needle-engine>` web component slot support, AR DOM overlay can now be added by simple adding HTML elements inside the `<needle-engine></needle-engine>` web component. Fixing [164](https://github.com/needle-tools/needle-engine-support/issues/164)
546
+ - Add: Basic USDZ exporting of UI shadow hierarchies as mesh hierarchies for UI in Quicklook AR support
547
+ - Fix: WebXR Rig not being rotated as expected when setting up in Unity [129](https://github.com/needle-tools/needle-engine-support/issues/129)
548
+ - Fix: WebXR VR button click, hover is still not working
549
+ - Fix: Issue with Lightmaps breaking when switching back and forth between multiple lightmapped scenes
550
+ - Change: Button click should not invoke with middle or right mouse
551
+
552
+ ## [3.8.0-alpha] - 2023-07-11
553
+ - Update three.js to 154 (latest)
554
+ - Bump postprocessing dependency
555
+ - Add: `this.context.xrCamera` property
556
+ - Fix: screenspace canvas should not run in VR
557
+ - Fix: OrbitControls should not update while in AR and touching the screen
558
+ - Change: allow using vanilla three.js by dynamically importing KHR_animation pointer api
559
+
560
+ ## [3.7.7-beta] - 2023-07-11
561
+ - Fix: LookAt copyTarget + keepUpDirection
562
+ - Fix: DragControls not working on first touch on mobile / clone input event
563
+ - Fix: Renderer assigning renderOrder in URP on SkinnedMesh with multi-material
564
+
565
+ ## [3.7.5-beta] - 2023-07-07
566
+ - Fix: USDZExporter should not show Needle banner when branding information is empty (pro only)
567
+ - Fix: USDZExporter sessionroot scale should be applied to object to be exported when the root is in the parent
568
+ - Fix: DropListener localhost without explicit backend url + dropping file caused exceptions
569
+ - Fix: instanceof error that tsc complained about
570
+ - Change: Fonts handle semibold variant
571
+ - Internal: DropListener re-use addFiles method, remove old code
572
+ - Internal: Bump tools package dependency
573
+
574
+ ## [3.7.5-alpha] - 2023-07-06
575
+ - Add: SignalEvents support for arguments
576
+ - Fix: SpatialTrigger Unity events removing extra (unexpected) event arguments
577
+ - Fix: safeguard `AudioSource.play` to not fail when `clip` argument is not a string
578
+ - Change: change Timeline signal event trigger time to use last frame deltatime with padding to estimate if the event should fire
579
+
580
+ ## [3.7.4-alpha] - 2023-07-05
581
+ - Change: targetFps, use timestamp that we get from the animation callback event because it is more reliable on Firefox
582
+
583
+ ## [3.7.3-alpha] - 2023-06-26
584
+ - Add: physics gravity to `IPhysicsEngine` interface to be available via `this.context.physics.engine.gravity`
585
+ - Fix: USDZ text alignment
586
+
587
+ ## [3.7.2-alpha] - 2023-06-23
588
+ - Fix: Nullref in SpectatorCamera.onDestroy when camera wasnt active
589
+
590
+ ## [3.7.1-alpha] - 2023-06-22
591
+ - Add: ChangeMaterialOnClick `fadeDuration` option (Quicklook only)
592
+ - Change: USDZ export now enforces progressive textures to be loaded before export
593
+ - Change: USDZ export callbacks for `beforeCreateDocument` and `afterCreateDocument` can now run async
594
+ - Fix: USDZExporter quicklook button
595
+ - Fix: USDZExporter Quicklook button not being removed when exporter gets removed or disabled
596
+ - Fix: USDZ ChangeMaterialOnClick clear cache before exporting, this caused USDZ export to fail on third export in USDZ sample scene
597
+ - Fix: Engine loading bar not being updated
598
+ - Fix: USDZ text linebreaks
599
+ - Fix: UI font name style check. Unknown font styles are now not touched anymore (e.g. font name ending with `-Medium`)
600
+
601
+ ## [3.7.0-alpha] - 2023-06-21
602
+ - Change: Move HTML elements into <needle-engine> shadow dom
603
+
604
+ ## [3.6.13] - 2023-06-21
605
+ - Add: static Context.DefaultTargetFrameRate
606
+ - Add: option to prevent USDZExporter from creating the button
607
+ - Fix: `@prefix` handling promise resolving to false
608
+
609
+ ## [3.6.12] - 2023-06-20
610
+ - Update Readme
611
+
612
+ ## [3.6.11] - 2023-06-19
613
+ - Add: UI InputField API for clear, select and deselect from code
614
+ - Change: LODGroup serialization
615
+ - Fix: mobile debug console should be above loading overlay if error happens during loading
616
+ - Fix: LODGroup not being able to resolve renderer reference
617
+ - Fix: Particles direction being wrong in some causes with scaled parent and scaled particle system
618
+ - Fix: Particles subsystem emitter position being wrong when main particle system was scaled
619
+ - Fix: Bundled library failing to load due to undeclared variable
620
+ - Fix: UI InputField hide html element
621
+ - Fix: Joining empty room name is not allowed anymore
622
+ - Fix: Clamp Room name length to 1024 chars
623
+
624
+ ## [3.6.10] - 2023-06-14
625
+ - Fix: Text with richText not updating properly
626
+ - Internal: Change font style parsing
627
+
628
+ ## [3.6.9] - 2023-06-12
629
+ - Fix: Particles SizeOverLifetime module for mesh particles
630
+
631
+ ## [3.6.6] - 2023-06-12
632
+ - Internal updates
633
+
634
+ ## [3.6.5] - 2023-06-09
635
+ - Add: NestedGltf `loaded` event being raised when the glb has been loaded
636
+ - Add: AnimationCurve cubic interpolation support
637
+ - Change: set targetFramerate to 60 by default (in `context.targetFrameRate`)
638
+ - Fix: USDZ metalness/roughness potentially being undefined when exporting Unlit materials
639
+ - Fix: Handle exception when loading components due to bug when using meshopt compression and material count changes
640
+ - Fix: ColorAdjustments setting tonemapping exposure to 0 when exposure parameter override is off [824]
641
+
642
+ ## [3.6.4] - 2023-06-02
643
+ - Add: `ObjectUtils.createPrimitive` for cube and sphere
644
+ - Change: expose `ObjectUtils`
645
+ - Fix: BoxGizmo component
646
+ - Fix: vite copy plugin when needle.config.json "assets" directory starts with "/"
647
+
648
+ ## [3.6.3] - 2023-06-01
649
+ - Change: OrbitControls apply settings in update
650
+ - Fix: Rapier stripping not being respected
651
+
652
+ ## [3.6.2] - 2023-06-01
653
+ - Fix: wrong UI z-offset in some cases
654
+ - Fix: Particle velocity over lifetime not using world rotation
655
+ - Fix: Particle burst being played twice
656
+ - Fix: Particle `playOnAwake` option not being respected
657
+
658
+ ## [3.6.2-beta] - 2023-05-31
659
+ - Add: `setAllowOverlayMessages` to explictly disable overlay messages without url parameter
660
+ - Add: allow larger textures for USDZ generation
661
+ - Fix: nested gltf with disposing of resources leading to broken files
662
+
663
+ ## [3.6.1-beta] - 2023-05-29
664
+ - Fix: removing `<needle-engine>` from DOM does now dispose the context properly and unsubscribes from browser events. Add `keep-alive` attribute to disable disposing
665
+
666
+ ## [3.6.0-beta] - 2023-05-29
667
+ - Add callbacks for ContextClearing
668
+ - Add: [n8AO postprocessing effect](https://github.com/N8python/n8ao) (Screenspace Ambient Occlusion) support
669
+ - Add: option to disable automatic poster generation (use `noPoster` in options in vite.config)
670
+ - Fix: `<needle-engine>` without any src should setup an empty scene
671
+ - Change: `OrbitControls.fit` now handles empty scene and ignores GridHelper
672
+ - Change: TimelineAudio disconnect audio in onDestroy
673
+ - Change: Ensure PostProcessing VolumeParameters are initialized
674
+ - Change: Improve memory allocs and disposing of resources
675
+ - Change: Update three.js fixing GLTFLoader memory leak
676
+
677
+ ## [3.6.0-alpha.3] - 2023-05-27
678
+ - Add: `auto-rotate` attribute
679
+ - Add: `autoplay` attribute
680
+ - Change: await loading of `skybox-image` and `environment-image`
681
+ - Change: do not clear renderer when switching `src` attribute
682
+
683
+ ## [3.6.0-alpha.2] - 2023-05-27
684
+ - Fix: error in vite plugin when `meta.json` was missing
685
+ - Fix: three.js OrbitControls causing look direction to not work anymore due to forcing an update in the constructor
686
+
687
+ ## [3.6.0-alpha] - 2023-05-27
688
+ - Add: Changing `src` attribute now does scene cleanup and loads new files
689
+ - Add: `skybox-image` and `environment-image` attributes, allow changing both at runtime
690
+ - Fix: error display overlapping in cases where somehow engine is imported twice
691
+ - Fix: logo overlay should only show when loading is done, change error during render loop message
692
+ - Fix: OrbitControls camera fitting now done once before rendering when loaded glb does not contain any camera
693
+ - Fix: Vite client plugin imports
694
+ - Change: Context now handle errors during initializing or when starting render loop
695
+ - Change: ContextRegistry exported as NeedleEngine and export hasIndieLicense function
696
+ - Change: Remove need to manually define global engine variables in cases without bundler or Needle plugins
697
+
698
+ ## [3.5.13-beta.1] - 2023-05-26
699
+ - Change: embed logo svg and avoid loading it
700
+
701
+ ## [3.5.13-beta] - 2023-05-26
702
+ - Change: OrbitControls camera fitting improved
703
+
704
+ ## [3.5.12-beta] - 2023-05-24
705
+ - Add: option to toggle collider visibility from script via `this.context.physics.engine.debugRenderColliders`
706
+ - Change: engine.physics raycast doesnt need any parameters now anymore
707
+ - Change: OrbitControls default target should be related to distance to center (if nothing is hit by raycast)
708
+ - Fix: EventList object and component argument deserialization
709
+
710
+ ## [3.5.11-beta] - 2023-05-22
711
+ - Add: `@registerType` decorator that can be added to classes for registration in TypeStore. Currently only useful for cases outside of Unity or Blender for Hot Reload support
712
+ - Fix: `Component.name` should return Object3D name
713
+ - Fix: GameObject static methods generic
714
+ - Fix: Logo animation causing browser scrollbar to appear
715
+
716
+ ## [3.5.10-beta] - 2023-05-22
717
+ - Add: SpriteRenderer now exposes shadow casting and transparency options
718
+ - Fix: vite plugin issue caused by missing src/generated/meta
719
+ - Fix: nullref in debug_overlay, typo in physics comment
720
+ - Fix: disabling collider with rigidbody component did cause an error in rapier
721
+ - Fix: HTMLElement css, cleanup loading element, move logo into html element
722
+ - Fix: GameObject.addComponent now takes Object3D type too
723
+ - Fix: loading overlay not hiding when <needle-engine> src changes
724
+ - Change: OrbitControls now sets target to 10 meter by default if nothing is assigned or hit in the scene (previously it was set to 1 meter)
725
+ - Change: fit camera to scene after loading when no camera is present in file
726
+
727
+ ## [3.5.9-beta.2] - 2023-05-20
728
+ - Add: WebXRPlaneTracking should initiate room setup on Quest when no tracked planes are found
729
+
730
+ ## [3.5.9-beta.1] - 2023-05-19
731
+ - Fix: SceneSwitcher should ignore swipe events when `useSwipe` is disabled
732
+
733
+ ## [3.5.9-beta] - 2023-05-19
734
+ - Add: Support for progressive texture loading for custom shaders
735
+ - Fix: react-three-fiber template
736
+
737
+ ## [3.5.9-alpha.2] - 2023-05-18
738
+ - Add: needle-engine attributes documentation
739
+ - Change: assign main camera during gltf component deserialization when no camera is currently assigned
740
+
741
+ ## [3.5.9-alpha] - 2023-05-18
742
+ - Add: add nextjs plugin to handle transpiling and defines
743
+ - Change: expose USD types to make custom behaviours, add proximityToCameraTrigger
744
+ - Fix: loading element position to absolute to avoid jumps when added to e.g. nextjs template
745
+ - Fix: texcoords werren't quicklook compatible in ThreeUSDZExporter
746
+ - Fix: `LookAt` component with invertForward option was flipped vertically in QuickLook
747
+
748
+ ## [3.5.8-alpha] - 2023-05-16
749
+ - Add NeedleConfig `baseUrl` for codegen
750
+ - Change: AudioSource should pause in background on mobile
751
+ - Fix: logo svg import for nextjs
752
+ - Fix: particle system playOnAwake
753
+
754
+ ## [3.5.7-alpha] - 2023-05-15
755
+ - Add: Initial support for text in USDZ
756
+ - Change: add generic to `networking.send` for validation of model
757
+ - Change: SyncedRoom, expose tryJoinRoom method + remove error thrown when roomName.length <= 0, join room in onEnable
758
+ - Fix: setting position on UI object (RectTransform) works again
759
+ - Fix addressable instantiate options called with `{ position: .... }` and without a parent, it should then still take the scene as the default parent
760
+ - Fix: WebXR `arEnabled` option
761
+ - Fix: Worldspace canvas always being rendered on top
762
+ - Fix: CanvasGroup alpha not being applied to text
763
+
764
+ ## [3.5.6-alpha] - 2023-05-12
765
+ - Fix defines for vanilla JS usage
766
+ - Fix CanvasGroup not overriding alpha
767
+ - Remove some spurious logs
768
+ - Add `addComponent` method to this.gameObject
769
+ - Add "light" version on bundle processing
770
+
771
+ ## [3.5.5-alpha.1] - 2023-05-11
772
+ - Fix: declare missing defines for pre-bundled engine
773
+
774
+ ## [3.5.5-alpha] - 2023-05-11
775
+ - Add: getWorldDirection
776
+ - Add: needle.config.json `build.copy = []` to copy files on build from arbitrary locations into the dist folder for example:
777
+ ```md
778
+ "build": {
779
+ "copy": [
780
+ "cards" <-- can be relative or absolute folder or file. In this case the folder is named "cards" in the web project directory
781
+ ]
782
+ }
783
+ ```
784
+ - Add ip and location utils
785
+ - Change: add buffers for getWorldQuaternion, getWorldScale util methods
786
+ - Change: animatorcontroller should only log "no-action" warning when in debug mode
787
+ - Fix: apply and check license
788
+
789
+ ## [3.5.4-alpha] - 2023-05-11
790
+ - Fix: wrong serialization check if a property is writeable
791
+ - Fix: mark UI dirty when text changes
792
+ - Change: allow UI graphic texture to be set to null to remove any texture/image
793
+ - Change: rename USDZExporter `overlay` to `branding`
794
+
795
+ ## [3.5.3-alpha.1] - 2023-05-10
796
+ - Fix: wrong check in serialization causing particles to break (introduced in 3.5.3-exp)
797
+
798
+ ## [3.5.3-alpha] - 2023-05-10
799
+ - Add: `IPointerMoveHandler` interface providing `onPointerMove` event while hovered
800
+ - Add: USDZ AudioSource support and PlayAudioOnClick
801
+ - Change: balloon messages can now loop
802
+ - Change: pointer event methods are now lowercase
803
+ - Change: allow `moveComponent` to be called with component instance that was not added to a gameObject before (e.g. created in global scope and not using the `addComponent` methods)
804
+ - Fix: input pointer position delta when browser console is open
805
+ - Fix: GameObject.destroy nullcheck
806
+ - Fix: typescript error because of import.meta.env acccess
807
+ - Fix: issue where added scenelighting component by extension caused animation binding to break
808
+ - Fix: UI layout adding objects dynamically by setting anchorMinMax
809
+ - Fix: Prevent exception during de-serialization when implictly assigning value to setter property
810
+ - Fix: screenspace canvas being rendered twice when using explicit additional canvas data component
811
+ - Fix: EventSystem cached state of hovered canvasgroup not being reset causing no element to receive any input anymore after having hovered a non-interactable canvasgroup once
812
+ - Fix: empty array being returned in `GameObject.getComponents` call when the passed in object was null or undefined
813
+
814
+ ## [3.5.2-alpha] - 2023-05-09
815
+ - Add: SceneSwitcher preload feature
816
+ - Change: interactive behaviours for QuickLook are on by default now
817
+ - Fix: SetActiveOnClick toggle for QuickLook
818
+ - Fix: USDZ texture transform export works in more cases
819
+
820
+ ## [3.5.1-alpha] - 2023-05-09
821
+ - Fix: reflection probes not working anymore
822
+ - Fix: false RectTransform return breaking some cases with reparenting
823
+ - Fix: RectTransform mark dirty when anchors change (due to animation for example)
824
+
825
+ ## [3.5.0-alpha] - 2023-05-08
826
+ - Change: allow tree-shaking rapier physics
827
+ - Fix various USDZ export issues:
828
+ - fix UV2 for occlusion maps (paves the way for lightmaps), had to be texCoord2f[] instead of float2[]
829
+ - fix missing MaterialBindingAPI schema
830
+ - fix normal scale for non-ARQL systems (ARQL doesn't support it though, but needed for other viewers)
831
+ - fix input:scale for textures not being used if it's (1,1,1,1)
832
+ - fix normal maps not being in raw colorSpace
833
+
834
+ ## [3.4.0-alpha] - 2023-05-05
835
+ - Add: low-level USD Actions/Triggers API for building complex interactions for iOS devices
836
+ - Add: high-level USDBehaviours components: ChangeMaterialOnClick, PlayAnimationOnClick, SetActiveOnClick, HideOnStart
837
+ - Add: LookAt component now supports iOS AR
838
+ - Add: more settings for LookAt
839
+ - Add: support for Horizontal- and VerticalLayoutGroup (UI)
840
+ - Fix: `setWorldScale` was setting incorrect scale in some cases
841
+ - Fix: WebXR Image Tracking now works with WebARSessionRoot / rig movements
842
+ - Fix: vite reload only when files inside "assets" change and only if its a known file type
843
+
844
+ ## [3.3.0-alpha] - 2023-05-02
845
+ - Add: AssetReference can now handle scene reference
846
+ - Add: UI update with support for screenspace UI, anchoring, pivots, image outline effect, image pixelPerUnit multiplier
847
+ - Add: basic LookAt component
848
+ - Add: basic UI outline support + handle builtin Knob image
849
+ - Add: WebXRImageTracking ability to directly add a tracked object to an image marker
850
+ - Fix: OrbitControls should only update when being the active camera
851
+ - Fix: UI input ignored browser "mouseDown" for each "touchUp" event
852
+ - Fix: OrbitControls requiring additional tab after having clicked on UI
853
+ - Fix: OrbitControls only being deactivated when down event starts on UI element
854
+ - Fix: loading bar text not being decoded (displayed e.g. `%20` for a space)
855
+ - Fix: TransformGizmo not working anymore
856
+
857
+ ## [3.2.15-alpha] - 2023-04-28
858
+ - Add: SceneSwitcher.select(AssetReference) support to be invoked from a UnityEvent with an object reference (must be an asset)
859
+ - USDZExporter: change exported usdz name, remove needle name for license holders
860
+
861
+ ## [3.2.14-alpha] - 2023-04-28
862
+ - Add: OpenURL component
863
+ - Change: Implictly add Raycaster to scene if it is not found.
864
+ - Fix: USDZ export breaking if the object name is just a number
865
+
866
+ ## [3.2.13-alpha] - 2023-04-27
867
+ - Add: USDZExporter editor shows warning if no objects are assigned and exposes quicklook overlay texts
868
+ - Add: USDZExporter callToActionButton can now invoke url to open
869
+ - Add: SceneSwitcher can now use history without updating the url parameter
870
+ - Fix: Fix vite html transform plugin
871
+
872
+ ## [3.2.12-alpha] - 2023-04-26
873
+ - Fix: issue where removing an object from the scene would disable all its components
874
+
875
+ ## [3.2.11-alpha] - 2023-04-25
876
+ - Fix: lighting settings being implictly switched (enabled/disabled) when using SyncCamera / any loaded prefab at runtime
877
+
878
+ ## [3.2.10-alpha] - 2023-04-25
879
+ - Fix: Remove log in `Animator.SetTrigger`
880
+ - Fix: GroundEnv radius property setting wrong value internally
881
+ - Fix: Apply license to unnamed local vite chunk files
882
+
883
+ ## [3.2.9-alpha] - 2023-04-23
884
+ - Fix: VideoPlayer not restarting when enable/disable being toggled
885
+ - Fix: Builtin serializer for URLs `@serializable(URL)` should ignore empty strings
886
+ - Change: set `enabled` to true before calling `onEnable`
887
+ - Change: VideoPlayer now deferrs loading of the video until the video should play
888
+ - Change: ScreenSharing component now changes cursor pointer on hover to indicate that is can be clicked
889
+
890
+ ## [3.2.8-alpha] - 2023-04-23
891
+ - Add: this.context.getPointerUsed(index) and setPointerUsed(index)
892
+ - Change: physics now by default receives collisions/triggers between two colliders that are set to trigger
893
+
894
+ ## [3.2.7-alpha] - 2023-04-22
895
+ - Change: ambient light does now look closer to Unity ambient light
896
+ - Fix: guard calls to component event methods when the component or object has been destroyed
897
+
898
+ ## [3.2.6-alpha] - 2023-04-21
899
+ - Add: SceneSwitcher has now option to automatically set scene environment lighting
900
+ - Fix: Issue caused by NeedleEngineHTMLElement import from SceneSwitcher
901
+ - Change: Allow component to be disabled in awake (e.g. calling `this.enabled = false` in awake callback)
902
+ - Change: Export more types e.g. AnimatorStateMachineBehaviour
903
+ - Change: VolumeParameter.value should return rawValue (unprocessed)
904
+ - Change: rename "rendererData" to "sceneLighting"
905
+ - Change: scene lighting must now be enabled explictly when additional scene are being loaded, use `this.context.sceneLighting.enable(...)` with the AssetReference or sourceId of the scene you want to enable
906
+
907
+ ## [3.2.5-alpha.1] - 2023-04-20
908
+ - Change: export more types
909
+
910
+ ## [3.2.5-alpha] - 2023-04-20
911
+ - Add: WebXRPlaneTracking
912
+ - Add: `<needle-engine loading-style="light">` for a brighter loading screen
913
+ - Fix: InputField.onEndEdit should send string
914
+ - Change: move webxr into subfolder
915
+ - Change: export more types
916
+
917
+ ## [3.2.4-alpha.2] - 2023-04-20
918
+ - Change: export more types
919
+
920
+ ## [3.2.4-alpha] - 2023-04-20
921
+ - Change: export more types (e.g. `syncField`)
922
+ - Fix: PlayerSync
923
+ - Fix: Environment lighting
924
+ - Fix: license check
925
+
926
+ ## [3.2.3-alpha] - 2023-04-20
927
+ - Fix: VideoPlayer AudioOutput.None should mute video
928
+ - Fix: SpriteRenderer applies layer from current object (e.g. for IgnoreRaycast)
929
+
930
+ ## [3.2.2-alpha] - 2023-04-19
931
+ - Fix: issue where the environment lighting would be falsely disabled
932
+ - Change: minor improvements to initial state of the SceneSwitcher
933
+
934
+ ## [3.2.1-alpha] - 2023-04-19
935
+ - Change: SceneSwitcher clamp option
936
+ - Change: timeline signals without bound receiver are now invoked globally on all active SignalReceivers with the specific signal asset
937
+ - Change: internal check preventing errors during initialization for projects where the package is falsely added multiple times to the project by importing from internal types directly instead of `from "@needle-tools/engine"`
938
+
939
+ ## [3.2.0-alpha] - 2023-04-19
940
+ - Add: built-in SceneSwitcher component
941
+ - Change: VideoPlayer.playInBackground is set to true by default
942
+ - Change: Screensharing should continue playback of receiving video when the sending tab becomes inactive
943
+ - Change: log additional information when button events can not be resolved
944
+ - Change: AudioSource.playInBackground set to true by default to allow audio playback when tab is not active
945
+ - Change: syncField can now take function argument
946
+ - Change: Renderer.sharedMaterials can now be iterated using `for(const mat of myRenderer.sharedMaterials)`
947
+ - Fix: lightmap not being resolved anymore
948
+ - Fix: environment lighting / reflection not switching with scenes
949
+ - Fix: progressive texture did not check if the texture was disposed when switching to an unloaded scene resulting in textures being black/missing
950
+ - Fix: timeline does enable animator again when pausing/stopping allowing to switch to e.g. idle animations controlled by an AnimatorController
951
+ - Fix: changing material on renderer with lightmapping will now re-assign the lightmap to the new material
952
+
953
+ ## [3.1.0-alpha.2] - 2023-04-18
954
+ - Fix: UI font style resolving
955
+
956
+ ## [3.1.0-alpha.1] - 2023-04-18
957
+ - Fix: RemoteSkybox not being able to load locally reference dimage
958
+ - Fix: ParticleSystem sphere scale not being applied anymore
959
+ - Fix: WebXRImageTracking url not being resolved
960
+
961
+ ## [3.1.0-alpha] - 2023-04-18
962
+ - Add: `ImageReference` type, use to export textures to external files and load them as `img`, `texture` or to get the binary data for e.g. image tracking
963
+ - Add: api for `WebXRImageTracking`, this does currently require the ``webxr-incubations`` flag to be enabled
964
+ - Add: TiltShift postprocessing effect
965
+ - Add: AnimatorController support for negative speed
966
+ - Change: ParticleSystem now has a reset method to allow for clearing state, stop has options for calling stop on Sub-Emitters and to clear already emitted particles
967
+
968
+ ## [3.0.1-alpha.5] - 2023-04-17
969
+ - Add: `this.context.xrFrame` to get access to the current XRFrame from every lifecycle event method
970
+ - Change: license check is now baked
971
+ - Change: Rename "EngineElement" to NeedleEngineHTMLElement
972
+ - Change: disable "Enable Keys" on OrbitControls by default as it conflicts with so many things
973
+ - Fix: ParticleSystem circle shape
974
+ - Fix: balloon messages are now truncated to 300 characters
975
+ - Fix: Screensharing connection setup and start of video playback
976
+ - Fix: Screensharing muting now local audio
977
+ - Fix: AudioSource does not play again when it did finish and the user switches tabs
978
+ - Fix: ParticleSystem prewarm
979
+ - Fix: ParticleSystem minMax size, it's currently not supported and should thus not affect rendering
980
+
981
+ ## [3.0.1-alpha.4] - 2023-04-12
982
+ - Bump with changed package.json
983
+
984
+ ## [3.0.1-alpha.3] - 2023-04-11
985
+ - Fix: WebXR all layers should be visible
986
+ - Fix: WebXRController raycast on all layers
987
+ - Fix: issue with mouse vector position being re-used causing delta position being falsely modified
988
+ - Change: store static Context.Current in globalThis
989
+ - Change: alias resolve imports `@needle-tools/engine/engine` and `@needle-tools/engine/src` to lib folder
990
+
991
+ ## [3.0.0-alpha] - 2023-04-05
992
+ - Add: vite alias plugin
993
+ - Add: vite copyfiles plugin
994
+ - Fix: lib sourcemap path
995
+ - Fix: Postprocessing not being applied
996
+ - Internal: needle vite plugin names now all start with "needle-"
997
+
998
+ ## [2.67.16] - 2023-04-13
999
+ - Add: static ``AudioTrackHandler.dispose`` for disposing loaded audio data in timeline
1000
+ - Fix: issue where only the first audio clip would be played in a timeline with multiple audio clips of the same file
1001
+ - Change: Text should not change font name casing
1002
+ - Change: Timeline does now wait for audio and first interaction by default (if any audio track is being used, this can be disabled by setting `waitForAudio` to false on the PlayableDirector component)
1003
+ - Change: postprocessing DOF exposes resolution scale and takes device pixel density into account. By default the resolution is slightly lowered on mobile devices
1004
+
1005
+ ## [2.67.14-pre] - 2023-04-12
1006
+ - Change: WebXR camera now copies culling mask from main camera
1007
+ - Fix: WebXRController raycast on all layers
1008
+ - Fix: WebXR all layers should be visible
1009
+ - Fix: set pointer position properly on mouse down to prevent jumps in delta
1010
+ - Fix: respect IgnoreRaycast in physics raycasts
1011
+ - Fix: issue with CircularBuffer where sometimes the same item was returned twice
1012
+ - Fix: boxcolliders with scale 0 (such as adding a BoxCollider to a plane) resulted in flipped normals being returned from raycasts
1013
+ - Fix: parenthesis error in CharacterController
1014
+ - Fix: issue with mouse vector position being re-used causing delta position being falsely modified
1015
+
1016
+ ## [2.67.13-pre] - 2023-04-11
1017
+ - Fix: Animation component settings
1018
+ - Fix: instanced renderer matrix auto update
1019
+ - Change: enable shadow casting in instanced rendering when any mesh has castShadow enabled
1020
+ - Change: export ui pointer events
1021
+
1022
+ ## [2.67.12-pre] - 2023-04-09
1023
+ - Add: SSAO color and luminance influence options
1024
+ - Change: postprocessing now exposes effect order
1025
+
1026
+ ## [2.67.11-pre] - 2023-04-08
1027
+ - Add: some checks for WebGPURenderer
1028
+
1029
+ ## [2.67.10-pre] - 2023-04-06
1030
+ - Add vite copy files build plugin
1031
+ - Fix: PostProcessing not applying effects when enabled for the second time as well as removing earlier hack
1032
+ - Change: update user-select/touch-action in project templates style.css to prevent accidental iOS selection of canvas
1033
+ - Change: disable text selection on Needle logo
1034
+ - Bump three version, see changes below
1035
+
1036
+ ### Three
1037
+ - change USDZExporter: pass writer into onAfterHierarchy callback, move onAfterHierarchy callback after scene hierarchy write
1038
+ - fix USDZExporter: fix exception when trying to process render targets
1039
+ - fix WebXRManager: Correctly update the user camera when it has a parent with a non-identity transform.
1040
+
1041
+ ## [2.67.9-pre] - 2023-04-03
1042
+ - Change: SpriteRenderer material to transparent
1043
+ - Bump: tools package dependency
1044
+
1045
+ ## [2.67.8-pre.1] - 2023-03-31
1046
+ - Fix: exception when using BoxColliders caused by error in initial activeInHierarchy state assignment
1047
+
1048
+ ## [2.67.8-pre] - 2023-03-31
1049
+ - Fix: vite plugins must have a name
1050
+ - Fix: activeInHierarchy update when key is undefined (e.g. in r3f context)
1051
+ - Change: cleanup r3f component
1052
+
1053
+ ## [2.67.7-pre] - 2023-03-30
1054
+ - Add: time smoothed delta time
1055
+ - Add this.context.targetFrameRate
1056
+ - Fix: enum / type conversion errors
1057
+ - Fix: CanvasGroup overriding text `raycastTarget` state in event handling causing problems with button events
1058
+ - Fix: Text z-fighting from invisible ThreeMeshUI frame object
1059
+ - Change: Canvas `renderOnTop` moved into separate render call to avoid ordering issues and postprocessing affecting overlay UI
1060
+ - Internal: Move context from engine_setup to engine_context
1061
+
1062
+ ## [2.67.6-pre] - 2023-03-30
1063
+ - Fix: Postprocessing enforce effect order
1064
+ - Change: gizmos should not render depth
1065
+
1066
+ ## [2.67.5-pre] - 2023-03-30
1067
+ - Fix: issue where postprocessing did not check composer type (e.g. when using threejs composer instead of pmndrs package)
1068
+ - Change: Postprocessing now uses stencil layers
1069
+
1070
+ ## [2.67.4-pre] - 2023-03-28
1071
+ - Change: Postprocessing effects value mapping / settings improved (Bloom & ColorAdjustments)
1072
+
1073
+ ## [2.67.3-pre] - 2023-03-28
1074
+ - Fix: issue where progressive textures would not be applied correctly anymore
1075
+ - Fix: Timeline audio loading on firefox
1076
+ - Fix: issue where progressive textures with reflection probes wouldn't be applied correctly anymore
1077
+
1078
+ ## [2.67.2-pre] - 2023-03-28
1079
+ - Change: calculations for rect transform animation offsets
1080
+ - Change: Warn if engine element src contains a url without .glb or .gltf
1081
+
1082
+ ## [2.67.1-pre] - 2023-03-28
1083
+ - Fix: PostProcessing failing to be re-applied after exit XR
1084
+
1085
+ ## [2.67.0-pre] - 2023-03-27
1086
+ - Add: `this.gameObject.destroy` as a shorthand for `GameObject.destroy(this.gameObject)`
1087
+ - Add: support for camera `targetTexture` to render into a RenderTexture (when assigned to e.g. the main camera in Unity)
1088
+ - Add: utility methods to toplevel engine export (for example `getParam`, `delay`, `isMobileDevice`, `isQuest`)
1089
+ - Add: first version of usage tracking of materials, textures and meshes. This is off by default and can be enabled using the `?trackusage` url parameter. When enabled `findUsers` can be used to find users of an object.
1090
+ - Add: pmnders postprocessing package
1091
+ - Change: improved PlayerState component and added event for PlayerState events for owner change (to properly listen to first assignment)
1092
+ - Change: `AssetReference.unload` now calls dispose to free all resources
1093
+ - Change: `WebXR` component now has static field for modifying optionalFeatures
1094
+ - Change: `Physics.RaycastOptions` now have a `setLayer` method to simplify setting the correct layer mask (similar to Unity's layers to enable e.g. just layer 4 for raycasting)
1095
+ - Change: `RemoteSkybox` now requests to re-apply clear flags on main camera when disabling to restore previous state.
1096
+ - Fix: issue where component instances were created using wrong method causing arrow functions to be bound to the wrong instance
1097
+ - Fix: `@syncField` now properly handles destroy of an component
1098
+ - Fix: react-three-fiber template
1099
+ - Fix: ParticleSystem prewarm safeguard and additional checks where emission is set to 0
1100
+ - Fix: Timeline only playing first audio clip
1101
+ - Fix: Issue where scene with multiple root glbs cross-referencing each other were not being resolved correctly in all cases
1102
+ - Fix: Progressive textures not being loaded when using tiling
1103
+ - Fix: Text UI anchoring
1104
+
1105
+ ## [2.66.1-pre] - 2023-03-16
1106
+ - Add: `sphereOverlapPhysics` function for more accurate sphere overlap detection using rapier
1107
+ - Fix: Gizmos should be excluded from being hit by raycasts
1108
+ - Fix: Gizmo sphere radius was twice the desired size
1109
+ - Fix: Physics now prevent negative collider scale
1110
+ - Fix: renderer instancing auto update when using multi material objects
1111
+ - Change: Show warning that stencil and instancing doesnt work together at the moment
1112
+
1113
+ ## [2.66.0-pre] - 2023-03-14
1114
+ - Add: particle system prewarm support
1115
+ - Add: `poseMatrix` argument in WebARSessionRoot.placedSession event
1116
+ - Add: MeshCollider minimal support for submeshes (they can be added but currently not removed from the physics world)
1117
+ - Fix: debug_overlay error when rejection reason is null
1118
+ - Fix typo beginListenBinrary beginListenBinary
1119
+ - Fix: particle system staying visible after disabling gameObject
1120
+ - Fix particle system not finding subemitter in certain cases
1121
+ - Fix: particles with subemitters and trails and disabled "die with particle" should emit subemitter when the particle dies (and not when the trail dies)
1122
+ - Fix: Loading overlay now hides when loading is done and the first frame has finished rendering
1123
+ - Change: rename networking `stopListening` to `stopListen` for consistency
1124
+ - Change: addressables allow up to 10k instantiations per frame before aborting
1125
+ - Change: set material shadowSide to match side
1126
+ - Change: generate poster image with 1080x1080 px and add `og:image:width` and `og:image:height` meta tags
1127
+
1128
+ ## [2.65.2-pre] - 2023-03-11
1129
+ - Change: custom shaders should not log warning for unsupported ``OrthoParams`` shader property
1130
+ - Change: Animator methods starting with uppercase are marked as deprecated because UnityEvent methods are now exported starting with lowercase letter, added lowercase methods
1131
+
1132
+ ## [2.65.1-pre] - 2023-03-10
1133
+ - Fix: ParticleSystem using `min/max` size in the renderer module is now minimally handled
1134
+ - Fix: ParticleSystem emission when using local space with scaled parents
1135
+ - Fix: ParticleSystem not finding SubEmitter systems
1136
+ - Fix: ParticleSystem simulation speed not being applied to gravity and initial speed
1137
+ - Fix: RemoteSkybox not resolving relative url correctly (when assigning a cubemap in the editor)
1138
+
1139
+ ## [2.65.0-pre.1] - 2023-03-10
1140
+ - Fix: issue where `<needle-engine>` element was not yet in the DOM when queried by exporter codegen which caused the paths to not be assigned and the engine to not load
1141
+
1142
+ ## [2.65.0-pre] - 2023-03-09
1143
+ - Add: runtime checks for recursive loading to prevent it from breaking
1144
+ - Change: internal duplicate active state on `Object3D` has been removed, instead `visible` is used. This was previously a workaround for the `Renderer` setting the visible state when being enabled or disabled but this has been changed in a previous version and it now only sets a flag in the object's Layers instead (which allows for a single object in the hierarchy to not being rendered by setting `Renderer.enabled = false` while objects in the child hierarchy stay visible)
1145
+ - Change: `<needle-engine>` src attribute can now also take an array of glbs to load. This simplifies codegen done by exporters and also prevents errors due to bundler optimizations as well as being easier to understand. Runtime changes of the `src` attribute (especially when using arrays of files) have not been tested for this release. Networking for `src` changes has been removed in this release.
1146
+ - Change: move engine into src subfolder. All paths to explicit script files are now `@needle-tools/engine/src/...`
1147
+ - Change: poster screenshot will be taken after 200ms now
1148
+ - Change: canvas default set to false for castShadow and receiveShadow
1149
+ - Change: Remote skybox should not set `scene.background` when in XR with pass through device (e.g. when using Quest Pro AR or AR on mobile)
1150
+ - Fix: issue where ColorAdjustments Volume effect was applied with `active` set to false
1151
+ - Fix: `Light` not being enabled again after disabling the component once
1152
+
1153
+ ## [2.64.0-pre] - 2023-03-07
1154
+ - Add: `PlayableDirector` now correctly applies timescale
1155
+ - Add: `PlayableDirector.speed` property allowing to play the timeline at different speeds or even reverse (reversed audio playback is not supported at the moment)
1156
+ - Add: `Physics.enabled` property for disabling physics updates. This also prevents any collider shapes to be created
1157
+ - Add: `this.gameObject.transform` property to ease getting started for devs coming from Unity. This property is merely a forward to `this.gameObject` and shouldnt really be used. The property description contains information and a [link to the docs](https://fwd.needle.tools/needle-engine/docs/transform) with further information.
1158
+ - Fix: instanced materials using progressive loading are now correctly updated
1159
+ - Fix: Timeline animation tracks now disable the `Animator`. This fixes cases where two animations were played at the same time. When the PlayableDirector is paused or stopped the animator state is reset
1160
+ - Fix: License styles leaking into website
1161
+ - Fix: Timeline audio not stopping correctly at end of timeline when set to hold
1162
+ - Change: improve instancing updates, instanced objects now auto update detect matrix changes. This includes improvements of instancing when used with `Animation` components
1163
+ - Change: set particle system layers to `IgnoreRaycast` to not receive wrong click events on batched particle meshes
1164
+ - Change: Timeline audio is now loaded on evaluation. Only clips in a range of 1 second to the current time are loading. To manually trigger preload of audio you can invoke `loadAudio` with a time range on audio tracks of a timeline
1165
+
1166
+ ## [2.63.3-pre] - 2023-03-03
1167
+ - Fix: engine published to npm was missing vite plugins
1168
+
1169
+ ## [2.63.2-pre] - 2023-03-03
1170
+ - Fix: license styling in some cases
1171
+ - Fix: duplicatable + draggable issue causing drag to not release the object (due to wrong event handling)
1172
+ - Fix duplicatable + deletion not working properly
1173
+ - Fix: timeline breaking when time is set to NaN
1174
+
1175
+ ## [2.63.1-pre] - 2023-03-02
1176
+ - Add: components now have `up` and `right` vectors (access via ``this.up`` from a component)
1177
+ - Fix: import of license and logo for npm package
1178
+
1179
+ ## [2.63.0-pre] - 2023-03-01
1180
+ - Add: licensing information
1181
+ - Add: logo to loading display
1182
+ - Change: VideoPlayer now exposes VideoMaterial
1183
+ - Change: Screencapture now only accepts clicks with pointerId 0 (left mouse button, first touch) to toggle screen capture
1184
+ - Change: expose physics gravity setting `this.context.physics.gravity`
1185
+
1186
+ ## [2.62.2-pre] - 2023-02-27
1187
+ - Add: support for `camera-controls` attribute on `<needle-engine>` element. When added it will automatically add an `OrbitControls` component on start if the active main camera has no controller (you can assign custom controllers by calling `setCameraController` with the camera that is being controlled)
1188
+ - Fix: rare error in extension_util
1189
+ - Fix: timeline preExtrapolation setting
1190
+ - Fix: disabling Light component should turn off light
1191
+ - Fix: animating camera fov, near or far plane
1192
+ - Fix: threejs layer patch for Renderer visibility is now always applied
1193
+ - Fix: UI runtime instantiate of canvas from templates in scene
1194
+ - Fix: UI text did not update shadow-component-owner on font loading
1195
+ - Fix: UI EventSystem raising click event multiple times in some cases
1196
+ - Fix: UI Text raycast now respects object layer (NoRaycast)
1197
+ - Fix: UI duplicate pointerUp event
1198
+ - Fix: UI highlighting getting stuck in wrong state sometimes
1199
+
1200
+ ## [2.62.1-pre] - 2023-02-23
1201
+ - Fix: pause wasn't evaluating and thus not pausing audio tracks
1202
+ - Fix: debug overlay styles were not properly scoped and affected objects inside needle-engine tag
1203
+ - Fix: Addressables wrong recursive instantiation error
1204
+ - Fix: UI not showing fully when setting active at runtime
1205
+ - Change: timeline tracks are now created immediately but their audio clips are deferred until audio is allowed
1206
+
1207
+ ## [2.62.0-pre] - 2023-02-13
1208
+ - Bump version
1209
+
1210
+ ## [2.61.0-pre] - 2023-01-30
1211
+ - Add: canvas applyRenderSettings
1212
+ - Add: progressive support for particle system textures
1213
+
1214
+ ## [2.60.4-pre] - 2023-01-27
1215
+ - Fix UI prefab instantiate throwing error at runtime
1216
+ - Change: show warning when unsupported canvas type is selected
1217
+ - Change: show warning when trying to use webxr features in non-secure context
1218
+
1219
+ ## [2.60.3-pre] - 2023-01-26
1220
+ - Fix: camera fov for blender export allowing fieldOfView property to be undefined, where the fov should be handled by the blender exporter completely.
1221
+
1222
+ ## [2.60.2-pre] - 2023-01-26
1223
+ - Fix: particle textures being flipped horizontally
1224
+
1225
+ ## [2.60.1-pre] - 2023-01-25
1226
+ - Change: export Mathf in `@needle.tools/engine`
1227
+
1228
+ ## [2.60.0-pre] - 2023-01-25
1229
+ - Add: Particles support for horizontal and vertical billboards
1230
+ - Add: Timeline now supports reversed clip (for blender timeline)
1231
+ - Change: bump gltf pipeline package dependency adding support for global `NEEDLE_TOKTX` environment variable
1232
+ - Change: timeline clip pos and rot are now optional (for blender timeline)
1233
+ - Fix: when first loading a gltf pass guidsmap to components (for blender timeline)
1234
+ - Fix: scrubbing TimelineTrack scrubs audio sources as well now
1235
+ - Fix: stencils for multimaterial objects
1236
+
1237
+ ## [2.59.2-pre] - 2023-01-21
1238
+ - Add: particles basic support for on birth and ondeath subemitter behaviour
1239
+
1240
+ ## [2.59.1-pre.1] - 2023-01-20
1241
+ - Fix: issue where click on overlay html element did also trigger events in the underlying engine scene
1242
+
1243
+ ## [2.59.1-pre] - 2023-01-20
1244
+ - Add: SpectatorCam.useKeys to allow users to disable spectator cam keyboard input usage (`f` to send follow request to connected users and `esc` to stop following)
1245
+ - Change: expose SyncedRoom.RoomPrefix
1246
+
1247
+ ## [2.59.0-pre] - 2023-01-18
1248
+ - Add: AssetReference.unload does now dispose materials and mesh geometry
1249
+ - Add: ``setParamWithoutReload`` now accepts null as paramValue which will remove the query parameter from the url
1250
+ - Change: timeline does now skip export for muted tracks
1251
+ - Change: OrbitControls can now use a custom html target when added via script and before enable/awake is being called (e.g. ``const orbit = GameObject.addNewComponent(this.gameObject, OrbitControls, false); orbit.targetElement = myElement``)
1252
+ - Change: Input start events are now being ignored if a html element is ontop of the canvas
1253
+ - Fix: use custom element registry to avoid error with `needle-engine element has already been defined`
1254
+ - Fix: timeline not stopping audio on stop
1255
+ - Fix: input click event being invoked twice in certain cases
1256
+ - Fix: ParticleSystem start color from gradient
1257
+ - Fix: ParticleSystem not properly cleaning up / removing particles in the scene in onDestroy
1258
+ - Fix: ParticleSystem velocity now respects scale (when mode is set to worldscale)
1259
+
1260
+ ## [2.58.4-pre] - 2023-01-14
1261
+ - Update gltf-extensions package dependency
1262
+
1263
+ ## [2.58.3-pre] - 2023-01-13
1264
+ - Bump version
1265
+
1266
+ ## [2.58.2-pre] - 2023-01-12
1267
+ - Change: use draco and ktx loader from gstatic server by default
1268
+ - Change: reduce circular dependencies
1269
+ - Fix: Reflectionprobe selecting wrong probe when multiple probes had the exact same position
1270
+
1271
+ ## [2.58.1-pre] - 2023-01-09
1272
+ - Add: Prewarm rendering of newly loaded objects to remove lag/jitter when they become visible for the first time
1273
+ - Change: renderer now warns when sharedMaterials have missing entries. It then tries to remap those values when accessing them by index (e.g. when another component has a material index serialized and relies on that index to be pointing to the correct object)
1274
+
1275
+ ## [2.58.0-pre] - 2023-01-09
1276
+ - Add: EventSystem input events (e.g. IPointerClick) are now invoked for all buttons (e.g. right click)
1277
+ - Add: Hot reload for components
1278
+
1279
+ ## [2.57.0-pre] - 2023-01-07
1280
+ - Remove: Meshline dependency
1281
+ - Fix: Testrunner Rigidbody import error
1282
+
1283
+ ## [2.56.2-pre] - 2023-01-06
1284
+ - Change: Component.addEventListener argument can now derive from Event
1285
+
1286
+ ## [2.56.1-pre] - 2023-01-05
1287
+ - Fix: UI setting Image.sprite property did apply vertical flip every time the sprite was set
1288
+
1289
+ ## [2.56.0-pre] - 2023-01-04
1290
+ - Add: file-dropped event to DropListener
1291
+ - Add: UI image and raw image components now support updating texture/sprite at runtime
1292
+ - Change: Bump needle gltf-transform extensions package adding mesh compression and caching for texture compression leading to significant speedups for subsequent production builds (only changed textures are re-processed)
1293
+ - Fix: light normal bias defaults
1294
+
1295
+ ## [2.55.2-pre] - 2023-01-02
1296
+ - Add: Rigidbody.gravityScale property
1297
+ - Add: Gizmos.DrawArrow method
1298
+ - Add: Rigidbody.getAngularVelocity method
1299
+ - Fix: Mesh collider center of mass
1300
+
1301
+ ## [2.55.1-pre] - 2022-12-30
1302
+ - Add: Warning when serialized component field name is starting with uppercase letter
1303
+ - Change: bump component compiler dependency
1304
+ - Fix: Particle rotation over lifetime
1305
+ - Fix: Particles should not emit when emission module is disabled
1306
+ - Fix: LODGroup breaking rendering when used with multi-material objects or added on mesh to be culled directly
1307
+
1308
+ ## [2.55.0-pre] - 2022-12-21
1309
+ - Add: PhysicsMaterial support
1310
+ - Add: ``Time.timesScale`` factor
1311
+ - Change: VideoPlayer exposes underlying HTML video element
1312
+ - Change: EffectComposer check if ``setPixelRatio`` method exists before calling
1313
+ - Change: WebARSessionRoot and Rig rotation
1314
+ - Fix: WebXRController raycast line not being visible in Quest AR
1315
+ - Fix: Renderer that is disabled initially now hides object
1316
+ - Fix: Some ParticleSystem worldspace settings when calling emit directly
1317
+
1318
+ ## [2.54.2-pre] - 2022-12-19
1319
+ - Change: debug parameter can now take ``=0`` for disabling them (e.g. ``freecam=0``)
1320
+ - Fix: InputField opens keyboard on iOS
1321
+
1322
+ ## [2.54.1-pre] - 2022-12-15
1323
+ - Fix: issue with progressive loading, loading files multiple times if a texture was used in multiple materials/material slots. This was causing problems and sometimes crashes on mobile devices
1324
+ - Fix: balloon messages using cached containers didnt update the message sometimes and displaying an old message instead
1325
+
1326
+ ## [2.54.0-pre.1] - 2022-12-14
1327
+ - Fix: bump gltf extensions package fixing issue with progressive texture loading when multiple textures had the same name
1328
+
1329
+ ## [2.54.0-pre] - 2022-12-14
1330
+ - Add: start and end events for progressive loading
1331
+ - Add: USDZExporter events for button creation and after export
1332
+ - Change: apply WebARSessionRoot scale to exported object, e.g. if scene is scaled down on Android it should receive the same scale when exporting for Quicklook
1333
+ - Fix: process reflection probe update in update event to avoid visible flickr after component enabled state has changed
1334
+
1335
+ ## [2.53.1-pre.1] - 2022-12-12
1336
+ - Fix: implement ButtonColors
1337
+
1338
+ ## [2.53.1-pre] - 2022-12-12
1339
+ - Add: GroundProjection appyOnAwake to make it possible to just use it when the environment changes via remote skybox and not apply it to the default skybox
1340
+ - Change: more strict tsconfig
1341
+ - Change: allow overriding loading element
1342
+ - Fix: apply shape module rotation to direction
1343
+ - Fix: ParticleSystem world position not being set when shape module was disabled
1344
+
1345
+ ## [2.53.0-pre] - 2022-12-08
1346
+ - Add: InstantiateIdProvider constructor can now take string too for initializing seed
1347
+ - Add: USDZExpoter component enabling ``Open in Quicklook`` option by default when running on iOS Safari
1348
+ - Fix: Light intensity
1349
+ - Fix: Add workaround texture image encoding issue: https://github.com/needle-tools/needle-engine-support/issues/109
1350
+ - Fix: OrbitControls.enableKeys
1351
+ - Fix: Remove warning message about missing ``serializable`` when the reference is really missing
1352
+ - Fix: ``context.domX`` and ``domY`` using wrong values when in AR mode
1353
+
1354
+ ## [2.52.0-pre] - 2022-12-05
1355
+ - Add iOS platform util methods
1356
+ - Add ``?debugrig`` to render XRRig gizmo
1357
+ - Add support for Spritesheet Animation
1358
+ - Add: EventTrigger implementations for onPointerClick, onPointerEnter, onPointerExit, onPointerDown, onPointerUp
1359
+ - Add: RemoteSkybox environmentBlurriness setting
1360
+ - Fix: Renderer reflection probe event order issue not applying reflection probes when enabling/disabling object because reflection probes have not been enabled
1361
+ - Fix: remove log in ParticleSystemModules
1362
+
1363
+ ## [2.51.0-pre] - 2022-11-30
1364
+ - Change: remove nebula, dat.gui and symlink package dependencies
1365
+ - Change: Light does not change renderer shadowtype anymore
1366
+ - Change: update threejs to 146
1367
+ - Change: update threejs types
1368
+ - Change: Screencapture should not start on click when not connected to networked room
1369
+ - Change: WebXR returns ar supported when using Mozilla WebXR
1370
+ - Fix DragControls drag interaction not disabling OrbitControls at right time
1371
+ - Fix physics collider position in certain cases
1372
+ - Fix Rigidbody not syncing physics position when parent transform changes
1373
+ - Fix Timeline awake / active and enable
1374
+ - Fix: OrbitControls calulcating target position with middle mouse click in worldspace instead of localspace causing wrong movement when parent is transformed
1375
+ - Fix: Raycast in Mozilla WebXR / using window sizes instead of dom element sizes
1376
+ - Fix input with scrolled window
1377
+ - Fix: destroy local avatar on end of webxr session (https://github.com/needle-tools/needle-engine-support/issues/117)
1378
+ - Fix: WebXRAvatar setting correct XRFlags
1379
+
1380
+ ## [2.50.0-pre] - 2022-11-28
1381
+ - Add warning to Light when soft shadows change renderer shadow type
1382
+ - Add: RemoteSkybox can now load jpg and png textures as skybox
1383
+ - Change: Instantiate does now copy Vector, Quaternion and Euler objects to ensure multiple components dont share the same objects
1384
+ - Fix: AnimatorController causes threejs error when creating empty animationclip (Blender)
1385
+ - Fix: AnimatorController error when transition has no conditions array (Blender)
1386
+
1387
+ ## [2.49.1-pre] - 2022-11-25
1388
+ - Add circular instantiation check to AssetReference
1389
+ - Allow filtering ``context.input.foreachPointerId()`` by pointer types (e.g. mouse or touch)
1390
+ - Fix typescript error in particle system module function (happened only when ``strict`` was set to false in tsconfig)
1391
+ - Fix XRFlag component not being applied on startup
1392
+
1393
+ ## [2.49.0-pre] - 2022-11-24
1394
+ - Add: input iterator methods to loop over currently active input pointer ids
1395
+ - Change: input refactor to work better with touch
1396
+ - Fix GraphicRaycaster serialization warning
1397
+ - Fix deserialization bug when Animation clips array is not serialized (exported from blender)
1398
+ - Fix: remove leftover log in AnimatorController when cloning
1399
+ - Fix XR flag not correctly restoring state
1400
+ - Fix reticle not being rendered when XRRig is inside WebARSessionRoot
1401
+ - Fix Mozilla XR AR overlay (https://github.com/needle-tools/needle-engine-support/issues/81)
1402
+ - Fix Mozilla XR removing renderer canvas on exit AR (https://github.com/needle-tools/needle-engine-support/issues/115)
1403
+
1404
+ ## [2.48.0-pre] - 2022-11-23
1405
+ - Add: debug console for better mobile debugging (shows up on error on mobile in local dev environment or when using the ``?console`` query parameter)
1406
+ - Add: dom element visibility checks and suspend rendering and update loops (if ``this.context.runInBackground`` is false)
1407
+ - Add: ``this.context.isPaused`` to manually suspend rendering
1408
+ - Add: ``IComponent.onPausedChanged`` event method which is called when rendering is paused or resumed
1409
+ - Change: update copy-from-to dev dependency version to fix build error when path contains ``(``
1410
+ - Change: ``this.context.input`` does now support pointer lock state (properly reports delta)
1411
+ - Fix: make sure VRButton has the same logic as in three again (regex instead of try-catch)
1412
+ - Fix: WebXRViewer DOM Overlay bugs when dom overlay element is inside canvas
1413
+ - Fix: exitAR not being called in some cases when exiting AR
1414
+ - Fix: ``this.context.domX`` and ``this.context.domY`` when web component is not fullscreen
1415
+
1416
+ ## [2.47.0-pre] - 2022-11-17
1417
+ - Add: Initial react three fiber components
1418
+ - Change: OrbitControls made lerp stop distance smaller
1419
+ - Change: expose ``*enumerateActions()`` in AnimatorController
1420
+ - Fix: Flipped custom reflection texture
1421
+ - Fix: Volume exposure not being applied when no Tonemapping effect was set
1422
+ - Fix: Volume tonemapping not respecting override state setting
1423
+ - Fix: ``AudioSource.loop`` not working
1424
+ - Fix: Collider center being not not applied correctly
1425
+ - Fix: MeshCollider scale not being applied from object
1426
+
1427
+ ## [2.46.0-pre] - 2022-11-16
1428
+ - Add: Particles subemitter support
1429
+ - Add: Particles inherit velocity support
1430
+ - Add: Particles size by speed support
1431
+ - Add: Particles color by speed support
1432
+ - Add: Particles trail now fadeout properly when "die with particle" is disabled
1433
+ - Add: Particles circle shape
1434
+ - Change: button hover now sets cursor to pointer
1435
+ - Fix: WebXR controller disabling raycast line for hands
1436
+ - Fix: WebXR hands path when not assigned in Unity
1437
+ - Fix: Mesh Particles not rendering because of rotation being wrongly applied
1438
+ - Fix: Mesh particles size in AR
1439
+ - Fix: Particles color and size lerp between two curves
1440
+
1441
+ ## [2.45.0-pre] - 2022-11-14
1442
+ - Add: RemoteSkybox option to control if its set as background and/or environment
1443
+ - Add: @serializable decorator, @serializeable will be removed in a future version
1444
+ - Add: getComponent etc methods to IGameObject interface
1445
+ - Add: Renderer.enable does now set visible state only without affecting the hierarchy or component active state
1446
+ - Change: Expose Typestore
1447
+ - Change: Animation componet does loop by default (use the AdditionalAnimationData component to set the default loop setting)
1448
+ - Fix: WebXR relative hands path in subfolders
1449
+ - Fix: Rigidbody did not properly detect object position change if the position change was applied a second time at the exact same target position (it worked setting it once and didnt work in subsequent calls - now it does always detect it)
1450
+
1451
+ ## [2.44.1-pre] - 2022-11-13
1452
+ - Add: RemoteSkybox exposes ``background`` and ``environmnet`` properties to configure if the loaded skybox is set for the scene background and/or the environment light
1453
+ - Change: Expose TypeStore
1454
+
1455
+ ## [2.44.0-pre] - 2022-11-11
1456
+ - Add: Particles limit velocity over time
1457
+ - Add: Particles rotation by speed
1458
+ - Add: ParticleSystem play, pause, stop and emit(count) methods
1459
+ - Add: ``WebXR.showRaycastLine`` exposed so it can be disabled from code
1460
+ - Fix: issues in applying some forces/values for different scaling and worldspace <> localspace scenarios
1461
+ - Change: raise input events in core method to also allow receiving WebAR mock touch events
1462
+ - Change: ``Animation.play()`` does not require argument anymore
1463
+
1464
+ ## [2.43.0-pre] - 2022-11-10
1465
+ - Add: particles emission over distance
1466
+ - Add: particles can enable trail (settings are not yet applied tho)
1467
+ - Add: camera now useses culling mask settings
1468
+ - Add: particle VelocityOverLife
1469
+ - Add: particle basic texture sheet animation support
1470
+ - Change: ensure ``time.deltaTime`` is always > 0 and nevery exactly 0
1471
+ - Fix: progressbar handle progress event not reporting total file size
1472
+ - Fix: layer on camera did affect visibility
1473
+ - Fix: cloning animatorcontrollers in builds did fail because of legacy AnimatorAction name check
1474
+ - Fix: ``RGBAColor.lerpColors`` did produce wrong alpha value
1475
+ - Fix: custom shader ``_ZTest`` value is now applied as threejs depthTest function
1476
+
1477
+ ## [2.42.0-pre] - 2022-11-09
1478
+ - add ``Graphics.copyTexture``
1479
+ - add ``Renderer.allowProgressiveLoad``
1480
+ - add ``Gizmos.DrawBox`` and ``DrawBox3``
1481
+ - add particles burst emission
1482
+ - add particles color interpolation between two gradients
1483
+ - fix: reflection probe material caching for when material is being changed at certain times outside of animation loop and cache applied wrong material
1484
+ - fix: AnimationCurve evaluation when time and keyframe are both exactly 0
1485
+ - change: reflection probe now requires anchor override
1486
+ - change: bump threejs dependency
1487
+
1488
+ ## [2.41.0-pre] - 2022-11-07
1489
+ - Add: start adding particle systems support again
1490
+ - Change: update dependency version to needle gltf-transform-extensions package
1491
+ - Change: light set to soft shadows now changes renderer shadow mode to ``VSMShadowMap`` (can be disabled by setting ``Light.allowChangingShadowMapType`` to false)
1492
+ - Fix: WebXR creating AR button when called from script in awake
1493
+ - Fix: ``AnimationCurve.evaluate``
1494
+
1495
+ ## [2.40.0-pre] - 2022-11-05
1496
+ - Add support for deleting all room state by calling ``context.connection.sendDeleteRemoteStateAll()`` (requires backend to update ``@needle-tools/needle-tiny-networking-ws`` to ``^1.1.0-pre``)
1497
+ - Add Hinge joint
1498
+ - Add ``Gizmos.DrawLine``, ``DrawRay`` ``DrawWireSphere`` and ``DrawSphere``
1499
+ - Add: physics Collision Contacts now contain information about ``impulse`` and ``friction``
1500
+ - Add ``physics.raycastPhysicsFast`` as a first method to raycast against physics colliders, the returning object contains the point in worldspace and the collider. This is the most simplest and thus fastest way to raycast using Rapier. More complex options will follow in future versions.
1501
+ - Fix joint matrix calculation
1502
+ - Fix and improve physics Contacts point calculations
1503
+ - Fix issue in physics event callbacks where ``onCollisionStay`` and ``onCollisionExit`` would only be called when ``onCollisionEnter`` was defined
1504
+
1505
+ ## [2.39.0-pre] - 2022-11-04
1506
+ - Add: physics FixedJoint
1507
+ - Change: CharacterController now rotates with camera
1508
+ - Change: scaled mesh colliders are now cached
1509
+ - Change: disable OrbitControls when in XR
1510
+ - Change: first enabled camera component sets itself as rendering camera if no camera is yet assigned (mainCamera still overrides that)
1511
+ - Change: package module field now shows to ``src/needle-engine``
1512
+ - Change: ``Camera.backgroundColor`` assigning Color without alpha sets alpha to 1 now
1513
+ - Fix: improved missing ``serializable`` detection / warning: now only shows warning for members actually declared in script
1514
+ - Fix: wrong light intensity in VR when light is child of WebARSessionRoot [issue 103](https://github.com/needle-tools/needle-engine-support/issues/103)
1515
+
1516
+ ## [2.38.0-pre] - 2022-11-02
1517
+ - Add ``context.isInAR`` and ``context.isInVR`` properties
1518
+ - Add physics capsule collider support
1519
+ - Add basic character controller implementation (experimental)
1520
+ - Add ``context.input.getMouseWheelDeltaY()``
1521
+ - Add: SmoothFollow option to restrict following on certain axes only for position
1522
+ - Add: ``Rigidbody.teleport`` method to properly reset internal state
1523
+ - Add: load glbs using build hash (appended as ``?v=123``)
1524
+ - Change: Collision event args now exposes contacts array
1525
+ - Fix Exit AR (X) button not showing up
1526
+ - Fix physics collider center offset
1527
+ - Fix removing colliders and rigidbodies throwing error (when trying to access properties for already removed bodies)
1528
+ - Fix bug in AnimatorController causing broken animations when the same clip is used in multiple states (caused by ``mixer.uncacheCip``)
1529
+ - Fix rigidbody friction allowing for physical bodies being transported on e.g. platforms
1530
+ - Fix ``onTriggerStay`` being invoked with the correct collider argument
1531
+ - Fix AnimatorController exit time not being used properly
1532
+ - Fix AnimatorController not checking all possible transitions if one transition did match conditions but could not be made due to exit time setting
1533
+ - Fix ``Renderer.sharedMaterials`` not handling SkinnedMeshRenderer
1534
+ - Fix environment blend mode for mozilla XR browser on iOS
1535
+ - Fix: Camera now removing self from being set as currently rendering in ``onDisable``
1536
+
1537
+ ## [2.37.0-pre] - 2022-10-28
1538
+ - Add: rapier physics backend and overall improved physics system like constraint support, fixed physics collider updates and synchronization between rendering and physics world or animation of physical bodies
1539
+ - Remove: cannon-es
1540
+ - Add basic mesh collider support
1541
+ - Add ``@validate`` decorator and ``onValidate`` event method that can be used to automatically get callbacks when marked properties are being written to (for example internally this is used on the Rigidbody to update the physics body when values on the Rigidbody component are being updated)
1542
+ - Change: assign nested gltf layers
1543
+ - Change: reworked Rigidbody api
1544
+ - Fix: allow Draco and KRTX compression on custom hand models
1545
+ - Fix: applying Unity layers to threejs objects
1546
+ - Fix: BoxHelper stopped working with SpatialTrigger
1547
+ - Fix: AR reticle showing up in wrong position with transformed WebARSessionRoot
1548
+
1549
+ ## [2.36.0-pre] - 2022-10-26
1550
+ - Add: Expose WebXR hand model path
1551
+ - Add: Animation component can now be configured with random time scale and offset
1552
+ - Change: allow blocking overlay errors using the ``?noerrors`` query parameter
1553
+ - Change: don't use Composer for postprocessing in XR (see [issue](https://github.com/needle-tools/needle-engine-support/issues/101))
1554
+ - Change: physics intersections causing NaN's are now reported prominently and physics bodies are removed from physics world as an interim solution, this provides more information about problematic colliders for debugging
1555
+ - Fix: bug that caused component events for onEnable and onDisable not being called anymore in some cases
1556
+ - Fix: cases where loading overlay using old project template wouldnt be removed/hidden anymore
1557
+ - Fix: WebXR hide large hand grab sphere
1558
+ - Fix: onPointerUp event not firing using WebXR controllers when grabbing an object for the second time
1559
+ - Fix: GroundProjection can now be removed again
1560
+ - Fix: Custom shaders exported using builtin RP can now use _Time property
1561
+ - Fix: Only create two controllers when in AR on oculus browser
1562
+ - Fix: BoxHelperComponent can now handle multi-material objects (groups)
1563
+
1564
+ ## [2.35.6-pre] - 2022-10-24
1565
+ - Add: warning balloon when unknown components are detected and have been most likely forgot to be installed, linking to npmdef docs
1566
+ - Fix: dont show serialization warning for builtin components where specific fields are not deserialized on purpose (since right now the serializer does not check which fields are actually implemented)
1567
+
1568
+ ## [2.35.5-pre] - 2022-10-24
1569
+ - Change: AudioSource exposes ``clip`` field
1570
+ - Change: improve error and messaging overlay
1571
+ - Change: detect when serialized Object3D and AssetReference are missing ``@serializable`` attribute and show message in overlay
1572
+ - Change: add WebXR hands path to controllers
1573
+ - Fix: WebXR controllers now use interactable object when grabbing (instead of hit object previously) which fixes interaction with nested hierarchies in XR and DragControls
1574
+
1575
+ ## [2.35.4-pre] - 2022-10-23
1576
+ - Change: Renderer ``material`` is now ``sharedMaterial`` to make it more clear for Unity devs that the material is not being cloned when accessed
1577
+ - Fix: When not specifying any explicit networking backend for glitch deployment it now falls back to the current glitch instance for networking
1578
+
1579
+ ## [2.35.3-pre] - 2022-10-21
1580
+ - Add: Screenshare component ``share`` method now takes optional options to configure device and MediaStreamConstraints for starting the stream
1581
+ - Fix: WebXR should show EnterVR button when enabled in Unity
1582
+ - Fix: component ``enable`` boolean wasnt correctly initialized when loaded from gltf
1583
+ - Fix: Object3D prototype extensions weren't correctly applied anymore
1584
+ - Fix: Interaction bug when using DragControls with OrbitControls with multitouch
1585
+
1586
+ ## [2.35.2-pre] - 2022-10-20
1587
+ - Add ``Renderer.mesh`` getter property
1588
+ - Change: ``Renderer.material`` now returns first entry in ``sharedMaterials`` array so it automatically works in cases where a Renderer is actually a multi-material object
1589
+ - Change: warn when trying to access components using string name instead of type
1590
+ - Change: update needle gltf-transform-extensions to 0.6.2
1591
+ - Fix: remove log from UIRaycastUtil
1592
+ - Fix: move TypeStore import in builtin engine again to not break cases where ``import @needle-engine`` was never used
1593
+ - Fix: React3Fiber template and AR overlay container access when using react
1594
+
1595
+ ## [2.35.1-pre] - 2022-10-19
1596
+ - Change: unify component access methods, first argument is now always the object with the component type as second argument
1597
+ - Fix physics collision events throwing caused by refactoring in last version
1598
+ - Fix loading screen css
1599
+
1600
+ ## [2.35.0-pre] - 2022-10-19
1601
+ - Change: First pass of reducing circular dependencies
1602
+ - Change: Update @needle-tools/gltf-transform-extensions version
1603
+ - Change: Update component compiler to 1.9.0. Changed include:
1604
+ * Private and protected methods will now not be emitted anymore
1605
+ * ``onEnable/onDisable`` will be emitted as ``OnEnable`` and ``OnDisable`` [issue 93](https://github.com/needle-tools/needle-engine-support/issues/93)
1606
+ - Change: handle Vector3 prototype extensions
1607
+ - Fix: issue with UI causing rendering to break when enabling text components during runtime that have not yet been active before
1608
+ - Fix: OrbitControls LookAtConstraint reference deserialization
1609
+ - Fix: WebXRController raycasting against UI marked as ``noRaycastTarget`` or in CanvasGroup with disabled ``interactable`` or ``blocksRaycast``
1610
+
1611
+ ## [2.34.0-pre] - 2022-10-17
1612
+ - Add: start adding support for 2D video overlay mode
1613
+ - Change: Install threejs from @needle-tools/npm - this removes the requirement to have git installed and should fix a case where pulling the package from github would fail
1614
+ - Change: Move Screensharing aspect mode settings into VideoPlayer component
1615
+ - Change: Move ``InstancingUtils`` into ``engine/engine_instancing.ts``
1616
+ - Change: BoxCollider now checks if ``attachedRigidBody`` is assigned at start
1617
+ - Change: Collision now exposes internal cannon data via ``__internalCollision`` property
1618
+ - Fix: EventSystem now properly unsubscribes WebXRController events
1619
+
1620
+ ## [2.33.0-pre] - 2022-10-17
1621
+ - Add: ScreenCapture has mode for capturing webgl canvas (unfortunately it doesnt seem to work well in Chrome or Firefox yet)
1622
+ - Change: move threejs prototype extensions into own file and make available to vanilla js builds
1623
+ - Change: ScreenCapture component has explicit VideoPlayer component reference
1624
+ - Fix: animating properties on custom shaders
1625
+
1626
+ ## [2.32.0-pre] - 2022-10-15
1627
+ - Add: start implementing trigger callbacks for ``onTriggerEnter``, ``onTriggerExit`` and ``onTriggerStay``
1628
+ - Change: ``GameObject.setActive`` now updates ``isActiveAndEnabled`` state and executes ``awake`` and ``onEnable`` calls when the object was activated for the first time (e.g. when instantiating from an previously inactive prefab)
1629
+ - Change: improve collision callback events for components (``onCollisionEnter``, ``onCollisionExit`` and ``onCollisionStay``)
1630
+ - Change: this.context.input keycode enums are now strings
1631
+ - Fix: local dev error overlay now also displays errors that happen before web component is completely loaded (e.g. when script has import error)
1632
+ - Fix: Rigidbody force is now correctly applied when the component was just instantiated (from inactive prefab) and added to the physics world for the first time
1633
+ - Fix: DragControls component keyboard events ("space" and "d" for modifying height and rotation)
1634
+
1635
+ ## [2.31.1-pre] - 2022-10-14
1636
+ - Change: Rigidbody now tracks position changes to detect when to update/override simulated physics body
1637
+ - Fix: loading relative font paths when exported via Asset context menu
1638
+
1639
+ ## [2.31.0-pre] - 2022-10-13
1640
+ - Add: inital ScreenCapture component for sharing screens and camera streams across all connected users
1641
+ - Add: ``onCollisionEnter``, ``onCollisionStay`` and ``onCollisionExit`` event methods to components
1642
+
1643
+ ## [2.30.0-pre] - 2022-10-12
1644
+ - Add: Quest 2 passthrough support
1645
+ - Add: UI Graphic components now support ``raycastTarget`` again
1646
+ - Add: VideoPlayer now supports ``materialTarget`` option which allows for assigning any renderer in the scene that should be used as a video canvas
1647
+ - Changed: updated three-mesh-ui dependency version
1648
+ - Changed: updated needle-gltfTransform extensions package, fixing an issue with passthrough of texture json pointers
1649
+ - Changed: selecting SpectatorCam now requires click (instead of just listening to pointer up event)
1650
+ - Fix: Avatars using instanced materials should now update transforms correctly again
1651
+
1652
+ ## [2.29.0-pre] - 2022-10-10
1653
+ - Add: Context.removeCamera method
1654
+ - Add: SpectatorCam allows to follow other users across devices by clicking on respective avatar (e.g. clicking SyncedCam avatar or WebXR avatar, ESC or long press to stop spectating)
1655
+ - Add: ``Input`` events for pointerdown, pointerup, pointermove and keydown, keyup, keypress. Subscribe via ``this.context.input.addEventListener(InputEvents.pointerdown, evt => {...})``
1656
+ - Change: Default WebXR rig matches Unity forward
1657
+ - Fix: WebXRController raycast line being rendered as huge line before first world hit
1658
+ - Fix: SpectatorCam works again
1659
+ - Fix: ``serializable()`` does now not write undefined values if serialize data is undefined
1660
+ - Fix: exit VR lighting
1661
+
1662
+ ## [2.28.0-pre] - 2022-10-06
1663
+ - Add: ``resolutionScaleFactor`` to context
1664
+ - Fix ``IsLocalNetwork`` regex
1665
+ - Fix custom shaders failing to render caused by json pointer change
1666
+ - Change: rename Context ``AROverlayElement`` to ``arOverlayElement``
1667
+
1668
+ ## [2.27.0-pre] - 2022-10-06
1669
+ - Fix: EventList failing to find target when targeting a Object3D without any components
1670
+ - Fix: text now showing up when disabling and enabling again after the underlying three-mesh-ui components have been created
1671
+ - Fix: Builtin sprites not rendering correctly in production builds
1672
+ - Change: Bump needle glTF transform extensions version
1673
+ - Change: json pointers now have correct format (e.g. ``/textures/0`` instead ``textures/0``)
1674
+ - Change: Bump UnityGLTF version
1675
+
1676
+ ## [2.26.1-pre] - 2022-10-05
1677
+ - Fix animating ``activeSelf`` on GameObject in canvas hierarchy
1678
+ - Fix SpectatorCam component
1679
+ - Fix WebXRController raycast line being rendered as huge line before first world hit
1680
+
1681
+ ## [2.26.0-pre] - 2022-10-05
1682
+ - Add: experimental AlignmentConstraint and OffsetConstraint
1683
+ - Remove: MeshCollider script since it is not supported yet
1684
+ - Change: Camera does now use XRSession environment blend mode to determine if background should be transparent or not.
1685
+ - Change: WebXR exposes ``IsInVR`` and ``IsInAR``
1686
+ - Fix: RGBAColor copy alpha fix
1687
+ - Fix: Avatar mouth shapes in networked environment
1688
+
1689
+ ## [2.25.1-pre] - 2022-10-04
1690
+ - Change: DropListener file drop event does send whole gltf instead of just the scene
1691
+
1692
+ ## [2.25.0-pre] - 2022-10-04
1693
+ - Add: allow overriding draco and ktx2 decoders on <needle-engine> web component by setting ``dracoDecoderPath``, ``dracoDecoderType``, ``ktx2DecoderPath``
1694
+ - Add: ``loadstart`` and ``progress`` events to <needle-engine> web component
1695
+ - Fix rare timeline animation bug where position and rotation of objects would be falsely applied
1696
+ - Change: update to three v245
1697
+ - Change: export ``THREE`` to global scope for bundled version
1698
+
1699
+ ## [2.24.0-pre] - 2022-10-01
1700
+ - Add: make engine code easily accessible from vanilla javascript
1701
+ - Fix: handle number animation setting component enable where values are interpolated
1702
+ - Change: Remove internal shadow bias multiplication
1703
+ - Change: Addressable references are now resolved using relative paths
1704
+ - Change: Update package json
1705
+
1706
+ ## [2.23.2-pre] - 2022-09-29
1707
+ - Add: Light component shadow settings can not be set/updated at runtime
1708
+ - Fix: enter XR using GroundProjectedEnv component
1709
+ - Fix: Light shadows missing when LightShadowData component was not added in Unity (was using wrong shadowResolution)
1710
+ - Change: dont allow raycasting by default on GroundProjectedEnv sphere
1711
+
1712
+ ## [2.23.1-pre] - 2022-09-29
1713
+ - Add: Light exposes shadow resolution
1714
+
1715
+ ## [2.23.0-pre] - 2022-09-28
1716
+ - Add RemoteSkybox component to use HDRi images from e.g. polyhaven
1717
+ - Add GroundProjectedEnv component to use threejs skybox projection
1718
+ - Fix: export ``GameObject`` in ``@needle-tools/engine``
1719
+
1720
+ ## [2.22.1-pre] - 2022-09-28
1721
+ - Add: ``noerrors`` url parameter to hide overlay
1722
+ - Fix: WebXR avatar rendering may be visually offset due to root transform. Will now reset root transform to identity
1723
+
1724
+ ## [2.22.0-pre] - 2022-09-28
1725
+ - Add: ``@needle-tools/engine`` now exports all components
1726
+ - Add: environment light from tricolor (used for envlight when set to custom but without custom cubemap assigned)
1727
+ - Add: show console error on screen for localhost / local dev environment
1728
+ - Fix: create environment lighting textures from exported colors
1729
+ - Change: UI InputField expose text
1730
+ - Change: Bump threejs version to latest (> r144) which also contains USDZExporter PR
1731
+
1732
+ ## [2.21.0-pre] - 2022-09-26
1733
+ - Add: custom shader set ``_ScreenParams``
1734
+ - Change: DropListener event ``details`` now contains whole gltf file (instead of just scene object)
1735
+
1736
+ ## [2.20.1-pre] - 2022-09-23
1737
+ - Add: AudioSource volume and spatial blending settings can now be set at runtime
1738
+ - Fix: AudioSource not playing on ``play`` when ``playOnAwake`` is false
1739
+
1740
+ ## [2.20.0-pre] - 2022-09-23
1741
+ - Add: VideoPlayer crossorigin attribute support
1742
+ - Add: ``debuginstancing`` url parameter flag
1743
+ - Add: Image handle builtin ``Background`` sprite
1744
+ - Add: Component now implements EventTargt so you can use ``addEventListener`` etc on every component
1745
+ - Add: EventList does automatically dispatch event with same name on component. E.g. UnityEvent named ``onClick`` will be dispatched on component as ``on-click``
1746
+ - Add: experimental progressive loading of textures
1747
+ - Add: ``WebXR`` exposes ``IsARSupported`` and ``IsVRSupported``
1748
+ - Fix: remove Ambient Intensity
1749
+ - Fix: ShadowCatcher material should not write depth
1750
+
1751
+ ## [2.19.1-pre] - 2022-09-21
1752
+ - Fix: SpatialTrigger intersection check when it's not a mesh
1753
+ - Fix: UnityEvent / EventList argument of ``0`` not being passed to the receiving method
1754
+ - Fix: Physics rigidbody/collider instantiate calls
1755
+ - Fix: Physics rigidbody transform changes will now be applied to internal physics body
1756
+ - Fix: ``needle-engine.getContext`` now listens to loading finished event namely ``loadfinished``
1757
+ - Change: cleanup some old code in Rigidbody component
1758
+
1759
+ ## [2.19.0-pre] - 2022-09-20
1760
+ - Add: initial support for ``InputField`` UI (rendering, input handling on desktop, mobile and AR, change and endedit events)
1761
+ - Add: ``EventList.invoke`` can now handle an arbitrary number of arguments
1762
+ - Change: lower double click threshold to 200ms instead of 500ms
1763
+ - Change: runtime font-style does not change font being used in this version. This will temporarely break rich text support.
1764
+ - Fix: custom shader regression where multiple objects using the same material were not rendered correctly
1765
+ - Fix: Text sometimes using invalid path
1766
+ - Fix: Remove unused imports
1767
+
1768
+ ## [2.18.0-pre] - 2022-09-20
1769
+ - Add basic support for ``CameraDepth`` and ``OpaqueTexture`` (the opaque texture still contains transparent textures in this first version) being used in custom shaders
1770
+
1771
+ ## [2.17.1-pre] - 2022-09-17
1772
+ - Improve Animator root motion blending
1773
+ - Fix SpatialTrigger error when adding both SpatialTrigger as well as SpatialTrigger receiver components to the same object
1774
+ - AnimatorController can now handle states with empty motion or missing clips
1775
+
1776
+ ## [2.17.0-pre] - 2022-09-15
1777
+ - Add: automatic runtime font atlas generation from Unity font assets
1778
+ - Remove: shipped font assets in ``include/fonts``
1779
+ - Fix: Physics pass custom vector into ``getWorldPosition``, internal vector buffer size increased to 100
1780
+ - Fix: SpatialTrigger and SpatialTrigger receivers didnt work anymore due to LayerMask serialization
1781
+
1782
+ ## [2.16.1-pre] - 2022-09-14
1783
+ - Change: UI disable shadow receiving and casting by default, can be configured via Canvas
1784
+ - Fix: ``gameObject.getComponentInParent`` was making false call to ``getComponentsInParent`` and returning an array instead of a single object
1785
+ - Fix: light intensity in AR
1786
+
1787
+ ## [2.16.0-pre] - 2022-09-14
1788
+ - Add: first draft of Animator root motion support
1789
+ - Fix: ``Renderer.sharedMaterials`` assignment bug when GameObject was mesh
1790
+ - Fix: Buttons set to color transition did not apply transition colors
1791
+ - Fix: UI textures being flipped
1792
+ - Fix: UI textures were not stretched across panel but instead being clipped if the aspect ratio didnt match perfectly
1793
+
1794
+ ## [2.15.0-pre] - 2022-09-12
1795
+ - Add stencil support to ``Renderer``
1796
+ - Add timeline ``removeTrackOffset`` support
1797
+ - Fix timeline animation track offset only being applied to root
1798
+ - Fix timeline clip offsets not being applied when no track for e.g. rotation or translation exists
1799
+
1800
+ ## [2.14.0-pre] - 2022-09-11
1801
+ - Add initial UI anchoring support
1802
+ - Add initial support for URP RenderObject Stencil via ``NEEDLE_render_objects`` extension
1803
+
1804
+ ## [2.13.4-pre] - 2022-09-09
1805
+ - Fix UI transform handling for [issue 42](https://github.com/needle-tools/needle-engine-support/issues/42) and [issue 30](https://github.com/needle-tools/needle-engine-support/issues/30)
1806
+ - Fix AudioSource not restarting to play at onEnable when ``playOnAwake`` is true (this is the default behaviour in Unity)
1807
+
1808
+ ## [2.13.3-pre] - 2022-09-09
1809
+ - Fix RGBAColor not implementing copy which caused alpha to be set to 0 (this caused ``Camera.backgroundColor`` to not work properly)
1810
+
1811
+ ## [2.13.2-pre] - 2022-09-07
1812
+ - Add support to set OrbitControls camera position immediately
1813
+
1814
+ ## [2.13.1-pre] - 2022-09-07
1815
+ - Fix EventList invocation not using deserialized method arguments
1816
+
1817
+ ## [2.13.0-pre] - 2022-09-07
1818
+ - Add ``context`` to ``StateMachineBehaviour``
1819
+ - Fix ``StateMachineBehaviour`` binding (event functions were called with wrong binding)
1820
+
1821
+ ## [2.12.0-pre.1] - 2022-09-06
1822
+ - Fix deserialization error when data is null or undefined
1823
+
1824
+ ## [2.12.0-pre] - 2022-09-05
1825
+ - Add initial tonemapping and exposure support
1826
+ - Add AR shadow catcher
1827
+ - Fix objects parented to camera appear behind camera
1828
+ - Fix reticle showing and never disappearing when no WebARSessionRoot is in scene
1829
+ - Fix WebARSessionRoot when on same gameobject as WebXR component
1830
+ - Fix deserialization of ``@serializable(Material)`` producing a new default instance in certain cases
1831
+ - Fix ``OrbitControls`` enable when called from UI button event
1832
+ - Fix EventList / UnityEvent calls to properties (e.g. ``MyComponent.enable = true`` works now from UnityEvent)
1833
+
1834
+ ## [2.11.1-pre] - 2022-09-02
1835
+ - Change: ``OrbitControls.setTarget`` does now lerp by default. Use method parameter ``immediate`` to change it immediately
1836
+ - Change: bump component compiler dependency to ``1.8.0``
1837
+
1838
+ ## [2.10.3-pre] - 2022-09-01
1839
+ - Fix EventList serialization for cross-glb references
1840
+ - Fix AnimatorController transition from state without animation
1841
+
1842
+ ## [2.10.2-pre] - 2022-09-01
1843
+ - Fix: skybox/camera background on exit AR
1844
+ - Change: AnimatorController can now contain empty states
1845
+ - Change: Expose ``Animator.Play`` transition duration
1846
+
1847
+ ## [2.10.1-pre] - 2022-08-31
1848
+ - Improved RectTransform animation support and canvas element positioning
1849
+ - Fix ``Animator.Play``
1850
+ - Change: Expose ``AnimatorController.FindState(name)``
1851
+
1852
+ ## [2.10.0-pre] - 2022-08-29
1853
+ - Add UI to gltf export
1854
+ - Add button animation transition support for triggers ``Normal``, ``Highlighted`` and ``Pressed``
1855
+
1856
+ ## [2.9.0-pre] - 2022-08-26
1857
+ - Add ``Canvas.renderOnTop`` option
1858
+ - Fix ``OrbitControls`` changing focus/moving when interacting with the UI
1859
+ - Fix nullref in AnimatorController with empty state
1860
+
1861
+ ## [2.8.0-pre] - 2022-08-25
1862
+ - Add export for ``Renderer.allowOcclusionWhenDynamic``
1863
+ - Fix: bug in ``@serializable`` type assignment for inherited classes with multiple members with same name but different serialized types
1864
+ - Change: ``GameObject.findObjectOfType`` now also accepts an object as a search root
1865
+
1866
+ ## [2.7.3-pre] - 2022-08-25
1867
+ - Fix canvas button breaking orbit controls [issue #4](https://github.com/needle-tools/needle-engine-support/issues/4)
1868
+
1869
+ ## [2.7.2-pre] - 2022-08-23
1870
+ - Fix SyncedRoom to not append room parameter multiple times
1871
+
1872
+ ## [2.7.1-pre] - 2022-08-22
1873
+ - Add: Timeline AudioTrack nullcheck when audio file is missing
1874
+ - Fix: AnimatorController error when behaviours are undefined
1875
+ - Change StateMachineBehaviour methods to be lowercase
1876
+
1877
+ ## [2.7.0-pre] - 2022-08-22
1878
+ - Add initial StateMachineBehaviour support with "OnStateEnter", "OnStateUpdate" and "OnStateExit"
1879
+ - Fix input raycast position calculation for scrolled content
1880
+
1881
+ ## [2.6.1-pre] - 2022-08-22
1882
+ - Fix texture pointer remapping in gltf-transform opaque extension
1883
+ - Change: skip texture-transform for textures starting with "Lightmap" for now until we can configure this properly
1884
+
1885
+ ## [2.6.0-pre] - 2022-08-18
1886
+ - Add scale to instantiation sync messages
1887
+ - Fix ``BoxHelper``
1888
+ - Fix AR reticle being not visible when ``XRRig`` is child of ``WebARSessionRoot`` component
1889
+ - Fix exception in ``DragControls`` when dragged object was deleted while dragging
1890
+
1891
+ ## [2.5.0-pre] - 2022-08-18
1892
+ - Change name of ``KHR_webgl_extension`` to ``NEEDLE_webgl_extension``
1893
+ - Change: dont write depth for custom shader set to transparent
1894
+ - Deprecate and disable ``AssetDatabase``
1895
+
1896
+ ## [2.4.1-pre] - 2022-08-17
1897
+ - Add ``Mathf.MoveTowards``
1898
+ - Change: rename ``needle-tiny`` webcomponent to ``needle-engine``
1899
+ - Fix ordering issue in needle web component when codegen.js is executed too late
1900
+
1901
+ ## [2.3.0-pre] - 2022-08-16
1902
+ - Add SyncedCamera prefab/AssetReference support
1903
+ - Add TypeArray support for ``serializable`` to provide multiple possible deserialization types for one field (e.g. ``serializable([Object3D, AssetReference])`` to try to deserialize a type as Object3D first and then as AssetReference)
1904
+
1905
+ ## [2.2.0-pre] - 2022-08-14
1906
+ - Add event callbacks for Gltf loading: ``BeforeLoad`` (use to register custom extensions), ``AfterLoaded`` (to receive loaded gltf), ``FinishedSetup`` (called after components have been created)
1907
+
1908
+ ## [2.1.2-pre] - 2022-08-14
1909
+ - Fix AnimatorController exit state
1910
+ - Fix AR camera background alpha to be fully transparent by default
1911
+
1912
+ ## [2.1.1-pre] - 2022-08-12
1913
+ - Fix: light shadow bias
1914
+
1915
+ ## [2.1.0-pre] - 2022-08-11
1916
+ - Add ``@needle-tools/engine`` to be used as import for "most used" apis and functions
1917
+ - Change: remove obsolete ``Renderer.materialProperties``
1918
+ - Fix: ``NEEDLE_persistent_assets`` extension is now valid format (change from array to object)
1919
+
1920
+ ## [2.0.0-pre] - 2022-08-08
1921
+ - Renamed package
1922
+
1923
+ ## [1.21.2-pre] - 2022-08-08
1924
+ - Fix: NestedGltf transform
1925
+
1926
+ ## [1.20.1-pre] - 2022-08-06
1927
+ - Remove: Duplicateable animation time offset hack
1928
+ - Change: GameObjectData extension properly await assigning values
1929
+ - Change: NestedGltf instantiate using guid
1930
+ - Change: ``instantiate`` does now again create guids for three Objects too
1931
+
1932
+ ## [1.20.0-pre] - 2022-08-05
1933
+ - Add: NestedGltf ``listenToProgress`` method
1934
+ - Add: Allow changing Renderer lightmap at runtime
1935
+ - Fix: Environment lighting when set to flat or gradient (instead of skybox)
1936
+ - Fix: ``this.gameObject.getComponentInChildren`` - was internally calling wrong method
1937
+ - Fix: Spectator camera, requires Camera component in glb now
1938
+
1939
+ ## [1.19.0-pre] - 2022-08-03
1940
+ - Add: Animator.keepAnimatorStateOnDisable, defaults to false as in Unity so start state is entered on enable again
1941
+ - Add: warning if different types with the same name are registered
1942
+ - Add: timeline track ``onMutedChanged`` callback
1943
+ - Change: PlayableDirector expose audio tracks
1944
+ - Change: BoxCollider and SphereCollider being added to the physics scene just once
1945
+ - Change: try catch around physics step
1946
+
1947
+ ## [1.18.0-pre] - 2022-08-01
1948
+ - Add: Addressable download progress is now observeable
1949
+ - Add: Addressable preload support, allows to load raw bytes without actually building any components
1950
+ - Add: PlayableDirector exposes tracks / clips
1951
+ - Change: modify default engine loading progress bar to be used from user code
1952
+ - Change: add option to Instantiate call to keep world position (set ``keepWorldPosition`` in ``InstantiateOptions`` object that you can pass into instantiate)
1953
+ - Change: light uses shadow bias from Unity
1954
+ - Fix: instancing requiring worldmatrix update being not properly processed
1955
+ - Fix: Duplicatable world position being off (using ``keepWorldPosition``)
1956
+ - Fix: ``Animation`` component, it does allow to use one main clip only now, for more complex setups please use AnimationController or Timeline
1957
+ - Fix: ``SyncedRoom`` room connection on enter WebXR
1958
+ - Fix: WebXR avatar loading
1959
+
1960
+ ## [1.17.1-pre] - 2022-07-27
1961
+ - Change: bump component compiler dependency to ``1.7.1``
1962
+ - Change: ``context.mainCameraComponent`` is now of type ``Camera``
1963
+ - Fix: timeline control track
1964
+ - Fix: timeline animation track post extrapolation
1965
+ - Fix: custom shader does not fail when scene uses object with transmission (additional render pass)
1966
+
1967
+ ## [1.17.0-pre] - 2022-07-21
1968
+ - engine: add loading bar and show loading state text
1969
+
1970
+ ## [1.16.0-pre] - 2022-07-20
1971
+ - engine: add using ambient light settings (Intensity Multiplier) exported from Unity
1972
+
1973
+ ## [1.15.1-pre] - 2022-07-18
1974
+ - engine: fix nullref in registering texture
1975
+
1976
+ ## [1.15.0-pre] - 2022-07-15
1977
+ - engine: remove legacy file
1978
+ - engine: add basic implementation of ``Context.destroy``
1979
+ - engine: fix ``<needle-tiny>`` src attribute
1980
+ - engine: add implictly creating camera with orbit controls when loaded glb doesnt contain any (e.g. via src)
1981
+
1982
+ ## [1.14.2-pre] - 2022-07-12
1983
+ - engine: fix dont apply lightmaps to unlit materials
1984
+ - engine: remove log in PlayableDirector
1985
+ - engine: add support to override (not automatically create) WebXR buttons
1986
+
1987
+ ## [1.14.1-pre] - 2022-07-11
1988
+ - engine: Fix AnimatorController finding clip when cloned via ``AssetReference.instantiate``
1989
+ - engine: Fix deep clone array type
1990
+ - engine: Fix PlayableDirectory binding when cloned via ``AssetReference.instantiate``
1991
+
1992
+ ## [1.14.0] - 2022-07-10
1993
+ - engine: add VideoPlayer using ``AudioOutputMode.None``
1994
+ - engine: fix VideoPlayer waiting for input before playing video with audio (unmuted) and being loaded lazily
1995
+
1996
+ ## [1.13.0-pre] - 2022-07-07
1997
+ - engine: Add ``getComponent`` etc methods to THREE.Object3D prototype so we can use it like in Unity: ``this.gameObject.getComponent...``
1998
+ - engine: Change ``Duplictable`` serialization
1999
+
2000
+ ## [1.12.2-pre] - 2022-07-06
2001
+ - engine: Fix networking localhost detection
2002
+ - engine: update component generator package version (supporting now CODEGEN_START and END sections as well as //@ifdef for fields)
2003
+
2004
+ ## [1.12.1-pre] - 2022-07-06
2005
+ - engine: change lightmap extension to be object
2006
+
2007
+ ## [1.12.0-pre] - 2022-07-06
2008
+ - engine: Add DeviceFlag component
2009
+ - engine: Fix VideoPlayer loop and playback speed
2010
+ - engine: Improve VideoTrack sync
2011
+
2012
+ ## [1.11.0-pre] - 2022-07-04
2013
+ - engine: fix ``enabled`` not being always assigned
2014
+ - engine: fix react-three-fiber component setting camera
2015
+ - engine: add support for custom timeline track
2016
+ - engine: add VideoTrack npmdef
2017
+
2018
+ ## [1.10.3-pre] - 2022-07-01
2019
+ - engine: Change; PlayableDirector Wrap.None now stops/resets timeline on end
2020
+ - engine: Change; PlayableDirector now stops on disabling
2021
+
2022
+ ## [1.10.2-pre] - 2022-07-01
2023
+ - engine: fix timeline clip offsets and hold
2024
+ - engine: fix timeline animationtrack support for post-extrapolation (hold, loop, pingpong)
2025
+
2026
+ ## [1.10.1-pre] - 2022-06-30
2027
+ - engine: improve timeline clip offsets
2028
+
2029
+ ## [1.10.0-pre] - 2022-06-30
2030
+ - engine: Improved timeline clip- and track offset (ongoing)
2031
+ - engine: Change assigning all serialized properties by default again (instead of require ``@allProperties`` decorator)
2032
+ - engine: Change; deprecate ``@allProperties`` and ``@strict`` decorators
2033
+
2034
+ ## [1.9.1-pre] - 2022-06-29
2035
+ - engine: add methods for unsubscribing to EventList and make constructor args optional
2036
+ - engine: change camera to not change transform anymore
2037
+
2038
+ ## [1.9.0-pre] - 2022-06-28
2039
+ - engine: add support for transparent rendering using camera background alpha
2040
+
2041
+ ## [1.8.0-pre] - 2022-06-27
2042
+ - Add: transform gizmo component
2043
+ - Change: component generator for npmdef is not required anymore
2044
+ - Change: component gen runs in background now
2045
+ - Fix: typescript drag drop adding component twice in some cases
2046
+ - engine: update component gen package dependency
2047
+ - engine: fix redundant camera creation when exported in GLTF
2048
+ - engine: fix orbit controls focus lerp, stops now on input
2049
+
2050
+ ## [1.7.1-pre] - 2022-06-25
2051
+ - Override PlayMode in sub-scene
2052
+ - engine: lightmaps encoding fix
2053
+ - engine: directional light direction fix
2054
+
2055
+ ## [1.7.0-pre] - 2022-06-25
2056
+ - engine: animator controler can handle multiple target animators
2057
+ - engine: fix WebXR being a child of WebARSessionRoot
2058
+ - engine: improve Camera, OrbitControls, Lights OnEnable/Disable behaviour
2059
+ - engine: add ``Input.getKeyPressed()``
2060
+
2061
+ ## [1.6.0-pre] - 2022-06-23
2062
+ - engine: fix light error "can't add object to self" when re-enabled
2063
+ - engine: remove extension log
2064
+ - engine: log missing info when UnityEvent has not target (or method not found)
2065
+ - engine: use lightmap index for supporting multiple lightmaps
2066
+
2067
+ ## [1.5.2-pre] - 2022-06-23
2068
+ - engine: Camera dont set skybox when in XR
2069
+ - engine: dont add lights to scene if baked
2070
+
2071
+ ## [1.5.1-pre] - 2022-06-22
2072
+ - engine: fix threejs dependency pointer
2073
+
2074
+ ## [1.5.0-pre] - 2022-06-22
2075
+ - engine: ``<needle-tiny>`` added awaitable ``getContext()`` (waits for scene being loaded to be used in external js)
2076
+ - engine: fix finding main camera warning
2077
+ - engine: add ``SourceIdentifier`` to components to be used to get gltf specific data (e.g. lightmaps shipped per gltf)
2078
+ - engine: persistent asset resolve fix
2079
+ - engine: update three dependency to support khr_pointer
2080
+ - engine: remove custom khr_pointer extension
2081
+ - engine: fix WebARSessionRoot exported in gltf
2082
+ - engine: smaller AR reticle
2083
+
2084
+ ## [1.4.1-pre] - 2022-06-17
2085
+ - engine: create new GltfLoader per loading request
2086
+ - engine: fix bug in core where it could happen that scripts were added multiple times
2087
+ - engine: Added SyncedRoom auto rejoin option (to handle disconnection by server due to window inactivity)
2088
+ - engine: guid resolving first in loaded gltf and retry in whole scene on fail
2089
+ - engine: fix nullref in DropListener
2090
+ - engine: register main camera before first awake
2091
+
2092
+ ## [1.4.0-pre] - 2022-06-15
2093
+ - engine: add ``GameObject.getOrAddComponent``
2094
+ - engine: ``OrbitControl`` exposing controlled object
2095
+ - engine: ``getWorldPosition`` now uses buffer of cached vector3's instead of only one
2096
+ - engine: add ``AvatarMarker`` to synced camera (also allows to easily attach ``PlayerColor``)
2097
+ - engine: fix ``Animation`` component when using khr_pointer extension
2098
+ - engine: ``VideoPlayer`` expose current time
2099
+ - engine: fix ``Animator.runtimeController`` serialization
2100
+ - engine: make ``SyncedRoom.tryJoinRoom`` public
2101
+
2102
+ ## [1.3.1-pre] - 2022-06-10
2103
+ - engine: allow ``@serializeable`` taking abstract types
2104
+ - engine: add ``Renderer.sharedMaterials`` support
2105
+
2106
+ ## [1.3.0-pre] - 2022-06-09
2107
+ - engine: move log behind debug flag
2108
+ - engine: improved serialization property assignment respecting getter only properties
2109
+ - engine: add optional serialization callbacks to ``ISerializable``
2110
+ - engine: default to only assign declared properties
2111
+
2112
+ ## [1.2.3-pre] - 2022-06-09
2113
+ - engine: downloading dropped file shows minimal preview box
2114
+ - engine: ``DropListener`` can use localhost
2115
+ - engine: ``SyncedRoom`` avoid reload due to room parameter
2116
+ - engine: ``LODGroup`` instantiate workaround
2117
+ - engine: improve deserialization supporting multiple type levels
2118
+
2119
+ ## [1.2.2-pre] - 2022-05-30
2120
+ - engine: change md5 hashing package
2121
+ - engine: file upload logs proper server error
2122
+
2123
+ ## [1.2.1-pre] - 2022-05-30
2124
+ - engine: disable light in gltf if mode is baked
2125
+ - engine: use tiny starter as default networking backend
2126
+ - engine: synced file init fix for resolving references
2127
+ - engine: allow removing of gen.js completely
2128
+ - engine: expose ``Camera.buildCamera`` for core allowing to use blender camera
2129
+ - engine: on filedrop only add drag control if none is found
2130
+
2131
+ ## [1.2.0-pre] - 2022-05-27
2132
+ - engine: fix networked flatbuffer state not being stored
2133
+ - engine: make ``src`` on ``<needle-tiny>`` web component optional
2134
+ - engine: ``src`` can now point to glb or gltf directly
2135
+ - engine: fix ``Raycaster`` registration
2136
+ - engine: add ``GameObject.destroySynced``
2137
+ - engine: add ``context.setCurrentCamera``
2138
+ - engine: make ``DropListener`` to EventTarget
2139
+ - engine: make ``DropListener`` accept explicit backend url
2140
+
2141
+ ## [1.1.0-pre.6] - 2022-05-26
2142
+ - Fix gltf transform textures output when used in custom shaders only
2143
+
2144
+ ## [1.1.0-pre.5] - 2022-05-25
2145
+ - engine: fix ``VideoPlayer`` being hidden, play automatically muted until interaction
2146
+ - engine: added helpers to update window history
2147
+ - engine: fix setting custom shader ``Vector4`` property
2148
+ -
2149
+ ## [1.1.0-pre.4] - 2022-05-25
2150
+ - engine: fix tsc error in ``Animation`` component
2151
+ - engine: fix ``Animation`` component assigning animations for GameObject again
2152
+ - engine: fix ``Animation`` calling play before awake
2153
+ - engine: ``AnimatorController`` handle missing motion (not assigned in Unity)
2154
+ - engine: ``AnimatorController.IsInTransition()`` fix
2155
+
2156
+ ## [1.1.0-pre.1] - 2022-05-20
2157
+ - engine: minor tsc issues fixed
2158
+
2159
+ ## [1.1.0-pre] - 2022-05-20
2160
+ - engine: add ``isManagedExternally`` if renderer is not owned (e.g. when using react-fiber)
2161
+
2162
+ ## [1.0.0-pre.18] - 2022-05-19
2163
+ - engine: add basic support for ``stopEventPropagation`` (to make e.g. ``DragControls`` camera control agnostic in preparation of react support)
2164
+
2165
+ ## [1.0.0-pre.17] - 2022-05-17
2166
+ - fix ``EventList`` outside of gltf
2167
+ - fix ``EventList`` without any function assigned (``No Function`` in Unity)
2168
+ - engine: support changing ``WebARSessionRoot.arScale`` changing at runtime
2169
+
2170
+ ## [1.0.0-pre.16] - 2022-05-12
2171
+ - engine: fix webx avatar instantiate
2172
+ - engine: stop input preventing key event defaults
2173
+
2174
+ ## [1.0.0-pre.15] - 2022-05-12
2175
+ - engine: log error if ``instantiate`` is called with false parent
2176
+ - engine: fix instantiate with correct ``AnimatorController`` cloning
2177
+
2178
+ ## [1.0.0-pre.14] - 2022-05-11
2179
+ - engine: fix ``@syncField()``
2180
+ - engine: fix ``AssetReference.instantiate`` and ``AssetReference.instantiateSynced`` parenting
2181
+ - engine: improve ``PlayerSync`` and ``PlayerState``
2182
+
2183
+ ## [1.0.0-pre.13] - 2022-05-11
2184
+ - engine: prepend three canvas to the web element instead of appending
2185
+ - engine: ``SyncedRoom`` logs warning when disconnected
2186
+ - engine: internal networking does not attempt to reconnect on connection closed
2187
+ - engine: internal networking now empties user list when disconnected from room
2188
+ - engine: ``GameObject.instantiate`` does not always generate new guid to support cases where e.g. ``SyncTransform`` is on cloned object and requires unique id
2189
+ - engine: ``syncedInstantiate`` add fallback to ``Context.Current`` when missing
2190
+ - engine: ``EventList`` refactored to use list of ``CallInfo`` objects internally instead of plain function array to more easily attach meta info like ``UnityEvent.off``
2191
+ - engine: add ``GameObject.instantiateSynced``
2192
+
2193
+ ## [1.0.0-pre.12] - 2022-05-10
2194
+ - engine: fix font path
2195
+ - engine: add ``debugnewscripts`` url parameter
2196
+ - engine: start adding simplifcation to automatic instance creation + sync per player
2197
+ - engine: allow InstantiateOptions in ``GameObject.instantiate`` to be inlined as e.g. ``{ position: ... }``
2198
+ - engine: add ``AvatarMarker`` creation and destroy events
2199
+ - engine: fix networking message buffering
2200
+
2201
+ ## [1.0.0-pre.11] - 2022-05-08
2202
+ - engine: ``SpatialTrigger`` is serializable
2203
+ - engine: fix ``DragControls`` offset when using without ground
2204
+ - engine: fix ``WebXRController`` interaction with UI ``Button.onClick``
2205
+
2206
+ ## [1.0.0-pre.10] - 2022-05-04
2207
+ - engine: fix gltf extension not awaiting dependencies
2208
+ - engine: fix persistent asset @serializable check for arrays
2209
+ - engine: add ``setWorldScale``
2210
+ - engine: fix ``instantiate`` setting position
2211
+ - engine: ``AssetReference`` does now create new instance in ``instantiate`` call
2212
+ - engine: add awaitable ``delay`` util method
2213
+ - engine: fix scripts being active when loaded in gltf but never added to scene
2214
+ - engine: minimal support for mocking pointer input
2215
+ - engine: emit minimal down and up input events when in AR
2216
+
2217
+ ## [1.0.0-pre.9] - 2022-05-03
2218
+ - improved default loading element
2219
+ - changed animation pointer to support emissive intensity
2220
+
2221
+ ## [1.0.0-pre.8] - 2022-05-02
2222
+ - lightmaps fixed
2223
+ - glitch upload shows time estimate
2224
+ - deployment build error fix
2225
+ - json pointer resolve
2226
+ - improved auto install
2227
+ - started basic ``SpriteRenderer`` support
2228
+ - basic ``AnimationCurve`` support
2229
+ - fixed ``PlayerColor``
2230
+ - fixed ``persistent_assets`` and ``serializeable`` conflict
2231
+ - basic export of references to components in root prefab
2232
+
2233
+ ## [1.0.0-pre.7] - 2022-04-30
2234
+ - ``WebXR`` does not load avatar from prefab reference
2235
+ - ``WebXRSync`` is added implictly and creates local avatar even when not networked
2236
+ - ``SpectatorCam`` is using local avatar
2237
+ - ``SpectatorCam`` camera component in Unity is now optional and implictly added if missing
2238
+
2239
+ ## [1.0.0-pre.6] - 2022-04-29
2240
+ - fix environment light
2241
+ - fix light shadows setting
2242
+ - fix video player in extension
2243
+ - fix video player texture not overlaying rendering while awaiting interaction
2244
+ - fix webAR root reticle when no rig component is in scene
2245
+
2246
+ ## [1.0.0-pre.5] - 2022-04-28
2247
+ - start adding support for ``AssetReference`` again
2248
+
2249
+ ## [1.0.0-pre.4] - 2022-04-27
2250
+ - add persistent asset extension
2251
+ - removed timeline and animator controller extensions as both are now serialized and resolved in assets
2252
+ - can resolve json pointers (``animations/``, ``materials/``, ``textures/``, ``extensions``) in component paths
2253
+ - add ``syncField()`` decorator
2254
+
2255
+ ## [1.0.0-pre.2] - 2022-04-20
2256
+ - updated to https:// three.js url instead of git:// url
2257
+ - fixated flatbuffers dependency to 2.0.4 due to breaking changes and bugs in 2.0.6
2258
+
2259
+ ## [1.0.0-pre] - 2022-04-19
2254
2260
  - initial release