コード例 #1
0
        public static IEnumerable <Type> GetUnityTypes(UnityObject target)
        {
            Ensure.That(nameof(target)).IsNotNull(target);

            if (target.IsComponentHolder())
            {
                yield return(typeof(GameObject));

                foreach (var componentType in target.GetComponents <Component>().NotNull().Select(c => c.GetType()).Distinct())
                {
                    yield return(componentType);
                }
            }
            else
            {
                yield return(target.GetType());
            }
        }
コード例 #2
0
        private void BuildHierarchy(Object target)
        {
            if (target.IsComponentHolder())
            {
                hierarchy = new List <Object>(target.GetComponents <Component>());

                var owner = target.GameObject();
                if (owner != null)
                {
                    hierarchy.Insert(0, owner);
                }

                hierarchyIndex = hierarchy.IndexOf(target);
            }
            else
            {
                hierarchy.Clear();
                hierarchyIndex = 0;
            }
        }