Skip to content

GameGraph.UrhoInterop ​

EngineObject 双端 ​

命名空间 GameGraph.UrhoInterop

csharp
public abstract class EngineObject : DisposableObject

引擎对象基类,封装本机指针并管理其生命周期。

属性 ​

IsValid 双端 ​

csharp
public override bool IsValid { get; }

NativePtr 双端 ​

csharp
public NativePtr NativePtr { get; set; }

本机指针。

方法 ​

GetObject 双端 ​

csharp
public static T? GetObject<T>(NativePtr nativePtr, bool createIfNotExist = true) where T : EngineObject

获取或创建指定类型的引擎对象。

  • nativePtr — 本机指针
  • createIfNotExist — 缓存未命中时是否创建新对象

返回: 引擎对象实例,或 null

GetObject 双端 ​

csharp
public static T? GetObject<T>(NativePtr nativePtr, Func<NativePtr, T> factory) where T : EngineObject

使用工厂方法获取或创建引擎对象。

RegisterObject 双端 ​

csharp
public static void RegisterObject(EngineObject obj)

注册一个引擎对象到缓存。

UnregisterObject 双端 ​

csharp
public static void UnregisterObject(EngineObject obj)

从缓存中移除对象。应在对象销毁时调用。

Setup 双端 ​

csharp
public virtual void Setup()

对象初始化后的设置回调,子类可重写。

DisposeManaged 双端 ​

csharp
protected override void DisposeManaged()

释放托管资源。

备注

不在这里清零 NativePtr —— 必须留给 Boolean) 用来调 ObjectReleaseRef。子类如果重写本方法,应在使用 NativePtr 的逻辑之后, 在末尾调用 base.DisposeManaged()(base 实现已空,仅为占位约定)。

DisposeUnmanaged 双端 ​

csharp
protected override void DisposeUnmanaged(bool finalizing)

释放非托管资源(本机指针引用)。

备注

调 ObjectReleaseRef 前先清零 NativePtr 并从缓存摘除;原生 WASM trap 不会执行托管 finally,不能把包装对象清理留到调用后。释放错误仍向上传递。 子类重写时应在自己用完 NativePtr 后再调 base.DisposeUnmanaged(finalizing)。

HasSubscribedToEvent 双端 ​

csharp
public bool HasSubscribedToEvent(UTF8String eventName)

判断对象是否有脚本或引擎订阅者监听指定事件。

HasSubscribedToSenderEvent 双端 ​

csharp
public bool HasSubscribedToSenderEvent(EngineObject sender, UTF8String eventName)

判断对象是否有订阅者监听指定发送者发出的事件。

IntVector2 双端 ​

命名空间 GameGraph.UrhoInterop

csharp
public readonly struct IntVector2 : IEquatable<IntVector2>

构造函数 ​

IntVector2 双端 ​

csharp
public IntVector2(int x, int y)

属性 ​

X 双端 ​

csharp
public int X { get; }

Y 双端 ​

csharp
public int Y { get; }

方法 ​

Equals 双端 ​

csharp
public bool Equals(IntVector2 other)

Equals 双端 ​

csharp
public override bool Equals(object? obj)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

ToString 双端 ​

csharp
public override string ToString()

IntVector3 双端 ​

命名空间 GameGraph.UrhoInterop

csharp
public readonly struct IntVector3 : IEquatable<IntVector3>

构造函数 ​

IntVector3 双端 ​

csharp
public IntVector3(int x, int y, int z)

属性 ​

X 双端 ​

csharp
public int X { get; }

Y 双端 ​

csharp
public int Y { get; }

Z 双端 ​

csharp
public int Z { get; }

方法 ​

Equals 双端 ​

csharp
public bool Equals(IntVector3 other)

Equals 双端 ​

csharp
public override bool Equals(object? obj)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

ToString 双端 ​

csharp
public override string ToString()

UrhoCore 双端 ​

命名空间 GameGraph.UrhoInterop

csharp
public static class UrhoCore

Safe, resource-free portions of Urho's Core API that are available to both GameGraph ends. Resource handles and process-mutating operations intentionally remain in their dedicated client/resource layers.

方法 ​

GetObjectInfo 双端 ​

csharp
public static UrhoObjectInfo? GetObjectInfo(EngineObject? value)

Returns metadata and event-blocking state for an Urho-backed object.

UrhoObjectInfo 双端 ​

命名空间 GameGraph.UrhoInterop

csharp
public readonly struct UrhoObjectInfo : IEquatable<UrhoObjectInfo>

构造函数 ​

UrhoObjectInfo 双端 ​

csharp
public UrhoObjectInfo(uint TypeHash, string TypeName, string Category, bool BlockEvents)

属性 ​

TypeHash 双端 ​

csharp
public uint TypeHash { get; init; }

TypeName 双端 ​

csharp
public string TypeName { get; init; }

Category 双端 ​

csharp
public string Category { get; init; }

BlockEvents 双端 ​

csharp
public bool BlockEvents { get; init; }

方法 ​

ToString 双端 ​

csharp
public override string ToString()

operator != 双端 ​

csharp
public static bool operator !=(UrhoObjectInfo left, UrhoObjectInfo right)

operator == 双端 ​

csharp
public static bool operator ==(UrhoObjectInfo left, UrhoObjectInfo right)

GetHashCode 双端 ​

csharp
public override int GetHashCode()

Equals 双端 ​

csharp
public override bool Equals(object obj)

Equals 双端 ​

csharp
public bool Equals(UrhoObjectInfo other)

Deconstruct 双端 ​

csharp
public void Deconstruct(out uint TypeHash, out string TypeName, out string Category, out bool BlockEvents)