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 moreyes · Jul 23, 2013 at 02:57 PM · c#namingbest-practices

Best practices for naming classes in a library.

If I'm developing a script for the Asset Store, and it has a C# class named Item (to use a dummy example), and since Unity doesn't support namespaces, this class name could eventually collide with a class name defined by the user of the asset, or even another Asset Store script included in the same project, right?

If so, should I always name top-level classes using a vendor prefix that makes it more unique (like, e.g., mycompanyItem)? Or what are the conventions and solutions to avoid name clashes with other Asset Store or user scripts?

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

2 Replies

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

Answer by Jake.OConnor · Jul 23, 2013 at 03:02 PM

Every programmer and company has their own naming conventions. My company, and I know a lot of other companies as well, often prefix our classes with our abbreviation.

For example, a recent environment manager rewrite that I performed was named BLSEnvironmentManager as to not conflict with HVSEnvironmentManager. This will also group all of your classes together in whatever auto-completion the user's IDE is.

Comment
Add comment · Show 2 · 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 moreyes · Jul 23, 2013 at 03:22 PM 0
Share

That's what I thought. Looking at the script file names in the asset store, it looks like many people don't care about possible name clashes though.

avatar image Jake.OConnor · Jul 23, 2013 at 03:24 PM 1
Share

You are correct. You've also got to take into consideration that about 60% of the stuff that goes into the asset store is crap.

avatar image
1

Answer by Jamora · Jul 23, 2013 at 03:00 PM

Unity 4 has limited support for namespaces, as explored in this Answer. I've personally used namespaces in my U4 project and everything has worked fine.

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 moreyes · Jul 23, 2013 at 03:28 PM 0
Share

Namespaces look like a gray area with some corner cases. And when you are targeting the Asset Store, I'm inclined to think that they should be ignored in order to avoid surprises and achieve reasonable compatibility.

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

17 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

Related Questions

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

Any reason not to use namespace for scripts for asset store 0 Answers

Renderer on object disabled after level reload 1 Answer

A smarter way to create a state machine within a state machine 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