Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Value type

From Resonite Wiki
Revision as of 03:41, 21 August 2024 by Yosh (talk | contribs) (ok that's enough info until prime gets me that coder<t> primitive type config list thingy)

A Value Type is a delegation of types within the FrooxEngine Data Model and ProtoFlux. In contrast to Reference Types, fields containing a value type store the value directly, rather than a reference to the value.

For a list of all value types in game, refer to Category:Value Types.

In FrooxEngine

It's simple to tell whether a certain type is a value type or not within FrooxEngine. In the Scene Inspector, fields holding a value type are easily identifiable by the ability to directly edit the value within them, rather than needing to drag in a reference to the type. A ValueField component is able to hold any FrooxEngine value type, which can be used as a quick reference to tell what is what.

In ProtoFlux

In ProtoFlux, in short, if a type can be classified as an unmanaged type in C#, it is recognized as a value type. Otherwise, it is an Object Type.

To expand on the definition, in ProtoFlux, an unmanaged type, or value type, must either (criteria not useful to Resonite excluded):

  • Be one of sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, or bool.
  • Be an Enum type.
  • Be defined as a non-nullable struct internally that only contains other value types.

This discrepency between the definition of a value type in FrooxEngine and in ProtoFlux can cause some confusion. For example, a string is a value type in FrooxEngine, but an object type in ProtoFlux.