| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | /** * Copyright(c) Live2D Inc. All rights reserved. * * Use of this source code is governed by the Live2D Open Software license * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html. */using System.Collections.Generic;using UnityEngine;namespace Live2D.Cubism.Framework{    /// <summary>    /// Extensions for <see cref="Component"/>s.    /// </summary>    public static class ComponentExtensionMethods    {        /// <summary>        /// Gets components for each item of a sequence and flattens the resulting sequences into one sequence.        /// </summary>        /// <typeparam name="T">Component type to find.</typeparam>        /// <param name="self">Array to query.</param>        /// <returns>Matches.</returns>        public static T[] GetComponentsMany<T>(this Component[] self) where T : Component        {            var components = new List<T>();            for (var i = 0; i < self.Length; ++i)            {                var range = self[i].GetComponents<T>();                // Skip empty ranges.                if (range == null || range.Length == 0)                {                    continue;                }                components.AddRange(range);            }            return components.ToArray();        }        /// <summary>        /// Adds a component to multiple objects.        /// </summary>        /// <typeparam name="T">Component type to add.</typeparam>        /// <param name="self">Array of objects.</param>        /// <returns>Added components.</returns>        public static T[] AddComponentEach<T>(this Component[] self) where T : Component        {            var components = new T[self.Length];            for (var i = 0; i < self.Length; ++i)            {                components[i] = self[i].gameObject.AddComponent<T>();            }            return components;        }    }}
 |