Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by kolboch · Jan 17, 2019 at 01:17 PM · scripting beginner

Scene tree text generation

Hello, Is it possible to read the list of objects in the scene and for each collect information about their components, its names and what other objects are assigned to them. Ex. Scene --> CameraPrefabName ---> CameraScriptName ----> ScriptVariableName - value 10 ---> OtherPrefabName etc.

Where in the example i have Camera object with name of CameraPrefabName, it has assigned script with name CameraScriptName and that script can have publicly assigned some variable ScriptVariableName and at the time of generation the value was 10.

Thanks in advance. I would be thankful where to start so I would be able to write it by myself. If there is existing solution it would be perfect. I need that in order to improve changing package importing as on upgrade I have to delete previous package and somestuff is hard to get back later (no names for missing scripts etc.)

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Dinosaurs · Jan 17, 2019 at 02:35 PM

To get all the game objects in a scene, you can use Scene.GetRootGameObjects()

For example:

 GameObject[] allGameObjects = SceneManager.GetActiveScene().GetRootGameObjects();

will get you an array of all the gameobjects at the root of the scene. You can then use Transform.GetChild() and Transform.childCount to iterate over all their children.


If you want to get all the components on an object, you can use GetComponents() to get an array of all of them.

 Component[] allComponents = gameObject.GetComponents<Component>();


To get the properties of the components will be a little trickier; you'll likely need to use reflection. Something like this:

 public Component component;
 ...
 PropertyInfo[] properties = component.GetType().GetProperties();
 foreach(PropertyInfo prop in properties)
 {
     Debug.Log(prop.Name + " : " + prop.GetValue(component);
 }
Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image kolboch · Jan 18, 2019 at 04:26 PM 0
Share

I was trying to write parser of .unity file and scannig all .meta files in the project (guid), but indeed this approach will be faster. For someone interesting in parsing I was able to find guid in meta description of every file but did not figure out why ex. prefabs do not have m_Name in their description (probably connected somehow with fileID field).
Thanks again for that solution !

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

102 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Disable the EventTrigger or Box Collider via C# Script 2 Answers

Inherit functions that work properly 1 Answer

How to grab, store and reference an objects position on trigger? 1 Answer

Making a button appear on a specific state? 1 Answer

Can't seem to get dash cooldown working... 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges