using System; using UnityEngine; namespace UnityAtoms { /// /// Reference of type `GameObject`. Inherits from `AtomReference<GameObject, GameObjectConstant, GameObjectVariable, GameObjectEvent, GameObjectGameObjectEvent, GameObjectGameObjectFunction, GameObjectVariableInstancer>`. /// [Serializable] public sealed class GameObjectReference : AtomReference< GameObject, GameObjectConstant, GameObjectVariable, GameObjectEvent, GameObjectGameObjectEvent, GameObjectGameObjectFunction, GameObjectVariableInstancer>, 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(); } } }