1.7.6404
版本发布时间: 2023-10-31 23:39:09
FlaxEngine/FlaxEngine最新发布版本:1.8.6512.2(2024-05-23 05:27:25)
Blog post: https://flaxengine.com/blog/flax-1-7-released/
Release notes: https://docs.flaxengine.com/manual/release-notes/1_7/index.html
Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-7-6404/1425
Changelog:
- Add Cloth simulation with physics
- Add cloth painting tools to Editor
- Add async cloth simulation via Job System
- Add distance-based and frustum-based culling to cloth
- Add
MeshReference
toModelInstanceActor
for easy mesh referencing and its data access interface - Add
MeshDeformation
utility for generic meshes vertices morphing (eg. via Blend Shapes or Cloth) - Add
NvCloth
dependency - Add copy/move ctor/operator to
Delegate
- Add
NavMeshRuntime
to scripting api - Add
MoveTowards
to Vector3 - Add stencil buffer support to
GPUPipelineState
- Add
GPUContext::SetStencilRef
to stencil reference value - Add
DebugDraw::DrawLine
with separate start/end colors - Add
RenderTools::CalculateTangentFrame
utility - Add
ReadOnly
toCustomEditorPresenter
- Add
Variant::AsStructure()
to comparision operator betweenVariantType
andScriptingTypeHandle
- Add
SerializableScriptingObject
for easier serialization of scripting objects in gameplay or content - Add
IPresenterOwner
to editor Custom Editor for more context and advanced interactions - Add
GroupArchetype
to Visject nodes spawn query check - Add
SealedNodes
feature to Visject Surface nodes - Add
SurfaceNodeActions
for more contextual surface nodes scripting - Add
OnPasted
to Visject Surface nodes for custom post-paste logic - Add Visject surface boxes and connections drawing customization via style
- Add reroute node usage to Visject only if surface type allows it
- Add
AI
module to engine - Add Behavior Trees editing and simulation
- Add
BehaviorKnowledgeSelector
for Behavior Knowledge unified data access - Add
GetDebugInfo
to BT nodes for debugging - Add Decorators to Behavior Tree
- Add concept of Goals to Behavior Knowledge
- Add animation asset input box to animation sample node
- Add
HasDepthClip
to GPU Device limits - Add
foreach
loop support toSpan
type - Add checking for
Alt
key pressed to expand/collapse all actors in hierarchy - Add
IsDebuggerPresent
for macOS and iOS platforms - Add better viewport camera settings and control
- Add
GetHash
to Vector types - Add support for using
Revision
number in projects version - Add support for runtime running on GPU without Compute Shaders support
- Add logging any XAudio2 backed errors
- Add
Spacebar
to toggle play/pause in Audio Clip window - Add data sent/receive rate charts to the network profiler in Editor
- Add outputting shader source code in Editor to text file when compilation fails for debugging
- Add changing terrain brush size with
Shift + Scroll
- Add default font bundling (optional) and setup UI Style to match editor logic
- Add preventing project file regeneration running while compiling scripts
- Add delay to compiler and project generation after large file operations in Editor
- Add
SubAssetFolder
to model import option to redirect auto-imported materials and textures location - Add excluding GPU swapchain present time from CPU draw time in profiling tool
- Add showing full exception message in error message box for managed exceptions
- Add popup to editor options closing to remind the user to save
- Add more Editor input binding options
- Add context-sensitive node search to Visject (surface editor)
- Add automatic casting setup to Visual Script graph editor
- Add several fixes to UI sizes when fonts are larger in Editor (eg. when using custom fonts)
- Add customizable statusbar colors to Editor theme (change playmode status color to green)
- Add
View Layers
options and Reset/Disable/Copy/Paste buttons editor viewport options - Add
RenderFlags
andRenderView
toCamera
actor properties - Add tooltips to move with the mouse cursor
- Add automatic module creation via Content window context menu (in game
Source
folder) - Add using text
Show in Finder
on macOS in Editor - Add button to position camera to editor viewport view
- Add showing only collision wireframe in
CollisionDataWindow
- Add Main Window to C# through
Screen
class - Add
SmoothDamp
forVector2
andVector3
- Add
BaseLinesGapScale
configurable forLabel
- Add improved mouse wheel scrolling behavior in UI
- Add handling double clicking in
CheckBox
,Button
,Dropdown
andDropPanel
controls - Add the option to import materials for a model as instances of another material in the project
- Add support for importing embedded textures via
Assimp
importer - Add auto-rename start when adding new actor in Scene Tree window
- Add automatic game settings apply when saving json file in Editor
- Add collision type to model importer
- Add bending for connections around nodes in Visject graph editor
- Add improvements to Clang compiler detection
- Add better Visual Studio project Ids preservation when regenerating script project files
- Add always generate additional Visual Studio solution files for all platforms (improves VSCode and Rider usage)
- Add building C# bindings after generating engine project files
- Add VS Code launch task for attaching native debugger
- Add remapping non-native Editor VS build configurations to native configurations
- Add Rider-specific user solution configuration files generation
- Add thread-safety to various scripting methods
- Add better missing script handling in Editor
- Add Game Settings open button to Edit menu
- Add input states to
InputEvent
andAxisChanged
event toInputAxis
- Add
SelectionChanged
public event forVisjectSurface
and properly invoke it only when selection actually changes - Add ignoring types with
CompilerGeneratedAttribute
in Editor - Add
ScriptingType
to msvc natvis - Add
GetColliders
utility toRigidBody
- Add allow using
CustomValueContainer
as readonly if setter action isnull
- Add
MarshalAs
tag to API structs/classes for custom marshaling via implicit casting - Add
internal
access level to Scripting API members (field, properties and functions) - Add support for accessing scripting properties via
ManagedBinaryModule
fields API - Add double-reference support for scripting function parameters to move value
- Add
Random::RandRange
- Add spot light inner circle debug lines
- Add light debug view flag to draw light shapes
- Add grid scale to the editor viewport settings
- Add quick
Cook&Run
button, Play in Editor actions, and customizable number of players setting - Add locked focus to Editor (
Shift+F
) - Add a generic version of
AssetReferenceAttribute
- Add
NetworkReplicator::ResolveForeignObject
- Add
Object::DeleteObjectNow
asObject.DestroyNow
in scripting - Add
ModelInstanceActor::GetMaterial
to get actual material used to render certain entries - Add
ModelInstanceActor::GetMaterialSlots
- Add showing rendering material to model entries
- Add improvements to various context menus in Editor
- Add batch creating prefabs from multiple selected actors in the scene tree
- Add scroll to selected asset/content item on asset picker select menu open
- Add pasting at same level as selected actor parent node instead of under selected node
- Add functionality to combine similar Debug Logs into a log with a count
- Add
params
tag toAPI_PARAM
for C# variadic parameters support - Add user defined analyzers/source generators support in
Flax.Build
- Add build option to change code optimization level in C# modules
- Add default C# code optimization in Editor development builds
- Add
sealed
tag to virtual functions in API bindings to block inheritance in C#/VS - Add common .NET SDK preprocessor definitions
- Add skipping post processing when tonemapping and camera artifacts are disabled
- Add
HasBorder
option toButton
control - Add borderless window switch at runtime (Windows only for now)
- Add ability to clean terrain patch caches
- Add macOS message box with buttons
- Add versions sorting to VulkanSDK selection on macOS
- Add ignoring
.DS_Store
files in Content on macOS - Add
FileSystemWatcher
for macOS to track file changes in Editor - Add codesigning to macOS editor package binaries
- Add control/command/option keys handling on macOS
- Add shwoing Json Asset type on ToolStrip of Json Asset window
- Add timeline position numbers and add to GUI
- Add a way to reset an
IBrush
to null for default functionality in Editor - Add
Method
andOrigin
toProgressBar
for custom progress drawing - Add automated plugin project creation and Git cloning in Editor
- Add tab breaks for window tabs
- Add new look to Content items
- Add sorting plugin projects in content tree
- Add showing/hiding engine/plugin/misc/generated files in content tree and view
- Add slider control to UI library
- Add
InputEvent
andInputAxis
editors with pickers - Add
InputEvent
forUICanvas
navigation actions - Add shift + tab support in UI navigation
- Add ctrl+backspace support to Text Box
- Add more border options to several controls
- Add MMB Panning to Visject Surface
- Add highlighting when mouse is over slider thumb
- Add new Spline editing tools for Editor
- Add editor shortcuts usability when toolstrip or main menu controls are focused
- Add support for editing
WheeledVehicle
wheels config at runtime without full physics state rebuild - Add support for editing
WheeledVehicle
engine/differential config at runtime without full physics state rebuild - Add remove tag method to actor
- Add conditional profiling in Editor (run only when using Profiler window)
- Add
DebugDraw::DrawRay
function - Add
WindowBase::Resized
delegate - Add using exact C# method profiler data for profiler events in overriden thunk method callbacks
- Add support for unsubscribing from managed events multiple times
- Add missing
Particle Scale
getter node to Particle Emitter graph - Add bigger size of clamp node to handle vector4 in Visject surface editor
- Add
PCM
(GJK-based distance collision detection system) to PhysX - Add
SolverType
andBroadPhaseType
to Physics Settings for simulation configuration - Add ability to choose sloppy mesh simplification or not in model import settings for LODs (better quality Auto-LOD)
- Add
ObjectRadius
toDrawCall
to properly cull local lights and env probes in Forward Shading - Add objects replication and RPC stats table to Network Profiler
- Add VS folder structure for BuildScripts and FlaxEngine source files
- Add Rider support to Ediotr on macOS
- Add auto-gen script project files at startup when project Cache was cleared in Editor
- Add better
hostfxr
error messages when failed to setup .NET runtime - Add missing marshaller methods for compatibility with .NET 8
- Add improved dotnet location search (on macOS and Linux)
- Add usage of
xdg-open
to open file manager on Linux - Add support for displaying all active Network Peer stats in Editor Profiler tab
- Add
android_native_app_glue.h
to be included in engine package - Optimize
UnwindRadians
andUnwindDegrees
from C# math lib - Optimize
MClass::GetMethod
method iteration - Optimize C#
UnboxValue
performance, safety and memory usage - Optimize C# method invokers return value marshalling
- Optimize C#
MakeArrayType
results in native interop methods - Optimize actor pasting performance with huge amount of actors
- Optimize
ManagedDictionary
types and helper methods - Optimize
Delegate
to use mutex and hash table over atomic operations for events binding - Optimize
PhysX
collision event handling andonContact
callback - Optimize
CultureInfoEditor
andTagEditor
performance when searching entries by text - Optimize various rendering stages to skip loading shader when effect is disables
- Optimize scenes loading with Job System
- Optimize
ScriptingObject
managed initialization and marshalling - Optimize values marshallers and type storage for managed scripting
- Optimize updating scripts tick arrays
- Update
recastnavigation
lib to1.6
- Update CSharp script template to use non-indented namespace
- Update custom
pugixml
changes topugixml_extra
- Change
Debug
to be static - Changed
Input.ActionTriggered
event to pass aditionallInputActionState
value - Change default dead zone in mouse axis input to
0
(in Flax Samples) - Disable assertions in
Release
build mode - Rename
GPUPipelineState::Description::PrimitiveTopologyType
toPrimitiveTopology
- Remove unused
TIsArithmetic
- Refactor vertex shaders to use
GPUShaderProgramVS::InputElement
for input layout data - Refactor
FileMode
,FileAccess
,FileShare
enums into normal enums with docs - Refactor Visject surface nodes cache to reuse between graphs
- Refactor Editor gizmo modes ownership to support using them in prefab window
- Refactor
ManagedHandlePool
- Refactor scripts
OnDestroy
location to be called before actor'sOnEndPlay
to prevent issues in scripting - Refactor splash screen quotes
- Refactor
std::function
usage intoFunction
insideArrayExtensions
- Refactor audio clip import settings to use auto-generated bindings via
AudioTool
- Refactor how macOS launches processes to use ‘NSTask’ which just deals with escaped and unescaped paths better
- Fix doc comments in
UnwindRadians
andUnwindDegrees
from C# math lib - Fix various keyboard handling on macOS
- Fix incoming drag drop location on macOS
- Fix showing files in the Finder on macOS
- Fix updating Content folder name when renamed in Finder on macOS
- Fix various macOS issues where the BuildTool would not properly run and compile the scripts
- Fix mouse cursor setting on macOS to properly handle screen scale
- Fix error when opening shader asset if it's not visible in Content window
- Fix missing header files in deployed engine package
- Fix nested animation sampling bug
- Fix culling artifacts in animated model preview in Editor
- Fix nested animation playrate when the framerate is different
- Fix incorrect
Transform Position To Screen UV
in particles graph in CPU code path - Fix visibility of string wrapper methods used in binding code
- Fix various core types to be trivially constructible as properly POD-type
- Fix releasing non-collectible types with collectible generic types
- Fix
DrawSceneDepth
to properly draw scene objects when custom actors list is empty - Fix
API_INJECT_CODE
injecting duplicated code - Fix navigation rebuilding during
OnEnable
/OnStart
- Fix some actor assets into soft checks
- Fix Editor UI when one of the properties panel throws exceptions
- Fix
Label
to draw text under children - Fix log spam from
TypeEditor
if type is missing - Fix opening FlaxEditor window in Linux after launch project second time
- Fix error when scripting structure uses
StringAnsi
field - Fix missing
Variant
typename for Object or Asset value to properly pass type checks - Fix managed assembly unloading and scripting ALC reinitialization for native libraries usage
- Fix
ManagedArray
C# handles with pooling - Fix particles effect not being able to call play to play again if IsLooping is false
- Fix invoking managed method on value types (eg.
Transform
) to properly handle instance value - Fix actor hierarchy to use
PrefabObjectID
when setting/getting the actor expanded value for prefabs - Fix docs panel windows in Editor on macOS
- Fix message box on Windows to prevent interaction with the editor and other windows
- Fix
UnitsToText
to properly print string with 2 decimal places - Fix deserializing vector types in Editor from
ToString
FormatException - Fix
Random Range
nodes in CPU particles/script graphs when usingint
- Fix to stop replication if
NetworkManager::NetworkFPS
is less than 0 - Fix building for Android with the latest Java version (update to Gradle
8.3
) - Fix
AbstractWrapper
from showing in new AnimEvent context menu - Fix missing C# static fields in native scripting api
- Fix visibility of some internal
NativeInterop
methods for game bindings - Fix prefab apply bug when one of the prefabs in project is broken
- Fix wheel vehicle drive when
EnableSimulation
is disabled - Fix
WheeledVehicle
driving inDrive4W
mode when wheels are in custom order - Fix managed UTF-8 string allocation not using correct encoding
- Fix incorrect focus on Character Controller
- Fix right click deselecting scene tree nodes
- Fix white window flickering in context menus
- Fix editing array of tags in Editor that is
null
initially - Fix Vulkan shader compilation with source files missing the last newline
- Fix rare issue when script could be deleted when working with Visual Studio 2022
- Fix Rider 2022 not being detected when installed with toolbox (Windows and Linux)
- Fix
Dictionary
andHashSet
iterators to prevent unwanted data copies - Fix
ShaderGraphValue
floating numbers are formatted with enough precision - Fix applying prefab changes to nesting prefab instances
- Fix editor window from maximizing/minimizing on menu button double click
- Fix whitespace when opening context menu with spacebar
- Fix
EditorModules
in Assembly lookup paths to be properly included - Fix being able to create folder from project folder
- Fix renaming folders in Editor with dot character (
.
) - Fix typing
DEL
character in Text Boxes - Fix Slider clipping left most pixel
- Fix right clicking on source folder to sometimes select non-visible child
- Fix not capturing the the
Debug.Log
line in the Debug Log window - Fix error when model is missing in Editor for prefab editor
- Fix
iphonesdk
is not required to build macOS Editor (and check for iOS tools on Mac) - Fix x64 editor/runtime on M1/2 macs
- Fix launching Rider on macOS
- Fix build scripts to detect only supported versions of
MSBuild
- Fix missing
Variant
marshalling for scripting structures bindings - Fix non-windows platforms
csproj
files - Fix error when loading project on non-ASCII path
- Fix editor window closing when using camera flight
- Fix
Actor.RotateAround
to rotate the actors orientation - Fix bool editor when null
- Fix blur panel to draw self
- Fix issue with blur strength slider
- Fix HScroll bar from covering nodes in scene and prefab tree windows
- Fix initial Editor window size to not cover task bar on start
- Fix issue of game window not returning focus to parent on mouse leave
- Fix nested profiler events usage
- Fix potential missing editor font bug
- Fix Editor viewport camera drifting with odd viewport sizes
- Fix creating prefabs directly from prefab objects
- Fix missing debug shapes drawing when skeleton node gets selected
- Fix model asset previews to wait for materials to be loaded
- Fix minor issues with OpenFBX (backported specific * Fixes)
- Fix imported fbx file from Blender to use proper Up axis
- Fix model importer to use precomputed Offset Matrix for skeletal model bones
- Fix applying scale to imported models with Assimp
- Fix using
DefaultFrameRate
for animation imported with Assimp - Fix importing skinned models with meshes that don't have valid skinning to properly link into the node's bone
- Fix model importer to use precomputed Offset Matrix for skeletal model bones
- Fix scenes objects creation to happen after actors transformations and bounds are initialized
- Fix performance bug in Development/Release builds due to incorrect draw calls batching (uninitialized memory)
- Fix loading shared managed assemblies multiple times
- Fix AnimatedModel box
- Fix particle effects not working properly at high framerate
- Fix deduplication of vertexs to respect vert colors
- Fix shader compilation tracking to check for directory existence
- Fix VisualScript method calls not working with value types
- Fix VS Code missing build tasks in C#-only projects
- Fix VS Code build and launch tasks for plugins, dependencies and duplicates
- Fix building rules assemblies to use the latest C# version
- Fix Visual script parameter item duplication bug
- Fix potential incorrect null checks in
FlaxEngine.Objects
- Fix IES profile light computation formula
- Fix
Tag
deserialization in cooked game - Fix spatial audio playback when clip is set after the audio source was enabled
- Fix
AudioClip
loading error when buffer start times diff has rounding error - Fix various issues with audio clip data buffers to reduce artifacts (especially when using 24-bit data)
- Fix various issues with OpenAL buffers playback (do proper bit convertion)
- Fix
AssetsCache
to include project path and reject cache when project gets duplicated with cache - Fix editor tabs control size for tab header when scroll bar is visible
- Fix preserving editor minimized floating windows in saved layout
- Fix removing large amount of assets in Editor at once
- Fix updating time left when destroying large amount of objects
- Fix sprite shadow to match the sprite facing camera
- Fix
NavCrowd
to properly wait for navmesh loaded - Fix script serialization failures from removing scripts that have exception errors
- Fix animation graph transition data from source anim info
- Fix double engine assembly init in Editor
- Fix plugins initialization order to properly unload scenes before them in cooked game
- Fix Editor viewport camera transformation getting corrupted when focused
- Fix Editor gizmo sizes in orthographic viewport mode
- Fix opening plugin project files in Visual Studio
- Fix audio preview for multi-channel audio clips
- Fix various issues when playing audio with
XAudio2
backend (Windows and Xbox) - Fix color picker on Linux
- Fix deadlock in
Foliage::GetFoliageTypeInstancesCount
- Fix missing particle layout attributes when using Particle Emitter Function
- Fix invalid particle attributes access inside emitter function
- Fix particle emitter function cache clearing for GPU shader generation
- Fix particle attributes usage in GPU emitter function
- Fix C# objects serialization bug when script throws exception during saving to Json
- Fix logging performance and crashes on non-Windows platforms
- Fix
HandleObjectDeserializationError
to be editor or dev only and thread-safe - Fix setting up prefab objects ids mapping for nested prefabs to link cross-object references correctly
- Fix asset load to trigger loading task within mutex to prevent race conditions when loading the same prefab from many threads at once
- Fix main menu popups misalignment on Linux
- Fix window placement hints on Linux
- Fix incorrect mapping of Alt key on Linux
- Fix build project generation under Arch Linux
- Fix
GetVirtualDesktopBounds
for Linux - Fix double-click on Linux to use maximum distance between clicks
- Fix
Cannot find compatible metal driver
on macOS due to the newest Vulkan SDK regression - Fix C#-only game projects to reference
precompiled DLLs
instead ofFlaxEngine.csproj
- Fix generating VS configurations for Win32 and engine projects
- Fix Visual Studio solution project to ensure that main project is the first one
- Fix compilation with the latest Visual Studio 2022
17.7
- Fix compilation error due to exposed public
CommonValue
inclusion - Fix missing Visject CM groups auto-expanding if enabled
- Fix missing C++ standard version in VC++ projects intellisense options
- Fix
WindowsPlatform::LoadLibrary
to not modify the string parameter - Fix error when calling Network RPC on despawned object
- Fix crash when C# marshalling array with PostFxMaterialSettings Materials
- Fix crash when using
Vector3
soft casting in Visual Scripts - Fix crash to soft-return if managed event bind target object native instance is gone
- Fix crash when baking lightmap for terrain with missing patch texture
- Fix crash on Linux when using unmapped keyboard Keyboard
- Fix crash when using custom Anim Graph node (.NET 7 regression)
- Fix crash when max files open limit is too small on macOS/iOS
- Fix crash due to ManagedObject reference copy in
Variant
- Fix crash on terrain export in Editor
- Fix crash when window gets removed during windows update loop
- Fix crash with
XAudio2
backend when source is playing - Fix crash if
OpenAL
internal device name is all whitespaces - Fix crash when unboxing managed structure with refs into
Variant
- Fix crash when boxing native array to managed value
- Fix crash when copying and pasting in same folder as clone
- Fix crash when toggling
WheeledVehicle
active state - Fix crash when generic classes spanned across different assemblies
- Fix crash when loading C# assembly from non-ASNSI path
- Fix crash when setting material instance base material before it's loaded
- Fix crash due to invalid message in Assimp
- Fix crash in C#
JobSystem.Dispatch
due to GC collecting Delegate object - Fix crash when importing model with materials and
Split Objects
enabled - Fix crash when D3D11 backend fails to create shader due to driver failure
- Fix crash when spawning large amount of network objects at once by sending spawn message in parts
- Fix crash when implementing
INetworkSerializable
in C#-only - Fix crash when updating GPU particle system without view buffers allocated
- Fix crash when importing assets in Editor (race-condition from Content Importer thread)
- Fix crash when using Visual Script runtime in async
- Fix crash when generating project files with toolchain setup that fails
- Fix crash on Vulkan when drawing shader without binding proper constant Buffer
- Fix crash when creating empty particle emitter