Example #1
0
        public static GameObject GetScenePath(string name, bool autocreate = true)
        {
            string[]   parts   = name.Split('/');
            string     path    = "";
            GameObject current = null;
            Transform  parent  = null;

            foreach (string part in parts)
            {
                path    = path.IsEmpty() ? part : path + "/" + part;
                current = GameObject.Find(path);
                if (current.IsNull())
                {
                    if (!autocreate)
                    {
                        return(null);
                    }
                    current = new GameObject(part);
                    current.transform.parent = parent;
                    Locate.SetDirty();
                }
                parent = current.transform;
            }
            return(current);
        }
Example #2
0
 static Locate()
 {
     if (!Application.isPlaying)
     {
         //Event.Add("On Application Quit",Locate.SetDirty);
         Events.Add("On Level Was Loaded", Locate.SetDirty).SetPermanent();
         Events.Add("On Hierarchy Changed", Locate.SetDirty).SetPermanent();
         Events.Add("On Asset Changed", () => Locate.assets.Clear()).SetPermanent();
     }
     Events.Register("On Components Changed");
     if (!Locate.setup)
     {
         Locate.SetDirty();
     }
 }
Example #3
0
 public static void SetState()
 {
     Locate.SetDirty();
     Hook.LoadSettings();
     foreach (var current in Locate.GetSceneObjects())
     {
         if (current.name != "@Main")
         {
             continue;
         }
         current.hideFlags = Hook.hidden ? HideFlags.HideInHierarchy : HideFlags.None;
         if (Hook.temporary)
         {
             current.hideFlags = Hook.hidden ? HideFlags.HideAndDontSave : HideFlags.DontSave;
         }
     }
     Utility.Destroy(new GameObject("@*#&"));
 }