using System; using UnityAtoms.BaseAtoms; using UnityEngine; namespace UnityAtoms.BaseAtoms { /// /// Reference of type `GameObject`. Inherits from `AtomReference<GameObject, GameObjectPair, GameObjectConstant, GameObjectVariable, GameObjectEvent, GameObjectPairEvent, GameObjectGameObjectFunction, GameObjectVariableInstancer>`. /// [Serializable] public sealed class GameObjectReference : AtomReference< GameObject, GameObjectPair, GameObjectConstant, GameObjectVariable, GameObjectEvent, GameObjectPairEvent, GameObjectGameObjectFunction, GameObjectVariableInstancer, AtomCollection, AtomList>, IEquatable { public GameObjectReference() : base() { } public GameObjectReference(GameObject value) : base(value) { } public bool Equals(GameObjectReference other) { return base.Equals(other); } protected override bool ValueEquals(GameObject other) { return (this.Value == null && other == null) || this.Value != null && other != null && this.Value.GetInstanceID() == other.GetInstanceID(); } } }