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();
}
}
}