Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 jtsmith1287 · Sep 08, 2014 at 09:13 PM · c#dynamic

C# -- Build character unit from script

So, my question is of efficiency, and whether it's smart. We're designing a game that will potentially have hundreds of "characters" to choose from... I guess like a MOBA... so they're all very similar and the only variance is animation/model/material/skills/stats/sounds. Lol, ok so the only similarity is the control and backend work. So, we'd like to just have one prefab set up with controlls and all that lower level stuff, and then have all the other components added on at runtime based on the character the player has chosen. This would be in contrast to having 100+ prefabs all slapped into a resources folder.

So, is this a good idea? It's A LOT to load via scripts and requires careful planning to get everything loaded correctly. The plus side is that adding new characters would be a breeze and our Assets directory would be quite a bit smaller. We realize that if we didn't load dynamically, any changes we'd make to the character structure would have to be manually changed on eeevverryyy one manually. We're pretty new at this though, so the pros/cons are hard to measure. Thoughts please? Thanks.

Comment
Add comment · Show 2
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 robertbu · Sep 08, 2014 at 09:57 PM 0
Share

Unity Forums is a better place for a discussion/opinion question like this one.

avatar image IvovdMarel · Sep 08, 2014 at 11:03 PM 0
Share

Definitely don't duplicate your prefab 100 times if the backend is pretty much the same. Having said that, you'll have to do some thorough research on what exactly it is that is the same and different. Are the animations very different (e.g. require different gameobjects, different bones, etc) or similar enough to simply change the animation? Same goes for all other things you mention.

Perhaps trying it with 3 models that are as different as you imagine it will get and see if you can use one model for them will help. You might run into problems you won't be able to think of at this time.

Pro of doing it with one prefab: You can store all the data in a JSON-file or database and load the data dynamically from the server (allowing live updates to your game). As you mentioned, base changes are done easily.

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Cherno · Sep 08, 2014 at 11:10 PM

If you want to use only 1 rig with different meshes, have a look at these two threads:

http://answers.unity3d.com/questions/44355/shared-skeleton-and-animation-state.html http://answers.unity3d.com/questions/668332/weightless-bones-dont-get-added-to-skinnedmeshrend.html

Comment
Add comment · 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

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

24 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

Related Questions

C# Randomly Adding Elements from stringListA to stringListB 1 Answer

C# Input.GetKey("Tab") Double Tap 1 Answer

C# Adding Multiple Elements to a List on One Line 5 Answers

Null in GetValidMethodInfo 0 Answers

C# Unity 3d Don't Destroy Class On Load 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