public void Destroy() { lock (this) { if (SwigObject == null) return; GC.Collector.AddObject(SwigObject); SwigObject = null; } Particular.GC.SuppressFinalize(this); }
internal AnimationClip(swig.AnimationClip swig) { #if DEBUG // 唯一の対応するクラスであることを保証 if (GC.AnimationClips.GetObject(swig.GetPtr()) != null) { Particular.Helper.ThrowException(""); } #endif SwigObject = swig; }
internal AnimationClip(swig.AnimationClip coreInstance) { #if DEBUG // 唯一の対応するクラスであることを保証 if (GC.AnimationClips.Contains(coreInstance.GetPtr())) { Particular.Helper.ThrowException(""); } #endif CoreInstance = coreInstance; }
internal AnimationClip(swig.AnimationClip swig) { #if DEBUG // 唯一の対応するクラスであることを保証 if (GC.AnimationClips.GetObject(swig.GetPtr()) != null) { throw new Exception(); } #endif SwigObject = swig; }
/// <summary> /// ネイティブのインスタンスからラッパー側のインスタンスを生成する。 /// </summary> /// <param name="o"></param> /// <param name="type"></param> internal static AnimationClip GenerateAnimationClip(swig.AnimationClip o, GenerationType type) { var p = o.GetPtr(); var existing = GC.AnimationClips.GetObject(p); existing = GenerateInternal(existing, o, type); if (existing != null) { return(existing); } var ret = new AnimationClip(o); GC.AnimationClips.AddObject(p, ret); return(ret); }