//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
//**************** Copyright (c) 2016 Marko Pintera (marko.pintera@gmail.com). All rights reserved. **********************//
using System;
using System.Runtime.CompilerServices;
namespace BansheeEngine
{
/** @addtogroup Scene
* @{
*/
///
/// A base class for objects that can be part of the scene and referenced by other game objects.
///
public class GameObject : ScriptObject
{
///
/// Returns a unique ID for the game object.
///
public UInt64 InstanceId
{
get { return Internal_GetInstanceId(mCachedPtr); }
}
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern UInt64 Internal_GetInstanceId(IntPtr thisPtr);
}
///
/// Flags used for notifying child scene object and components when a transform has been changed.
///
[Flags]
public enum TransformChangedFlags // Note: Must match C++ enum TransformChangedFlags
{
///
/// Component will not be notified about any events relating to the transform.
///
None = 0x00,
///
/// Component will be notified when the its position, rotation or scale has changed.
///
Transform = 0x01,
///
/// Component will be notified when its parent changes.
///
Parent = 0x02,
///
/// Component will be notified when its scene object's mobility state changes.
///
Mobility = 0x04
}
/** @} */
}