Search Unity

Components Cacher - Make your life easier

Discussion in 'Assets and Asset Store' started by AdvancedGameDeveloper, Aug 2, 2019.

  1. AdvancedGameDeveloper

    AdvancedGameDeveloper

    Joined:
    Oct 28, 2015
    Posts:
    1
    516x389.png
    Components Cacher is powerful and flexible engine for easy and fast serialize components. If you are tired of missing or deleted components or many public fields, this asset for you. Just add CacheMe attribute and hide field from Inspector with HideInInspector. For caching all scenes and prefabs you just need press one button, and it all!!! (No need Re-Cache after caching). If you don't want cache all scenes, you can cache specific scene, game object (with all scripts) or script. It also reduse scene opening time, becuase no need caching components in Awake or Start methods. All scripts and atrributes from fields removing when building (Only empty script CacheMeAtrribute not removed for usage detect).

    If you find any bugs or want add new features, write me to forum profile.​

    ☆Cache Features☆
    • Self:
    Get Components from GameObject.
    • Children: Get Components from Children (And Children of Children).
    • Parent: Get Components from Parents.
    • Sibling: Get Components from Children of Parent (One Depth with GameObject. And Children of Siblings). Current GameObject not included.
    • By Type: Get Components in Scene by field Type.
    • By Tag: Get Components in Scene by Tag.
    • By Tag In Children: Get Components from Children by Tag.
    • By Tag In Parent: Get Components from Parents by Tag.
    • By Tag In Sibling: Get Components from Siblings by Tag (Children of Siblings not included).
    • By Tag In Sibling Full: Get Components from Siblings by Tag (And Children of Siblings).
    • In Scene: Get Components in Scene by Path.
    • In Scene Short: Get Components in Scene by not full Path or Name.
    • In Transform: Get Components in Transform by Path.
    • In Transform Short: Get Components in Transform by not full Path or Name.
    • In Sibling: Get Components from Sibling by Path.
    • In Sibling Short: Get Components from Sibling by not full Path or Name.
    • From Project: Load Components from Project by Path.

    ☆Other Features☆
    • Easy to Use:
    Just press Button to Caching all Components from all Scenes and Prefabs.
    • User Friendly: Intuitive flat Interface with built-in Documentation.
    • Debug Window: Powerful window help you preview errors.
    • Color Themes: Light and Dark skin for FREE!!!
    • Depth Control:
    Can be controlled with Int value (Zero is infinity).
    • Inactive Search Filter: Active In Hierarchy, Inactive In Hierarchy, Active Self, Inactive Self or All GameObjects.
    • Links: Interacting text help quick select GameObject or some other Object.
    • Search in Text: Easy find Errors or Scripts by Name.
    • All Prefabs: Support Old and New (Unity 2018.3 and newer) Prefabs System.
    • Roadmap: More features coming soon!!!
    01.png
    02.png
    Search.png
    Doc.png
    Code (csharp):
    1.     //Get GameObject by Path in scene
    2.     [CacheMe("From Sibling/Me", uSearch.InScene)]
    3.     public FromSibling sibling;
    4.  
    5.     //Get GameObject by Path in scene. "0*" = Transform.GetChild(0) (Get First Children)
    6.     [CacheMe("From Parent/0*/0*/Main", uSearch.InScene)]
    7.     public FromParent fromParent;
    8.  
    9.     //Get GameObject by Path in scene. "1*" = Transform.GetChild(1) (Get Second Children)
    10.     [CacheMe("From Children/1*/Children 6", uSearch.InScene)]
    11.     public GameObject children6;
    12.  
    13.     //Get GameObjects by Multiple Paths in scene
    14.     //First Path "From Children/Children 5/Children 6"
    15.     //Second Path "From Parent/Parent 2/Parent 1 & Parent Other & <Parent Other/Main 2> & Parent 1/main"
    16.     [CacheMe("From Children/Children 5/Children 6 && From Parent/Parent 2/Parent 1 & Parent Other & <Parent Other/Main 2> & Parent 1/main", uSearch.InScene)]
    17.     public GameObject[] multiplePaths;
    Code (csharp):
    1.     //Get GameObject by Name in scene
    2.     [CacheMe("Me", uSearch.InSceneShort)]
    3.     public FromSibling sibling;
    4.  
    5.     //Get first found GameObject by not full Path in scene
    6.     [CacheMe("Parent 1/Main", uSearch.InSceneShort)]
    7.     public FromParent fromParent;
    8.  
    9.     //Get first found GameObject by Name in scene
    10.     [CacheMe("Children 6", uSearch.InSceneShort)]
    11.     public GameObject children6;
    12.  
    13.     //Get GameObjects by Multiple not full Paths in scene
    14.     //First Path "Children 5/Children 6"
    15.     //Second Path "Parent 2/Parent 1 & Parent Other & <Parent Other/Main 2> & Parent 1/main"
    16.     [CacheMe("Children 5/Children 6 && Parent 2/Parent 1 & Parent Other & <Parent Other/Main 2> & Parent 1/main", uSearch.InSceneShort)]
    17.     public GameObject[] multiplePaths;
    Code (csharp):
    1.     //Get GameObject by Path in children
    2.     [CacheMe("Children", uSearch.InTransform)]
    3.     public GameObject child;
    4.  
    5.     //Get GameObject by Path in children. "0*" = Transform.GetChild(0) (Get First Children)
    6.     [CacheMe("0*/Object", uSearch.InTransform)]
    7.     public GameObject @object;
    8.  
    9.     //Get GameObjects by Multiple Paths in children
    10.     [CacheMe("Children 2/Children 4 & <Children 4/Children 5 & Children 6 & Children 7 & <Children 7/Children 8 & Children 9>> & Children 3", uSearch.InTransform)]
    11.     public GameObject[] multiplePaths;
    Code (csharp):
    1.     //Get GameObject by Name in children
    2.     [CacheMe("Children", uSearch.InTransformShort)]
    3.     public GameObject child;
    4.  
    5.     //Get GameObject by Name in children
    6.     [CacheMe("Object", uSearch.InTransformShort)]
    7.     public GameObject @object;
    8.  
    9.     //Get GameObjects by Multiple not full Paths in children
    10.     [CacheMe("Children 4 & <Children 5 & Children 6 & Children 7 & <Children 7/Children 8 & Children 9>> & Children 3", uSearch.InTransformShort)]
    11.     public GameObject[] multiplePaths;
    Code (csharp):
    1.     //Get Prefabs by Paths from Project
    2.     [CacheMe("Advanced Game Developer/Components Cacher/Examples/Files/Prefab & Prefab2", uSearch.FromProject)]
    3.     public List<GameObject> prefabs;
    4.  
    5.     //Get Prefab by Path from Project
    6.     [CacheMe("Advanced Game Developer/Components Cacher/Examples/Files/Prefab/Children/1*", uSearch.FromProject)]
    7.     public GameObject[] prefabsCustom;
    8.  
    9.     //Get All Sprites by Path from Project
    10.     [CacheMe("Advanced Game Developer/Components Cacher/Examples/Files/Sprite", uSearch.FromProject)]
    11.     public Sprite[] spritesAll;
    12.  
    13.     //Get Custom Sprites by Path from Project
    14.     [CacheMe("Advanced Game Developer/Components Cacher/Examples/Files/Sprite/Sprite_0 | 3* | Sprite_5 | 7*", uSearch.FromProject)]
    15.     public Sprite[] spritesCustom;
    16.  
    17.     //Get All Prefabs from Folder by Path from Project
    18.     [CacheMe("Advanced Game Developer/Components Cacher/Examples/Files", uSearch.FromProject)]
    19.     public Transform[] prefabsFromFolder;
    Code (csharp):
    1.     //Get all MonoBehaviours with Tag "MainCamera" in scene
    2.     [CacheMe("MainCamera", uSearch.ByTag)]
    3.     public MonoBehaviour[] scripts;
    4.  
    5.     //Get all Transforms with Tag "EditorOnly" in scene
    6.     [CacheMe("3*", uSearch.ByTag)]
    7.     public Transform[] lines;
    8.  
    9.     //Get all GameObjects with Tags "MainCamera", "EditorOnly" in scene
    10.     [CacheMe("MainCamera & 3*", uSearch.ByTag)]
    11.     public GameObject[] gameObjects;
    Code (csharp):
    1.     //Get first found GameObject with Tag "Finish" in children
    2.     [CacheMe("Finish", uSearch.ByTagInChildren)]
    3.     public GameObject finish;
    4.  
    5.     //Get all GameObjects with Tag "Player" in children
    6.     [CacheMe("Player", uSearch.ByTagInChildren)]
    7.     public List<GameObject> players;
    8.  
    9.     //Get all GameObjects with Tag "MainCamera" in children
    10.     [CacheMe("Respawn", uSearch.ByTagInChildren)]
    11.     public GameObject[] respawns;
    12.  
    13.     //Get all Colliders with Tags "Finish", "Respawn", "Untagged" in children
    14.     [CacheMe("2* & Respawn & 0*", uSearch.ByTagInChildren)]
    15.     public Collider[] colliders;
    Code (csharp):
    1.     //Get first found GameObject with Tag "Untagged" in parents
    2.     [CacheMe("0*", uSearch.ByTagInParent)]
    3.     public GameObject untagged;
    4.  
    5.     //Get all GameObjects with Tag "Finish" in parents
    6.     [CacheMe("Finish", uSearch.ByTagInParent)]
    7.     public List<GameObject> finish;
    8.  
    9.     //Get all GameObjects with Tag "Respawn" in parents
    10.     [CacheMe("Respawn", uSearch.ByTagInParent)]
    11.     public GameObject[] respawns;
    12.  
    13.     //Get all Colliders with Tags "Untagged", "GameController" in parents
    14.     [CacheMe("Untagged & 6*", uSearch.ByTagInParent)]
    15.     public Collider[] colliders;
    Code (csharp):
    1.     //Get GameObject from self
    2.     [CacheMe] public GameObject self;
    3.  
    4.     //Get GameObject from self
    5.     [CacheMe] public GameObject[] selfMassive;
    6.  
    7.     //Get Transform from self
    8.     [CacheMe] public new List<Transform> transform;
    9.  
    10.     //Get first found Collider from self
    11.     [CacheMe] public new Collider collider;
    12.  
    13.     //Get All Colliders from self
    14.     [CacheMe] public Collider[] colliders;
    Code (csharp):
    1.     //Get first found GameObject in children
    2.     [CacheMe(uLocation.Children)]
    3.     public GameObject children;
    4.  
    5.     //Get all Transforms in children
    6.     [CacheMe(uLocation.Children)]
    7.     public List<Transform> allChildren;
    8.  
    9.     //Get first found Rigidbody in children
    10.     [CacheMe(uLocation.Children)]
    11.     public new Rigidbody rigidbody;
    12.  
    13.     //Get all Rigidbodies in children
    14.     [CacheMe(uLocation.Children)]
    15.     public Rigidbody[] rigidbodies;
    16.  
    17.     //Get all Active in Hierarchy Transforms in children
    18.     [CacheMe(uLocation.Children, uActive.ActiveInHierarchy)]
    19.     public Transform[] activeChildren;
    20.  
    21.     //Get all Inactive in Hierarchy Transforms in children
    22.     [CacheMe(uLocation.Children, uActive.InactiveInHierarchy)]
    23.     public Transform[] inactiveChildren;
    24.  
    25.     //Get First Depth Transforms in children (Children of Children not included)
    26.     [CacheMe(uLocation.Children, 1)]
    27.     public List<Transform> firstDepthChildren;
    Code (csharp):
    1.     //Get first found GameObject in sibling
    2.     [CacheMe(uLocation.Sibling)]
    3.     public GameObject sibling;
    4.  
    5.     //Get all GameObjects in sibling
    6.     [CacheMe(uLocation.Sibling)]
    7.     public List<GameObject> allSiblings;
    8.  
    9.     //Get First Depth GameObjects in sibling (Children of Siblings not included)
    10.     [CacheMe(uLocation.Sibling, 1)]
    11.     public GameObject[] siblingsFirstDepth;
     
    Last edited: Oct 22, 2019