public T GetResource <T>(string name, bool sendEventOnFailure = true) where T : Resource { var typeHash = new StringHash(typeof(T).Name); var componentInstance = Urho3D__ResourceCache__GetResource_Urho3D__StringHash_Urho3D__String_const__bool_(NativeInstance, typeHash.Hash, name, sendEventOnFailure); return(InstanceCache.GetOrAdd(componentInstance, ptr => { Type type = typeof(T); return (T)Activator.CreateInstance(type, BindingFlags.NonPublic | BindingFlags.Instance, null, new object[] { ptr, false }, null); })); }
public T GetComponent <T>(bool recursive = false) where T : Component { var componentInstance = Urho3D__Node__GetComponent_Urho3D__StringHash_bool__const(NativeInstance, StringHash.Calculate(typeof(T).Name), recursive); if (componentInstance == IntPtr.Zero) { return(default(T)); } return(InstanceCache.GetOrAdd(componentInstance, ptr => (T)Activator.CreateInstance(typeof(T), BindingFlags.NonPublic | BindingFlags.Instance, null, new object[] { ptr, false }, null))); }
public T CreateComponent <T>(CreateMode mode = CreateMode.REPLICATED, uint id = 0) where T : Component { var componentInstance = Urho3D__Node__CreateComponent_Urho3D__StringHash_Urho3D__CreateMode_unsigned_int_(NativeInstance, StringHash.Calculate(typeof(T).Name), mode, id); if (componentInstance == IntPtr.Zero) { return(default(T)); } return(InstanceCache.GetOrAdd(componentInstance, ptr => (T)Activator.CreateInstance(typeof(T), BindingFlags.NonPublic | BindingFlags.Instance, null, new object[] { ptr, false }, null))); }
internal static StringVector __FromPInvoke(IntPtr source) { return(InstanceCache.GetOrAdd <StringVector>(source, ptr => new StringVector(ptr))); }
internal static StringVector __FromPInvoke(IntPtr source, bool ownsInstnace) { return(InstanceCache.GetOrAdd(source, ptr => new StringVector(ptr, ownsInstnace))); }
internal static StringVector GetManagedInstance(IntPtr source, bool ownsInstnace) { return(InstanceCache.GetOrAdd(source, ptr => new StringVector(ptr, ownsInstnace))); }
internal static VariantMap GetManagedInstance(IntPtr source, bool ownsNativeInstnace) { return(InstanceCache.GetOrAdd <VariantMap>(source, ptr => new VariantMap(ptr, ownsNativeInstnace))); }
internal static VariantMap GetManagedInstance(IntPtr source, NativeObjectFlags flags = NativeObjectFlags.None) { return(InstanceCache.GetOrAdd(source, ptr => new VariantMap(ptr, flags))); }
internal static VariantMap __FromPInvoke(IntPtr source) { return(InstanceCache.GetOrAdd <VariantMap>(source, ptr => new VariantMap(ptr))); }