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 /
  • Help Room /
avatar image
0
Question by HoloGuy · Jul 03, 2017 at 10:10 PM · editorserializationpatternfolders

Factories, serialization and the editor

Hi guys!

I've got a question regarding the project I'm currently working on. I'll try to describe the problem as exact as possible and maybe you can tell me your ideas on that:

I have an environment model, consisting of a Model-class which is responsible for adding and removing objects to the environment representation. These objects are empty GameObjects at first and the Model keeps track of them by storing them in a list. When an object is created, it is put into the appropriate subtree in the hierarchy. Means: If I want to create an object of type "car", it is created in Environment/Cars/Car#.

The actual creation of objects (such as cars) is done by a factory class. In the case of the cars, it is the car factory of course. The car factory gets all data from my data model and when a new car is detected, it is responsible for creating a new car object in the environment model. The object created by the factory now updates itself with it's new position, rotation, etc. by polling the data model until it is destroyed by the factory again.

This is the current state in my project now. The implementation is done so far and its working well.

Every object in the environment model should then be able to have components attached which add different skills to the objects, for example: Visualization of speeds, etc. Because these skills should be configured the same for a single type of object, I want another factory to attach them. Let's say all cars should have a red outline and all pedestrians should have a green. The factory now adds an outline component with configuration "red" to all newly created cars and one with configuration "green" to all pedestrians. For obvious reasons, I want to be able to configure this at a single point in the editor, ideally in the factory creating these objects (the car factory and the pedestrian factory).

To be able to add new components later easily, I don't want to have to implement these things twice: In the actual factory for the module and the factory creating the objects. So here is my idea:

The folder with the modules is scanned by Unity using GetFiles() or some .NET method. For each found class, the public (and serialized) fields, such as color, are somehow received (maybe using reflection) and (here is the difficulty!) automatically listed in all the factories where I can enable the module and configure it.

Example: For the outline module, a checkbox automatically appears in the car and in the pedestrian factory. Enabling the checkbox makes the factory add this module to it's created object. The outline module consists of the field "Color" which can be configured in these factories. I thought about writing a custom property drawer, so I can set the properties for each module.

This means: I have to get all classes in the modules folder and register them somehow in a serialized class which is displayed with a custom property drawer as a field in my factories. Is this even possible? Suggestions how to solve this are deeply appreciated.

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

0 Replies

· Add your reply
  • Sort: 

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

125 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 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

UnityEvent with all derived types in listeners serialized in Inspector 0 Answers

Array of custom classes not saving to Playmode 0 Answers

Enemy Spawn System Glitch 0 Answers

Unity custom class array serialization issue. 0 Answers

UnityEvent Generic (Inspector Serialization) 0 Answers


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