Ejemplo n.º 1
0
    /// <summary>
    /// Пытается найти объект на компоненте, если компонент найден вернет true а <param name="component"/>>будет указывать на найденный объект,
    /// в противном случае, вернет false, а <param name="component"/>>будет указывать на null
    /// </summary>
    ///
    /// <param name="gameObject">Игровой объект</param>
    /// <param name="component">Ссылка на найденный объект (null, если объект не найден)</param>
    ///
    /// <typeparam name="T">Тип компонента</typeparam>
    ///
    /// <returns>true - компонент найден, false - объект не найден</returns>
    ///
    /// <exception cref="ArgumentNullException">Параметр <param name="gameObject"/>>указывает на null</exception>
    /// <exception cref="MissingReferenceException">Параметр <param name="gameObject"/>>указывает на уничтоженный объект</exception>
    public static bool TryGetComponent <T>([NotNull] this GameObject gameObject, [CanBeNull] out T component)
    {
        if (gameObject is null)
        {
            throw new ArgumentNullException(nameof(gameObject));
        }
        if (!gameObject)
        {
            throw new MissingReferenceException(nameof(gameObject));
        }

        return(GameObjectUtilities.TryGetComponentWithoutChecks(gameObject, out component));
    }