Exemple #1
0
        public AreaUI Find(Type type)
        {
            if (typeMapper.TryGetValue(type, out AreaUI value))
            {
                if (value.Root == this)
                {
                    return(value);
                }
                typeMapper.Remove(type);
            }

            AreaUI result = Search(this);

            if (result == null)
            {
                return(null);
            }

            typeMapper[type] = result;
            return(result);

            AreaUI Search(AreaUI current)
            {
                if (type.IsInstanceOfType(current))
                {
                    return(current);
                }
                foreach (AreaUI child in current !.LoopForward(false))
                {
                    AreaUI search = Search(child);
                    if (search == null)
                    {
                        continue;
                    }

                    return(search);
                }

                return(null);
            }
        }
Exemple #2
0
 public Transform(AreaUI area) => this.area = area;