Duality Describes the type of an audio samples individual elements (L, R, ...) Describes the layout and purpose of audio data values. Describes the type of a sound. This is used for determining which specific volume settings affect each sound. A sound effect taking place in the game world. A User Interface sound effect. A sound that is considered being game music. A sound that is considered being spoken language. Plays the audio source using a single, static buffer. Plays the audio source using a streaming input. Stops the audio source, if it was playing. Resets the entire state of the source, so it can be reused as if it was just created. Updates the audio sources settings according to the specified data struct. It may modify the struct in order to reflect the actual settings, as supported by the backend. [GET] Whether the audio source is in its initial state, i.e. ready to be used by a new sound instance. [GET] Whether the audio source is completely finished with playing audio. A file system allows to perform read / write operations on a virtual or actual storage device. All paths are expected to match Duality's path format. Returns a rooted version of the specified path, which uniquely identifies the referenced file system entity. Enumerates all files that are located within the specified path. If true, the specified path will be searched recursively and yield all descendant file paths. Enumerates all directories that are located within the specified path. If true, the specified path will be searched recursively and yield all descendant directory paths. Returns whether the specified path refers to an existing file. Returns whether the specified path refers to an existing directory. Creates or overwrites a file at the specified path and returns a to it. The returned stream has implicit read / write access. Opens an existing file at the specified path and returns a to it. Deletes the file that is referred to by the specified path. Creates a directory tree matching the specified directory path. Deletes the directory that is referred to by the specified path. Retrieves the path of a named / special directory. [GET] An interface that provides file system access on the current platform. Loads the specified shader parts and compiles them into a single shader program. Retrieves reflection data on the shaders fields. Loads the specified source code and prepares the shader part for being used. Initializes the rendering target and configures it. This method needs to be called before any oprations are performed using the target. Retrieves the rendering targets pixel data from video memory in the Rgba8 format. As a storage array type, either byte or is recommended. The target buffer to store transferred pixel data in. The desired color layout of the specified buffer. The desired color element type of the specified buffer. The target texture lists index to read from. The x position of the rectangular area to read. The y position of the rectangular area to read. The width of the rectangular area to read. Defaults to the rendering targets width. The height of the rectangular area to read. Defaults to the rendering targets height. Initializes the texture without data and configures it. Uploads the specified pixel data in RGBA format to video memory. A call to is to be considered required for this. The textures internal format. The block of pixel data to transfer. The color layout of the specified data block. The color element type of the specified data block. Retrieves the textures pixel data from video memory in the Rgba8 format. As a storage array type, either byte or is recommended. The buffer to store pixel values into. The desired color layout of the specified buffer. The desired color element type of the specified buffer. Retrieves the main rendering buffer's pixel data from video memory in the Rgba8 format. As a storage array type, either byte or is recommended. The target buffer to store transferred pixel data in. The desired color layout of the specified buffer. The desired color element type of the specified buffer. The x position of the rectangular area to read. The y position of the rectangular area to read. The width of the rectangular area to read. Defaults to the rendering targets width. The height of the rectangular area to read. Defaults to the rendering targets height. Event arguments for notifications about the runtime loading an . [GET] The that was loaded by the runtime. Event arguments for handling an resolve operation. Resolves the queried with the specified . [GET] The full name of the to resolve. [GET] The short name of the to resolve. [GET] The to which the name was resolved. [GET] Whether the was resolved successfully. Default base class for Serialization Surrogates. It implements both and , thus being able to fully perform de/serialization of a designated object type. The base of objects this surrogate can replace. Clones an object instead of letting it clone itsself or using a Reflection-driven approach. Checks whether this surrogate is able to clone the specified object type. The of the object in question. True, if this surrogate is able to clone such object, false if not. Performs the cloning setup step, in which all reference-type instances from the target object graph are generated. The purpose of this method is to help the cloning system walk the entire (relevant) object graph in order to determine which objects are referenced and which are owned / deep-cloned, as well as creating instances or re-using existing instances from the target graph. Walking the specified object's part of the source object graph and mapping instances to their target object graph correspondents is done by using the interface methods for handling object instances and struct values. The object instance from the source graph that is being investigated right now. The object instance from the target graph that corresponds to the object's instance in the source graph. When invoking this method, the target object will either have existed already, or been created by the cloning system. Specified whether this kind of object requires a late setup step, allowing to create its instance only the entire other target object graph has already been created. The setup environment for the cloning operation. Performs a late setup for the source object. This is similar to the step, except that all other objects from the target graph have already been created and a full source-target mapping is available. A late-setup step is usually not required and should be avoided as long as it's not a necessity. The object instance from the source graph that is being set up right now. The object instance from the target graph that corresponds to the object's instance in the source graph. In the late-setup step, there already is a preliminary target object instance, but it can be replaced by re-assigning the target reference. Performs the cloning copy step, in which all data is copied from source instances to target instances. No new object instances should be created in this step, as object creation should be part of the setup step instead. The object instance from the source graph that is being copied. The object instance from the target graph that corresponds to this object's instance in the source graph. When invoking this method, the target object will either have existed already, or been created by the cloning system. [GET] If more than one registered ISurrogate is capable of cloning a given object type, the one with the highest priority is picked. [GET] Specifies whether the surrogates client object requires a manual merge between source and target objects, e.g. whether its manual object handling methods will be called even when the source object is null. Checks whether this surrogate is able to clone the specified object type. The of the object in question. True, if this surrogate is able to clone such object, false if not. In case there is no pre-existing correspondent object in the target graph, this method is invoked in order to create one based on the source object. The default implementation creates a target object of matching type using . If no object was created in , the surrogate implementation will assume a late-setup step for this object and invoke this method as soon as the entire target graph has been created. Otherwise, this method matches - [GET] If more than one registered ISurrogate is capable of cloning a given object type, the one with the highest priority is picked. [GET] Returns whether the surrogates client object is considered to be immutable, e.g. whether it will always be required to create a target object, even if an existing one is provided by the target object graph. [GET] Specifies whether the surrogates client object requires a manual merge between source and target objects, e.g. whether its manual object handling methods will be called even when the source object is null. Retrieves, processes and caches type information about the order in which initialization, shutdown and update of different types are executed. Sorts a list of types according to their execution order. Sorts a list of items according to the execution order of each items associated type. Retrieves the sorting index of the specified type. Clears the internal type data that this class has been storing internally. Gathers all currently available types and stores them inside the provided collection. This will iterate over all relevant core and core plugin types that are currently known, but since users can load plugins at any time, this list should never assumed to be final. Generates a list of normalized execution order constraints from a set of types. Generates a graph-like data structure that organizes a list of execution order constraints in a way that allows to swiftly access them per-type. There's room for optimization, but since the number of types will likely stay below a few thousands this is probably not necessary and can be skipped for convenience and maintenance reasons. Clears the specified constraint graph of all loops. Searches for constraint loops in the specified constraint graph and returns the first one. The result is not necessarily the smallest loop. Returns null if no loop was found. Assigns every node in the constraint graph a score that corresponds to its absolute position in the desired execution order. Score collisions are possible but unlikely. Extracts a unique sorting index for each type in a previously scored constraint graph. Retrieves, processes and caches type information about how different types are interconnected using the . Returns whether the first requires the second one. In cases where a requirement can be satisfied by multiple different types, this method will return true for all of them. Returns whether the requirements for a given type are met on the specified , and whether they would be met if a specified set types would be added prior. Enumerates all requirements of the specified type. These may include abstract classes or interface definitions. Given the specified target and type, this method enumerates all types that will have to be created on the target object in order to satisfy its requirements. The result will be sorted in order of creation. Clears the internal type data that this map has been storing internally. This attribute allows the decorated class to restrict its relative position in an execution order that involves multiple types. Typical examples are update, initialization or (reversed) shutdown order. [GET] The class relative to which this class is placed in execution order. [GET] When this class will be executed relative to the one that is referred in . This attribute indicates a Components requirement for another Component of a specific Type, that is attached to the same . The component type that is required by this component. The type that will be instantiated when automatically creating dependency components for this component. Defaults to . Describes a double-sided edge chain in a shape. Describes a Colliders primitive shape. A Colliders overall shape may be combined of any number of primitive shapes. Updates the internal Shape according to its properties. [GET] The shape's parent . [GET / SET] The shapes density. [GET / SET] Whether or not the shape acts as sensor i.e. is not part of a rigid body. [GET / SET] The shapes friction value. Usually a value between 0.0 and 1.0, but higher values can be used to indicate unusually strong friction. [GET / SET] The shapes restitution value. Should be a value between 0.0 and 1.0. [GET] Whether or not the shape is a valid part of the physical simulation [GET] Returns the Shapes axis-aligned bounding box [GET] Whether the internal physics shape was successfully created and is now active. [GET] The scale factor of the parent object to be applied to all created shapes. [GET / SET] The edge chains vertices. While assinging the array will cause an automatic update, simply modifying it will require you to call manually. Called when unloading / disposing the plugin. Initializes the with the specified . This method needs to be called once after instantiation (or previous termination) before plugins can be loaded. Terminates the . This will dispose all Duality plugins and plugin data. Requests the disposal of all content / data that is dependent on any of the currently active plugins. This functioanlity is invoked automatically as part of reloading or removing plugins. Enumerates all currently loaded assemblies that are considered part of the managed subset of this . Enumerates all locally available Types that are assignable to the specified Type. The base type to use for matching the result types. An enumeration of all Duality types deriving from the specified type. Loads all available plugins, as well as their potentially required auxilliary libraries. Initializes all previously loaded plugins. Disposes all loaded plugins and discards all related content / data. Adds an already loaded plugin Assembly to the internal Duality T registry. You shouldn't need to call this method in general, since Duality manages its plugins automatically. This method can be useful in certain cases when it is necessary to treat an Assembly as a Duality plugin, even though it isn't located in the Plugins folder, or is not available as a file at all. A typical case for this is Unit Testing where the testing Assembly may specify additional Duality types such as Components, Resources, etc. Reloads the specified plugin. Does not initialize it. Initializes the specified plugin. This concludes a manual plugin load or reload operation using API like and . Locks the specified plugin assembly, so any reload attempts are blocked. Unlocks the specified plugin assembly, so future attempts at reloading will no longer be blocked. Called right before removing a plugin. This allows other systems to get rid of data and content that still depends on those plugins. Note that it is possible for some plugin termination / disposal code to be run after this event. Called right after removing a plugin. This allows other system to clear their internal caches and clean up everything that might have been left by the removed plugin. No plugin code is run after this event has been called. Fired whenever a Duality plugin has been initialized. This is the case after loading or reloading one. [GET] The plugin loader which is used by the to discover and load available plugin assemblies. [GET] Enumerates all currently loaded plugins. [GET] Enumerates all plugin assemblies that have been loaded before, but have been discarded due to a runtime plugin reload operation. This is usually only the case when being executed from withing the editor or manually triggering a plugin reload. However, this is normally unnecessary. [GET] Maps assembly names to currently loaded plugins. [GET / SET] An optional which is used for logging plugin loading states and issues. Manages loading, reloading, initialization and disposal of Duality core plugins. Since all assemblies are owned by the .Net runtime that only exposes a very limited degree of control, this class should only be used statically: Disposing it would only get rid of management data, not of the actual plugin assemblies, which would then cause problems. A static instance of this class is available through . should usually not be instantiated by users due to its forced singleton-like usage. Use instead. Enumerates all currently loaded assemblies that are part of Duality, i.e. Duality itsself and all loaded plugins. Loads all available core plugins, as well as auxilliary libraries. Initializes all previously loaded plugins. Invokes each plugin's event handler. Invokes each plugin's event handler. Invokes each plugin's event handler. Loads a managed non-plugin and returns it. Each is only loaded once, all subsequent calls will return the cached instance. The path to load the file from. If true, any exceptions caused by attempting to load the library itself (such as ) are catched and ignored without reporting an error. Enumerates special directories on the current system. The directory in which the running Duality application is located. The directory where applications store their data. The current users "My Documents" folder. The current users "My Pictures" folder. The current users "My Music" folder. Specifies the cloning behavior of a certain class, struct or field. The object will be handled automatically according to its Type properties and Attributes. The object will be assigned by-reference, because external ownership is assumed. The object will be cloned deeply, because local ownership is assumed. If the referenced object is part of the cloned object graph, it will be assigned by-reference similar to the setting. Otherwise, it will be skipped without assigning any value. A typical example are "parent"-backreferences from child objects. Cloning system interface that allows an or to take part in the copy step of a cloning operation. The purpose of the copy step is to synchronously walk source and target object graphs while copying all data from source to target. Retrieves the target object that is mapped to the specified source object. Returns true if the specified object is part of the target object graph. Walks the object graph of the specified instance from the source graph, while copying its data to the graph that is spanned by its target object. May re-assign the target object in the process. An object from the source graph that will be copied by the cloning system. The object's equivalent from the target graph to which data will be copied. Walks the object graph of the specified data structure from the source graph, while copying its data to the graph that is spanned by its target struct. May re-assign the target struct in the process. A struct from the source graph that will be copied by the cloning system. The struct's equivalent from the target graph to which data will be copied. [GET] The context of this cloning operation, which can provide additional settings. Special version of for cases where the target object is stored in a data structure that does not allow by-ref access or re-assignment of the target object. When possible, prefer the by-ref base version. Special version of for cases where the target object graph alreay exists and it is undesireable for a source value of null to overwrite a non-null target value. No flags are set at all. States that the Field or Object in question is relevant to its parents identity and thus should not be cloned in an identity-preserving context. The Field or Object in question will always be skipped during cloning. No value will be assigned at all. The Field or Object in question won't be skipped during cloning due to secondary hints such as a attribute on the same field. Cloning system interface that allows an or to take part in the setup step of a cloning operation. The purpose of the setup step is to walk the source object graph and create the required instances of the target graph where they do not exist yet. Specifies an existing mapping between source and target object graph, in which references to a source object are re-mapped to the specified target object. Does not investigate the specified source object for further references or walks its object graph. A reference from the source graph that will be re-mapped in the target graph. The target graph object that this reference will be re-mapped to. Walks the object graph of the specified instance from the source graph, while mapping it to the graph that is spanned by the specified target object. When specified, the default of the source object or a certain type of its child objects can be overridden locally. An object from the source graph that will be investigated by the cloning system. The object's already existing equivalent from the target graph to which it will be mapped. An optional override for the cloning behavior of this object. When specified, the optional override will only be active for the first level of referenced objects of this type. Walks the object graph of the specified data struct from the source graph, while mapping it to the graph that is spanned by the specified target struct. When specified, the default of the source object or a certain type of its child objects can be overridden locally. Note that this only makes sense if the struct contains object references and is not just plain-old data. A struct from the source graph that will be investigated by the cloning system. The struct's already existing equivalent from the target graph to which it will be mapped. An optional override for the cloning behavior of this struct. When specified, the optional override will only be active for the first level of referenced objects of this type. [GET] The context of this cloning operation, which can provide additional settings. The CloneType class provides cached cloning-relevant information that has been generated basing on a . Creates a new CloneType based on a , gathering all the information that is necessary for cloning. [GET] The that is described. [GET] An array of fields which are cloned. [GET] Specifies whether this Type can be considered plain old data, i.e. can be cloned by assignment. [GET] Returns whether the encapsulated Type is an array. [GET] Returns the elements , if this one is an array. [GET] Returns whether the cached Type could be derived by others. [GET] Specifies whether this Type requires any ownership handling, i.e. contains children or weak references. [GET] Returns whether the cached type is handled by a merge surrogate. [GET] Returns the default exposed by this type. [GET] The surrogate that will handle this types cloning operations. [GET] When available, this property returns a compiled lambda function that assigns all plain old data fields of this Type Flags a field or class to be skipped by automatic cloning, because it has been handled by an implementation. Applying this attribute to a class has the same effect as applying it to all locally declared fields (without inheritance). Implement this interface in Components that require per-frame updates in the editor. Called once per frame in order to update the Component in the editor. Implement this interface in Components that require specific init and shutdown logic. Called in order to initialize the Component in a specific way. The kind of initialization that is intended. Called in order to shutdown the Component in a specific way. The kind of shutdown that is intended. Implement this interface in Components that require notification of collision events that occur to the they belong to. Called whenever the GameObject starts to collide with something. Called whenever the GameObject stops to collide with something. Called each frame after solving a collision with the GameObject. Implement this interface in Components that are considered renderable. Determines whether or not this renderer is visible to the specified . The to which visibility is determined. True, if this renderer is visible to the . False, if not. Draws the object. The to which the object is drawn. [GET] The Renderers bounding radius. Implement this interface in Components that require per-frame updates. Called once per frame in order to update the Component. Determines whether a collision is allowed to occur. The collision that is about to occur. True, if the collision is valid. False, if the collision should be ignored. Called for each shape found in the query. You control how the ray cast proceeds by returning a float. -1 to ignore the curret shape, 0 to terminate the raycast, data.Fraction to clip the ray for current hit, or 1 to continue. The type of a Colliders physical body. A static body will never move due to physical forces. A dynamic body's movement is determined by physical effects. A kinematic body can push around dynamic bodies, but is itself unaffected by physical influences due to collisions. It can't collide with static bodies. Use with caution. Provides data about a RayCast. [GET] The shape that was hit. [GET] The RigidBody that was hit. [GET] The GameObject that was hit. [GET] The world position at which the shape was hit. [GET] The normal of the ray / shape collision. [GET] The fraction (0.0f - 1.0f) of the ray at which the hit occurred. Specifies the style of a text. Regular text. Bold text. Italic text. Specifies how a text fitting algorithm works. Text is fit by character, i.e. can be separated anywhere. Text is fit by word, preferring leading whitespaces. Text is fit by word, preferring trailing whitespaces. Text is fit by word boundaries, i.e. can only be separated between words. Enumerates different behviours on how to blend color data onto existing background color. When passing this to a method, this value can be used to indicate "Restore to default settings". Incoming color overwrites background color completely. Doesn't need Z-Sorting. Incoming color overwrites background color but leaves out areas with low alpha. Doesn't need Z-Sorting. Incoming color is multiplied by its alpha value and then added to background color. Needs Z-Sorting. Incoming color overwrites background color, weighted by its alpha value. Needs Z-Sorting. Premultiplied Alpha: Colors specify brightness, alpha specifies opacity. Needs Z-Sorting. Incoming color scales background color. Needs Z-Sorting. Incoming color is multiplied and then added to background color. Needs Z-Sorting. Incoming color inverts background color. Needs Z-Sorting. The total number of available BlendModes. A Bitmask describing which components of the current rendering buffer to clear. Nothing. The buffers color components. The buffers depth component. The default set of flags. All flags set. Describes the type of a color values individual elements (R, G, B, ...) Describes the layout and purpose of color data values. Represents a filtering method for rescaling images. Nearest neighbor filterting / No interpolation. Linear interpolation. Represents a block of pixel data. Provides a general interface for an object type with custom serialization rather than using the automatic fallback. Writes the object data to the specified . Reads and applies the object data to the specified . Represents an unknown version. Represents the PNG-compressed version. Represents the first v2.x version that requires an explicitly stated format id for image codec support. Creates a new object using the specified dimensions and data array. The specified data block will be used directly without copying it first. Clones the pixel data layer and returns the new instance. Replaces the s content with the specified color data. Ownership of the data block will be assumed - it won't be copied before using it. Rescales the Layer, stretching it to the specified size. The filtering method to use when rescaling Resizes the Layers boundaries. Extracts a rectangular region of this Layer. If the extracted region is bigger than the original Layer, all new space is filled with a background color. Extracts a rectangular region of this Layer. If the extracted region is bigger than the original Layer, all new space is filled with a background color. Crops the Layer, removing transparent / empty border areas. Whether the Layer should be cropped in X-direction Whether the Layer should be cropped in Y-direction Measures the bounding rectangle of the Layers opaque pixels. Determines the average color of a Layer. If true, the alpha value weights a pixels color value. Sets the color of all transparent pixels based on the non-transparent color values next to them. This does not affect any alpha values but prepares the Layer for correct filtering once uploaded to . Sets the color of all transparent pixels to the specified color. Rescales the Layer, stretching it to the specified size. The filtering method to use when rescaling Resizes the Layers boundaries. Extracts a rectangular region of this Layer. If the extracted region is bigger than the original Layer, all new space is filled with a background color. Extracts a rectangular region of this Layer. If the extracted region is bigger than the original Layer, all new space is filled with a background color. Crops the Layer, removing transparent / empty border areas. Whether the Layer should be cropped in X-direction Whether the Layer should be cropped in Y-direction Performs a drawing operation from this Layer to a target layer. Performs a drawing operation from this Layer to a target layer. [GET] The layers width in pixels [GET] The layers height in pixels [GET] The layers pixel data [GET / SET] A single pixels color. Defines static methods for performing common file system operations on files. Returns whether the specified path refers to an existing file. Creates or overwrites a file at the specified path and returns a to it. The returned stream has implicit read / write access. Opens an existing file at the specified path and returns a to it. Deletes the file that is referred to by the specified path. Defines static methods for performing common file system operations on directories. Returns whether the specified path refers to an existing directory. Creates a directory tree matching the specified directory path. Deletes the directory that is referred to by the specified path. Enumerates all files that are located within the specified path. If true, the specified path will be searched recursively and yield all descendant file paths. Enumerates all directories that are located within the specified path. If true, the specified path will be searched recursively and yield all descendant directory paths. Determines equality of path strings. Defines static methods for performing common operations on path strings, such as combining them or extracting file extensions. This class mirrors the functionality of in a platform-agnostic way using Duality's path format. Determines whether the specified path begins with a file system root. Returns a rooted version of the specified path, which uniquely identifies the referenced file system entity. Unlike most methods of , this method accesses the file system. Returns whether two paths are referring to the same file system entity. Unlike most methods of , this method accesses the file system. Returns whether one path is a sub-path of another. Unlike most methods of , this method accesses the file system. The supposed sub-path. The (directory) path in which the supposed sub-path might be located in. True, if path is a sub-path of baseDir. PathHelper.IsPathLocatedIn(@"C:\SomeDir\SubDir", @"C:\SomeDir") will return true. Determines the directory name component of a path, i.e. everything except the rightmost path element name. Determines the file name component of a path, i.e. the rightmost path element name. Similar to , but also strips away the files extension. Determines the extension of a file path. If true, multi-extensions such as ".Texture.res" will be considered a single extension, not two consecutive ones. The paths file extension, including the leading separator char. Returns an empty string, if no extension was found. Concatenates two path strings. Concatenates any number of path strings. Returns an array of characters which are invalid in path strings. Returns an array of characters which are invalid in file name strings. Returns a copy of the specified file name which has been cleared of all invalid path characters. Provides information on the way a should be treated during Asset import operations in the editor. This information should not be considered to be available at runtime or after deploying a game without editor support. [GET / SET] The ID of the Asset Importer that was used to import this Asset. If set, it will be automatically used for Re-Import operations. [GET / SET] When set, this array provides a hint to the AssetManagement system which source files were used to create this during the most recent import operation. The paths are relative to the mapped media source directory of the and can use the {Name} variable to keep paths invariant to move and rename operations. [GET / SET] A collection of key-value pairs that can be used to attach custom asset data to the asset info of a . This data can be used by importers and exporters to persistently store parameters and user configuration regarding import and export opreations of this . [GET / SET] For runtime-only Resources that haven't been saved or located anywhere, this property provides a hint on how to name the Resource later. This property is considered temporary and won't be serialized. Provides information about the shape and size of a . This information is not specific to a certain text or glyph. [GET] The size of the . [GET] The height of the , in pixels. [GET] The ascender height of the , in pixels. [GET] The median / mean line / x glyph height of the , in pixels. [GET] The descender height of the , in pixels. [GET] The baseline height of the , in pixels. [GET] Whether the described is considered to be a monospace , i.e. whether all characters occupy the same horizontal space. Represents a character set that defines which glyphs are available in a Resource. Merges two character sets to form a new one that contains both of their characters without duplicates. [GET] All characters that are part of this . [GET] Characters which will contribute to calculating the parameter. [GET] Characters which will contribute to calculating the parameter. [GET] Characters which will contribute to calculating the parameter. Manages Duality's builtin shader variables. Determines whether a certain name refers to a builtin shader variable and returns a unique index to retrieve that variables value. Retrieves the value of a builtin shader variable using the index retrieved by . Specifies a rendering matrix setup. Specifies the perspective effect that is applied when rendering the world. No perspective effect is applied. Z points into the screen and is only used for object sorting. Objects that are far away appear smaller. Z points into the screen and is used for scaling and sorting. Specifies the way in which incoming vertex data is interpreted in order to generate geometry. BatchInfos describe how an object, represented by a set of vertices, looks like. Creates a new, empty BatchInfo. Creates a new BatchInfo based on an existing . Creates a new BatchInfo based on an existing BatchInfo. This is essentially a copy constructor. Creates a new single-texture BatchInfo. The to use. The to use. The main to use. Creates a new complex BatchInfo. The to use. The to use. A set of Textures to use. A set of uniform values to use. Copies this BatchInfo's data to a different one. The target BatchInfo to copy data to. Assures that the current BatchInfo is not a temporarily shallow copy of an existing one. Triggers content retrieval in all references Resources. Gets a texture by name. Returns a null reference if the name doesn't exist. Sets a texture. Gets a uniform by name. Returns a null reference if the name doesn't exist. Sets a uniform value Sets a uniform value Compares two BatchInfos for equality. If a test fails, their actual data is compared. True, if both BatchInfos can be considered equal, false if not. Compares two BatchInfos for inequality. If a test fails, their actual data is compared. True, if both BatchInfos can be considered unequal, false if not. [GET / SET] The that is used. [GET / SET] The main color, typically used for coloring displayed vertices. [GET / SET] The set of Textures to use. [GET / SET] The main texture. [GET / SET] The set of uniform values to use. Defines how a Texture should handle pixel data without power-of-two dimensions. Enlarges the images dimensions without scaling the image, leaving the new space empty. Texture coordinates are automatically adjusted in order to display the image correctly. This preserves the images full quality but prevents tiling, if not power-of-two anyway. Stretches the image to fit power-of-two dimensions and downscales it again when displaying. This might blur the image slightly but allows tiling it. The images dimensions are not affected, as OpenGL uses an actual non-power-of-two texture. However, this might be unsupported on older hardware. The default behaviour. Equals . Defines which filtering algorithm will be used when displaying the Texture larger than it is. Point filtering with sharp edges. Linear interpolation. Defines which filtering algorithm will be used when displaying the Texture smaller than it is. Point filtering with sharp edges. Linear interpolation. Point filtering with sharp edges. Mipmaps will be used, but switch from one to the next instantly. Linear interpolation. Mipmaps will be used, but switch from one to the next instantly. Point filtering with sharp edges. Mipmaps will be used and smoothly blend over from one to the next. Linear interpolation. Mipmaps will be used and smoothly blend over from one to the next. Defines how Texture coordinates outside the regular [0 - 1] range will be handled. Defines the format that is used to store the Textures pixel data. Represents a strategy to determine which renderers are currently visible to a certain drawing device. Queries all renderers that are currently visible to the specified device. The list that should be updated by this method. Updates the strategy to account for changes in the after each frame update. Registers a new renderer. Removes a previously registered renderer. Removes disposed and invalid renderers from the rendering queue. [GET] Specifies whether the output from is sorted by Component type. If it is, the system may use that information to provide more detailed profiling info that would otherwise be too time-consuming to collect. Represents the default strategy to determine which renderers are currently visible to a certain drawing device. Each enum entry represents a physical key location on a keyboard. These are not virtual key codes, but instead correspond to scancodes and thus should be thought of as position indicators of a pressed key, rather than a description of the letter that is printed on it. In naming the enum entries, a US / Ascii / QWERTY keyboard is assumed as a reference. The scope of a shader variable Unknown scope It is a uniform variable, i.e. constant during all rendering stages and set once per draw batch. It is a vertex attribute, i.e. defined for each vertex separately. Provides information about a shader variable. The default variable name for a materials main texture. [GET] The scope of the variable [GET] The type of the variable [GET] If the variable is an array, this is its length. Arrays are only supported for and . [GET] The name of the variable, as declared in the shader. [GET] Returns whether the shader variable should be considered private. The type of a shader variable. Unknown type. A variable. A variable. A variable. A two-dimensional vector with precision. A three-dimensional vector with precision. A four-dimensional vector with precision. A 2x2 matrix with precision. A 3x3 matrix with precision. A 4x4 matrix with precision. Represents a texture binding and provides lookups. Specifies an API for enumerating and loading plugin Assemblies. Loads a plugin Assembly from the specified path. For reliable cross-platform usage, that path should be one of the . The path from which the Assembly will be loaded. Determines the hash code of the specified Assembly. This may be used for verification or comparison purposes, such as determining whether two Assemblies are equal. Initializes the plugin loader. Terminates the plugin loader and provides the opportunity for its implementation to shut down properly. Fired when the runtime attempts to resolve a non-trivial dependency, which may or may not be a plugin. Handling this event allows to specify which to use. Fired when an is loaded by the runtime. [GET] Enumerates all base directories that will be searched for plugin Assemblies. [GET] Enumerates all plugin Assemblies that are available for loading. [GET] Enumerates all Assemblies that are currently loaded in the context of this application. De/Serializes a instance. Default base class for Serialization Surrogates. It implements both and , thus being able to fully perform de/serialization of a designated object type. The base of objects this surrogate can replace. De/Serializes an object instead of letting it de/serialize itsself or using a Reflection-driven approach. Checks whether this surrogate is able to de/serialize the specified object type. The of the object in question. True, if this surrogate is able to de/serialize such object, false if not. Writes constructor data for the replaced object. This will be used in a deserialization pre-pass for constructing the object. Note that constructor data may not contain any object references to itsself, since it the object doesn't exist yet at this deserialization stage. The to serialize constructor data to. Constructs an object in deserialization based on the constructor data that has been written in serialization using . The to deserialize constructor data from. The of the object to create. An instance of the specified that has been constructed using the provided data. [GET / SET] The object that is de/serialized [GET] Returns a serializable object that represents the . [GET] If more than one registered ISurrogate is capable of de/serializing a given object type, the one with the highest priority is picked. Checks whether this surrogate is able to de/serialize the specified object type. The of the object in question. True, if this surrogate is able to de/serialize such object, false if not. Writes constructor data for the replaced object. This will be used in a deserialization pre-pass for constructing the object. Note that constructor data may not contain any object references to itsself, since it the object doesn't exist yet at this deserialization stage. The to serialize constructor data to. Writes the object data to the specified . Constructs an object in deserialization based on the constructor data that has been written in serialization using . The to deserialize constructor data from. The of the object to create. An instance of the specified that has been constructed using the provided data. Reads and applies the object data to the specified . [GET] The object that is de/serialized [GET] If more than one registered surrogate is capable of de/serializing a given object type, the one with the highest priority is picked. De/Serializes a . Provides event arguments events related to groups of instances. Creates a new instance with the given list of objects. Note that the list is not copied for performance reasons. However, the event also does not provide any write access to that internal list either. [GET] Enumerates all objects in this event. Resizes rect boundaries to match the specified target size. SI unit: radians SI unit: m SI unit: s SI unit: m/s Describes how a rectangular object is resized to fit a target size. No resize takes place. The resize will match the object's width and height exactly with the target size. The resize will scale the object so it fits inside the target rect, while keeping its aspect ratio. The resize will scale the object so the entire target rect fits inside, while keeping its aspect ratio. Specifies intervals and modes to refresh the screen and update the game. Refreshes occur as fast as possible with no wait inbetween. Refreshes target 60 FPS and will use wait for each frame to use its entire available time. Doesn't use hardware / driver VSync, but prevents 100% CPU usage. Refreshes wait for the hardware / driver VSync. Refreshes wait for the hardware / driver VSync as long as the target framerate is reached. When falling below, VSync will be temporarily suspended. Specifies the quality level of the anti-aliasing used for rendering. Highest possible quality. Sacrifices performance for smooth edges. Can be a problem on older machines. Medium quality. A tradeoff between looks and Profile. Low quality. Favors Profile. No hardware anti-aliasing is used at all. Describes the way a Duality window is set up. Duality runs in windowed mode. The window can be resized by the user. Duality runs in windowed mode. The window has a fixed size. Duality runs in windowed mode. The window is borderless and covers the whole screen. Duality runs in fullscreen mode, using whatever screen resolution is currently active on the users desktop. Duality runs in fullscreen mode and changes desktop resolution whenever necesary. Provides an icon or image that can be used to represent the given Type within the editor. An attribute that provides information about a Types or Members preferred editor behaviour. Retrieves the specified editor hint attribute from a member, if existing. The Type of editor hint to retrieve. The member to extract the hint from. May be null. An optional override hint, that will be preferred, if applicable. Retrieves the specified editor hint attributes from a member, if existing. The Type of editor hints to retrieve. The member to extract the hints from. May be null. An optional collection of override hints, that will be preferred, if applicable. [GET] The icon image object that will be used to represent this Type. Provides information about a Types editor category. [GET] The preferred category tree to fit this Type in, split into hierarchial tokens. [GET] The preferred category tree to fit this Type in. Provides information about a numerical members decimal accuracy [GET] The preferred number of displayed decimal places Provides information about a numerical members value increment. [GET] The members value increment. Provides information about a numerical members allowed value range. [GET] The members limiting minimum value. [GET] The members limiting maximum value. [GET] The members reasonable (non-limiting) minimum value. [GET] The members reasonable (non-limiting) maximum value. Provides general information about a members preferred editor behaviour. [GET] Flags that indicate the members general behaviour Some general flags for Type members that indicate preferred editor behaviour. No flags set. When editing the Properties or Fields value, a final set operation is requested to finish editing. The member is considered invisible. Will override visibility rules derived from reflection. The member is considered read-only, even if writing is possible via reflection. Indicates that editing the member may have an effect on any other member of the current object. The member is considered visible. Will override visibility rules derived from reflection. Provides event arguments related to instances. Provides event arguments for -related events. [GET] The affected Component. [GET] The changes that have been made since the last update. Provides event arguments for a GameObjects " changed" events. Provides event arguments for -related events. [GET] The affected GameObject. [GET] The GameObjects old parent. [GET] The GameObjects new parent. Converts the color to a different color data format. If there is also a specific method doing the desired conversion, use that instead - it might be faster. Converts the color to a different color data format. If there is also a specific method doing the desired conversion, use that instead - it might be faster. Determines whether two instances refer to the same member, regardless of the context in which each instance was obtained. Wraps the Stream inside a proxy that won't close the underlying stream when being closed. Wraps the Stream inside a proxy that allows accessing only a certain subsection of the Stream, beginning a its current Position. The allows seeking and rewinding back to its original Position, even if the underlying Stream doesn't. Closing the sub-Stream will not close the underlying base Stream. The maximum length in bytes that is accessible using the sub-Stream. Specify -1 for not limiting it. Returns whether the specified object is an instance of the specified TypeInfo. Returns a TypeInfos BaseType as a TypeInfo, or null if it was null. Returns a Types inheritance level. The object-Type has an inheritance level of zero, each subsequent inheritance increases it by one. Returns all fields that are declared within this Type, or any of its base Types. Includes public, non-public, static and instance fields. Returns all properties that are declared within this Type, or any of its base Types. Includes public, non-public, static and instance properties. Returns all members that are declared within this Type, or any of its base Types. Includes public, non-public, static and instance fields. Represents a readonly interface for two-dimensional grid-aligned data. [GET] The grids width. [GET] The grids height. [GET] Accesses a grid element at the specified position. Represents two-dimensional grid-aligned data. Creates a new, empty grid. Creates a new grid of the specified size. Creates a new grid based on the specified raw data array. It will not be copied, but directly used. Creates a copy of the specified grid. Determines the two-dimensional grid index from the specified raw data index. Determines the raw data index from the specified two-dimensional grid index. Determines the index of the specified item. Finds an item that matches the specified predicate. Finds all items that match the specified predicate. Finds the index of an item that matches the specified predicate. Finds all indices of items that match the specified predicate. Determines whether the specified item is contained within this grid. Determines the boundaries of the grids non-null content. Fills a rectangular region of the grid with the specified value. Removes the specified item from the grid. Removes all items from the grid that match the specified criteria. Clears the grid without modifying its size. Resizes the grid and translates its contents, so it assumes the specified rectangular region, relative to its former shape. X and Y values may be negative, to grow the grid on its left or top side. Resizes the grid. Resizes the grid and clears its contents. The fact that the old contents can be discarded allows to perform the resize operation more efficiently. Shrinks the grid to match its non-null content boundaries. Copies the grids contents to the specified other grid. Copies the grids contents to the specified array, line by line. [GET] The underlying raw data of the grid. You shouldn't need to access this in regular usage - it's just there to allow to operate directly on the data block for higher performance on large batch operations. [GET / SET] The grids width. Setting this will perform a resize operation. [GET / SET] The grids height. Setting this will perform a resize operation. [GET / SET] The grids total capacity for elements. Equals times . [GET / SET] Accesses a grid element at the specified position. Specifies flags on how to shrink a grid to its minimal size. Don't shrink the grid at all. Shrink the grid horizontally. Shrink the grid vertically. Shrink the grid both horizontally and vertically. Represents a single output and provides actual writing functionality for Writes a single message to the output. The new log entry that is to be written to the output. The type of a log message / entry. Just a regular message. Nothing special. Neutrally informs about what's going on. A warning message. It informs about unexpected data or behaviour that might not have caused any errors yet, but can lead to them. It might also be used for expected errors from which Duality is likely to recover. An error message. It informs about an unexpected and/or critical error that has occurred. A log entry. [GET] The from which this entry originates. [GET] The messages type. [GET] The log entry's message. [GET] The context in which this log was written. Usually the primary object the log entry is associated with. [GET] The messages timestamp. [GET] The value of when the message was logged. [GET] The desired indentation level for this log message when displaying it. Represents a range of values between a specific minimum and maximum value. The minimum value of this Range. The maximum value of this Range. Creates a new Range from mininmum and maximum values. Creates a new Range with zero-width from a single value. Performs a linear interpolation between the Ranges minimum and maximum value using the specified blend factor. Normalizes this Range, i.e. flips minimum and maximum value, if irregular. Returns whether this Range contains a certain value. Returns whether this Range contains a certain other range. Returns whether two Ranges are equal. Returns whether two Ranges are inequal. Adds two Ranges by adding each of their components individually. Subtracts two Ranges by subtracting each of their components individually. Multiplies two Ranges by multiplying each of their components individually. Divides two Ranges by dividing each of their components individually. Performs an implicit conversion from a single value to a ranged value. [GET] The total width of this Range. This value may be negative for irregular ranges, i.e. ranges with a higher minimum value than their maximum value. [GET] The center value of this Range. [GET] Returns a normalized version of this Range where the minimum is guaranteed to be smaller than the maximum value. Creates an instance of a Type. Attempts to use the Types default empty constructor, but will return an uninitialized object in case no constructor is available. The Type to create an instance of. An instance of the Type. Null, if instanciation wasn't possible. Returns the default instance of a Type. Equals default(T), but works for Reflection. The Type to create a default instance of. Clears the ReflectionHelpers Type cache. Wraps a inside a proxy that allows accessing only a certain portion of the Stream, beginning a its current Position. Using internal buffering, the SubStream allows seeking and rewinding back to its original Position, even if the underlying Stream doesn't. Closing the SubStream will not close its underlying Stream. Wraps a , but only pretends to close it without actually doing so. Wraps a within a new one, and forwards all functionality to the underlying Stream. Clones the specified object and returns the cloned instance. If true, the mapping between source and target object graph is preserved. This can be useful for doing a partial clone operation that is later continued or repeated using the same instance. Since the mapping is already present, performance of subsequent clone operations within the same object graph can benefit by this. Copies the specified source object graph to the specified target object graph. Where possible, existing objects will be preserved and updated, rather than being overwritten. If true, the mapping between source and target object graph is preserved. This can be useful for doing a partial clone operation that is later continued or repeated using the same instance. Since the mapping is already present, performance of subsequent clone operations within the same object graph can benefit by this. Clears the clone providers internal mapping between source and target object graph. This is done automatically, unless the copy or clone operation has been performed with explicitly preserving the cache. Prepares the clone operation by generating a mapping between source and target object graph, and creating the target objects where required in the process. Returns a reference to the target root object. Ends the current clone operation by clearing all the working data that was allocated in the process. If true, the mapping between source and target object graph is preserved. This can be useful for doing a partial clone operation that is later continued or repeated using the same instance. Since the mapping is already present, performance of subsequent clone operations within the same object graph can benefit by this. Registers a mapping from the specified source object to its target object graph equivalent. This is a one-to-one relation. Retrieves the target graph equivalent of the specified source graph object and returns whether there is a valid source-target relation. Note that the resulting target object will (expected to) be the same as the source object in cases where there is no mapping, but reference assignment instead. Adds the specified source object to the handled object stack when required and returns whether the object need to be investigated as part of the copy step at all. Removes the specified source object from the handled object stack after finishing its copy step. Returns the of a Type. [GET] Provides information about the context in which the operation is performed. Compares two objects for equality strictly by reference. This is needed to build the object id mapping, since some objects may expose some unfortunate equality behavior, and we really want to distinguish different objects by reference, and not by "content" here. Describes the context of a cloning operation A standard cloning operation. [GET] Should the operation preserve each objects identity? If false, specific identity-preserving data field such as Guid or Id fields will be copied as well. This might result in duplicate IDs. Provides a general interface for an object type that will provide and explicit method for cloning rather than falling back to automated cloning behavior. Performs the cloning setup step, in which all reference-type instances from the target object graph are generated. The purpose of this method is to help the cloning system walk the entire (relevant) object graph in order to determine which objects are referenced and which are owned / deep-cloned, as well as creating instances or re-using existing instances from the target graph. Walking this object's part of the source object graph and mapping instances to their target object graph correspondents is done by using the interface methods for handling object instances and struct values. The object instance from the target graph that corresponds to this object's instance in the source graph. When invoking this method, the target object will either have existed already, or been created by the cloning system. The setup environment for the cloning operation. Performs the cloning copy step, in which all data is copied from source instances to target instances. No new object instances should be created in this step, as object creation should be part of the setup step instead. The object instance from the target graph that corresponds to this object's instance in the source graph. When invoking this method, the target object will either have existed already, or been created by the cloning system. Components are isolated logic units that can independently be added to and removed from GameObjects. Each Component has a distinct purpose, thus it is not possible to add multiple Components of the same Type to one GameObject. Also, a Component may not belong to multiple GameObjects at once. Represents an object that can be de/activated and explicitly released / disposed Disposes the object. [GET] Returns whether the object is considered disposed. [GET] Returns whether the object is currently active. An object that implements this interface is able to choose its own, fixed object id during serialization. This can under some circumstances help to minimize versioning conflicts due to a modified object id naming scheme. [GET] The object id that will be picked preferrably for this object. Disposes this Component. You usually don't need this - use instead. Creates a deep copy of this Component. A reference to a newly created deep copy of this Component. Deep-copies this Components data to the specified target Component. If source and target Component Type do not match, the operation will fail. The target Component to copy to. This method prepares the operation for custom Component Types. It uses reflection to prepare the cloning operation automatically, but you can implement this method in order to handle certain fields and cases manually. See for a more thorough explanation. This method performs the operation for custom Component Types. It uses reflection to perform the cloning operation automatically, but you can implement this method in order to handle certain fields and cases manually. See for a more thorough explanation. The target Component where this Components data is copied to. Returns whether this Component requires a Component of the specified Type. The Component Type that might be required. True, if there is a requirement, false if not Returns whether this objects Component requirement is met. If not null, the specified Component is assumed to be missing. True, if the Component requirement is met, false if not. Returns whether this objects Component requirement is met assuming a different parent GameObject The specified object is assumed as parent object. If not null, the specified Components are assumed to be present in the specified parent object. True, if the Component requirement is met, false if not. Returns all Component Types this Component requires. An array of required Component Types. Returns whether a Component Type requires another Component Type to work properly. The Component Type that might require another Component Type. The Component Type that might be required. True, if there is a requirement, false if not Returns all required Component Types of a specified Component Type. The Component Type that might require other Component Types. An array of Component Types to require. Returns the number of Component Types that require the specified Component Type. This can be used as a measure of relative Component significance. Given the specified target and type, this method will enumerate all types that need to be added in order to satisfy its requirements. [GET / SET] Whether or not the Component is currently active. To return true, both the Component itsself and its parent GameObject need to be active. [GET / SET] Whether or not the Component is currently active. Unlike , this property ignores parent activation states and depends only on this single Component. The scene graph and other Duality instances usually check , not ActiveSingle. [GET] Returns whether this Component has been disposed. Disposed Components are not to be used and should be treated specifically or as null references by your code. [GET / SET] The to which this Component belongs. [GET] Provides information about how different types are depending on each other, as well as functionality to automatically enforce the dependencies of a given type. [GET] Provides information about the order in which different types are updated, initialized and shut down. Describes the kind of initialization that can be performed on a Component A saving process has just finished. The Component has been fully loaded. The Component is being activated. This can be the result of activating it, activating its GameObject, adding itsself or its GameObject to the current Scene or entering a in which this Component is registered. The Component has just been added to a GameObject Describes the kind of shutdown that can be performed on a Component A saving process is about to start The Component has been deactivated. This can be the result of deactivating it, deactivating its GameObject, removing itsself or its GameObject from the current Scene or leaving a in which this Component is registered. The Component is being removed from its GameObject. Provides detailed information about a collision event. [GET] The position at which the collision occurred in absolute world coordinates. [GET] The normal vector of the collision impulse, in the global coordinate system. [GET] The impulse that is delivered along the provided normal vector. [GET] The mass that is interacting along the provided normal vector. [GET] The speed change that will occur when applying to . [GET] The tangent vector of the collision impulse, in the global coordinate system. [GET] The impulse that is delivered along the provided tangent vector. [GET] The mass that is interacting along the provided tangent vector. [GET] The speed change that will occur when applying to . Connects two bodies using a gear. The gear type is determined by the joints that are attached to each body. Supported joint types are (Fixed)Prismatic- and (Fixed)Revolutejoints. Those joints are required to be either fixed or attached to a static body. Describes a joint. Joints limit a Colliders degree of freedom by connecting it to fixed world coordinates or other Colliders. [GET / SET] Specifies whether the connected Colliders will collide with each other. [GET / SET] Whether or not the joint is active. [GET / SET] Maximum joint error value before the joint break. Breaking does not remove the joint, but disable it. A value of zero or lower is interpreted as unbreakable. Note that some joints might not have breaking point support and will ignore this value. [GET / SET] The gear ratio by which body movement is connected. Constrains two RigidBodies as though connected using a rope that is fixed at two world anchor points. [GET / SET] The first bodies local anchor point. [GET / SET] The second bodies local anchor point. [GET / SET] The first bodies world anchor point. [GET / SET] The second bodies world anchor point. [GET / SET] The maximum "rope length" on the first bodies side of the pulley. [GET / SET] The maximum "rope length" on the second bodies side of the pulley. [GET] The current "rope length" on the first bodies side of the pulley. [GET] The current "rope length" on the second bodies side of the pulley. [GET / SET] The ratio by which the second rope end is enlarged or shrinked on size changes of the first rope end. [GET / SET] The total length of the rope. The line joint is also called "wheel joint", because it behaves like the spring of a car tire: A body is only allowed to travel on a specific world axis relative to the other one but can rotate freely or accelerated by a motor. [GET / SET] The car RigidBodies local anchor point. [GET / SET] The wheel RigidBodies local anchor point. [GET / SET] The axis on which the body may move. [GET / SET] The damping ratio. Zero means "no damping", one means "critical damping". [GET / SET] The mass spring damper frequency in hertz. [GET / SET] Is the joint motor enabled? [GET / SET] The maximum motor torque. [GET / SET] The desired motor speed in radians per frame. [GET] The current joint angle speed in radians per frame. [GET] The current joint translation. [GET] The current joint motor torque. Constrains two RigidBodies to keep their distance to each other in a certain range. You can view this as a massless, rigid rod. [GET / SET] The first bodies local anchor point. [GET / SET] The second bodies local anchor point. [GET / SET] The maximum distance between both RigidBodies. [GET / SET] The minimum distance between both RigidBodies. Constrains two RigidBodies to not exceed a maximum distance to each other. [GET / SET] The first bodies local anchor point. [GET / SET] The second bodies local anchor point. [GET / SET] The maximum distance between both RigidBodies i.e. the "rope length". Describes a Colliders circle shape. [GET / SET] The circles radius. [GET / SET] The circles position. Constrains two RigidBodies to a fixed relative angle [GET / SET] The Colliders target angle. [GET / SET] The bias factor determines how strong the joint reacts to the difference between target and actual angle. [GET / SET] The softness of the joint determines how easy it is to turn it away from its ideal angle. [GET / SET] The maximum angular impulse to apply to the RigidBody. A negative value equals infinity. Constrains two RigidBodies to obtain a fixed distance to each other [GET / SET] The first bodies local anchor point. [GET / SET] The second bodies local anchor point. [GET / SET] The damping ratio. Zero means "no damping", one means "critical damping". [GET / SET] The mass spring damper frequency in hertz. [GET / SET] The target distance between local and world anchor Applies relative friction to RigidBodies. [GET / SET] The first RigidBodys local anchor point. [GET / SET] The second RigidBodys local anchor point. [GET / SET] The maximum friction force in the local anchor point. [GET / SET] The maximum friction torque in the local anchor point. Pins two locally anchored RigidBodies together without constraining rotation. [GET / SET] The first RigidBodies local anchor point. [GET / SET] The second RigidBodies local anchor point. [GET / SET] Is the joint limited in its angle? [GET / SET] The lower joint limit in radians. [GET / SET] The upper joint limit in radians. [GET / SET] The joint's reference angle. [GET / SET] Is the joint motor enabled? [GET / SET] The maximum motor torque. [GET / SET] The desired motor speed in degree per frame. [GET] The current joint angle speed in radians per frame. [GET] The current joint angle in radians. [GET] The current joint motor torque. This joint allows the RigidBody to travel on a specific axis relative to another body. It can be limited to a certain area and driven by a motor force. [GET / SET] The local anchor point on the first RigidBody. [GET / SET] The local anchor point on the second RigidBody. [GET / SET] The axis on which the body may move. [GET / SET] Is the joint limited in its movement? [GET / SET] The lower joint limit. [GET / SET] The upper joint limit. [GET / SET] Is the joint motor enabled? [GET / SET] The maximum motor force. [GET / SET] The desired motor speed. [GET] The current joint speed. [GET] The current joint translation. [GET] The current joint motor force. [GET / SET] The reference angle that is used to constrain the bodies angle. Describes a double-sided edge loop (outline) in a shape. [GET / SET] The edge loops vertices. While assinging the array will cause an automatic update, simply modifying it will require you to call manually. Describes a Colliders polygon shape. [GET / SET] The polygons vertices. While assinging the array will cause an automatic update, simply modifying it will require you to call manually. [GET] A read-only list of convex polygons that were generated from the shapes . Do not modify any of the returned values. Represents a body instance for physical simulation, collision detection and response. Adds a new shape to the body. Removes an existing shape from the body. Removes all existing shapes from the body. Removes an existing joint from the body. Adds a new joint to the body. Removes all existing joints from the body. Applies a Transform-local angular impulse to the object. You don't usually need to apply here because it is inteded to be a one-time force impact. Applies a Transform-local impulse to the objects mass center. You don't usually need to apply here because it is inteded to be a one-time force impact. Applies a Transform-local impulse to the specified point. You don't usually need to apply here because it is inteded to be a one-time force impact. Applies a world impulse to the objects mass center. You don't usually need to apply here because it is inteded to be a one-time force impact. Applies a world impulse to the specified world point. You don't usually need to apply here because it is inteded to be a one-time force impact. Applies a Transform-local angular force to the object. You don't need to apply here, the physics simulation takes care of this. Applies a Transform-local force to the objects mass center. You don't need to apply here, the physics simulation takes care of this. Applies a Transform-local force to the specified local point. You don't need to apply here, the physics simulation takes care of this. Applies a world force to the objects mass center. You don't need to apply here, the physics simulation takes care of this. Applies a world force to the specified world point. You don't need to apply here, the physics simulation takes care of this. Awakes the body if it has been in a resting state that is now being left, such as when changing physical properties at runtime. You usually don't need to call this. Performs a physical picking operation and returns the shape in which the specified world coordinate is located in. Performs a physical picking operation and returns the shapes that intersect the specified world coordinate. Performs a physical picking operation and returns the shapes that intersect the specified world coordinate area. Forces previously scheduled body shape updates to execute. Changes to a RigidBodies shape are normally cached and executed in the following frame. Calling this method guarantes all scheduled updates to be performed immediately. Prepares this RigidBody for a large-scale shape update. This isn't required but might boost update performance. Restores this RigidBody after a large-scale shape update. See . Performs a 2d physical raycast in world coordinates. The starting point in world coordinates. The desired end point in world coordinates. The callback that is invoked for each hit on the raycast. Note that the order in which each hit occurs isn't deterministic and may appear random. Return -1 to ignore the curret shape, 0 to terminate the raycast, data.Fraction to clip the ray for current hit, or 1 to continue. Performs a 2d physical raycast in world coordinates. The starting point in world coordinates. The desired end point in world coordinates. The callback that is invoked for each hit on the raycast. Note that the order in which each hit occurs isn't deterministic and may appear random. Return -1 to ignore the curret shape, 0 to terminate the raycast, data.Fraction to clip the ray for current hit, or 1 to continue. Returns a list of all occurred hits, ordered by their Fraction value. Performs a 2d physical raycast in world coordinates. The starting point in world coordinates. The desired end point in world coordinates. The callback that is invoked for each hit on the raycast. Note that the order in which each hit occurs isn't deterministic and may appear random. Return -1 to ignore the curret shape, 0 to terminate the raycast, data.Fraction to clip the ray for current hit, or 1 to continue. Returns the first hit that occurs, i.e. the one with the highest proximity to the starting point. Returns whether anything has been hit. Performs a global physical picking operation and returns the shape in which the specified world coordinate is located in. Performs a global physical picking operation and returns the shapes that intersect the specified world coordinate. Performs a global physical picking operation and returns the shapes that intersect the specified world coordinate area. Performs a global physical AABB query and returns the bodies that might be roughly contained or intersected by the specified region. Awakes all currently existing RigidBodies. [GET / SET] The type of the physical body. [GET / SET] The damping that is applied to the bodies velocity. [GET / SET] The damping that is applied to the bodies angular velocity. [GET / SET] Whether the bodies rotation is fixed. [GET / SET] Whether the body ignores gravity. [GET / SET] Whether the body is included in continous collision detection or not. It prevents the body from moving through others at high speeds at the cost of performance. [GET / SET] The Colliders current linear velocity. [GET / SET] The Colliders current angular velocity. [GET / SET] The bodies overall friction value. Usually a value between 0.0 and 1.0, but higher values can be used to indicate unusually strong friction. [GET / SET] The bodies overall restitution value. Should be a value between 0.0 and 1.0. [GET / SET] The bodies overall mass. This is usually calculated automatically. You may however assign an explicit, fixed value to override the automatically calculated mass. To reset to automated calculation, set to zero. [GET / SET] The bodies rotational inertia about the local origin. This is usually calculated automatically. You may however assign an explicit, fixed value to override the automatically calculated inertia. To reset to automated calculation, set to zero. [GET / SET] A bitmask that specifies the collision categories to which this Collider belongs. [GET / SET] A bitmask that specifies which collision categories this Collider interacts with. [GET / SET] A callbcak method that is used to determine whether or not a collision should occur. While more costly than other means of collision filtering, this allows for a more fine-grained case-to-case decision. [GET] The bodies total number of revolutions. [GET] The bodies center of mass in world coordinates. [GET] The bodies center of mass in local coordinates. [GET] Enumerates all primitive shapes which this body consists of. [GET] Enumerates all joints that are connected to this Collider. [GET] The physical bodys bounding radius. [GET] Whether the body is currently awake i.e. actively simulated. "Welds" two Colliders together so they share a common point and relative angle. [GET / SET] The welding point, locally to the first object. [GET / SET] The welding point, locally to the second object. [GET / SET] The relative angle both objects need to keep. A that renders a RigidBodies shape and outline. A Renderer usually gives its a visual appearance in space. However, in general it may render anything and isn't bound by any conceptual restrictions. Performs the Renderers drawing operation. Determines if the Renderer is visible to the specified . This is usually the case if they share at least one mutual visibility group. [GET / SET] A bitmask that informs about the set of visibility groups to which this Renderer belongs. Usually, a Renderer is considered visible to a if they share at least one mutual visibility group. [GET] The Renderers bounding radius, originating from the GameObjects position. [GET / SET] The that is used for rendering the RigidBodies shape areaa. [GET / SET] The that is used for rendering the RigidBodies shape outlines. [GET / SET] A custom, local overriding the . [GET / SET] A custom, local overriding the . [GET / SET] A color by which the rendered debug output is tinted. [GET / SET] A virtual Z offset that affects the order in which objects are drawn. If you want to assure an object is drawn after another one, just assign a higher Offset value to the background object. [GET / SET] Specifies the width of the RigidBody outline when rendering. No outline will be rendered, if this value is smaller than or equal zero. [GET / SET] Whether or not hollow shapes like the will be filled as if they were in fact solid. [GET / SET] Specifies, whether or not texture wrapping will be active when rendering the RigidBody area and outline. [GET] The internal Z-Offset added to the renderers vertices based on its value. A diagnostic that displays current performance measurements and other profiling stats. [GET / SET] Whether or not a text report of the current time profiling results is drawn. [GET / SET] Whether or not a text report of the current stat profiling results is drawn. [GET / SET] Whether or not are drawn. [GET / SET] A key that can be used to toggle performance text reports. [GET / SET] A key that can be used to toggle profiling stat text reports. [GET / SET] A key that can be used to toggle the display of realtime graphs. [GET / SET] A key that can be used to reset all profile counter data back to zero. [GET / SET] The names of instances that should be drawn in graph form. [GET / SET] A bitmask that specifies which report features are used. [GET / SET] The time interval in milliseconds by which the report is updated. This lightweight struct references Resources in an abstract way. It is tightly connected to the and takes care of keeping or making the referenced content available when needed. Never store actual Resource references permanently, instead use a ContentRef to it. However, you may retrieve and store a direct Resource reference temporarily, although this is only recommended at method-local scope. IContentRef is a general interface for content references of any type. Determines if the references Resource's Type is assignable to the specified Type. The Resource Type in question. True, if the referenced Resource is of the specified Type or subclassing it. Determines if the references Resource's Type is assignable to the specified Type. The Resource Type in question. True, if the referenced Resource is of the specified Type or subclassing it. Creates a of the specified Type, referencing the same Resource. The Resource Type to create a reference of. A of the specified Type, referencing the same Resource. Returns a null reference if the Resource is not assignable to the specified Type. Loads the associated content as if it was accessed now. You don't usually need to call this method. It is invoked implicitly by trying to access the ContentRef. Discards the resolved content reference cache to allow garbage-collecting the Resource without losing its reference. Accessing it will result in reloading the Resource. [GET] Returns the actual . If currently unavailable, it is loaded and then returned. Because of that, this Property is only null if the references Resource is missing, invalid, or this content reference has been explicitly set to null. Never returns disposed Resources. [GET] Returns the current reference to the Resource that is stored locally. No attemp is made to load or reload the Resource if currently unavailable. [GET] The of the referenced Resource. If currently unavailable, this is determined by the Resource file path. [GET / SET] The path where to look for the Resource, if it is currently unavailable. [GET] Returns whether this content reference has been explicitly set to null. [GET] Returns whether this content reference is available in general. This may trigger loading it, if currently unavailable. [GET] Returns whether the referenced Resource is currently loaded. [GET] Returns whether the referenced Resource is part of Duality's embedded default content. [GET] Returns whether the Resource has been generated at runtime and cannot be retrieved via content path. [GET] The name of the referenced Resource. [GET] The full name of the referenced Resource, including its path but not its file extension Creates a ContentRef pointing to the specified , assuming the specified path as its origin, if the Resource itsself is either null or doesn't provide a valid . The Resource to reference. The referenced Resource's file path. Creates a ContentRef pointing to the specified . The Resource to reference. Determines if the references Resource's Type is assignable to the specified Type. The Resource Type in question. True, if the referenced Resource is of the specified Type or subclassing it. Determines if the references Resource's Type is assignable to the specified Type. The Resource Type in question. True, if the referenced Resource is of the specified Type or subclassing it. Creates a of the specified Type, referencing the same Resource. The Resource Type to create a reference of. A of the specified Type, referencing the same Resource. Returns a null reference if the Resource is not assignable to the specified Type. Loads the associated content as if it was accessed now. You don't usually need to call this method. It is invoked implicitly by trying to access the ContentRef Discards the resolved content reference cache to allow garbage-collecting the Resource without losing its reference. Accessing it will result in reloading the Resource. Compares two ContentRefs for equality. This is a two-step comparison. First, their actual Resources references are compared. If they're both not null and equal, true is returned. Otherwise, their Resource paths are compared for equality Compares two ContentRefs for inequality. [GET / SET] The actual . If currently unavailable, it is loaded and then returned. Because of that, this Property is only null if the references Resource is missing, invalid, or this content reference has been explicitly set to null. Never returns disposed Resources. [GET] Returns the current reference to the Resource that is stored locally. No attemp is made to load or reload the Resource if currently unavailable. [GET] The of the referenced Resource. If currently unavailable, this is determined by the Resource file path. [GET / SET] The path where to look for the Resource, if it is currently unavailable. [GET] Returns whether this content reference has been explicitly set to null. [GET] Returns whether this content reference is available in general. This may trigger loading it, if currently unavailable. [GET] Returns whether the referenced Resource is currently loaded. [GET] Returns whether the referenced Resource is part of Duality's embedded default content. [GET] Returns whether the Resource has been generated at runtime and cannot be retrieved via content path. [GET] The name of the referenced Resource. [GET] The full name of the referenced Resource, including its path but not its file extension Called when initializing the plugin. It is guaranteed that all plugins have been loaded at this point, so this is the ideal place to establish communication with other plugins or load Resources that may rely on them. It is NOT defined whether or not other plugins have been initialized yet. Called before Duality updates the game scene Called after Duality updates the game scene Called when Dualitys changes. This static class contains constant string representations of certain resource names. Defines a general interface for drawing devices. Its main duty is to accept and collect parameterized vertex data. Returns the scale factor of objects that are located at the specified (world space) z-Coordinate. Transforms screen space coordinates to world space coordinates. The screen positions Z coordinate is interpreted as the target world Z coordinate. Transforms screen space coordinates to world space coordinates. Transforms world space coordinates to screen space coordinates. Transforms world space coordinates to screen space coordinates. Processes the specified world space position and scale values and transforms them to the IDrawDevices view space. This usually also applies a perspective effect, if applicable. The position to process. The scale factor to process. Returns whether the specified world-space position is visible in the drawing devices view space. The position to test. The visual bounding radius to assume for the specified position. True, if the position or a portion of its bounding circle is visible, false if not. Adds a parameterized set of vertices to the drawing devices rendering schedule. The type of vertex data to add. The to use for rendering the vertices. The vertices drawing mode. The vertex data to add. Adds a parameterized set of vertices to the drawing devices rendering schedule. The type of vertex data to add. The to use for rendering the vertices. The vertices drawing mode. The vertex data to add. Adds a parameterized set of vertices to the drawing devices rendering schedule. The type of vertex data to add. The to use for rendering the vertices. The vertices drawing mode. A vertex data buffer that stores the vertices to add. The number of vertices to add, from the beginning of the buffer. Adds a parameterized set of vertices to the drawing devices rendering schedule. The type of vertex data to add. The to use for rendering the vertices. The vertices drawing mode. A vertex data buffer that stores the vertices to add. The number of vertices to add, from the beginning of the buffer. [GET] The perspective projection type that is currently active in this drawing device. [GET] Reference coordinate for rendering i.e. the position of the drawing device's virtual camera. [GET] Reference angle for rendering i.e. the angle of the drawing device's virtual camera. [GET] Reference distance for calculating the perspective effect. An object this far away from the camera will appear in its original size. [GET] A bitmask flagging all visibility groups that are considered visible to this drawing device. [GET] The lowest Z value that can be displayed by the device. [GET] The highest Z value that can be displayed by the device. [GET] Returns whether the drawing device allows writing to the depth buffer [GET] Returns whether the drawing device is currently performing a visual picking opreation. [GET] The size of the surface this drawing device operates on. The default reference distance for perspective rendering. Returns the scale factor of objects that are located at the specified (world space) z-Coordinate. Transforms screen space coordinates to world space coordinates. The screen positions Z coordinate is interpreted as the target world Z coordinate. Transforms screen space coordinates to world space coordinates. Transforms world space coordinates to screen space coordinates. Transforms world space coordinates to screen space coordinates. [GET / SET] Specified the perspective effect that is applied when rendering the world. Special flag. This flag is set when rendering screen overlays. This class handles buffering and reusing vertex arrays created by a and is a measure of performance and memory footprint improvement when using on a regular basis. Adds the specified vertex arrays to the Canvas' buffering mechanism. As long as buffers are available, the Canvas will prefer re-using one of them over creating a new vertex array. Every vertex array will only be used once. Adds the specified vertex array to the Canvas' buffering mechanism. As long as buffers are available, the Canvas will prefer re-using one of them over creating a new vertex array. Every vertex array will only be used once. Removes the specified vertex array from the Canvas' buffering mechanism. Creates or retrieves a vertex array of at least the specified size. Minimum size of the new or reused vertex array. Resets the buffer for being re-used in future rendering frames. Describes a pattern for dashed lines. There is no line at all. A dotted line with a a lot of dots. Pattern: #_#_#_#_#_#_#_#_#_#_#_#_#_#_#_#_ A dotted line. Pattern: #___#___#___#___#___#___#___#___ A dotted line with less dots. Pattern: #_______#_______#_______#_______ A dashed line with short dashes. Pattern: ##__##__##__##__##__##__##__##__ A dashed line. Pattern: ####____####____####____####____ A dashed line with long dashes. Pattern: ########________########________ A line with alternating dashes and dots. Pattern: ###__#__###__#__###__#__###__#__ An alternating line with more dots than dashes. Pattern: #####___#___#___#####___#___#___ An alternating line with more dashes than dots. Pattern: ####____####____####____#___#___ The line isn't dashed. Describes the state of a . Copies all state data to the specified target. Creates a clone of this State. Resets this State to its initial settings. Sets the States drawing material. Sets the States drawing material. [GET] The material that is used for drawing. [GET] Returns whether the currently active material is the default one. [GET / SET] The to use for text rendering. [GET / SET] If true, text does not scale due to its position in space [GET / SET] The texture coordinate rect which is used for UV generation when drawing shapes. [GET] The currently bound main textures size. [GET / SET] The color tint to use for drawing. [GET / SET] A Z-Offset value that is added to each emitted vertices Z coordinate after all projection calculations have been done. [GET / SET] The angle by which all shapes are transformed locally. [GET / SET] The scale by which all shapes are transformed locally. [GET / SET] The handle used for locally transforming all shapes. You can think of it as the "fixed point" of a shape when rotating or scaling it. [GET] Returns whether the current transformation is an identity transformation (i.e. doesn't do anything). Renders an animated sprite to represent the . Renders a sprite to represent the . [GET / SET] The rectangular area the sprite occupies. Relative to the . [GET / SET] The that is used for rendering the sprite. [GET / SET] A custom, local overriding the , allowing this sprite to look unique without having to create its own Resource. However, this feature should be used with caution: Performance is better using shared Materials. [GET / SET] A color by which the sprite is tinted. [GET / SET] Specifies how the sprites uv-Coordinates are calculated. [GET / SET] Specified whether or not the rendered sprite will be aligned to actual screen pixels. [GET / SET] A virtual Z offset that affects the order in which objects are drawn. If you want to assure an object is drawn after another one, just assign a higher Offset value to the background object. [GET] The internal Z-Offset added to the renderers vertices based on its value. [GET / SET] Specifies whether the sprite should be flipped on a given axis when redered. Specifies how the sprites uv-Coordinates are calculated. The uv-Coordinates are constant, stretching the supplied texture to fit the SpriteRenderers dimensions. The u-Coordinate is calculated based on the available horizontal space, allowing the supplied texture to be tiled across the SpriteRenderers width. The v-Coordinate is calculated based on the available vertical space, allowing the supplied texture to be tiled across the SpriteRenderers height. The uv-Coordinates are calculated based on the available space, allowing the supplied texture to be tiled across the SpriteRenderers size. Specifies whether the sprite should be flipped on a given axis. The sprite will not be flipped at all. The sprite will be flipped on its horizontal axis. The sprite will be flipped on its vertical axis. Updates the , and properties immediately. This is called implicitly once each frame before drawing, so you don't normally call this. However, when changing animation parameters and requiring updated animation frame data immediately, this could be helpful. [GET / SET] The index of the first frame to display. Ignored if is set. Animation indices are looked up in the map of the that is used. [GET / SET] The number of continous frames to use for the animation. Ignored if is set. Animation indices are looked up in the map of the that is used. [GET / SET] The time a single animation cycle needs to complete, in seconds. [GET / SET] The animations current play time, i.e. the current state of the animation. [GET / SET] If true, the animation is paused and won't advance over time. will stay constant until resumed. [GET / SET] The animations loop behaviour. [GET / SET] A custom sequence of frame indices that will be used instead of the default range specified by and . Unused if set to null. Animation indices are looked up in the map of the that is used. [GET] Whether the animation is currently running, i.e. if there is anything animated right now. [GET] The currently visible animation frames index. [GET] The next visible animation frames index. [GET] The current animation frames progress where zero means "just entered the current frame" and one means "about to leave the current frame". This value is also used for smooth animation blending. Describes the sprite animations loop behaviour. The animation is played once an then remains in its last frame. The animation is looped: When reaching the last frame, it begins again at the first one. The animation plays forward until reaching the end, then reverses and plays backward until reaching the start again. This "pingpong" behaviour is looped. A single frame is selected randomly each time the object is initialized and remains static for its whole lifetime. A fixed, single frame is displayed. Which one depends on the one you set in the editor or in source code. The is interpreted and processed as a queue where is the time a single frame takes. Renders a text to represent the . [GET / SET] The text blocks alignment relative to the . [GET / SET] The text to display.. [GET / SET] A color by which the displayed text is tinted. [GET / SET] The to use for displaying icons ithin the text. [GET] The current texts metrics. [GET / SET] A custom, local overriding the texts own Materials. Note that it does not override each Fonts Texture, but their DrawTechniques and main colors. [GET / SET] A virtual Z offset that affects the order in which objects are drawn. If you want to assure an object is drawn after another one, just assign a higher Offset value to the background object. [GET] The internal Z-Offset added to the renderers vertices based on its value. Provides functionality to emit sound. [GET / SET] A list of sound sources this SoundEmitter maintains. Is never null. A single sound source. Updates the sound source. The sources parent . True, if the source is still active. False, if it requests to be removed. [GET] The that is currently allocated to emit this sources sound. [GET / SET] The that is to be played by this source. [GET / SET] Whether this source is looped. [GET / SET] Whether this source is paused. [GET / SET] The volume of this source. [GET / SET] The sources pitch factor. [GET / SET] The sources lowpass factor. [GET / SET] The 3d offset of the emitted sound relative to the GameObject. Makes this the 3d sound listener. Provides high level drawing operations on top of an existing . However, this class is not designed for drawing large batches of primitives / vertices at once. For large amounts of primitives you should consider directly using the underlying IDrawDevice instead to achieve best Profile. Creates a new Canvas that uses the specified . You may optionally specify a for improving rendering performance and memory footprint when rendering similar shapes throughout multiple frames. Adds a clone of the current state on top of the internal stack. Removes the topmost from the internal State stack. Creates or retrieves an unused vertex array with the specified minimum size. If the Canvas has been created using a valid , old vertex arrays will be re-used wherever possible. The minimum size of the requested vertex array. A vertex array with the specified minimum size. It may actually be larger. Draws a predefined set of vertices using the Canvas transformation. Draws part of a predefined set of vertices using the Canvas transformation. Draws a convex polygon. All vertices share the same Z value. Draws a three-dimensional sphere. Draws a three-dimensional line. Draws a flat line. Draws a three-dimensional line. Draws a flat line. Draws a thick, three-dimensional line. Draws a thick, flat line. Draws a rectangle. Draws a rectangle. Draws the section of an oval. The rendered ovals total width. The rendered ovals total height. The oval segments minimum angle. The oval segments maximum angle. If true, the oval sections complete outline is drawn instead of just the outer perimeter. Draws the section of an oval. The rendered ovals total width. The rendered ovals total height. The oval segments minimum angle. The oval segments maximum angle. If true, the oval sections complete outline is drawn instead of just the outer perimeter. Draws the section of a circle. The rendered circles radius. The circle segments minimum angle. The circle segments maximum angle. If true, the circle sections complete outline is drawn instead of just the outer perimeter. Draws the section of a circle The rendered circles radius. The circle segments minimum angle. The circle segments maximum angle. If true, the circle sections complete outline is drawn instead of just the outer perimeter. Draws the section of an oval. Draws the section of an oval. Draws the section of a circle. Draws the section of a circle Fills a polygon. All vertices share the same Z value, and the polygon needs to be convex. Fills a polygons outline. All vertices share the same Z value. Fills a polygons outline. All vertices share the same Z value. A factor that determines on which side of the polygon the line will be drawn, ranging from -1 to 1. Zero represents a line that is centered on the original polygon. Fills a three-dimensional line. Fills a thick, flat line. Fills a thick line strip. All vertices share the same Z value. Fills a thick line strip. All vertices share the same Z value. A factor that determines on which side of the polygon the line will be drawn, ranging from -1 to 1. Zero represents a line that is centered on the original polygon. Fills the section of an oval. The rendered ovals total width. The rendered ovals total height. The oval segments minimum angle. The oval segments maximum angle. If bigger than zero, a donut with the specified width is rendered instead of a completely filled oval. Fills the section of an oval. The rendered ovals total width. The rendered ovals total height. The oval segments minimum angle. The oval segments maximum angle. Fills the section of a circle. The circles radius. The circle segments minimum angle. The circle segments maximum angle. If bigger than zero, a donut with the specified width is rendered instead of a completely filled circle area. Fills the section of a circle Fills an oval. Fills an oval Fills a circle. Fills a circle. Fills a rectangle. Fills a rectangle. Draws the specified text. Specifies the alignment of the text block. Draws the specified text. Optional vertex cache to use for the text. If set, the texts vertices are cached and re-used for better Profile. Specifies the alignment of the text block. To make use of individual line alignment, use the overload. Draws the specified text. Specifies the alignment of the text block. To make use of individual line alignment, use the overload. Draws the specified formatted text. Optional vertex cache to use for the text. If set, the texts vertices are cached and re-used for better Profile. Optional vertex cache to use for the icons. If set, the texts vertices are cached and re-used for better Profile. Specifies the alignment of the text block. To make use of individual line alignment, make use of format tags. Draws the specified formatted text. Specifies the alignment of the text block. To make use of individual line alignment, make use of format tags. Measures the specified text using the currently used . Measures the specified text using the currently used . Draws a thick line strip or loop. The width of the filled line. A factor that determines on which side of the polygon the line will be drawn, ranging from -1 to 1. Zero represents a line that is centered on the original polygon. [GET] The underlying that is used for drawing. [GET / SET] The Canvas' current . [GET] The available width to draw on this Canvas. [GET] The available height to draw on this Canvas. Provides general information about this Duality application / game. [GET / SET] The name of your application / game. It will also be used as a window title by the launcher app. [GET / SET] The author name of your application. Might be your or your team's name or -nickname. [GET / SET] The address of this game's official website or similar. [GET / SET] The current application / game version. [GET / SET] A reference to the start . It is used by the launcher app to determine which Scene to load initially. [GET / SET] The speed of sound in "meters per second". Duality units will be converted to SI units that are used in the calculation using the values provided by the static class. The speed of sound is used to calculate the doppler effect of SoundInstances that are moving relative to the . [GET / SET] A factor by which the strength of the doppler effect is multiplied. [GET / SET] Any velocity below this value will be resolved using inelastic equations i.e. won't lead to "bouncing". [GET / SET] Does the physics simulation use fixed time steps? However, this setting may be overwritten dynamically due to frame timing restrictions. To check whether fixed-timestep physics is currently active, use [GET / SET] If true, user data is saved locally in the game folder instead of the current user account. [GET / SET] Determines whether or not the backbuffer uses multisampling based on . Set this to false if you don't render to the backbuffer directly, but use a custom setup. You'll have to apply possible existing user quality settings yourself. [GET / SET] An optional list of backend values to skip when loading. [GET / SET] Use this property to store custom application data. Provides information about user settings for this Duality application / game. It is persistent beyond installing or deleting this Duality game. [GET / SET] The player's name. This may be his main character's name or simply remain unused. [GET / SET] Width of the game's display area. [GET / SET] Height of the game's display area. [GET / SET] Describes the way the game window is set up. [GET / SET] Specifies the quality of anti-aliasing used in rendering. [GET / SET] Specifies the way in which Duality switches and refreshes visual and update frames. [GET / SET] Determines whether or not the system cursor should be visible in windowed mode. [GET / SET] Volume factor of sound effects. This is applied automatically by the based on the . [GET / SET] Volume factor of speech / vocals. This is applied automatically by the based on the . [GET / SET] Volume factor of music. This is applied automatically by the based on the . [GET / SET] Volume master factor for sound in general. This is applied automatically by the . [GET / SET] Use this property to store custom user data. Schedules this object for disposal at the end of the current update cycle. Describes the state of object activation or disposal. The object is currently initializing. The object has been fully initialized and is fully operational. The object is currently disposing. The object has been fully disposed and can be considered "dead". Returns whether the current can be considered active. This is true after initialization and during disposal. Provides math operations for generic types that are dynamically resolved on their first usage. Adds two generic values. Subtracts two generic values. Multiplies two generic values. Divides two generic values. Calculates the modulo of a generic value. Negates a generic value. Calculates the absolute (non-negative) value of a generic value. Performs a bitwise OR on two generic values. Performs a bitwise AND on two generic values. Performs a bitwise exclusive OR on two generic values. Performs a bitwise NOT on a generic value. Determines whether two generic values are equal. Determines whether one generic value is greater than the other. Determines whether one generic value is greater than or equal to the other. Determines whether one generic value is less than the other. Determines whether one generic value is less than or equal to the other. Converts a generic value to a certain type. Performs a linear interpolation on a two generic values using a blend factor. SI unit: radians SI unit: m SI unit: kg SI unit: kg / m² SI unit: s SI unit: m/s SI unit: radians/s SI unit: m/s² SI unit: kg * m/s² SI unit: kg * m²/s² SI unit: kg * m/s SI unit: kg * m²/s SI unit: kg * m² Provides extension methods for enumerations. Enumerates the GameObjects children. Enumerates the GameObjects children, grandchildren, etc. Enumerates all GameObjects that match the specified name. Returns the first that matches the specified name. Enumerates all GameObjects Components of the specified type. Enumerates all GameObjects childrens Components of the specified type. Enumerates all GameObjects (and their childrens) Components of the specified type. Enumerates all GameObjects Components. Enumerates all Components parent GameObjects. Converts an enumeration of Resources to an enumeration of content references to it. Converts an enumeration of content references to an enumeration of Resources. Converts an enumeration of content references to an enumeration of Resources. Creates a separated list of the string versions of a set of objects. The type of the incoming objects. A set of objects. The string to use as separator between two string values. Creates a separated list of the string versions of a set of objects. The type of the incoming objects. A set of objects. A function that transforms objects to strings. The string to use as separator between two string values. Enumerates objects that aren't null. The type of the incoming objects. A set of objects. Enumerates a all objects within a specific index range. The type of the incoming objects. A set of objects. Index of the first object to be enumerated. Number of objects to be enumerated. Shuffles the specified eumerable. The random number generator to use. Defaults to , if null. Returns whether two sets of objects equal each other. This is the case if both sets contain an equal number of elements and for each element in one set, there is a matching element in the other. Returns whether two sets of objects equal each other. This is the case if both sets contain an equal number of elements and for each element in one set, there is a matching element in the other. Encapsulates an Array and provides methods for dynamically modifying it similar to a List{T}, but allows accessing its raw internal data at the same time. This can be useful for situations wherer raw data access may significantly improve performance, but dynamic sizes are still required. Use this class with caution and consideration. In almost all cases, either a List{T} or a regular Array should be preferred. You should only use this class when you know how to use it. Creates a new, empty list. Creates a new list with the specified capacity. Creates a new list with the specified contents. Creates a new list that is a copy of the specified source list. Creates a new list that wraps the specified array. Does not copy the array. Creates a new list that wraps the specified array. Does not copy the array. Returns the first index of the specified item within the used range of the internal array. Returns -1, if not found. Returns whether the specified item is contained within the used range of the internal array. Adds a new item to the list. Adds a range of new items to the list. Adds a range of new items to the list. Inserts a new item at a specified index. The index at which to insert the new items. The source item to insert. Inserts a range of new items at a specified index. The index at which to insert the new items. The source enumerable to copy items from. Inserts a range of new items at a specified index. The index at which to insert the new items. The source array to copy items from. Inserts a range of new items at a specified index. The index at which to insert the new items. The source array to copy items from. Index in the source array from which to copy items. The number of items to insert. Removes the first matchin item from the list. Removes the element at the specified index. Removes a range of elements at the specified index. Removes the first matchin item from the list. Clears the entire list of its contents and resets its size to zero. Sorts the entire list. Sorts the entire list using a specific comparer. Sorts the entire list using a specific comparison. Sorts a certain range of the list. Sorts a certain range of the list using a specific comparer. Sorts a certain range of the list using a specific comparison. Shrinks the lists internal array to the current minimum size. Makes sure that the lists internal array has storage space for at least the specified amount of elements. Moves a range of elements by a certain value and resets the indices that now remain empty. Copies the contents of this collection to the specified array. Copies the contents of this list to the specified target list. The target list size will be increased when necessary to fit all copied contents of the source list inside it at the specified index. [GET / SET] The lists internal array for data storage. Assigning an array that is shorter than will result in being automatically adjusted. Assigning a larger array will not affect . Assigning null will internally create a zero-length array. [GET / SET] The number of used indices within the internal array. Setting this to a higher value may cause the list to grow its internal array. Decreasing this value does not reset "removed" elements of the internal array to their default value. [GET] Length of the internal array. [GET / SET] A safety-checked index accessor to the lists internal array. Will throw an when attempting to access indices exceeding . Provides access to a set of GamepadInputs. Provides access to a named set of user input devices. Removes all user input sources. Adds a new user input source. Adds a set of new user input sources. Removes a previously registered user input source. Note that the will still exist, but become unavailable until a new matching input source is registered. Returns true, if the source was successfully removed. Removes a set of previously registered user input sources. Note that each will still exist, but become unavailable until a new matching input source is registered. Returns true, if all sources were successfully removed. Returns the index of a specific user input. Returns whether a certain user input is known. Copies all known user inputs to the specified array. Returns an enumerator to iterate over all known user inputs. [GET] Returns how many user inputs are known. Not all of them are necessarily available. [GET] Returns a specific input by index. [GET] Returns a specific input by its . Updates the inputs current state. [GET] A text description of this input. [GET] Returns whether this input is currently available. [GET / SET] The source where this input derives its state from. Fired when the input becomes available to Duality. Fired when the input is no longer available to Duality. Provides access to a set of JoystickInputs. Provides access to gamepad user input. Returns whether the specified button is currently pressed. Returns whether the specified button was hit this frame. Returns whether the specified button was released this frame. Returns the specified axis value. Returns the specified axis value change since last frame. Sets the gamepads current vibration values. Left vibration between 0.0 and 1.0 Right vibration between 0.0 and 1.0 [GET / SET] The gamepad inputs data source. [GET] A string containing a unique description for this instance. [GET] Returns whether this input is currently available. [GET] The left triggers current value. [GET] The left triggers movement speed. [GET] The left thumbsticks current value. [GET] The left thumbsticks movement speed. [GET] The right triggers current value. [GET] The right triggers movement speed. [GET] The right thumbsticks current value. [GET] The right thumbsticks current movement speed. [GET] The gamepads DPad state, expressed as a directional vector. [GET] Returns whether the specified gamepad button is currently pressed. [GET] Returns the specified gamepad axis current value. Fired once when a device button is no longer pressed. Fired once when a device button is pressed. Fired whenever a device axis changes its value. Fired when the joystick is no longer available to Duality. Fired when the joystick becomes available to Duality. Describes a source of gamepad user input. This is usually an input device. Base interface for describing a source of user input. Updates the sources current state. [GET] A string containing a unique description for this instance. [GET] Returns whether this input is currently available. Sets the gamepads current vibration values. Left vibration between 0.0 and 1.0 Right vibration between 0.0 and 1.0 [GET] Returns whether the specified gamepad button is currently pressed. [GET] Returns the specified gamepad axis value. Describes a source of user keyboard input. This is usually an input device. [GET] Returns the concatenated character input that was typed since the last input update. [GET] Returns whether a specific key is currently pressed. Describes a source of user mouse input. This is usually an input device. [GET / SET] The current viewport-local cursor X position. [GET / SET] The current viewport-local cursor Y position. [GET] The current mouse wheel value [GET] Returns whether a specific is currently pressed. Describes a source of extended user input such as joysticks or gamepads. This is usually an input device. [GET] Returns the number of axes. [GET] Returns the number of buttons. [GET] Returns the number of hats. [GET] Returns whether the specified device button is currently pressed. [GET] Returns the specified device axis current value. [GET] Returns the current position of the specified joystick hat. Provides access to extended user input such as joysticks or gamepads. Returns whether the specified button is currently pressed. Returns whether the specified button was hit this frame. Returns whether the specified button was released this frame. Returns the specified axis value. Returns the specified axis value change since last frame. Returns the current position of the specified joystick hat. Returns all new hat displacement that occurred since last frame. Returns all old hat displacement that stopped since last frame. [GET / SET] The extended user inputs data source. [GET] A string containing a unique description for this instance. [GET] Returns whether this input is currently available. [GET] Returns the number of axes. [GET] Returns the number of buttons. [GET] Returns the number of joystick hats. [GET] Returns whether the specified device button is currently pressed. [GET] Returns the specified device axis current value. [GET] Returns the current position of the specified joystick hat. Fired once when a device button is no longer pressed. Fired once when a device button is pressed. Fired whenever a device axis changes its value. Fired whenever a joystick hat moves. Fired when the joystick is no longer available to Duality. Fired when the joystick becomes available to Duality. Provides access to user mouse input. Returns whether the specified button is currently pressed. Returns whether the specified button was hit this frame. Returns whether the specified button was released this frame. [GET / SET] The mouse inputs data source. [GET] A text description of this input. [GET] Returns whether this input is currently available. [GET / SET] The current viewport-local cursor X position. [GET / SET] The current viewport-local cursor Y position. [GET] The current viewport-local cursor position. [GET] Returns the X position change since last frame. [GET] Returns the Y position change since last frame. [GET] The viewport-local cursor position change since last frame. [GET] The current mouse wheel value [GET] The current (precise, high resolution) mouse wheel value [GET] Returns the change of the mouse wheel value since last frame. [GET] Returns the (precise, high resolution) change of the mouse wheel value since last frame. [GET] Returns whether a specific is currently pressed. Fired when a is no longer pressed. Fired once when a is pressed. Fired when the cursor moves. Fired when the cursor leaves the viewport area. Fired when the cursor enters the viewport area. Fired when the mouse wheel value changes. Provides access to user keyboard input. Returns whether the specified key is currently pressed. Returns whether the specified key was hit this frame. Returns whether the specified key was released this frame. [GET / SET] The keyboard inputs data source. [GET] A text description of this input. [GET] Returns whether this input is currently available. [GET] Returns the concatenated character input that was typed since the last input update. [GET] Returns whether a specific key is currently pressed. Fired when a key is no longer pressed. Fired once when a key is pressed. Fired when keyboard input is no longer available to Duality. Fired when keyboard input becomes available to Duality. Keeps the log entry alive for a certain amount of time. It will fade out smoothly upon nearing its end. The time in milliseconds that will be added to the log entries lifetime. Whether the lifetime of this entry should be used as alpha-value of the specified color. If set to true the entry will fade out over time. Anchors the log entry to the specified . All coordinates and sizes will be interpreted relative to it. Upon destruction, all anchored log entries will be removed as well. Colors the log entry with the specified value. Assigns the log entries depth offset to the specified value. Aligns the text of this log entry as specified. Instead of a full circle, only a certain angular segment of the circle will be displayed. Prohibits scale changes due to perspective transformation. Prohibits scale changes due to perspective transformation. Prohibits scale changes due to perspective transformation. Describes the reference point by which a will be transformed. All coordinates and sizes are interpreted as screen space values. All coordinates and sizes are interpreted as world space values. All coordinates and sizes are interpreted as object space values. A reference object needs to be specified for this option to be functional. A provides functionality to log spatial and other visual information conveniently, which is displayed in real-time. Each VisualLog can be set up differently and corresponds to a distinct visual layer. All submitted calls are guaranteed to be displayed visually within the same frame they were submitted in. [GET] Creates or retrieves a named log. Once a log has been created, it will remain available until explicitly removed. Draws the specified log entry. Use this method for custom class implementations. Draws a point in screen space. Draws a point in screen space. Draws a point in world space. A point has no physical size and is displayed in the same size regardless of perspective settings or distance to the Camera. Draws a point in world space. A point has no physical size and is displayed in the same size regardless of perspective settings or distance to the Camera. Draws a circle in screen space. Draws a circle in screen space. Draws a circle in world space. Draws a circle in world space. Draws a vector in screen space. A vector can be thought of as an arrow pointing in a certain direction. It is useful for displaying velocities or directions. The vectors screen origin. The vectors screen origin. The vector to display. The vector to display. Draws a vector in screen space. A vector can be thought of as an arrow pointing in a certain direction. It is useful for displaying velocities or directions. The vectors screen origin. The vector to display. Draws a vector in world space. A vector can be thought of as an arrow pointing in a certain direction. It is useful for displaying velocities or directions. The vectors world origin. The vectors world origin. The vectors world origin. The vector to display. The vector to display. Draws a vector in world space. A vector can be thought of as an arrow pointing in a certain direction. It is useful for displaying velocities or directions. The vectors world origin. The vector to display. Draws a connection between two screen space points. Draws a connection between two screen space points. Draws a connection between two world space points. Both points need to be on the same Z plane. Draws a connection between two world space points. Both points need to be on the same Z plane. Draws a convex polygon in screen space. Draws a convex polygon in screen space. Draws a convex polygon in world space. Draws a convex polygon in world space. Draws a text in screen space. Unlike other log entries, texts retain a constant rotation and size. Only the point of their origin is transformed regularly. Draws a text in screen space. Unlike other log entries, texts retain a constant rotation and size. Only the point of their origin is transformed regularly. Draws a text in world space. Unlike other log entries, texts retain a constant rotation and size. Only the point of their origin is transformed regularly. Draws a text in world space. Unlike other log entries, texts retain a constant rotation and size. Only the point of their origin is transformed regularly. [GET] Enumerates all currently existing logs. [GET] Returns the default log, which can be used for quick output hacks and miscellaneous data. To set up a distinct layer for specific kinds of data, use a different log. [GET] The VisualLog's name [GET / SET] Whether or not this log will be displayed. It's basically an on / off switch. [GET / SET] The logs base color, which is used for coloring all the displayed log entries. [GET / SET] Similar to a renderers visibility group, this property can be used to make the log visible to only certain Cameras. [GET] Enumerates all log entries that have been added to this log and are currently active. Represents a textual description of a certain point in space in the context of visual logging. Represents an entry of a , which will be generated by calling one of the available drawing methods on one of the available logs. Default width of the outline of a log entries visual representation. Removes this log entry by killing it immediately. Updates the entry. This method is automatically called by the system. Draws the entry to the specified . Draws the entry to the specified . Its parameters provide information about the log entries anchor and should be interpreted as parent transform. The anchors base position. The anchors base rotation. The anchors base scale. [GET] Returns whether this log entry is to be considered alive. Dead entries will be removed immediately. [GET / SET] The remaining lifetime of this log entry in milliseconds. If not specified otherwise, a log entry is only displayed for a single frame. [GET] The relative amount of available lifetime this log entry has. 0.0f means "totally dead", 1.0f means "as alive as it gets". [GET / SET] The depth offset that is applied when rendering this visual log entry. [GET / SET] The log entries individual color. [GET / SET] Whether the lifetime of this entry should be used as alpha-value of the specified color. [GET / SET] The anchor which is used for interpreting this log entries coordinates and sizes. [GET / SET] The GameObject to which this log entry is anchored. [GET / SET] The point in space that is described by this text. [GET / SET] The texts (multiline block) spatial alignment. [GET / SET] The text that will be displayed. Newline characters will be parsed correctly and be correctly displayed as line breaks. [GET] The displayed text, broken up into distinct lines. Do not modify - use instead. Represents a polygon in the context of visual logging. [GET / SET] The polygons origin in space. [GET / SET] The vertices that form the displayed polygon. [GET / SET] Whether or not the polygon area will be displayed at a constant size regardless of perspective scale. Represents a connection between two points in space in the context of visual logging. [GET / SET] The first points spatial location. [GET / SET] The second points spatial location. Represents a vector based on a certain space origin in the context of visual logging. [GET / SET] The vectors origin in space. [GET / SET] The vector to display. [GET / SET] Whether or not the vector will be displayed at a constant size regardless of perspective scale. Represents a circular area in space in the context of visual logging. [GET / SET] The circular areas center location. [GET / SET] The circles radius. [GET / SET] The minimum angle of the displayed circle area segment. [GET / SET] The maximum angle of the displayed circle area segment. [GET / SET] Whether or not the circle area will be displayed at a constant size regardless of perspective scale. Represents a point in space in the context of visual logging. Points do not have a physical size and thus are displayed invariantly to parent or perspective scale. [GET / SET] The points spatial location. Resets the counters frame-local measurement values. Resets all of the counter's measurement values, including min, max and average values. Gathers ProfileCounter data for generating a profile report. [GET / SET] The counters individual name, without any ancestor names included. [GET / SET] The counters full name, including possibly existing parent counters. [GET] The name that this ProfileCounter uses for value display. [GET] This counters parent counter. [GET] Returns the depths of this counters ancestry. [GET] Returns whether this ProfileCounter was used last frame. [GET] Returns whether this ProfileCounter has gathered and processed any usable data yet. [GET / SET] Specifies whether this is a single value counter that doesn't need any MinMax processing. This class houses several performance counters and performance measurement utility Completely resets all instances, discarding all data that has been collected so far and starting over. Returns an existing with the specified name. The name to use for this measurement. For nested measurements, use path strings, e.g. "ParentCounter\ChildCounter" Returns an existing with the specified name, or creates one if none is found. The name to use for this measurement. For nested measurements, use path strings, e.g. "ParentCounter\ChildCounter" Enumerates all objects that have been actively used this frame. Begins time measurement using a new or existing with the specified name. The name to use for this measurement. For nested measurements, use path strings, e.g. "ParentCounter\ChildCounter" Ends time measurement using an existing with the specified name. The name to use for this measurement. For nested measurements, use path strings, e.g. "ParentCounter\ChildCounter" Queries this frames time measurement value from an existing with the specified name. The name to use for this measurement. For nested measurements, use path strings, e.g. "ParentCounter\ChildCounter" Accumulates a statistical information value to a new or existing with the specified name. The name to use for this measurement. For nested measurements, use path strings, e.g. "ParentCounter\ChildCounter" Queries a statistical information value from an existing with the specified name. The name to use for this measurement. For nested measurements, use path strings, e.g. "ParentCounter\ChildCounter" Saves a text report of the current profiling data to the specified file. Saves a text report of the current profiling data to the specified stream. Creates a text report of the current profiling data and returns it as string. The ContentProvider is Duality's main instance for content management. If you need any kind of , simply request it from the ContentProvider. It keeps track of which Resources are loaded and valid and prevents Resources from being loaded more than once at a time, thus reducing loading times and redundancy. You can also manually register Resources that have been created at runtime using a string alias of your choice. (Virtual) base path for Duality's embedded default content. Determines the name of a Resource based on its path. Determines the full (hierarchical) name of a Resource based on its path. Initializes Dualitys embedded default content. Initializes Dualitys embedded default content. Returns whether or not the specified path points to Duality default content. Returns a list of embedded default content that matches the specified type. Returns a list of embedded default content that matches the specified type. Returns a list of all currently loaded content matching the specified Type Returns a list of all currently loaded content matching the specified Type Returns a list of all available / existing content matching the specified Type The base directory to search in. Defaults to if not specified otherwise. Returns a list of all available / existing content matching the specified Type The base directory to search in. Defaults to if not specified otherwise. Clears all non-default content. If true, unregistered content is also disposed. Registers a and maps it to the specified path key. The path key to map the Resource to The Resource to register. Returns whether or not there is any content currently registered under the specified path key. The path key to look for content True, if there is content available for that path key, false if not. Explicitly removes a specific Resource from the ContentProvider. Unregisters content that has been registered using the specified path key. The path key to unregister. If true, unregistered content is also disposed. True, if the content has been found and successfully removed. False, if no Unregisters all content that has been registered using paths contained within the specified directory. The directory to unregister If true, unregistered content is also disposed. Unregisters all content of the specified Type or subclassed Types. The content Type to look for. If true, unregistered content is also disposed. Unregisters all content of the specified Type or subclassed Types. The content Type to look for. If true, unregistered content is also disposed. Changes the path key under which a specific Resource can be found. If the target path is registered already, it will be replaced. If the source path isn't registered / is unknown, the operation will fail. The Resources current path key. The Resources new path key. True, if the renaming operation was successful. False, if not. Changes the path key under which a set of Resource can be found, i.e. renames all path keys located inside the specified directory. The Resources current directory The Resources new directory Requests a . The requested Resource type. Does not affect actual data, only the kind of that is obtained. The path key to identify the Resource. If there is no matching Resource available yet, the ContentProvider attemps to load a Resource from that path. A to the requested Resource. Requests a . The path key to identify the Resource. If there is no matching Resource available yet, the ContentProvider attemps to load a Resource from that path. A to the requested Resource. Provides extension methods for lists. Performs a stable sort. The lists object type. List to perform the sort operation on. Performs a stable sort. The lists object type. List to perform the sort operation on. The comparer to use. Performs a stable sort. The lists object type. List to perform the sort operation on. The comparison to use. Performs a stable sort. The lists object type. List to perform the sort operation on. Performs a stable sort. The lists object type. List to perform the sort operation on. The comparer to use. Performs a stable sort. The lists object type. List to perform the sort operation on. The comparison to use. Returns the index of the first object matching the specified one. The lists object type. List to perform the sort operation on. Object to compare the lists contents to. Returns the index of the first object matching the specified predicate. The lists object type. List to perform the sort operation on. The predicate to use on the lists contents. Returns the index of the last object matching the specified one. The lists object type. List to perform the sort operation on. Object to compare the lists contents to. Returns the index of the last object matching the specified predicate. The lists object type. List to perform the sort operation on. The predicate to use on the lists contents. Returns the combined hash code of the specified byte list. Returns the combined hash code of the specified list. Determines the bounding box of a list of vectors. Provides extension methods for random number generators. Returns a random byte. A random number generator. Returns a random byte. A random number generator. Exclusive maximum value. Returns a random byte. A random number generator. Inclusive minimum value. Exclusive maximum value. Returns a random float. A random number generator. Returns a random float. A random number generator. Exclusive maximum value. Returns a random float. A random number generator. Inclusive minimum value. Exclusive maximum value. Returns a random bool. A random number generator. Returns a random with length one. A random number generator. Returns a random . A random number generator. Length of the vector. Returns a random . A random number generator. Minimum length of the vector Maximum length of the vector Returns a random pointing to a position inside the specified rect. A random number generator. Rectangle that contains the random vector. Rectangle that contains the random vector. Rectangle that contains the random vector. Rectangle that contains the random vector. Returns a random pointing to a position inside the specified rect. A random number generator. Rectangle that contains the random vector. Returns a random with length one. A random number generator. Returns a random . A random number generator. Maximum length of the vector. Returns a random . A random number generator. Minimum length of the vector Maximum length of the vector Returns a random pointing to a position inside the specified cube. A random number generator. Cube that contains the random vector. Cube that contains the random vector. Cube that contains the random vector. Cube that contains the random vector. Returns a random with full saturation and maximum brightness. Returns a component-wise random . Returns a random with full saturation and maximum brightness. Returns a component-wise random . Returns a random value from a weighted value pool. Type of the random values. A random number generator. A pool of values. One weight for each value in the pool. Returns a random value from a weighted value pool. Type of the random values. A random number generator. A pool of values. One weight for each value in the pool. Returns a random value from a weighted value pool. Type of the random values. A random number generator. A weighted value pool. Returns a random value from a weighted value pool. Type of the random values. A random number generator. A weighted value pool. Returns a random value from a weighted value pool. Type of the random values. A random number generator. A pool of values. A weight function that provides a weight for each value from the pool. Returns one randomly selected element. Provides extension methods for strings. Returns a string containing n times the source string. Provides Reflection data on Properties and Fields. Provides reflection-related helper methods. Returns all custom attributes of the specified Type that are attached to the specified member. Inherites attributes are returned as well. This method is usually faster than comparable .Net methods, because it caches previous results internally. Returns all custom attributes of the specified Type that are attached to the specified member. Inherites attributes are returned as well. This method is usually faster than comparable .Net methods, because it caches previous results internally. Visits all fields of an object and all its sub-objects in order to find and / or adjust values of a certain Type. This is likely to be a very expensive operation. The value type that is searched for. The root object where the search begins. An object field visitor. Returns a new value for the visited object. If true, visited objects of the target type won't be investigated deeply. If false, even target objects are unwrapped in order to check their sub-objects. Cleans the specified object instance from event bindings that lead to a specific invalid Assembly. This method is used to sweep forgotten event bindings upon plugin reload. Returns true, if any event binding was removed. Cleans the specified class from static event bindings that lead to a specific invalid Assembly. This method is used to sweep forgotten event bindings upon plugin reload. Returns true, if any event binding was removed. Returns whether a certain Type is able to reference another specific Type. This is a pure optimization method that doesn't guarantee exact information in all cases - returns true, when in doubt. Returns whether the specified type is a primitive, enum, string, decimal, or struct that consists only of those types. Resolves a Type based on its type id. The type string to resolve. The generic method that is declaring the Type. Only necessary when resolving a generic methods parameter Type. Resolves a Member based on its member id. The member id of the member. If true, an Exception is thrown on failure. Returns the short version of an Assembly name. Returns the short version of an Assembly name. Returns the short version of an Assembly name. Returns a string describing a certain Type. The Type to describe Returns a string describing a certain Type. The Type to describe Returns a string describing a certain Member of a Type. The Member to describe. Performs a selective split operation on the specified string. Intended to be used on hierarchial argument lists. The argument list to split. The char that increases the current hierarchy level. The char that decreases the current hierarchy level. The char that separates two arguments. The hierarchy level at which to perform the split operation. Clears the ReflectionHelpers Type cache. Fired when automatically resolving a certain Type has failed. Allows any subscriber to provide a suitable match. Fired when automatically resolving a certain Member has failed. Allows any subscriber to provide a suitable match. [GET] The Member id to resolve. [GET / SET] The resolved Member. A Camera is responsible for rendering the current . Renders the current . The viewport area to which will be rendered. Renders a picking map of the current . This method needs to be called each frame a picking operation is to be performed. Size of the viewport area to which will be rendered. Whether or not to render screen overlay renderers onto the picking target. Picks the that owns the pixel at the specified position. The resulting information is only accurate if has been called this frame. x-Coordinate of the pixel to check. y-Coordinate of the pixel to check. The that owns the pixel. Picks all ICmpRenderers contained within the specified rectangular area. The resulting information is only accurate if has been called this frame. x-Coordinate of the Rect. y-Coordinate of the Rect. Width of the Rect. Height of the Rect. A set of all ICmpRenderers that have been picked. Returns the scale factor of objects that are located at the specified (world space) z-Coordinate. Transforms screen space coordinates to world space coordinates. The screen positions Z coordinate is interpreted as the target world Z coordinate. Transforms screen space coordinates to world space coordinates. Transforms world space coordinates to screen space coordinates. Transforms world space coordinates to screen space coordinates. Returns whether the specified world-space position is visible in the Cameras view space. The position to test. The visual bounding radius to assume for the specified position. True, if the position or a portion of its bounding circle is visible, false if not. [GET / SET] The lowest Z value that can be displayed by the device. [GET / SET] The highest Z value that can be displayed by the device. [GET / SET] Reference distance for calculating the view projection. When using , an object this far away from the Camera will always appear in its original size and without offset. [GET / SET] Specified the perspective effect that is applied when rendering the world. [GET / SET] A bitmask flagging all visibility groups that are considered visible to this drawing device. [GET / SET] The background color of the rendered image. [GET / SET] A set of passes that describes the Cameras rendering process. Is never null nor empty. Describes a single pass in the overall rendering process. Fired when collecting drawcalls for this pass. Note that not all passes do collect drawcalls (see ) The input to use for rendering. This can for example be a that has been rendered to before and is now bound to perform a postprocessing step. If this is null, the current is used as input - which is usually the case in the first rendering pass. The output to render to in this pass. If this is null, the screen is used as rendering target. [GET / SET] The clear color to apply when clearing the color buffer [GET / SET] The clear depth to apply when clearing the depth buffer [GET / SET] Specifies which buffers to clean before rendering this pass [GET / SET] How to set up the coordinate space before rendering [GET / SET] A Pass-local bitmask flagging all visibility groups that are considered visible to this drawing device. Represents a GameObjects physical location in the world, relative to its . Calculates a world coordinate from a Transform-local coordinate. Calculates a world coordinate from a Transform-local coordinate. Calculates a Transform-local coordinate from a world coordinate. Calculates a Transform-local coordinate from a world coordinate. Calculates a world vector from a Transform-local vector. Does only take scale and rotation into account, but not position. Calculates a world vector from a Transform-local vector. Does only take scale and rotation into account, but not position. Calculates a Transform-local vector from a world vector. Does only take scale and rotation into account, but not position. Calculates a Transform-local vector from a world vector. Does only take scale and rotation into account, but not position. Calculates the Transforms world velocity at a given world coordinate; Calculates the Transforms world velocity at a given world coordinate; Calculates the Transforms local velocity at a given local coordinate; Calculates the Transforms local velocity at a given local coordinate; Moves the object by the given vector. This will affect the Transforms velocity value. Moves the object by the given vector. This will affect the Transforms velocity value. Moves the object by given absolute vector. This will affect the Transforms velocity value. Moves the object by given absolute vector. This will affect the Transforms velocity value. Moves the object to the given relative position. This will affect the Transforms velocity value. Moves the object to the given relative position. This will affect the Transforms velocity value. Moves the object to the given absolute position. This will affect the Transforms velocity value. Moves the object to the given absolute position. This will affect the Transforms velocity value. Turns the object by the given radian angle. This will affect the Transforms angular velocity value. Turns the object to the given relative radian angle. This will affect the Transforms angular velocity value. Turns the object to the given absolute radian angle. This will affect the Transforms angular velocity value. Updates the Transforms data all at once. Updates the Transforms data all at once. Updates the Transforms data all at once. Updates the Transforms data all at once. Checks whether transform values have been changed, clears the changelist and fires the appropriate events [GET / SET] The objects position relative to its parent object. [GET / SET] The objects velocity relative to its parent object. [GET / SET] The objects angle / rotation relative to its parent object, in radians. [GET / SET] The objects angle / rotation velocity relative to its parent object, in radians. [GET / SET] The objects scale relative to its parent object. [GET / SET] Specifies whether the Transform component should ignore its parent transform. [GET / SET] If false, this objects rotation values aren't relative to its parent. However, its position, velocity, etc. still depend on parent rotation. [GET] The objects forward vector, relative to its parent object. [GET] The objects right (directional) vector, relative to its parent object. [GET / SET] The objects position. [GET] The objects velocity. [GET / SET] The objects angle / rotation, in radians. [GET] The objects angle / rotation velocity, in radians. [GET / SET] The objects scale. [GET] The objects forward vector. [GET] The objects right (directional) vector. Flags that are used to specify, whether certain Properties have been changed. This class controls Duality's main program flow control and general maintenance functionality. It initializes the engine, loads plugins, provides access to user input, houses global data structures and handles logfiles internally. Initializes this DualityApp. Should be called before performing any operations within Duality. The in which Duality runs. Command line arguments to run this DualityApp with. Usually these are just the ones from the host application, passed on. Opens up a window for Duality to render into. This also initializes the part of Duality that requires a valid rendering context. Should be called before performing any rendering related operations with Duality. Initializes the part of Duality that requires a valid rendering context. Should be called before performing any rendering related operations with Duality. Is called implicitly when using . Terminates this DualityApp. This does not end the current Process, but will instruct the engine to leave main loop and message processing as soon as possible. Applies the specified screen resolution to both game and display device. This is a shorthand for assigning a modified version of to . Performs a single update cycle. Performs a single render cycle. Optional predicate to select which Cameras may be rendered and which not. Schedules the specified object for disposal. It is guaranteed to be disposed by the end of the current update cycle. The object to schedule for disposal. Performs all scheduled disposal calls and cleans up internal data. This is done automatically at the end of each frame update and you shouldn't need to call this in general. Invoking this method while an update is still in progress may result in undefined behavior. Don't do this. Triggers Duality to (re)load its . Triggers Duality to (re)load its . Triggers Duality to save its . Triggers Duality to save its . Adds an already loaded plugin Assembly to the internal Duality CorePlugin registry. You shouldn't need to call this method in general, since Duality manages its plugins automatically. This method can be useful in certain cases when it is necessary to treat an Assembly as a Duality plugin, even though it isn't located in the Plugins folder, or is not available as a file at all. A typical case for this is Unit Testing where the testing Assembly may specify additional Duality types such as Components, Resources, etc. Reloads the specified plugin. Does not initialize it. Enumerates all currently loaded assemblies that are part of Duality, i.e. Duality itsself and all loaded plugins. Enumerates all available Duality Types that are assignable to the specified Type. The base type to use for matching the result types. An enumeration of all Duality types deriving from the specified type. The following code logs all available kinds of Renderers: var rendererTypes = DualityApp.GetAvailDualityTypes(typeof(Duality.Components.Renderer)); foreach (Type rt in rendererTypes) { Log.Core.Write("Renderer Type '{0}' from Assembly '{1}'", Log.Type(rt), rt.Assembly.FullName); } This method performs an action only when compiling your plugin in debug mode. In release mode, any calls to this method (and thus the specified action) are omitted by the compiler. It is essentially syntactical sugar for one-line #if DEBUG blocks. This method is intended to be used conveniently in conjunction with lambda expressions. When executed from within the editor environment, this method wraps the specified action in a safe try-catch block in order to be able to recover gracefully. In regular game execution, it will simply invoke the action without safety measures. Called when the game becomes focused or loses focus. Called when the games UserData changes Called when the games AppData changes Called when Duality is being terminated by choice (e.g. not because of crashes or similar). It is also called in an editor environment. Called when Duality needs to discard plugin data such as cached Types and values. Fired whenever a core plugin has been initialized. This is the case after loading or reloading one. [GET] The plugin manager that is used by Duality. Don't use this unless you know exactly what you're doing. If you want to load a plugin, use the from this property. If you want to load a non-plugin Assembly, use the . [GET] The plugin loader that is used by Duality. Don't use this unless you know exactly what you're doing. If you want to load a plugin, use the . If you want to load a non-plugin Assembly, use the from this property. [GET] The system backend that is used by Duality. Don't use this unless you know exactly what you're doing. [GET] The graphics backend that is used by Duality. Don't use this unless you know exactly what you're doing. [GET] The audio backend that is used by Duality. Don't use this unless you know exactly what you're doing. [GET / SET] The size of the current rendering surface (full screen, a single window, etc.) in pixels. Setting this will not actually change Duality's state - this is a pure "for your information" property. [GET] Returns whether the Duality application is currently focused, i.e. can be considered to be the users main activity right now. [GET] Provides access to mouse user input. [GET] Provides access to keyboard user input [GET] Provides access to extended user input via joystick or gamepad. [GET] Provides access to gamepad user input. [GET] Provides access to the main . [GET / SET] Provides access to Duality's current application data. This is never null. Any kind of data change event is fired as soon as you re-assign this property. Be sure to do that after changing its data. [GET / SET] Provides access to Duality's current user data. This is never null. Any kind of data change event is fired as soon as you re-assign this property. Be sure to do that after changing its data. [GET] Returns the path where this DualityApp's application data is located at. [GET] Returns the path where this DualityApp's user data is located at. [GET] Returns the in which this DualityApp is currently running. [GET] Returns the in which this DualityApp is currently running. [GET] Enumerates all currently loaded plugins. [GET] Enumerates all plugin assemblies that have been loaded before, but have been discarded due to a runtime plugin reload operation. This is usually only the case when being executed from withing the editor or manually triggering a plugin reload. However, this is normally unnecessary. Describes the context in which the current DualityApp runs. Duality has been terminated. There is no guarantee that any object is still valid or usable. The context in which Duality is executed is unknown. Duality runs in a game environment. Duality runs in an editing environment. Describes the environment in which the current DualityApp runs. The environment in which Duality is executed is unknown. Duality runs in the DualityLauncher Duality runs in the DualityEditor GameObjects are what every consists of. They represent nodes in the hierarchial scene graph and can maintain a connection. A GameObject's main duty is to group several s to form one logical instance of an actual object as part of the game, such as "Car" or "PlayerCharacter". However, the GameObjects itsself does not contain any game-related logic and, by default, doesn't even occupy a position in space. This is the job of its Components. Creates a new, empty GameObject. Creates a new, empty GameObject with a specific name. Creates a GameObject based on a specific . The Prefab that will be applied to this GameObject. Sets or alters this GameObject's to reference the specified . The Prefab that will be linked to. Breaks this GameObject's Returns the first child GameObject with the specified name. You may also specify a full name to access children's children. Returns the child GameObject that is internally stored at the specified index. The index at which the desired GameObject is located. The child GameObject at the specified index. Null, if the index is not valid. Executes a series of calls, beginning at this GameObject and each on the last retrieved child object. An enumeration of child indices. The last retrieved GameObject after executing all indexing steps. Calling ChildAtIndexPath(new[] { 0, 0 }) will return the first child of the first child. Determines the index of a specific child GameObject. The child GameObject of which the index is to be determined. The index of the specified child GameObject Determines the index path from this GameObject to the specified child (or grandchild, etc.) of it. The child GameObject to lead to. A of indices that lead from this GameObject to the specified child GameObject. Returns whether this GameObject is a child, grandchild or similar of the specified GameObject. The GameObject to check whether or not it is a parent of this one. True, if it is, false if not. Returns a single that matches the specified . The Type to match the Components with. A single Component that matches the specified Type. Null, if none was found. Enumerates all s of this GameObject that match the specified or subclass it. The base Type to match when iterating through the Components. An enumeration of all Components that match the specified conditions. Enumerates all s of this object's child GameObjects that match the specified or subclass it. The base Type to match when iterating through the Components. An enumeration of all Components that match the specified conditions. Enumerates all s of this GameObject or any child GameObject that match the specified or subclass it. The base Type to match when iterating through the Components. An enumeration of all Components that match the specified conditions. Enumerates all s of this GameObject that match the specified or subclass it. The base Type to match when iterating through the Components. An enumeration of all Components that match the specified conditions. Enumerates all s of this object's child GameObjects that match the specified or subclass it. The base Type to match when iterating through the Components. An enumeration of all Components that match the specified conditions. Enumerates all s of this GameObject or any child GameObject that match the specified or subclass it. The base Type to match when iterating through the Components. An enumeration of all Components that match the specified conditions. Returns a single that matches the specified . The Type to match the Components with. A single Component that matches the specified Type. Null, if none was found. Adds a of the specified to this GameObject, if not existing yet. Simply uses the existing Component otherwise. The Type of which to request a Component instance. A reference to a Component of the specified Type. Adds a of the specified to this GameObject, if not existing yet. Simply uses the existing Component otherwise. The Type of which to request a Component instance. A reference to a Component of the specified Type. Adds the specified to this GameObject, if no Component of that Type is already part of this GameObject. Simply uses the already added Component otherwise. The Components Type. The Component instance to add to this GameObject. A reference to a Component of the specified Type Thrown if the specified Component is already attached to a GameObject Removes a of the specified from this GameObject, if existing. The Type of which to remove a Component instance. A reference to the removed Component. Null otherwise. Removes a of the specified from this GameObject, if existing. The Type of which to remove a Component instance. A reference to the removed Component. Null otherwise. Removes a specific from this GameObject. The Component to remove from this GameObject Thrown when the specified Component is a null reference. Thrown when the specified Component does not belong to this GameObject Removes all Components from this GameObject. Iterates over all Components that are instances of Type T. Unlike iterating manually over , this method allows the underlying collection to change while iterating, making it a good candidate for ICmp notify operations. The base Type of Components that are iterated. May be an ICmp interface or similar. The operation that is performed on each Component. An optional predicate that needs to return true in order to perform the operation. Iterates over all child GameObjects. Unlike iterating manually over , this method allows the underlying collection to change while iterating, making it a good candidate for notify operations that may execute code which adds or removed children. The operation that is performed on each child object. An optional predicate that needs to return true in order to perform the operation. Disposes this GameObject as well as all of its child GameObjects and Components. You usually don't need this - use instead. Creates a deep copy of this GameObject. A reference to a newly created deep copy of this GameObject. Deep-copies this GameObject's data to the specified target GameObject. The target GameObject to copy to. Gathers a list of components that would be affected if this changed its activation state. This excludes components and child objects that are inactive in their own right. Checks all internal data for consistency and fixes problems where possible. This helps mitigate serialization problems that arise from changing data structures during dev time. Checks the objects internal containers for the correct execution order and sorts them where necessary. [GET / SET] This GameObject's parent object in the scene graph. A GameObject usually depends on its parent in some way, such as being positioned relative to it when occupying a position in space. [GET] The GameObjects parent . Each GameObject can belong to exactly one Scene, or no Scene at all. To add or remove GameObjects to / from a Scene, use the and methods. [GET / SET] Whether or not the GameObject is currently active. To return true, both the GameObject itsself and all of its parent GameObjects need to be active. [GET / SET] Whether or not the GameObject is currently active. Unlike , this property ignores parent activation states and depends only on this single GameObject. The scene graph and other Duality instances usually check , not ActiveSingle. [GET / SET] The name of this GameObject. [GET] The path-like hierarchial name of this GameObject. For an object called Wheel inside an object called Car, this would return Car/Wheel. [GET] The GameObjects persistent globally unique identifier. [GET] Enumerates this objects child GameObjects. [GET] Enumerates all GameObjects that are directly or indirectly parented to this object, i.e. its children, grandchildren, etc. [GET] The that connects this object to a . [GET] The that connects this object or one or its parent GameObjects to a . This does not necessarily mean that this GameObject will be affected by the PrefabLink, since it might not be part of the linked Prefab. It simply indicates the returned PrefabLink's potential to adjust this GameObject when being applied. [GET] Returns whether this GameObject has been disposed. Disposed GameObjects are not to be used and should be treated specifically or as null references by your code. [GET] The GameObject's Component, if existing. This is a cached / faster shortcut-version of . Fired when this GameObjects parent has changed Fired when a Component has been added to the GameObject Fired when a Component is about to be removed from the GameObject Manages a set of GameObject and exposes suitable object enumerations as well as un/registeration events. If a registered object has been disposed, it will be automatically unregistered. Registers a GameObject and all of its children. Registers a set of GameObjects Unregisters a GameObject and all of its children Unregisters a set of GameObjects Unregisters all GameObjects. Unregisters all dead / disposed GameObjects [GET] The number of registered objects. [GET] Enumerates all registered GameObjects. [GET] Enumerates all registered GameObjects that are currently active. [GET] Enumerates all root GameObjects, i.e. all GameObjects without a parent object. [GET] Enumerates all that are currently active. Fired when a is registered. Fired when a is unregistered. Fired once for every add operation. Fired once for every remove operation. Fired when a registered GameObjects parent has changed Fired when a is added to an already registered GameObject. Fired when a is removed from an already registered GameObject. A Log output that stores all log entries in memory. [GET] Allows to access all log entries that have been received. Listens for log entries and writes them to registered ILogOutputs. Creates a new Log. The Logs name. The Logs state value holder that may be shared with other Logs. It will be initially connected to the specified outputs. Creates a new Log. The Logs name It will be initially connected to the specified outputs. Adds an output to write log entries to. Removes a certain output. Increases the current log entry indent. Decreases the current log entry indent. Writes a new log entry. Writes a new warning log entry. Writes a new error log entry. Returns a string that can be used for representing the current line and method within a source code file. This method uses caller information attributes on its parameters - omit them in order to let the compiler do its work. Returns a string that can be used for representing a in log entries. Returns a string that can be used for representing a in log entries. Returns a string that can be used for representing a in log entries. Returns a string that can be used for representing a method in log entries. If true, the methods declaring type is included in the returned name. Returns a string that can be used for representing a method or constructor in log entries. If true, the methods or constructors declaring type is included in the returned name. Returns a string that can be used for representing a constructor in log entries. If true, the constructors declaring type is included in the returned name. Returns a string that can be used for representing a property in log entries. If true, the properties declaring type is included in the returned name. Returns a string that can be used for representing a field in log entries. If true, the fields declaring type is included in the returned name. Returns a string that can be used for representing an event in log entries. If true, the events declaring type is included in the returned name. Returns a string that can be used for representing a(ny) member in log entries. If true, the members declaring type is included in the returned name. Returns a string that can be used for representing an exception in log entries. It usually does not include the full call stack and is significantly shorter than an Exceptions ToString method. [GET] A log for game-related entries. Use this for logging data from game plugins. [GET] A log for core-related entries. This is normally only used by Duality itsself. [GET] A log for editor-related entries. This is used by the Duality editor and its plugins. [GET] The Log's name [GET] The Log's prefix, which is automatically determined by its name. [GET] The Log's current indent level. [GET] Enumerates all the output writers of this log. Holds a Logs state values. [GET / SET] The Logs indent value. The abstract Resource class is inherited by any kind of Duality content. Instances of it or one of its subclasses are usually handled wrapped inside a and requested from the . A Resource files extension. Contains information on how this should be treated during Asset import operations in the editor. The path of this Resource. The initialization state of the Resource. Also specifies a disposed-state. Saves the Resource to the specified path. The path to which this Resource is saved to. If null, the Resources is used as destination. When true, the Resource will be made permanently available from now on. If it has been generated at runtime or was loaded explicitly outside the ContentProvider, this will set the Resources Property and register it in the ContentProvider. If the Resource already is a permanent, this parameter will be ignored. Saves the Resource to the specified stream. Creates a deep copy of this Resource. Deep-copies this Resource to the specified target Resource. The target Resource's Type must match this Resource's Type. The target Resource to copy this Resource's data to This method prepares the operation for custom Resource Types. It uses reflection to prepare the cloning operation automatically, but you can implement this method in order to handle certain fields and cases manually. See for a more thorough explanation. This method performs the operation for custom Resource Types. It uses reflection to perform the cloning operation automatically, but you can implement this method in order to handle certain fields and cases manually. See for a more thorough explanation. The target Resource where this Resources data is copied to. Called when this Resource is now beginning to be saved. Called when this Resource has just been saved. Called when this Resource has just been loaded. Disposes the Resource. Please don't do something silly, like disposing a Scene while it is updated.. use instead! Called when beginning to dispose the Resource. Creates a referring to this Resource. A referring to this Resource. Loads the Resource that is located at the specified path. You shouldn't need this method in almost all cases. Only use it when you know exactly what you're doing. Consider requesting the Resource from the instead. Desired Type of the returned reference. Does not affect the loaded Resource in any way - it is simply returned as T. Results in returning null if the loaded Resource's Type isn't assignable to T. The path to load the Resource from. An optional callback that is invoked right after loading the Resource, but before initializing it. Specifies whether or not the Resource is initialized by calling . Never attempt to use uninitialized Resources or register them in the ContentProvider. The Resource that has been loaded. Loads the Resource from the specified . You shouldn't need this method in almost all cases. Only use it when you know exactly what you're doing. Consider requesting the Resource from the instead. Desired Type of the returned reference. Does not affect the loaded Resource in any way - it is simply returned as T. Results in returning null if the loaded Resource's Type isn't assignable to T. The stream to load the Resource from. The path that is assumed as the loaded Resource's origin. An optional callback that is invoked right after loading the Resource, but before initializing it. Specifies whether or not the Resource is initialized by calling . Never attempt to use uninitialized Resources or register them in the ContentProvider. The Resource that has been loaded. Loads the Resource from the specified . You shouldn't need this method in almost all cases. Only use it when you know exactly what you're doing. Consider requesting the Resource from the instead. Desired Type of the returned reference. Does not affect the loaded Resource in any way - it is simply returned as T. Results in returning null if the loaded Resource's Type isn't assignable to T. The stream to load the Resource from. The path that is assumed as the loaded Resource's origin. An optional callback that is invoked right after loading the Resource, but before initializing it. Specifies whether or not the Resource is initialized by calling . Never attempt to use uninitialized Resources or register them in the ContentProvider. The Resource that has been loaded. Initializes a Resource that has been loaded without initialization. You shouldn't need this method in almost all cases. Only use it when you know exactly what you're doing. Consider requesting the Resource from the instead. The Resource to initialize. Determines whether or not the specified path points to a Duality Resource file. Returns all Resource files that are located in the specified directory. This doesn't affect any actual content- or load states. Returns the Resource file extension for a specific Resource Type. The Resource Type to return the file extension from. The specified Resource Type's file extension. Returns the Resource file extension for a specific Resource Type. The Resource Type to return the file extension from. The specified Resource Type's file extension. Returns the Resource Type that is associated with the specified file, based on its extension. Path to the file of whichs Resource Type will be returned The Resource Type of the specified file A FieldBlocker to prevent fields flagged with a from being serialized. A FieldBlocker to prevent fields of PrefabLink-ed objects from being serialized unnecessarily. [GET] Returns whether the Resource has been disposed. Disposed Resources are not to be used and are treated the same as a null value by most methods. [GET] The path where this Resource has been originally loaded from or was first saved to. It is also the path under which this Resource is registered at the ContentProvider. [GET / SET] Provides information on the way this should be treated during Asset import operations in the editor. This information is not available at runtime and can only be accessed or set outside a environment. [GET] The name of the Resource. [GET] The full name of the Resource, including its path but not its file extension [GET] Returns whether the Resource is part of Duality's embedded default content. [GET] Returns whether the Resource has been generated at runtime and cannot be retrieved via content path. Indicates that a field will be assumed null when serializing it as part of a Resource serialization. Allows to explicitly specify what kinds of Resources a certain Resource Type is able to reference. This is an optional attribute that is used for certain runtime optimizations. Represents an OpenGL Shader in an abstract form. Compiles the shader. This is done automatically when loading the shader or attaching it to a . [GET] The shaders native backend. Don't use this unless you know exactly what you're doing. The type of OpenGL shader that is represented. [GET] Whether this shader has been compiled yet or not. [GET] The shaders source code. Stores compressed audio data (Ogg Vorbis) in system memory as well as a reference to the OpenAL buffer containing actual PCM data, once set up. The OpenAL buffer is set up lazy i.e. as soon as demanded by accessing the AlBuffer property or calling SetupAlBuffer. Creates a new, empty AudioData without any data. Creates a new AudioData based on an Ogg Vorbis memory chunk. An Ogg Vorbis memory chunk Creates a new AudioData based on a containing Ogg Vorbis data. A containing Ogg Vorbis data Disposes the AudioDatas native buffer. Sets up a new native buffer for this AudioData. This will result in decompressing the Ogg Vorbis data and uploading it to OpenAL, unless the AudioData is streamed. [GET] A simple beep AudioData. [GET] The backends native audio buffer representation. Don't use this unless you know exactly what you're doing. [GET / SET] A data chunk representing Ogg Vorbis compressed audio data. [GET / SET] If set to true, when playing a that refers to this AudioData, it is forced to be played streamed. Normally, streaming kicks in automatically when playing very large sound files, such as music or large environmental ambience. [GET] Returns whether this AudioData will be played streamed. DrawTechniques represent the method by which a set of colors, Textures and vertex data is applied to screen. Creates a new, default DrawTechnique Creates a new DrawTechnique that uses the specified . Creates a new DrawTechnique using the specified and . Prepares rendering using this DrawTechnique. Renders solid geometry without utilizing the alpha channel. This is the fastest default DrawTechnique. Renders alpha-masked solid geometry. This is the recommended DrawTechnique for regular sprite rendering. If multisampling is available, it is utilized to smooth masked edges. Renders geometry using the alpha channel, but enforces sharp edges by using an adaptive antialiazing shader. This is the recommended DrawTechnique for rendering text or stencil sprites. Renders additive geometry. Ideal for glow effects. Renders geometry and using the alpha channel. However, for stencil-sharp alpha edges, might be sufficient and is a lot faster. Consider using it. Renders geometry multiplying the existing background with incoming color values. Can be used for shadowing effects. Renders geometry adding incoming color values weighted based on the existing background. Can be used for lighting effects. Renders geometry inverting the background color. Renders geometry for a picking operation. This isn't used for regular rendering. Renders SmoothAnim solid geometry without utilizing the alpha channel. This is the fastest default DrawTechnique. Renders SmoothAnim alpha-masked solid geometry. This is the recommended DrawTechnique for regular sprite rendering. If multisampling is available, it is utilized to smooth masked edges. Renders SmoothAnim additive geometry. Ideal for glow effects. Renders SmoothAnim geometry and using the alpha channel. However, for stencil-sharp alpha edges, might be sufficient and is a lot faster. Consider using it. Renders SmoothAnim geometry multiplying the existing background with incoming color values. Can be used for shadowing effects. Renders SmoothAnim geometry adding incoming color values weighted based on the existing background. Can be used for lighting effects. Renders SmoothAnim geometry inverting the background color. [GET / SET] Specifies how incoming color values interact with the existing background color. [GET / SET] The that is used for rendering. [GET / SET] The vertex format that is preferred by this DrawTechnique. If there is no specific preference, null is returned. [GET] Returns whether this DrawTechnique requires z sorting. It is derived from its . [GET] Returns whether this DrawTechnique requires any rendering preparation. This is false for all standard DrawTechniques, but may return true when deriving custom DrawTechniques. Represents an OpenGL FragmentShader. [GET] A minimal FragmentShader. It performs a texture lookup and applies vertex-coloring. [GET] A FragmentShader designed for picking operations. It uses the provided texture for alpha output and forwards the incoming RGB color value. [GET] The SmoothAnim FragmentShader. It performs two lookups on the same texture and blends the results using an incoming float value. [GET] The SharpMask FragmentShader. It enforces an antialiazed sharp mask when upscaling linearly blended textures. Represents a font. While any system font or imported TrueType font can be used, they are internally pre-rasterized and stored in a with an . Applies a new set of rendered glyphs to the , adjusts its typeface metadata and clears out the flag. This method is used by the editor to update a Font after adjusting its properties. Updates this Fonts kerning sample data. Retrieves information about a single glyph. The glyph to retrieve information about. A struct holding the retrieved information. True, if successful, false if the specified glyph is not supported. Retrieves the rasterized for a single glyph. The glyph of which to retrieve the Bitmap. The Bitmap that has been retrieved, or null if the glyph is not supported. Emits a set of vertices based on a text. To render this text, simply use that set of vertices combined with the Fonts . The text to render. The set of vertices that is emitted. You can re-use the same array each frame. An X-Offset applied to the position of each emitted vertex. An Y-Offset applied to the position of each emitted vertex. An Z-Offset applied to the position of each emitted vertex. The number of emitted vertices. This values isn't necessarily equal to the emitted arrays length. Emits a set of vertices based on a text. To render this text, simply use that set of vertices combined with the Fonts . The text to render. The set of vertices that is emitted. You can re-use the same array each frame. An X-Offset applied to the position of each emitted vertex. An Y-Offset applied to the position of each emitted vertex. An Z-Offset applied to the position of each emitted vertex. The color value that is applied to each emitted vertex. An angle by which the text is rotated (before applying the offset). A factor by which the text is scaled (before applying the offset). The number of emitted vertices. This values isn't necessarily equal to the emitted arrays length. Emits a set of vertices based on a text. To render this text, simply use that set of vertices combined with the Fonts . The text to render. The set of vertices that is emitted. You can re-use the same array each frame. An X-Offset applied to the position of each emitted vertex. An Y-Offset applied to the position of each emitted vertex. The color value that is applied to each emitted vertex. The number of emitted vertices. This values isn't necessarily equal to the emitted arrays length. Emits a set of vertices based on a text. To render this text, simply use that set of vertices combined with the Fonts . The text to render. The set of vertices that is emitted. You can re-use the same array each frame. The number of emitted vertices. This values isn't necessarily equal to the emitted arrays length. Renders a text to the specified target . Renders a text to the specified target . Measures the size of a text rendered using this Font. The text to measure. The size of the measured text. Measures the size of a multiline text rendered using this Font. The text to measure. The size of the measured text. Returns a text that is cropped to fit a maximum width using this Font. The original text. The maximum width it may occupy. The mode by which the text fitting algorithm operates. Measures position and size of a specific glyph inside a text. The text that contains the glyph to measure. The index of the glyph to measure. A rectangle that describes the specified glyphs position and size. Returns the index of the glyph that is located at a certain location within a text. The text from which to pick a glyph. X-Coordinate of the position where to look for a glyph. Y-Coordinate of the position where to look for a glyph. The index of the glyph that is located at the specified position. A generic monospace Font (Size 8) that has been loaded from your systems font library. This is usually "Courier New". A generic monospace Font (Size 10) that has been loaded from your systems font library. This is usually "Courier New". [GET] The size of the Font. [GET] The style of the font. This property is obsolete and will be removed in the next major version step. [GET / SET] Specifies how the glyphs of this are rendered in a text. [GET] The to use when rendering text of this Font. [GET / SET] Additional spacing between each character. This is usually one tenth of the Fonts . [GET / SET] A factor for the Fonts value that affects line spacings but not actual glyph sizes. [GET] Whether this is considered a monospace Font. If true, each character occupies exactly the same space. [GET / SET] Whether this Font uses kerning, a technique where characters are moved closer together based on their actual shape, which usually looks much nicer. It has no visual effect when active at the same time with , however kerning sample data will be available on glyphs. [GET] Returns whether this Font requires to re-render its glyphs in order to match the changes that have been made to its Properties. This property is obsolete and will be removed in the next major version step. [GET] Returns a chunk of memory that contains this Fonts embedded TrueType data for rendering glyphs. This property is obsolete and will be removed in the next major version step. [GET] Returns whether this Font is (requesting to be) aligned to the pixel grid. [GET] The Fonts height. [GET] The y offset in pixels between two lines. [GET] The Fonts ascent value. [GET] The Fonts body ascent value. [GET] The Fonts descent value. [GET] The Fonts base line height. [GET] Provides access to various metrics that are inherent to this instance, such as size, height, and various typographic measures. Specifies how a Font is rendered. This affects both internal glyph rasterization and rendering. A monochrome bitmap is used to store glyphs. Rendering is unfiltered and pixel-perfect. A greyscale bitmap is used to store glyphs. Rendering is unfiltered and pixel-perfect. A greyscale bitmap is used to store glyphs. Rendering is properly filtered but may blur text display a little. A greyscale bitmap is used to store glyphs. Rendering is properly filtered and uses a shader to enforce sharp masked edges. Contains data about a single glyph. The glyph that is encoded. The width of the glyph. The height of the glyph. The glyphs X offset when rendering it. The glyphs Y offset when rendering it. The glyphs kerning samples to the left. The glyphs kerning samples to the right. Represents an OpenGL ShaderProgram which consists of a Vertex- and a FragmentShader Creates a new, empty ShaderProgram. Creates a new ShaderProgram based on a Vertex- and a . Compiles the ShaderProgram. This is done automatically when loading the ShaderProgram or when binding it. A minimal ShaderProgram, using a VertexShader and a FragmentShader. A ShaderProgram designed for picking operations. It uses a VertexShader and a FragmentShader. The SmoothAnim ShaderProgram, using a VertexShader and a FragmentShader. Some Renderers might react automatically to Materials using this ShaderProgram and provide a suitable vertex format. The SharpMask ShaderProgram, using a VertexShader and a FragmentShader. [GET] The shaders native backend. Don't use this unless you know exactly what you're doing. [GET] Returns whether this ShaderProgram has been compiled. [GET] Returns an array containing information about the variables that have been declared in shader source code. [GET / SET] The that is used by this ShaderProgram. [GET / SET] The that is used by this ShaderProgram. Materials are standardized BatchInfos, stored as a Resource. Just like BatchInfo objects, they describe how an object, represented by a set of vertices, looks like. Using Materials is generally more performant than using BatchInfos but not always reasonable, for example when there is a single, unique GameObject with a special appearance: This is a typical case. Creates a new Material Creates a new single-texture Material. The to use. The to use. The main to use. Creates a new complex Material. The to use. The to use. A set of Textures to use. A set of uniform values to use. Creates a new Material based on the specified BatchInfo Gets a texture by name. Returns a null reference if the name doesn't exist. Sets a texture within the Material. Gets a uniform by name. Returns a null reference if the name doesn't exist. Sets a uniform value within the Material. Sets a uniform value within the Material. A solid, white Material. A solid, black Material. A Material that inverts its background. A Material showing the Duality icon. A Material showing the Duality icon, but without the text on it. A Material showing the Duality logo. A Material showing the Duality logo. A Material showing the Duality logo. A Material showing a black and white checkerboard. [GET] Returns a new object that mirrors the Materials current settings. [GET] Returns the Materials internal instance that is used for rendering and holds its actual data. [GET / SET] The that is used. [GET / SET] The main color, typically used for coloring displayed vertices. [GET / SET] The set of Textures to use. [GET / SET] The Materials main texture. [GET / SET] The set of uniform values to use. Instead of rendering to screen, RenderTargets can serve as an alternative drawing surface for a . The image is applied to one or several Textures. By default, only the first attached Texture is actually used, but you can use a custom to use all available Textures for storing information. Creates a new, empty RenderTarget Creates a new RenderTarget based on a set of Textures The level of multisampling that is requested from this RenderTarget. An array of Textures used as data destination. Sets up this RenderTarget, so it can be actively used. This is done automatically - unless one of the target textures gets resized or set up with different parameters after this target was already initialized, you shouldn't need to call this. Retrieves the pixel data that is currently stored in video memory. The index to read from. The x position of the rectangular area to read. The y position of the rectangular area to read. The width of the rectangular area to read. Defaults to the . The height of the rectangular area to read. Defaults to the . Retrieves the pixel data that is currently stored in video memory. The target image to store the retrieved pixel data in. The index to read from. The x position of the rectangular area to read. The y position of the rectangular area to read. The width of the rectangular area to read. Defaults to the . The height of the rectangular area to read. Defaults to the . Retrieves the pixel data that is currently stored in video memory. The buffer (Rgba8 format) to store all the pixel data in. Its byte length needs to be at least width * height * 4. The index to read from. The x position of the rectangular area to read. The y position of the rectangular area to read. The width of the rectangular area to read. Defaults to the . The height of the rectangular area to read. Defaults to the . The number of bytes that were read. Frees up any native resources that this RenderTarget might have occupied. Sets up all necessary native resources for this RenderTarget. [GET] The backends native rendering target. You shouldn't use this unless you know exactly what you're doing. [GET / SET] Whether this RenderTarget is multisampled. [GET / SET] An array of Textures used as data destination by this RenderTarget. [GET] Width of this RenderTarget. This values is derived by its . [GET] Height of this RenderTarget. This values is derived by its . [GET] UVRatio of this RenderTarget. This values is derived by its . A Sound is parameterized . Note that a Sound Resource does not contain any kind of audio data by itsself. While there may be one AudioData Resource sounding like an Explosion effect, there could be many Sounds referring to it, like a very loud or very quiet Explosion or one that is noticable on higher distance than others. Creates a new, empty sound. Since it does not refer to any yet, it can't be played. Creates a new Sound referring to an existing . Creates a new Sound referring to an existing set of . Upon playing the Sound, this method is called once to determine which of the referenced objects is to be played. [GET] A simple beep Sound. [GET / SET] A collection of , which are used by this Sound. [GET / SET] The main source that is used by this Sound. [GET / SET] The category to which this Sound belongs. [GET / SET] Maximum number of SoundInstances of this Sound that can play simultaneously. If exceeded, any new instances of it are discarded. [GET / SET] A volume factor that is applied when playing this sound. [GET / SET] A pitch factor that is applied when playing this sound. [GET / SET] A lowpass factor that is applied when playing this sound. [GET / SET] Play time in seconds at which SoundInstances of this Sound automatically fade out. [GET / SET] If has been triggered, this is the fade out time in seconds that is used. [GET / SET] The distance at which the sound is played at full volume. Getting nearer to the source won't increase the volume anymore. Note that the value is a factor to . [GET / SET] The distance at which the sound is played at zero volume. Note that the value is a factor to . [GET / SET] The distance at which the sound is played at full volume. Getting nearer to the source won't increase the volume anymore. [GET / SET] The distance at which the sound is played at zero volume. A Texture refers to pixel data stored in video memory Sets up a new, uninitialized Texture. Creates a new Texture based on a . The to use as source for pixel data. Specifies behaviour in case the source data has non-power-of-two dimensions. The OpenGL filter mode for drawing the Texture bigger than it is. The OpenGL fitler mode for drawing the Texture smaller than it is. The OpenGL wrap mode on the texel x axis. The OpenGL wrap mode on the texel y axis. The format in which OpenGL stores the pixel data. Creates a new empty Texture with the specified size. The Textures width. The Textures height Specifies behaviour in case the specified size has non-power-of-two dimensions. The OpenGL filter mode for drawing the Texture bigger than it is. The OpenGL fitler mode for drawing the Texture smaller than it is. The OpenGL wrap mode on the texel x axis. The OpenGL wrap mode on the texel y axis. The format in which OpenGL stores the pixel data. Reloads this Textures pixel data. If the referred has been modified, changes will now be visible. Loads the specified Pixmaps pixel data. The that is used as pixel data source. Loads the specified Pixmaps pixel data. The that is used as pixel data source. Specifies behaviour in case the source data has non-power-of-two dimensions. Retrieves the pixel data that is currently stored in video memory. Retrieves the pixel data that is currently stored in video memory. The target image to store the retrieved pixel data in. Retrieves the pixel data that is currently stored in video memory. The buffer (Rgba8 format) to store all the pixel data in. Its byte length should be at least * * 4. The number of bytes that were read. Does a safe (null-checked, clamped) texture lookup. Does a safe (null-checked, clamped) texture lookup. Processes the specified size based on the Textures . Sets up the Textures OpenGL resources, clearing previously uploaded pixel data. [GET] A Texture showing the Duality icon. [GET] A Texture showing the Duality icon without the text on it. A Texture showing the Duality logo. A Texture showing the Duality logo. A Texture showing the Duality logo. [GET] A plain white 1x1 Texture. Can be used as a dummy. [GET] A 256x256 black and white checkerboard texture. [GET] The Textures internal texel width [GET] The Textures internal texel height [GET] The Textures original pixel width [GET] The Textures original pixel height [GET] The backends native texture. You shouldn't use this unless you know exactly what you're doing. [GET] UV (Texture) coordinates for the Textures lower right [GET] Returns whether or not the texture uses mipmaps. Indicates that the textures parameters have been changed in a way that will make it necessary to reload its data before using it next time. [GET / SET] The Textures size. Readonly, when created from a . [GET / SET] The Textures magnifying filter [GET / SET] The Textures minifying filter [GET / SET] Specifies whether this texture uses anisotropic filtering. [GET / SET] The Textures horizontal wrap mode [GET / SET] The Textures vertical wrap mode [GET / SET] The Textures pixel format [GET / SET] Handles how the Textures base Pixmap is adjusted in order to fit GPU texture size requirements (Power of Two dimensions) [GET / SET] Reference to a Pixmap that contains the pixel data that is or has been uploaded to the Texture A Pixmap stores pixel data in system memory. Creates a new, empty Pixmap. Creates a new Pixmap from the specified . Generates a pixmap atlas for sprite animations but leaves previously existing atlas entries as they are, if possible. An automatically generated pixmap atlas will always occupy the first indices, followed by custom atlas entries. The number of columns in an animated sprite Pixmap The number of rows in an animated sprite Pixmap Does a safe (null-checked, clamped) pixmap lookup. Does a safe (null-checked, clamped) pixmap lookup. [GET] A Pixmap showing the Duality icon. [GET] A Pixmap showing the Duality icon without the text on it. A Pixmap showing the Duality logo. A Pixmap showing the Duality logo. A Pixmap showing the Duality logo. [GET] A plain white 1x1 Pixmap. Can be used as a dummy. [GET] A 256x256 black and white checkerboard image. [GET / SET] The main layer of this . [GET / SET] A list of layers. [GET] The Width of the actual pixel data. [GET] The Height of the actual pixel data. [GET / SET] The Pixmaps atlas array, distinguishing different areas in pixel coordinates [GET / SET] Pixel size of the border around each individual animation frame. within the image. [GET / SET] Information about different animation frames contained in this Pixmap. Setting this will lead to an auto-generated atlas map according to the animation. [GET / SET] Information about different animation frames contained in this Pixmap. Setting this will lead to an auto-generated atlas map according to the animation. [GET] Total number of animation frames in this Pixmap Prefab is short for "prefabricated object" and encapsulates a single that can serve as a template. When creating a GameObject out of a Prefab, it maintains a connection to it using a object. This ensures that changes made to the Prefab propagate to all of its instances as well. It also keeps track of Properties that have been deliberately modified in the editor and restores them after re-applying the original Prefabs data. Creates a new, empty Prefab. Creates a new Prefab out of a GameObject. Discards previous data and injects the specified into the Prefab. The GameObject itsself will not be affected, instead a of it will be used for the Prefab. The object to inject as Prefab root object. Creates a new instance of the Prefab. You will need to add it to a Scene in most cases. Creates a new instance of the Prefab with specified world space transform values. This is a convenience method that calls and modifies the resulting object, in case it contains a Transform Component. Copies this Prefabs data to a GameObject without linking itsself to it. The GameObject to which the Prefabs data is copied. Copies a subset of this Prefabs data to a specific Component. The GameObject IndexPath to locate the source Component The Component to which the Prefabs data is copied. Returns whether this Prefab contains a with the specified index path. It is based on this Prefabs root GameObject. The index path at which to search for a GameObject. True, if such child GameObjects exists, false if not. Returns whether this Prefab contains a inside a GameObject with the specified index path. It is based on this Prefabs root GameObject. The index path at which to search for a GameObject. The Component type to search for inside the found GameObject. [GET] Returns whether this Prefab contains any data. Represents a GameObjects connection to the it has been instanciated from. Creates a new PrefabLink, connecting a GameObject to a Prefab. The GameObject to link. The Prefab to connect the GameObject with. Relocates the internal change list from this PrefabLink to a different, hierarchially lower PrefabLink. The PrefabLink to which to relocate changes. It needs to be hierarchially lower than this one for the relocation to succeed. In general, each PrefabLink is responsible for all hierarchially lower GameObjects. If one of them has a PrefabLink on its own, then the higher PrefabLinks responsibility ends there. Change relocation is done when linking an existing GameObject to a Prefab although it is already affected by a hierarchially higher PrefabLink. In order to prevent both PrefabLinks to interfere with each other, all higher PrefabLink change list entries referring to that GameObject are relocated to the new, lower PrefabLink that is specifically targetting it. This way, the above responsibility guideline remains applicable. Clones the PrefabLink, but targets a different GameObject and Prefab. The GameObject which the clone is connected to. The Prefab which the clone will connect its GameObject to. A cloned version of this PrefabLink Clones the PrefabLink, but targets a different GameObject. The GameObject which the clone is connected to. A cloned version of this PrefabLink Clones the PrefabLink. A cloned version of this PrefabLink Applies both Prefab and change list to this PrefabLinks GameObject. Applies the Prefab to this PrefabLinks GameObject. This will overwrite all of its existing data and establish the state as defined in the Prefab. Applies this PrefabLinks change list to its GameObject. This will restore all deliberate modifications (made in the editor) of the GameObjects Properties after linking it to the Prefab. Updates all existing change list entries by the GameObjects current Property values. Creates a new change list entry. The target object in which the change has been made. Must be a GameObject or Component. The target objects Property that has been changed. The value to which the specified Property has been changed to. Creates a new change list entry. The target object in which the change has been made. Must be a GameObject or Component. The target objects Property that has been changed. Removes an existing change list entry. The target object in which the change has been made. Must be a GameObject or Component. The target objects Property that has been changed. Returns whether there is a specific change list entry. The target object in which the change has been made. Must be a GameObject or Component. The target objects Property that has been changed. True, if such change list entry exists, false if not. Clears the change list. Clears the change list for certain objects Returns whether a specific object is affected by this PrefabLink. Returns whether a specific object is affected by this PrefabLink. Applies all PrefabLinks in a set of GameObjects. An enumeration of all GameObjects containing PrefabLinks that are to apply. An optional predicate. If set, only PrefabLinks meeting its requirements are applied. A List of all PrefabLinks that have been applied. [GET] The GameObject this PrefabLink belongs to. [GET] The Prefab to which the GameObject is connected to. [GET] If the connected GameObject is itsself contained within a hierarchy of GameObjects which is affected by a higher PrefabLink, this link will be returned. Represents an OpenGL VertexShader. [GET] A minimal VertexShader. It performs OpenGLs default transformation and forwards a single texture coordinate and color to the fragment stage. [GET] The SmoothAnim VertexShader. In addition to the setup, it forwards the custom animBlend vertex attribute to the fragment stage. A Scene encapsulates an organized set of GameObjects and provides update-, rendering- and maintenance functionality. In Duality, there is always exactly one Scene which represents a level, gamestate or a combination of both, depending on you own design. Switches to the specified , which will become the new current one. By default, this method does not guarantee to perform the Scene switch immediately, but may defer the switch to the end of the current update cycle. The Scene to switch to. If true, an immediate switch is forced. Use only when necessary. Reloads the current Scene or schedules it for reload at the end of the frame, depending on whether it is considered safe to do so immediately. Similar to with regard to execution planning. Performs a switch operation that was scheduled using . Creates a new, empty scene which does not contain any GameObjects. Renders the Scene The viewport to which will be rendered. Optional predicate to select which Cameras may be rendered and which not. Updates the Scene Updates the Scene in the editor. Cleanes up disposed Scene objects. Applies all PrefabLinks contained withing this Scenes GameObjects. Breaks all PrefabLinks contained withing this Scenes GameObjects. Clears the Scene, unregistering all GameObjects. This does not dispose them. Appends a cloned version of the specified Scenes contents to this Scene. The source Scene. Appends the specified Scene's contents to this Scene and consumes the specified Scene. The source Scene. Registers a GameObject and all of its children. Registers a set of GameObjects and all of their children. Unregisters a GameObject and all of its children Unregisters a set of GameObjects and all of their children. Finds all GameObjects in the Scene that match the specified name or name path. Finds all GameObjects in the Scene which have a Component of the specified type. Finds all GameObjects in the Scene which have a Component of the specified type. Finds all Components of the specified type in this Scene. Finds all Components of the specified type in this Scene. Finds a single GameObjects in the Scene that match the specified name or name path. Finds a single GameObject in the Scene that has a Component of the specified type. Finds a single GameObject in the Scene that has a Component of the specified type. Finds a single Component of the specified type in this Scene. Finds a single Component of the specified type in this Scene. Awakes all currently existing physical objects. [GET] When using fixed-timestep physics, the alpha value [0.0 - 1.0] indicates how complete the next step is. This is used for linear interpolation inbetween fixed physics steps. [GET] Is fixed-timestep physics calculation currently active? [GET] Returns the current physics world. [GET / SET] The Scene that is currently active i.e. updated and rendered. This is never null. You may assign null in order to leave the current Scene and enter en empty dummy Scene. [GET] The Resource file path of the current Scene. [GET] Returns whether is in a transition between two different states, i.e. whether the current Scene is being changed right now. Fired just before leaving the current Scene. Fired right after entering the (now) current Scene. Fired when a GameObjects parent object has been changed in the current Scene. Fired when a has been registered in the current Scene. Fired when a has been unregistered from the current Scene. Fired once every time a group of instances has been registered in the current Scene. Fired once every time a group of instances has been unregistered from the current Scene. Fired when a has been added to a that is registered in the current Scene. Fired when a has been removed from a that is registered in the current Scene. [GET / SET] The strategy that is used to determine which renderers are visible. [GET / SET] Global gravity force that is applied to all objects that obey the laws of physics. [GET] Enumerates all registered objects. [GET] Enumerates all registered objects that are currently active. [GET] Enumerates all root GameObjects, i.e. all GameObjects without a parent object. [GET] Enumerates all that are currently active. [GET] Returns whether this Scene is . [GET] Returns whether this Scene is completely empty. Provides functionality to play and manage sound in Duality. Determines the number of playing instances of a specific . The Sound of which to determine the number of playing instances. The number of the specified Sounds playing instances. Registers a Sounds playing instance. The Sound that is playing. Whether the instance is 3d or not. Unregisters a Sounds playing instance. The Sound that was playing. Whether the instance is 3d or not. Updates the SoundDevice. Plays a sound. The Sound to play. A new SoundInstance representing the currentply playing sound. Plays a sound 3d "in space". The Sound to play. The position of the sound in space. A new SoundInstance representing the currentply playing sound. Plays a sound 3d "in space". The Sound to play. The GameObject to which the sound will be attached. A new SoundInstance representing the currentply playing sound. Plays a sound 3d "in space". The Sound to play. The GameObject to which the sound will be attached. The position of the sound relative to the GameObject. A new SoundInstance representing the currentply playing sound. Stops all currently playing sounds. [GET / SET] The current listener object. This is automatically set to an available . [GET] The current listeners position. [GET] The current listeners velocity. [GET] The current listeners rotation / angle in radians. [GET / SET] Whether all Duality audio is currently muted completely. [GET] Returns a Sounds default minimum distance. [GET] Returns a Sounds default maximum distance. [GET] Returns the maximum number of available OpenAL sound sources. [GET] Returns the number of currently playing 2d sounds. [GET] Returns the number of currently playing 3d sounds. [GET] Returns the number of currently available OpenAL sound sources. [GET] Enumerates all currently playing SoundInstances. An instance of a . Stops the sound immediately. Fades the sound to a specific target value. The target value to fade to. The time in seconds the fading will take. Resets the sounds current fade value to zero and starts to fade it in. The time in seconds the fading will take. Fades the sound in from its current fade value. Note that SoundInstances are initialized with a fade value of 1.0f because they aren't faded in generally. To achieve a regular "fade in" effect, you should use . The time in seconds the fading will take. Fades out the sound. The time in seconds the fading will take. Halts the current fading, keepinf the current fade value as fade target. Updates the SoundInstance [GET] The currently used native audio source, as provided by the Duality backend. Don't use this unless you know exactly what you're doing. [GET] Whether the SoundInstance has been disposed. Disposed objects are not to be used anymore and should be treated as null or similar. [GET] A reference to the that is being played by this SoundInstance. [GET] A reference to the that is being played by this SoundInstance. [GET] The that this SoundInstance is attached to. [GET] Whether the sound is played 3d, "in space" or not. [GET] The SoundInstances priority. [GET] When fading in or out, this value represents the current fading state. [GET] The target value for the current fade. Usually 0.0f or 1.0f for fadint out / in. [GET] The time in seconds that this SoundInstance has been playing its sound. This value is affected by the sounds . [GET / SET] The sounds local volume factor. [GET / SET] The sounds local pitch factor. [GET / SET] The sounds local lowpass value. Lower values cut off more frequencies. [GET / SET] The sounds local stereo panning, ranging from -1.0f (left) to 1.0f (right). Only available for 2D sounds. [GET / SET] Whether the sound is played in a loop. [GET / SET] Whether the sound is currently paused. [GET / SET] The sounds position in space. If it is attached to a GameObject, this value is considered relative to it. [GET / SET] The sounds velocity. If it is attached to a GameObject, this value is considered relative to it. Provides functionality for analyzing, handling and displaying formatted text. Format string for displaying a slash (/) character. Format string for beginning a new text element. Format string for changing the current text color. Format string for changing the current . Format string for inserting an icon. Format string for changing the current text alignment to "Left". Format string for changing the current text alignment to "Right". Format string for changing the current text alignment to "Center". Format string for inserting a line break. Returns a format string for changing the current text color to the specified one. Creates a deep copy of the FormattedText and returns it. Applies a new source text. The new source text to apply. If null, the current source text is re-applied. Clears the text. Emits sets of vertices for glyphs and icons based on this formatted text. To render it, use each set of vertices combined with the corresponding Fonts . One set of vertices for each Font that is available to this ForattedText. A set of icon vertices. An X-Offset applied to the position of each emitted vertex. An Y-Offset applied to the position of each emitted vertex. An Z-Offset applied to the position of each emitted vertex. Returns an array of vertex counts for each emitted vertex array. Index 0 represents the number of emitted icon vertices, Index n represents the number of vertices emitted using Font n - 1. Emits sets of vertices for glyphs and icons based on this formatted text. To render it, use each set of vertices combined with the corresponding Fonts . One set of vertices for each Font that is available to this ForattedText. A set of icon vertices. An X-Offset applied to the position of each emitted vertex. An Y-Offset applied to the position of each emitted vertex. The color value that is applied to each emitted vertex. Returns an array of vertex counts for each emitted vertex array. Index 0 represents the number of emitted icon vertices, Index n represents the number of vertices emitted using Font n - 1. Emits sets of vertices for glyphs and icons based on this formatted text. To render it, use each set of vertices combined with the corresponding Fonts . One set of vertices for each Font that is available to this ForattedText. A set of icon vertices. An X-Offset applied to the position of each emitted vertex. An Y-Offset applied to the position of each emitted vertex. An Z-Offset applied to the position of each emitted vertex. The color value that is applied to each emitted vertex. An angle by which the text is rotated (before applying the offset). A factor by which the text is scaled (before applying the offset). Returns an array of vertex counts for each emitted vertex array. Index 0 represents the number of emitted icon vertices, Index n represents the number of vertices emitted using Font n - 1. Emits sets of vertices for glyphs and icons based on this formatted text. To render it, use each set of vertices combined with the corresponding Fonts . One set of vertices for each Font that is available to this ForattedText. A set of icon vertices. An X-Offset applied to the position of each emitted vertex. An Y-Offset applied to the position of each emitted vertex. An Z-Offset applied to the position of each emitted vertex. The color value that is applied to each emitted vertex. Dot product base for the transformed vertices. Dot product base for the transformed vertices. Returns an array of vertex counts for each emitted vertex array. Index 0 represents the number of emitted icon vertices, Index n represents the number of vertices emitted using Font n - 1. Emits sets of vertices for glyphs and icons based on this formatted text. To render it, use each set of vertices combined with the corresponding Fonts . One set of vertices for each Font that is available to this FormattedText. A set of icon vertices. Returns an array of vertex counts for each emitted vertex array. Index 0 represents the number of emitted icon vertices, Index n represents the number of vertices emitted using Font n - 1. Updates the cache that is used when emitting vertices. However, this is normally done automatically. Renders a text to the specified target Image. [GET / SET] The source text that is used, containing all format strings as well as the displayed text. [GET] Returns whether the text is empty. [GET / SET] A set of icons that is available in the text. If you modify this value without re-assigning it, be sure to call . [GET / SET] A set of flow areas to be considered in word wrap. If you modify this value without re-assigning it, be sure to call . [GET / SET] A set of Fonts that is available in the text. If you modify this value without re-assigning it, be sure to call . [GET / SET] The maximum width of the displayed text block. Zero deactivates maximum width. [GET / SET] The maximum height of the displayed text block. Zero deactivates maximum height. [GET / SET] The word wrapping behaviour to use. [GET / SET] Specifies the default horizontal alignment of each line, unless changed by format tags. [GET] The text blocks metrics. [GET] The text blocks boundary size. [GET] The number of lines in the formatted text block. [GET] The text that is actually displayed. [GET] The formatted text elements that have been generated analyzing the incoming source text. Represents an element of a formatted text. Contains a text string. [GET] text string this element contains. Contains an icon. [GET] The index of the icon to display at this elements position. Forces a line break at this position. Changes the currently used . [GET] The index of the Font to switch to. Changes the currently used . [GET] The new color to use. Changes the current lines' alignment. May be , or . [GET] The alignment to use for the current line. An icon that can be displayed inside the formatted text. The icons UV-Coordinates on the icon texture that will be used for rendering icons. The icons display size. An optional pixel offset that is applied to the icon when drawing it An rectangular area that will be avoided by the text flow. The areas width. The areas height. The areas y-Coordinate. Whether the area is located at the right edge of the text area, instead of the left edge. Provides information about a formatted texts metrics. [GET] The size of the formatted text block as whole. [GET] The number of lines. [GET] Each lines boundary. [GET] Each formatted text elements individual boundary. Describes word wrap behaviour. Word wrap is allowed at each glyph. Word wrap is allowed after / before each word, but not in the middle of one. Word wrap is only allowed between two separate formatted text elements. A Log output that uses a as message destination. Writes a single line of the final, formatted text message to the output. De/Serializes objects in a binary format. Additional metadata is included in order to allow an extended degree of error tolerance when working under development conditions. Base class for Dualitys serializers. The de/serialization . A list of field blockers. If any registered field blocker returns true upon serializing a specific field, a default value is assumed instead. Manages object IDs during de/serialization. Reads a single object and returns it. Reads a single object, casts it to the specified Type and returns it. Reads a single object, casts it to the specified Type and returns it via output parameter. Writes a single object. Writes a single object. Unregisters all . Registers a new FieldBlocker. Unregisters an existing FieldBlocker. Determines whether a specific field is blocked. Blocked fields, despite being generally flagged as being serializable, are omitted during de/serialization and retain their default value. The field in question. The object where this field originates from. True, if the field is blocked, false if not. Determines whether or not the specified matches the required format by this . This is used to determine which can be used for any given input . Writes the specified object including all referenced objects. The object to write. Reads an object including all referenced objects. The object that has been read. Called when the target stream this operates on has changed. Signals the beginning of an atomic ReadObject operation. Signals the beginning of an atomic WriteObject operation. Signals the end of an atomic ReadObject operation. Signals the end of an atomic WriteObject operation. Prepares an object for serialization and generates its header information. The object to write Logs an error that occurred during custom serialization. The object id of the affected object. The of the affected object. The that occurred. Logs an error that occurred during custom deserialization. The object id of the affected object. The of the affected object. The that occurred. Assigns the specified value to an objects field. Assigns the specified value to a specific array index. Resolves the specified Type. Resolves the specified Member. Resolves the specified Enum value. Uses a (seekable, random access) Stream to detect the serializer that can handle it. Creates a new using the specified stream for I/O. The stream to use. The serialization method to prefer. Auto-detection is used when not specified explicitly and the underlying stream supports seeking / random access. Otherwise, the is used. A newly created meeting the specified criteria. Reads an object of the specified Type from an existing data file, expecting that it might fail. This method does not throw an Exception when the file does not exist or another error occurred during the read operation. Instead, it will simply return null in these cases. Reads an object of the specified Type from an existing data Stream, expecting that it might fail. This method does not throw an Exception when the file does not exist or an expected error occurred during the read operation. Instead, it will simply return null in these cases. Reads an object of the specified Type from an existing data file. Reads an object of the specified Type from an existing data Stream. Saves an object to the specified data file. If it already exists, the file will be overwritten. Automatically creates the appropriate directory structure, if it doesn't exist yet. Saves an object to the specified data stream. Returns the of a Type. Retrieves a matching for the specified . The to retrieve a for. Attempts to handle a serialization error dynamically by invoking available SerializeErrorHandlers. Returns true, if the error has been handled successfully. [GET] Can this read data? [GET] Can this write data? [GET / SET] The target this operates on (i.e. reads from and writes to). [GET / SET] The local de/serialization . [GET] Enumerates registered field blockers. If any registered field blocker returns true upon serializing a specific field, a default value is assumed instead. [GET] Whether this formatter has been disposed. A disposed object cannot be used anymore. [GET / SET] The default type to use, if no other is specified. [GET] Enumerates all available types. [GET] A list of internal, temporary instances to check for Stream compatibility. Declares a field blocker. If a field blocker returns true upon serializing a specific field, a default value is assumed instead. Buffer object for custom de/serialization, providing read and write functionality. Provides reading capabilities for serialization purposes Reads the value that is associated with the specified name. The name that is used for retrieving the value. The value that has been read using the given name. Reads the value that is associated with the specified name. The expected value type. The name that is used for retrieving the value. The value that has been read and cast using the given name and type. Reads the value that is associated with the specified name. The expected value type. The name that is used for retrieving the value. The value that has been read and cast using the given name and type. [GET] Enumerates all available keys. Provides writing capabilities for serialization purposes Writes the specified name and value. The name to which the written value is mapped. May, for example, be the name of a Field to which the written value belongs, but there are no naming restrictions, except that one name can't be used twice. The value to write. Clears all contained data. Writes the specified name and value. The name to which the written value is mapped. May, for example, be the name of a Field to which the written value belongs, but there are no naming restrictions, except that one name can't be used twice. The value to write. Reads the value that is associated with the specified name. The name that is used for retrieving the value. The value that has been read using the given name. Reads the value that is associated with the specified name. The expected value type. The name that is used for retrieving the value. The value that has been read and cast using the given name and type. Reads the value that is associated with the specified name. The expected value type. The name that is used for retrieving the value. The value that has been read and cast using the given name and type. [GET] Enumerates all available keys. [GET] Enumerates all currently stored KeyValuePairs. Describes the serialization header of an object that is being de/serialized. [GET] The objects unique ID. May be zero for non-referenced object types. [GET] The objects data type. [GET] The objects resolved serialization type information. May be unavailable / null when loading objects. [GET] The objects resolved type information. May be unavailable / null when loading objects. [GET] The string representing this objects type in the serialized data stream. [GET] Whether or not the object is considered a primitive value according to its . [GET] Returns whether this kind of object requires an explicit to be fully described described during serialization. [GET] Returns whether this kind of object requires an to be fully described during serialization. Manages object IDs during de/serialization. Clears all object id mappings. Returns the id that is assigned to the specified object. Assigns one, if there is none yet. Assigns an id to a specific object. The id to assign. Zero ids are rejected. Tries to lookup an object based on its id. Increases the reference hierarchy level of the object id generator. Each level of id generation uses its own algorithm, so different levels of ids are unlikely to affect each other. Decreases the reference hierarchy level of the object id generator. Each level of id generation uses its own algorithm, so different levels of ids are unlikely to affect each other. Compares two objects for equality strictly by reference. This is needed to build the object id mapping, since some objects may expose some unfortunate equality behavior, and we really want to distinguish different objects by reference, and not by "content" here. An abstract base class for errors that can occur during serialization to provide an interface for custom serialization fallback behaivor. [GET] Returns whether the error has been handled successfully. A serialization error that occurred during the resolve operation of a Type. [GET] The Type id to resolve. [GET / SET] The resolved Type. A serialization error that occurred during the resolve operation of a Member. [GET] The Member id to resolve. [GET / SET] The resolved Member. A serialization error that occurred during the assignment of a Field. Possible causes are the Field not being available, being flagged as [DontSerialize] or having the wrong FieldType. [GET] The target objects serialization Type data. [GET] Object on which the field value should be assigned. [GET] Name of the field to assign the value to. [GET] The value to assign. [GET / SET] Whether or not the assignment was a success. Set this property to true, if you handled the error successfully. Provides an abstract interface for manual serialization fallbacks to resolve Types and Members or assign Fields. Handles the specified error. The handlers priority. A higher value makes it more significant above others. De/Serializes a . De/Serializes an array of objects. De/Serializes objects in an XML format. Additional metadata is included in order to allow an extended degree of error tolerance when working under development conditions. Determines the length of the longest Array element sequence that contains non-default values, beginning at index zero. It is the number of elements that actually needs to be serialized. Wraps the specified in a sub-stream that can only access the next available XML document section. The SerializeType class is essentially caching serialization-relevant information that has been generated basing on a . Creates a new SerializeType based on a , gathering all the information that is necessary for serialization. [GET] The that is described. [GET] An array of fields which are serialized. [GET] A string referring to the that is described. [GET] The associated with the described . [GET] Returns whether objects of this Type are viable for serialization. [GET] Returns whether object of this Type can be referenced by other serialized objects. [GET] Returns the default instance for objects of this type. This is a cached instance of . This enum is used by Dualitys serializers to distinguish between certain kinds of data. Unknown data type A value A value A value A value A value A value A value A value A value A value A value A value A value A value A value A value A value A value A value A struct object The reference to an object Extension methods for Returns whether the represents a primitive data type. Returns whether the represents a type. Returns whether the specified requires an explicit type name during serialization. Returns whether the specified requires a unique object id during serialization. Returns the actual that is associated with the . De/Serializes a . This class provides information about the data layout when de/serializing an object. Initializes a TypeDataLayout from the specified . The BinaryReader from which the type information is read. Initializes a TypeDataLayout by cloning an existing TypeDataLayout. The source layout Initializes a TypeDataLayout by extracting necessary information from the specified . The source SerializeType. Writes the TypeDataLayout to the specified . The BinaryWriter to store the type information. [GET / SET] An array of all the necessary field information, typically one entry per field. Holds information about a single field. The fields name A string referring to the fields type. The Time class provides a global interface for time measurement and control. It affects all time-dependent computations. Use the Property to make your own computations time-dependent instead of frame-dependent. Otherwise, your game logic will depend on how many FPS the player's machine achieves and mit behave differently on very slow or fast machines. The amount of frame per second at the desired refresh rate of 60 FPS. Milliseconds a frame takes at the desired refresh rate of 60 FPS Seconds a frame takes at the desired refresh rate of 60 FPS Freezes game time. This will cause the GameTimer to stop and TimeMult to equal zero. Unfreezes game time. TimeMult resumes to its normal value and GameTimer starts running again. [GET] Returns the date and time of engine startup. [GET] Returns the real time that has passed since engine startup. [GET] Time in milliseconds the last frame took. Do not use this for frame-independent calculations. Use instead. [GET] Frames per Second [GET] Returns the game time that has passed since engine startup. Since it's game time, this timer will stop when pausing or freezing and also run slower or faster according to . [GET] Multiply any frame-independend movement or change with this factor. It also applies the time scale you set. [GET / SET] Specifies how fast game time runs compared to real time i.e. how fast the game runs. May be used for slow motion effects. [GET] The number of frames passed since startup A general interface for different types of vertex data. [GET] The that specifies size, layout and roles of the vertex fields. This member is static by design. [GET] The vertices position. [GET] The vertices color. Vertex data providing each vertex a position (3x4 byte), color (1x4 byte), two texture coordinates (4x4 byte) and a custom float vertex attribute (1x4 byte). The vertices color. The vertices position. The vertices texture coordinates (two of them). The vertices custom attribute. Vertex data providing each vertex a position (3x4 byte), color (1x4 byte) and texture coordinate (2x4 byte) The vertices color. The vertices position. The vertices texture coordinate. Vertex data providing each vertex a position (3x4 byte) and color (1x4 byte). The vertices position. The vertices color.