New in 2.0.0
This page lists changes in version 2.0.0 affecting user-facing APIs
Adds the VR Exchange API
Most nodes in the User tree (and the Developer tree in general) are now hidden behind the User Interface / Advanced / Developer Admin Mode
setting. If you are a plugin developer it is recommended to enable this setting.
vrParseJSON now triggers a Lua error on parsing failure, instead of simply printing the error message and continuing
Adds some utilities to assist working with reference types in Lua (vectors, matrices, etc)
Pivot API Changes
Fixes assignment to swizzled vector values (e.g. vrScenesNode().Cube.Transform.Rotation.zx = { 10, 20 }
Adds vrSearchView which allows the tree view quick-search bar to be pre-populated with a search query string
Adds vrNodeGetTraits and vrNodeHasTrait to query the metanode traits of a node. If you know the name of the trait you are looking for, you should use vrNodeHasTrait
, as getting all the traits is more expensive
New attribute table nodes are accessible from Lua using node property syntax for keys (e.g. local value = a.Metadata.KEY_NAME
). The structure of attribute tables is such that keys and values are interleaved in regular properties, for example:
0 - Key 1
1 - Value 1
2 - Key 2
3 - Value 2
etc...
The vrNodeSetValueByIndex function allows access to key names as well as values using this convention.
node.WorldEnabled
provides access to the node's world enabled state
Adds vrNodeIsInGroup to check whether a node is in the specified group, and vrGroupRemoveMember to remove a node from a group
Adds vrTreeViewSelectionSelectParent to select the parent nodes of the nodes in the specified view selection
Adds vrGetContactPoints which returns a list of contact points and normals between two nodes. This can be used, for example, from a Touch event by providing the __Self
and __Other
registers.
Lua plugins should no longer execute code outside of functions. Initialisation code should go in function init()
Adds vrGetActivatorNode which can be used inside an activate event script to identify the node that activated it (in the case of it being activated by vrActivate)
Adds vrToggleProjection to toggle the current viewport between perspective and orthographic mode
Adds vrUsingHMD to identify whether the primary viewport is rendering into a head-mounted display
Lua Event Coroutines
Lua Observers
ApplicationMenuEntry nodes added to context menus now support all of the same types as the main application menu (e.g. app commands, lua blocks, property toggles, etc)
The tools window and associated UI nodes has been removed, replaced with the toolbar for common shortcuts, and the diagnostics frame for logs and stats. Plugins that were previously inserting frames into the tools window may now instead insert buttons into the toolbar, or add frames into the diagnostics window.
Deprecation
The following Lua functions have been marked as Deprecated and may be removed in a future version. Most notably, all of the cluster specific Lua calls have been refactored into their non-cluster named equivalent. The cluster logic is now performed completely in C++.