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