Depiction Engine For Unity 2023.0 (Alpha)
|
Universal RP
from the Package Manager
under "Windows -> Package Manager". Universal Render Pipeline Asset
to "Edit -> Project Settings -> Quality -> Render Pipeline Asset". Color Space*
= Linear Api Compatibility Level*
= .NET Framework Allow unsafe Code
= true TexMeshPro
from the Package Manager
under "Windows -> Package Manager". Depiction Engine
from GitHub. DepictionEngine.ManagerBase
's are required in the Scene and will automatically be created the moment an DepictionEngine.Object
is first introduced to the Scene. Managers can also be created manually by right clicking the Hierarchy Window and selecting "Managers" in the Context Menu.Shader Graph
nodes require the rendering pipeline to be modified to function properly. The patching should be performed automatically when the DepictionEngine.RenderingManager
is created however you can also trigger it manually in your Scene DepictionEngine.RenderingManager
by pressing the Patch Universal Rendering Pipeline
button. WebGLTemplates
folder to "/Assets/". You should now be able to select the "Depiction Engine - Demo" WebGL Template under "Edit -> Project Settings -> Player -> Resolution and Presentation". DepictionEngine.JsonInterface
component in the "Managers" GameObject. You will also have to save your project and make sure it is included in your build under "File -> Build Settings -> Scenes in Build". Align View to Selected GeoAstroObject
: Auto Snap View to Terrain
: Move View to GeoCoordinate
: DepictionEngine.IDisposable
should be instanced using the DepictionEngine.InstanceManager
. If DepictionEngine.PoolManager.enablePooling
is true when instanced, DepictionEngine.IDisposable
objects will be recycled from the pool, if an instance already exists, and its DepictionEngine.IDisposable.Recycle
method will be called before initialization. DepictionEngine.InitializationContext
will be supplied as a parameter to the DepictionEngine.IScriptableBehaviour.Initialized
method(which acts as a constructor) and provides you with some context as to how the object was created. DepictionEngine.IScriptableBehaviour.Initialized
, undo operations will be automatically recorded for unity objects such as DepictionEngine.IScriptableBehaviour
.DepictionEngine.IDisposable
need to be disposed with the DepictionEngine.DisposeManager
. If DepictionEngine.PoolManager.enablePooling
is true when disposed, DepictionEngine.IDisposable
objects will be automatically added back to the pool unless a disposeContext is provided in which case they may be destroyed or go to the pool depending on context. DepictionEngine.IDisposable
can also be disposed with the DepictionEngine.DisposeManager
. Disposing using the DepictionEngine.DisposeManager.Destroy
will automatically call GameObject.Destroy
or GameObject.DestroyImmediate
depending on whether we are in the Editor or not. DepictionEngine.IDisposable.OnDispose
will always be called and a DepictionEngine.DisposeContext
will be supplied as a parameter to provide some context as to how the object was disposed. DepictionEngine.IDisposable.OnDispose
, undo operations will be automatically recorded if the DepictionEngine.IDisposable
contains dependencies that need to be Destroyed.DepictionEngine.RenderingManager.originShifting
and will be true
by default. DepictionEngine.Object
's will be automatically origin shifted only while they are selected in the Editor to allow for the manipulation tools(Move, Rotate, Scale...) to be displayed correctly while DepictionEngine.VisualObject
's will always be origin shifted as they are expected to have rendered visuals as childs. DepictionEngine.Object
's that do not require positioning will always be positioned at zero(origin) with no rotation(identity). If required this behaviour can be modified by any class which extends DepictionEngine.Object
and overrides its DepictionEngine.Object.RequiresPositioning
method to return true
. DepictionEngine.Datasource
when a save operation is performed. Properties modified through the Editor should be automatically marked as 'Out of Synch' however, if need be, properties can also be marked manually using the DepictionEngine.SceneManager.StartUserContext
/ DepictionEngine.SceneManager.EndUserContext
method. For properties to be persisted they need to have the DepictionEngine.JsonAttribute
. Volume
for Post Processing effects and you want to control it from a script make sure to drag or assign your Volume into the DepictionEngine.RenderingManager.postProcessVolume
property. Do the same for UniversalRendererData
containing custom features such as Ambient Occlusion that you would like to control from script by dragging or assigning the renderer to the DepictionEngine.RenderingManager.rendererData
property.DepictionEngine.GeneratorBase
can be used to spawn procedurally generated objects provided you set its DepictionEngine.GeneratorBase.seed
property to something other then -1.DepictionEngine.FallbackValues
, will need to implement the following method. DepictionEngine.Texture
object populating a DepictionEngine.TextureModifier
: