class ScriptSceneObject

Interop class between C++

& CLR for SceneObject.

Public

Constructors

ScriptSceneObject

ScriptSceneObject(const HSceneObject &nativeObject)

Methods

staticGetAssemblyName

static const char *GetAssemblyName()

staticGetNamespace

static const char *GetNamespace()

staticGetTypeName

static const char *GetTypeName()

GetNativeObject

SceneObject *GetNativeObject() const

Retrieves the underlying native object cast to the correct type.

staticSetupScriptBindings

static void SetupScriptBindings()

staticCreateScriptObject

static MonoObject *CreateScriptObject(bool construct)

ShouldPersistScriptReload

bool ShouldPersistScriptReload() const override

GetLifetimeTrackingMode

ScriptObjectLifetimeTrackingMode GetLifetimeTrackingMode() const override

GetNativeObjectAsShared

SPtr<NativeType> GetNativeObjectAsShared() const

Returns the wrapped native object as a shared pointer.

GetNativeObjectAsHandle

TGameObjectHandle<NativeType> GetNativeObjectAsHandle() const

Returns the wrapped native object as a handle.

staticCreateScriptObjectAndWrapper

static MonoObject *CreateScriptObjectAndWrapper(const HGameObject &nativeObject)

Creates a new script object and a script object wrapper of , and associates them with the provided native object.

Should not be called if already has an associated script object.

staticGetScriptExportable

static IScriptExportable *GetScriptExportable(IReflectable *nativeObject)

Casts the reflectable object to script exportable.

staticGetOrCreateScriptObject

static MonoObject *GetOrCreateScriptObject(const TGameObjectHandle<NativeType> &nativeObject)

Attempts to retrieve an existing associated script object from the provided native object.

If one doesn't exist, a new script object and the associated script wrapper will be created.

~TScriptObjectWrapper<SelfType, BaseType>

virtual ~TScriptObjectWrapper<SelfType, BaseType>() = default

RecreateScriptObjectAfterScriptReload

void RecreateScriptObjectAfterScriptReload() override

staticGetScriptObjectWrapper

static SelfType *GetScriptObjectWrapper(MonoObject *scriptObject)

Returns the script object wrapper associated with the provided script object.

staticGetMetaData

static const ScriptTypeMetaData *GetMetaData()

Returns the meta-data storing information about the script type.

staticInitializeMetaDataAtLoadTime

static void InitializeMetaDataAtLoadTime()

Takes care of initializing the meta-data when the application first load.

The meta-data will be registered with a global manager that will ensure it is kept up-to-date after operations such as assembly (re)load.

Protected

Methods

staticInitializeAdditionalMetaData

static void InitializeAdditionalMetaData(ScriptTypeMetaData &metaData)

Initialize RTTI type ID and callback used to create the script object/script object wrapper.

BindToScriptObject

void BindToScriptObject(MonoObject *scriptObject) override

Stores a pointer to itself in the script object.

This ensures that calls to GetScriptObjectWrapper() can return the script object wrapper associated with the script object.

Private

Methods

staticInternalCreateInstance

static void InternalCreateInstance(MonoObject *scriptObject, MonoString *name, u32 flags)

*********************************************************************

staticInternalSetName

static void InternalSetName(ScriptSceneObject *self, MonoString *name)

staticInternalGetName

static MonoString *InternalGetName(ScriptSceneObject *self)

staticInternalSetActive

static void InternalSetActive(ScriptSceneObject *self, bool value)

staticInternalGetActive

static bool InternalGetActive(ScriptSceneObject *self)

staticInternalHasFlag

static bool InternalHasFlag(ScriptSceneObject *self, u32 flag)

staticInternalSetMobility

static void InternalSetMobility(ScriptSceneObject *self, int value)

staticInternalGetMobility

static int InternalGetMobility(ScriptSceneObject *self)

staticInternalSetParent

static void InternalSetParent(ScriptSceneObject *self, MonoObject *parent)

staticInternalGetParent

static MonoObject *InternalGetParent(ScriptSceneObject *self)

staticInternalGetScene

static MonoObject *InternalGetScene(ScriptSceneObject *self)

staticInternalIsPrefabInstance

static bool InternalIsPrefabInstance(ScriptSceneObject *self)

staticInternalGetPrefabInstanceRoot

static MonoObject *InternalGetPrefabInstanceRoot(ScriptSceneObject *self)

staticInternalGetPrefabResourceId

static void InternalGetPrefabResourceId(ScriptSceneObject *self, UUID *uuid)

staticInternalGetNumChildren

static void InternalGetNumChildren(ScriptSceneObject *self, u32 *value)

staticInternalGetChild

static MonoObject *InternalGetChild(ScriptSceneObject *self, u32 childIndex)

staticInternalFindChild

static MonoObject *InternalFindChild(ScriptSceneObject *self, MonoString *name, bool recursive)

staticInternalFindChildren

static MonoArray *InternalFindChildren(ScriptSceneObject *self, MonoString *name, bool recursive)

staticInternalGetPosition

static void InternalGetPosition(ScriptSceneObject *self, Vector3 *value)

staticInternalGetLocalPosition

static void InternalGetLocalPosition(ScriptSceneObject *self, Vector3 *value)

staticInternalGetRotation

static void InternalGetRotation(ScriptSceneObject *self, Quaternion *value)

staticInternalGetLocalRotation

static void InternalGetLocalRotation(ScriptSceneObject *self, Quaternion *value)

staticInternalGetScale

static void InternalGetScale(ScriptSceneObject *self, Vector3 *value)

staticInternalGetLocalScale

static void InternalGetLocalScale(ScriptSceneObject *self, Vector3 *value)

staticInternalSetPosition

static void InternalSetPosition(ScriptSceneObject *self, Vector3 *value)

staticInternalSetLocalPosition

static void InternalSetLocalPosition(ScriptSceneObject *self, Vector3 *value)

staticInternalSetRotation

static void InternalSetRotation(ScriptSceneObject *self, Quaternion *value)

staticInternalSetLocalRotation

static void InternalSetLocalRotation(ScriptSceneObject *self, Quaternion *value)

staticInternalSetLocalScale

static void InternalSetLocalScale(ScriptSceneObject *self, Vector3 *value)

staticInternalGetLocalTransform

static void InternalGetLocalTransform(ScriptSceneObject *self, Matrix4 *value)

staticInternalGetWorldTransform

static void InternalGetWorldTransform(ScriptSceneObject *self, Matrix4 *value)

staticInternalLookAt

static void InternalLookAt(ScriptSceneObject *self, Vector3 *direction, Vector3 *up)

staticInternalMove

static void InternalMove(ScriptSceneObject *self, Vector3 *value)

staticInternalMoveLocal

static void InternalMoveLocal(ScriptSceneObject *self, Vector3 *value)

staticInternalRotate

static void InternalRotate(ScriptSceneObject *self, Quaternion *value)

staticInternalRoll

static void InternalRoll(ScriptSceneObject *self, Radian *value)

staticInternalYaw

static void InternalYaw(ScriptSceneObject *self, Radian *value)

staticInternalPitch

static void InternalPitch(ScriptSceneObject *self, Radian *value)

staticInternalSetForward

static void InternalSetForward(ScriptSceneObject *self, Vector3 *value)

staticInternalGetForward

static void InternalGetForward(ScriptSceneObject *self, Vector3 *value)

staticInternalGetUp

static void InternalGetUp(ScriptSceneObject *self, Vector3 *value)

staticInternalGetRight

static void InternalGetRight(ScriptSceneObject *self, Vector3 *value)

staticInternalDestroy

static void InternalDestroy(ScriptSceneObject *self, bool immediate)