• 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
6
Question by psyfreak · Apr 16, 2011 at 01:57 PM · namespace

Namespace - Still a problem?

Unity Doc: 5. Don't use namespaces.

Unity doesn't support placing your scripts inside of a namespace at the moment. This requirement will be removed in a future version.

Can anyone explain me please which cases are critical? I used namespaces without errors. I have the strong feeling that this is obsolet?!

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

3 Replies

· Add your reply
  • Sort: 
avatar image
8

Answer by Bunny83 · Apr 16, 2011 at 02:35 PM

Well, i see the problem with functions like GetComponent(). If you place a class in your own namespace it can't be found only be the classname. You would need to specify the full qualified name Namespace.Classname but that's not supported by Unity at the moment. If I place a script (a class derived from MonoBehaviour) in a namespace Unity complains the file name doesn't match the class name if i try to attach it to a gameobject. All the docs are referring to belongs to "scripts". Custom classes (that don't derive from MonoBehaviour) are absolutely no problem since that's just plain .Net / mono.

It's also no problem if you have a base class (that is derived from MonoBehaviour) in a namespace and you inherit a public class from this one.

That script will work as long as the filename matches "Class1". That class can be attached to a GameObject but the Base class can't.

public class Class1 : MyTest.Base { }

namespace MyTest { public class Base : MonoBehaviour {

 }

}


edit
If you write a seperate C# dll you can use as many namespaces as you want. It seems Unity imports classes from DLLs into the global namespace.
I just tried it ;)

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
avatar image
1

Answer by Ashkan_gc · Apr 16, 2011 at 02:08 PM

i saw that the editor scripts from Unity technologies or it's staff use namespaces safely but i think if you create components in namespaces to use in your game (runtime of the player), it's problematic however i never tried to do this exactly for the reason of that text in unity's scripting documentation. i did not see any change to that thing in release notes of unity in any version so we should think that the limitation is still available.

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
avatar image
0

Answer by psyfreak · Apr 18, 2011 at 09:41 AM

cool thank your for your extensive answers.

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

No one has followed this question yet.

Related Questions

Which namespaces are supported in each platform? 1 Answer

private void GenerateUV (Decal) {The type or namespace 'Decal could not be found (are you missing a using directive or an assembley referance?) 0 Answers

Unity 4.0 warning about "The class defined in script file name 'X' does not match the file name!" when using namespaces 2 Answers

Preventing namespace errors and other anomalies 0 Answers

The type or namespace name could not be found. Are you missing a using directive or an assembly reference? 4 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