1.3.6228
版本发布时间: 2022-03-03 06:06:03
FlaxEngine/FlaxEngine最新发布版本:1.8.6512.2(2024-05-23 05:27:25)
Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-3-6228/643
Changelog:
- Add macOS support for Game and Editor
- Add improvements for joints editing with debug shapes
- Add D6 Joint motions editing in Editor properties panel
- Add Gordon Ramsay quote to Editor Splash Screen (very important feature)
- Add support for interfaces in Scripting API (cross-language support C++/C#/VS)
- Add preserving timeline position when zooming with a mouse wheel
- Add scrolling timeline horizontally with Shift+Wheel
- Add timeline view panning with right-mouse button even over keyframes editor or curve editor
- Add resizing feature to timeline curve tracks
- Add shared rectangle selection for all timeline tracks to select keyframes
- Add shared selected keyframes moving ability for timeline tracks
- Add copy/paste feature to keyframes and curves editors
- Add keyframes editor to proxy keyframes from subtracks on object track
- Add epsilon clamping for keyframes adding in timeline
- Add live-preview option for editing scene animation
- Add timeline tracks duplicating option
- Add timeline tracks sorting option
- Add timeline keyframes selection via timeline background
- Add support for changing target actor for scene animation actor track
- Add support for multiple media events on audio, postfx and camera tracks in Scene Animations
- Add curve/keyframes select or copy all keyframes option
- Add timeline undo actions batching
- Add option to delete media from Timeline
- Add C++ lambda support for
Function<>
andDelegate<>
- Add option to compile C#-only scripts on Linux when cooking for Windows
- Add option Select actors using this asset to content menu
- Add
ContentItem.OnContextMenu
- Add option to make
AssetPicker
a read-only - Add explicit operator for Color32 to Int4
- Add
Level::ScriptsReloaded
event - Add
CollisionMeshesPrefix
option to import collision data from model asset - Add additional
UploadMipMapAsync
forGPUTexture
update with custom row/slice pitch - Add
ClearUA
to GPUContext to clear texture with float values - Add
Content.GetAllAssets
to get all asset ids in project - Add setter to
Control.Center
- Add missing memory profiler events to Unix platforms
- Add Ragdoll support and ragdolls generation utility to Animated Model context menu
- Add missing support for some formats in TextureTool
- Add
bc7enc16
encored for BC7 texture compression on Linux - Add
Platform.Users
to handle users per-platform - Add minor tweaks to math types
- Add
Joint.SetJointLocation
for easier joints setup - Add
Joint.SetJointOrientation
utility - Add physics colliders selecting in
PhysicsColliders
debug view - Add Animation Slot node for playing animations from code in Anim Graph
- Add
EnableAutoAnchor
to Joint for automatic target anchor setup - Add
Quaternion::FromDirection
to C++ - Add bitangent vectors debugging to Model preview
- Add
Finished
event toMeshDataCache
- Add
SoftAssetReference
type - Add Ragdoll example to Physics Sample project
- Add PS5 platform support (unofficial)
- Add error code logging to navmesh tiles adding issues
- Add double-click to edit timeline media properties
- Add assets loading progress to Editor status bar
- Add Vulkan pipeline cache serialization
- Add Animation Events
- Add json serialization utils for objects to save/load from raw bytes
- Add
ScriptingObject::NewObject
utility for scripting objects spawning in C++ - Add Loading text info for particle system and animation timelines
- Add timeline media selection and editing to be global in sync with keyframes editors
- Add
Level::ScriptsReloadRegisterObject
for easier scripting objects refreshing during hot-reload in code - Add tire wheel tire friction scale parameter for Wheeled Vehicle
- Add easier game or plugin settings asset usage with
SettingsBase
- Add GameCooker events for game files deploy and packaging
- Add
StringAnsi
serialization - Add support for custom settings asset creation
- Add Online system with online backends for Steam, Xbox Live and PlayStation Network and Switch
- Add improvements for objects spawning and snapping in Editor to include object bounds
- Add decals spawning in editor for drag&drop
- Add option to throw exception in build tool process utility
- Add support for overriding Anim Graph output for Animated Model
- Add support for passing the object reference as scripting function output result
- Add ToString for some packed vector types
- Add timeline media
Start
time editing in properties popup in seconds if using this view mode - Add option to disable timeline Media resizing by the user
- Add
SuppressFaceRemapTable
option for collision cooking - Add
CollisionData.GetModelTriangle
to retrieve source geometry triangle index from the raycast hit info - Add
FaceIndex
toRayCastHit
- Add support for
PrefabObject
tracks and automated animation instancing withUsePrefabObjects
enabled - Add
Mathf.Frac
to C# api - Add support for Visual Studio 2022
- Add assertions to String index operator to prevent invalid memory access
- Add soft failing to NetworkPeer creation and INetworkDriver initialization
- Add NetworkDriver object pointer to NetworkConfig to be used as custom interface implementation
- Add support for compiling and running engine without C# scripting
- Add setter for
ResidentMipLevels
on GPU Texture for C# scripting - Add support for parsing negation in scripting api preprocessor
- Add
ScriptingTypeHandle::IsSubclassOf
- Add automatic preserving of basic joint properties when converting between types in Editor
- Add DotNet targets building
- Add tests running on Github Action as CI
- Add Vulkan to automated Github CD builds
- Add macOS to automated daily
master
builds on Github - Add option to automatically generate mips for textures created from code
- Add
GetPixels
andSetPixels
toTextureBase
for easier textures data editing - Add arrows navigation for Visject surface nodes
- Add
Hidden
attribute to scripting fields/properties/methods/events - Add keyboard navigation for
ItemsListContextMenu
(used by pickers in Editor) - Add option to export a single localized string table to .pot file
- Add notification text to Editor status bar after saving to improve user awareness
- Add option to export a single localized string table to .pot file
- Add
FallbackTable
for localized strings table to redirect missing texts into other language - Add support for older Android devices that don't support
R11G11B10
texture format - Add features flags for Custom Editors presentation
- Add gamepad camera control for editor viewports
- Add
Rectangle.Distance
for distance between rectangle and a point - Add
NodesConnected
andNodesDisconnected
events to Visject surface API - Add
OnParamEdited
callback to Visject surface parameters API - Add Visual Script parameter access editing (public or private)
- Add option to change Visual Script parameter type
- Add Arrays to Visual Scripting
- Add better support for Arrays in Variant for C# Scripting
- Add Array constant node to Visual Script and Anim Graph
- Add support for exporting pdb files for D3D12 shaders if debug data is enabled
- Add C++ scripting API docs to online Flax Docs
- Add scripting enums as ScriptingType
- Add
ScriptingEnum
utility with useful features for C++ scripting - Add Variant to string for Enums to use scripting enum items names
- Add support for array initializers as default values for scripting fields
- Add automatic Setup when added patches to empty Terrain
- Add UI navigation system
- Add Tab navigation for Editor UI
- Add
F11
shortcut to maximize Game window during play-mode in Editor - Add preserving selection of the created new folder in the Content window
- Add ability to create an Actor by dragging it to an empty space in the Actor hierarchy window
- Add drag&drop to prefab hierarchy panel for easier usage
- Add
F2
shortcut for renaming item in files import dialog - Add
Split Objects
object to split imported meshes/animations into separate assets - Add batching the same function inputs in Anim Graph for better usability
- Add implicit casting to single types from vector types in Variant
- Add particle emitter and anim graph functions docs
- Add localization quality improvements
- Add
DefaultFallbackLanguage
to the localization settings - Add split-view for C++/C# code snippets in documentation
- Add support for passing back value via reference to C# scripting event
- Add context menu and tooltip to asset items in Content Finder tool
- Add constructor to Function for lambda
- Add Code Docs module for Editor tooltips
- Add managed assembly xml docs parsing for tooltips in Editor
- Add doc tooltips for actor types in Toolbox windows
- Add tooltips to actors in scene tree and to properties General panel header
- Add support to Dictionary for movable value types with no copy constructors
- Add
Math::SinCos
- Add profile events for Editor modules events and startup
- Add overload of
Task::StartNew()
to support member functions that returnvoid
- Add option for drawing audio clip preview with time offset
- Add improved Android NDK detection and prevent exception
- Add margin to TilesPanel tile
- Add
ScrollBarsSize
to Panel - Add
ScriptingTypeHandle::IsAssignableFrom
- Add
JsonAsset::GetInstance<T>
for easier access to C++ json asset data - Add
Render2D::DrawTexturedTriangles
variations with vertex colors - Add Shift for range-based selection in curve and timeline editors
- Add double-precision vectors (
Double2
,Double3
andDouble4
) - Add Orientation option to Content Window
- Add
DebugDraw.DrawCone
andDebugDraw.DrawWireCone
- Add
DebugDraw.DrawArc
andDebugDraw.DrawWireArc
- Add
ScriptingObject::ToInterface
andScriptingObject::FromInterface
- Add context menu for group panels in properties editor for resetting values
- Add value auto-select when focusing or clicking on input field in Editor
- Add check to prevent inheriting from static or sealed class in scripting
- Add showing Visject context menu group when it's title has a filter match
- Add GDK platform support (potential for Windows support via GDK, base for Xbox consoles)
- Add more options for
MicrosoftGame.config
- Add missing flaxengine api tags
- Add filesystem watcher implement for Linux
- Add
PROFILE_CPU_ASSET
for asset related profiler scoped zone - Add
TryGetToolchain
to build platform - Add
Utilities::CountBits
- Add more profiler events and naming for particles/animations jobs events
- Add logging content database init start time
- Add clamping for AA and shadows quality to prevent crashes on invalid usage
- Add LOD Preview debug view mode
- Add Material Complexity debug view model
- Add
GPUContext.ClearUA
for buffer and texture withuint
format - Add deploying
FlaxEditor.pdb
for Development configuration to improve crash reporting - Add Quad Overdraw debug view mode
- Add profiler events to shader compiler
- Add support for using
DEPRECATED
to mark scripting API as obsolete - Add
PRAGMA_DISABLE_DEPRECATION_WARNINGS
andPRAGMA_ENABLE_DEPRECATION_WARNINGS
macros to C++ - Add copy/paste for group panel with multiple custom editors nested inside
- Add support for pasting hex color values into Color properties in Editor
- Add
Vector::Angle
functions to C++ - Add
ManagedBinaryModule::FindModule
utility for C# type class lookup - Add improvements for native interfaces usage
- Add support for creating C# scripting object inheriting directly from
FlaxEngine.Object
- Add Gamepad support for Linux
- Add LinuxProcess that supports workingDir, env vars and logging
- Add inlined current thread id on Linux and Android
- Add helper parent actor of missing object logging to
HandleObjectDeserializationError
- Add caching ShowGUI and ShowDebugDraw in Game window
- Add
CookCollision
to collision data with triangles asint32
- Add support for
uint
as triangle indices for mesh updates API - Add Double-precision Math library
- Add
Show in explorer
to output log context menu - Add typename to script panel tooltip and don't inherit tooltip
- Add
LookingAt
to Actor - Add native unit tests running
- Update Xbox Scarlett and Xbox One support to ver GDK 2021.04 QFE5
- Optimize
FindObject
andTryFindObject
in Object - Optimize calling
Object.FindObject
from C# - Optimize single undo edit action to not use wrapper
- Optimize Content Finder popup
- Optimize timeline background rendering when zoom is very high
- Optimize audio preview rendering when zoom is very high
- Optimize ThreadLocal by removing size check
- Optimize utilities in
AnimationUtils
- Optimize
String::ReserveSpace
if length doesn't change - Optimize CPU particles impl parts
- Optimize
Asset::onAssetLoaded
if even is unused - Optimize atomic and interlocked memory operations on Win32 (Windows and Xbox) by inlining
- Optimize
StringView
comparison operators - Optimize Anim Graph state machine transition rule evaluation to happen before state evaluation for early rejection
- Optimize
PhysicsColliders
mode rendering in Editor - Optimize vertex buffer writing in Debug Draw
- Optimize physics shapes debug drawing for large scenes by using culling for colliders
- Optimize
Math.NearEqual
- Optimize UI in Editor
- Optimize file copy on Linux
- Optimize
Vector3
method to be inlined more often - Optimize model data access during models importing
- Optimize Toolbox tooltips for scripting types to be resolved when needed
- Optimize
FlaxEngine.CSharp.dll
size by 300kB after tooltips removal (xml doc will be used) - Optimize C# bindings in Engine code to static functions that native ABI matches managed signature
- Adjust curve and keyframes UI to be easier to use with a mouse
- Adjust curve background drawing for timeline
- Improve rigidbody warning message
- Increase default UAV slots limit to
4
- Disable compression for lightmaps on Linux (due to low-quality alpha encoding)
- Change Content loading threads count to depend on logical cores count instead of physical (set limit to 12)
- Change NUnit to use custom build from repo instead of nuget package
- Refactor Rigidbody automatic mass calculation to include physical material Density
- Refactor Control autofocus to be handled by control type instead of as part of
base.OnMouseDown
- Refactor SoftObjectReference to improve usage of it
- Refactor Timeline UI to use track flags
- Refactor GetChildByPrefabObjectId/GetScriptByPrefabObjectId from Actor to be private
- Refactor native core objects to simplify usage for newcomers (
PersistentScriptingObject
is now ``ScriptingObject`) - Refactor Xbox One platform support via GDK instead of UWP
- Refactor default
D6JointMotion
for D6Joint toLocked
- Refactor UAV slots binding when rendering from PS into UAV
- Refactor
DownloadIndexBuffer
to return unsigned data - Refactor prefab instances loading to improve refs loading between prefab objects
- Refactor
ContextMenuChildMenu
to inherit fromContextMenuButton
- Reenable memory allocations profiling in Editor with Tracy
- Remove insecure
autoInitialize
option from scenes loading - Fixes for
SIMD.h
- Fixes for compilation on Windows for x86
- Fix missing references to a new prefab objects inside other prefab objects when applying changes
- Fix various bugs in string functions
- Fix null values handling in C# Json serialization
- Fix invalid uses of
StringView::GetText()
where a null-terminated string was expected - Fix crash with nested scene animation playback
- Fix for env probes baking in Editor
- Fix connector node creation in Visject on double-click over node
- Fix regression for actor properties diff or default value reverting in Editor
- Fix importing materials from fbx files
- Fix joints properties ranges validation
- Fix D6Joint serialization
- Fix crash when physics scene with only inactive vehicles
- Fix Tracy profiler client allocating memory by using OnDemand mode
- Fix restriction if using
I
as prefix for interface names - Fix shadow null character in Flax.Build console command
- Fix default code editor detection in Editor to favor VSCode and Rider over system-default
- Fix bounding box size setter
- Fix automatic properties serialization bug
- Fix imported blend shape offsets from FBX file with multiple materials per-mesh
- Fix issue with Physics Layers filters being ignored for two controllers colliding
- Fix capturing stack trace from user native assemblies on Windows
- Fix typos and wording in readme
- Fix Editor crash when dragging material over CSG brush Surface
- Fix code quality issues detected by PVS-Studio
- Fix shader parsing error due to unknown macro used on shader function visibility condition
- Fix resizing textures with alpha on import to preserve transparent colors (instead of black)
- Fix blend shape dirty vertices range
- Fix structure initialization with default field value if attribute has different value HasInvalidPathChar
- Fix
CollisionsHelper::ClosestPointPointTriangle
(C++ version) - Fix depth pitch in
UpdateTexture
on D3D11 for volume textures - Fix potential exception in PluginManager dispose in Editor
- Fix DPI calculation on Linux for multiple screens
- Fix
MoveFile
on Linux - Fix drag&drop on Linux with file that has spaces in a path
- Fix crash on Linux if the requested font cannot be found for message boxes
- Fix some engine API to be exposed for C++ scripting
- Fix rare crashes with debug draw in Game Window
- Fix undo modifications notify from nested
SyncPointEditor
- Fix exporting app icons during game cooking without graphics backend
- Fix compressed textures exporting with resizing on non-Windows platforms
- Fix missing include for Xbox Live services on GDK platforms
- Fix passing
Span<byte>
to C# method thunk in generated bindings code - Fix game cooker platform selector layout on small window
- Fix Gameplay Global usage in material with material instance error
- Fix conditional variables usage on broadcast by using a shared mutex
- Fix module libraries linking in modular build mode
- Fix Game Cooker cache when materials or particles or shaders format gets changed
- Fix loading project reference with relative path in the Editor
- Fix
TargetViewOffset
from textboxes to be hidden - Fix shader function visibility parsing and add
USE_EDITOR
define to material shaders - Fix Visject surface context menu to focus property the selected item
- Fix for localization dashboard
- Fix spot lights rendering on D3D12
- Fix missing
Particle Position (world space)
node for CPU particles - Fix C# bindings for Editor for Window build on Linux
- Fix Windows Snap with borderless windows
- Fix missing object linkage when loading missing prefab objects during scene load
- Fix incorrect transformation on imported blend shapes data from fbx file
- Fix tree node navigation with key arrows to be more usable for deep hierarchies
- Fix depth of field blur artifacts on upper and left screen edges
- Fix audio playback issues in some cases with XAudio backend
- Fix audio volume and stereo on XAudio backend
- Fix showing tooltips for tree nodes in Editor
- Fix navmesh update when adding/removing navmesh bounds volume
- Fix engine ticking to catch up faster when falling behind
- Fix HSV value adjusting in Color picker to not exceed 1
- Fix import transform for skinned models
- Fix missing root motion preview in Animation preview panels (with option to disable it)
- Fix Multi Blend 1D/2D root motion extraction with blending
- Fix build tool freeze when parsing scripting header that contains invalid multi-line comment
- Fix missing blend shape data transformation on model data import
- Fix color trackball usage with undo
- Fix passing pointers as output pointer or reference in scripting api
- Fix missing blend shape refresh for Skinned Model window preview
- Fix various issues with Multi Blend 2D node
- Fix prefab changes apply crash
- Fix GUI material preview positioning in the Material window
- Fix reference to a pointer in TypeInfo for scripting bindings generation
- Fix invalid memory write in
StringUtils::ConvertANSI2UTF16
on Unix if length is empty - Fix using object reference in Scripting API with
PersistentScriptingObject
- Fix per-instance vertex colors uploading if data is already valid
- Fix
RunProcess
on Linux with custom working directory - Fix scene animation warning due to missing object to be fired once per-track without a spam
- Fix support for codeless game projects
- Fix snapping rigidbodies to the floor
- Fix removing keys in Dictionary with string keys
- Fix one error when pasting Visject nodes with type modified compared to archetype
- Fix custom actor options for prefab window
- Fix generated
DefaultValue
attribute to match the field value type - Fix possible division by zero in
Plane.Normalize
- Fix entering play mode in Editor with pause mode on start
- Fix
Input::GetGamepadAxis
withInputGamepadIndex::All
- Fix missing AnimatedModel pose access if it's not initialized yet
- Fix error when using over 180 angle for joint limits
- Fix mesh tangent and bitangent vectors generation with OpenFBX backend by using
MikkTSpace
- Fix missing copy destination offset in dynamic buffer update on D3D11
- Fix Visject param node getter breaking connection on param change to the same type
- Fix Get/Set field node in Visual Script to update Instance box accordingly for static fields
- Fix monolithic target build with native code module used by referenced plugin
- Fix possible division by zero in
BoundingFrustum::GetCorners
- Fix mouse focus issue with Timeline background
- Fix
DefaultValue
attribute support in Custom Editors for unsigned integers - Fix editor undo for unsigned integer types
- Fix texture refs in platform settings to be SoftObjectReferences instead of raw Guid
- Fix crash when creating C# object for native object at the same time on multiple threads
- Fix crash when applying prefab that includes both removed and added objects
- Fix crash when streaming texture with unsupported format by the GPU driver
- Fix crash when reading from RingBuffer if it's full
- Fix crash when changing mesh collider in async for not-simulated actor
- Fix crash if texture streaming fails on different texture format on Vulkan due to fallback usage
- Fix crash when spawning managed object on a detached native thread
- Fix crash when trying to read invalid Visual Script parameter from local scope during debugging
- Fix crash when model or skinned model loading fails
- Fix crash on Vulkan swapchain resize if the previous size was 0 (eg. due to window animation on Windows 11)
- Fix crash when passing function with lambda to the Job System
- Fix crash on thread end that used Mono runtime
- Fix crash with terrain in prefab window
- Fix crash on native type in JsonAsset due to scripting hot-reload in Editor