This month we've overhauled the prefab system, avatar customization, the website has a new look and much more.
::before and ::after to UI
New Prefab Instance System
Screen Space Reflections component
Dresser component - makes dressing avatars easier
Scene.FindInPhysics( Frustum )
Scene.Get<T>()
SequenceAccessor.Blending
ITagSet.GetDefaults
ParticleEffect.RealTime
Panel.SetRect
Plane.ReflectPoint
Plane.ReflectDirection
CameraComponent.BBoxToScreenPixels
Bitmap.Size
DebugOverlaySystem.Texture (draw texture on the screen)
Transform.Mirror
Application.OnWidgetClicked
Graphics.CameraTransform
Graphics.CameraRotation
Graphics.FieldOfView
Renderer CommandList wrappers
Renderer.ExecuteBefore (command list, executes before rendering object)
Renderer.ExecuteAfter (command list, executes after rendering object)
CommandList.DrawReflection
CommandList.DrawRefraction
CommandList.DrawRenderer
CommandList.DrawView
CommandList.Attributes.Set( bool )
CommandList.Attributes.SetCombo( bool )
CommandList.GlobalAttributes
Texture.Clear( Color )
TextureBuilder.WithInitialColor( Color )
Vector3.Dot( a, b )
[FilePath] attribute for string properties
accessors and constructor to Matrix class
Matrix.CreateObliqueProjection
Input.Suppressed
Gizmo.Draw.Sprite angle parameter added
Editor theme improved - new font, color scheme and many tweaks
Shader memory layout changed to drastically reduce stuttering
Time classes internally use doubles for improved precision
Video Recording has been greatly improved for stability and speed
Human female🙍♀️ models look a lot more female
GPU -> CPU readbacks use cached memory improving speed
VR gets it's projection matrix from the headset directly
Updated Roslyn - your games will generate more optimized code now
GameObjectReference serialization for prefab properties
Create GameResource Save button when using a customer inspector
Improved aspect ratio in asset browser thumbnails
Select prefab/network root when selecting object in viewport
Prefab instance UX improvements
Rebuild model hitboxes on renderer model change
Optimized NetworkTable causing excessive delta snapshot GC
Cameras rendering to textures use a HDR texture and matching MSAA
Make sure Screen.Size is correct on scene startup
Component Eye Dropper can be used directly on Components in the inspector
GameObject Eye Dropper can be used on Prefabs in the Asset Browser
GameObject & Component Eye Droppers can be used on other GameObject/Component properties
Load system scenes on any non-additive scene load
Creating a new project or opening a Sample Project will now correctly show the "LAUNCHING" text
Sample Projects no longer create duplicate entries in the Launcher when opened manually
NetworkFiles includes stuff on resource paths
Mixer Handles now support multi-edit
Can now unlink multiple prefabs at once with multi-select
Can apply/revert prefab instance changes with multi-select
Unsaved changes dialog prompt for resources
Update Skin shader with tint and age sliders
Steam Audio update (4.5.2 -> 4.6.1) and static linked
RenderTextures are cleared to magenta by default (to spot errors more easily)
Updated to SDL3 and gamecontrollerdb.txt
UI textures are mipbiased to avoid being blurry
Allow modifying the transform of the prefab root
Project settings UX improvements
Whitelist JsonStringEnumMemberNameAttribute
CameraComponent.RenderToTexture takes a ViewSetup allowing overrides
Yoga config uses UseWebDefaults
HudPainter.DrawLine uses SDF shape for much smoother lines
Exposed and documented ImageFormat
Whitelisted many requested types including BigInteger, Complex, Task.Is*, ReadFromJsonAsync and more..
GameOverlays use a viewport z-slice instead of an additional depth buffer
Intel Integrated Graphics no longer crash on startup, device limitations are checked on startup now
SpriteRenderer crashing trying to render on dedicated servers
UI no longer renders over the Scene tab in the editor while in play mode
Various security exploits reported on HackerOne
MusicPlayer crashes
Razor elements now play :outro properly
WantsFrameBufferCopy doing nothing outside of regular models
Navmesh links triggering when not active
SceneCamera.GetFrustum returning nonsense on ortho cameras
Scene not being pushed before several prefab related editor actions
Scratch depth buffer not matching scratch color dimensions
UI corners being misaligned
UI sometimes getting 1 pixel gaps between panels
SetMaterialOverride( null ) not clearing any overrides
Prefab Root context menu giving options that resulted in error
TreeView not completing a SHIFT+CLICK action when the first item was selected outside of the tree
Locate Prefab option now always appearing when you'd expect it to
Depth-aware mask NaNs
Model renderer local bounds being wrong
Fix rotated off-center box trace
Null GameResource icons preventing editor start-up
Blending mode on translucent objects, default alpha blending mode additive
Missing project settings button on asset projects
Input binds not saving
Dedicated server crashes when trying to use lobby methods
Error when in Eye Dropper tool of a list entry and the entry in the list is removed
Fixes a discrepancy between the hashed identity of TypeLibrary methods and MethodIdentity in WrappedMethod from CodeGen when the method is on a class contained within another class
BytePack struct serialization
TypeLibrary is disabled during cctors / package load
Context menu on normal files in the Asset Browser
Error when multi-selecting an asset and a normal file in the Asset Browser
Flickering when dragging material on to scene mesh
Tooltips linger when mousing out of a tooltipped pannel
Depth Linearization in Oblique Matrices
Crash in CSceneAnimatableObject::MergeFrom
[Button] not showing if not returning void
Fixed menu addon not loading in editor (due to whitelist)
ISceneStage spans the wraps the entire scene update, not just OnUpdate
Prevent EditorUtility.RenameDirectory making a directory a subdirectory of itself
Legacy particle system - legacy particles will no longer render
Prefab variables
Deleted many unused DLLs reducing the game size
Removed unstable GPU shadow culling
NativeRenderingWidget now doesn't render without a scene
Graphics.RenderToTexture (use CameraComponent.RenderToTexture)
With my Unity prefabs I tend to give them a dedicated script on the root object that controls any configurable properties for that prefab.
So maybe a good compromise solution here would be to add a prefab setting that locks all configuration for any prefab setting except the root object and its scripts and their properties. So you can still move it around or scale or rotate it or configure any properties on any script on the root.
This would be more of a developer control to indicate intent. Like controlling code styling. A dev could still go into the prefab itself and turn it off.
Once I'm done with work, I'll go back to making games in s&box. All that's left is standalone export in Steam and private server code, and this summer is sure to be wonderful 💪