Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make SearchUtilities.Find work with inactive objects (make it work the same as GameObject.Find) #845

Open
JohnCorby opened this issue Apr 17, 2024 · 1 comment
Labels
bug Something isn't working nice to have Features that could be implemented maybe

Comments

@JohnCorby
Copy link
Member

JohnCorby commented Apr 17, 2024

now that owrigidbodys are not unparented until after a frame, most addon paths are wrong (start with body name instead of SolarSystemRoot/whatever_body, and anglerfish are worse) and so search will occur only on the name.
this has already broken some things, such as solar rangers using owlk gameobjects from band together

this can either be fixed by manually checking against those certain paths and making them resolve correctly, or more accurately, by supporting partial paths.
currently gameobject.find does this, but the inactive version does not, and we really should at this point. it wouldnt be that much slower than searching by only name (just get the leaf name and go up the parent or get the root and go down the child. unity docs suggests it does the former idk where i got that from)
we can benchmark this probably

then we can just be exactly the same as gameobject.find except working with inactive objects too.

implementation

top down

  • find all objects with name path[0]
  • try transform.find to path[length-1] until it works
    or manually traverse down child but i imagine that is slower

bottom up

  • find all objects with name path[lenth-1]
  • traverse up
  • this sounds slower cuz manual traverse
    also current implementation is top down already, all thats really needed is making it search all objects instead of just root objects
    also this means u can remove the step where it search for object by name. can just do gameobject.find first and if that doesnt work do this good way

okay so do top down thats like way easy and good

@JohnCorby JohnCorby added the nice to have Features that could be implemented maybe label Apr 17, 2024
@JohnCorby JohnCorby self-assigned this Apr 17, 2024
@JohnCorby JohnCorby added the bug Something isn't working label Apr 17, 2024
@JohnCorby
Copy link
Member Author

probably like a 5 line change LOL

@JohnCorby JohnCorby removed their assignment Jan 6, 2025
@JohnCorby JohnCorby changed the title SearchUtilities.Find feature parity with GameObject.Find make SearchUtilities.Find work with inactive objects (make it work the same as GameObject.Find) Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working nice to have Features that could be implemented maybe
Projects
None yet
Development

No branches or pull requests

1 participant