Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Unity5.x Extensions - creating separate assembly for each project module e.g. NGUI

Discussion in 'General Discussion' started by JesOb, Jun 6, 2014.

?

Do you need Extension ability in Unity

  1. I am small/mobile game developer and I absolutely need th

    68.8%
  2. I am small/mobile game developer and I don't need this

    6.3%
  3. I am big/AAA game developer and I absolutely need this

    12.5%
  4. I am big/AAA game developer and I don't need this

    6.3%
  5. I don't care

    18.8%
Multiple votes are allowed.
  1. JesOb

    JesOb

    Joined:
    Sep 3, 2012
    Posts:
    1,081
    Unity 5.0 positioned as AAA Engine but still now we cannot split Big project to separate modules.

    We need ability to create Folder inside project named like Assets/Extensions/NGUI.ext so Unity determine it as a separate module(Extension) and compile all internal scripts to Assets/Extensions/NGUI.ext/NGUI.dll and Assets/Extensions/NGUI.ext/NGUI.Editor.dll
    In editor we can always write something like: GetExtensionPath( typeof(UISprite) ) and receive "Assets/Extensions/NGUI.ext/". So any editor can use this path to access some editor UI textures etc. and everyone can move NGUI.ext folder in any subfolder of project.

    All this lead to smaller built times when scripts changed. And every team can split game into separate modules for better maintaining, encapsulation, dependency elimination, etc.

    Additionally in Assets/Extensions/NGUI.ext.meta can be stored info about module dependencies (which dll depends in which), and if Module was imported from asset store meta can contain asset store link and inspector of Assets/Extensions/NGUI.ext directory can have desciption of extension, Update Version button, configuration of extension like recompile on platform change or not, exclude ext form some platforms, which compiler to use for compile extension (so we can easily add module written on F# or any other language we want)...

    With such approach we don't need magic UnityiOS, Android, StandartAssets... folders and delivering sources of extension on asset store it's about just adding Sources Folder (with all scripts) inside Assets/Extensions/NGUI.ext/ folder.

    Vote on Unity Feedback
     
  2. WVlad

    WVlad

    Joined:
    Apr 5, 2013
    Posts:
    68
    Seems to be like GAC for shared project parts. Bad idea. Use symlinks.
     
  3. zaidite19

    zaidite19

    Joined:
    Mar 13, 2014
    Posts:
    1
    Support for separate modules - a necessary thing. In other IDE it realized, and I use it. For example in IntellijeIdea by JetBrains. I use separete modules in my ActionScript projects.
     
  4. KyleStaves

    KyleStaves

    Joined:
    Nov 4, 2009
    Posts:
    821
    Or use SVN externals or GIT submodules so that you can maintain the shared code across multiple environments trivially and, if needed, halt a specific project at a specific revision of the shared code (so that when you put a project out to pasture you can still support it without having to make sure it works/looks good with the latest and greatest tool chain every time you need to do a 30 minute bug fix for a user).

    That doesn't really do anything to address what the OP is asking for though.
     
  5. JesOb

    JesOb

    Joined:
    Sep 3, 2012
    Posts:
    1,081
    It is absolutely not like GAC and symbolic links don't help there.
    If you read first post you can understand that :)
     
  6. Deni35

    Deni35

    Joined:
    Jul 10, 2012
    Posts:
    43
  7. Breyer

    Breyer

    Joined:
    Nov 10, 2012
    Posts:
    412
    If you mean custom editor extension, then as far as i know this is possible since 4.6 look into this directory (on windows not sure how look this on mac) C:\Program Files\Unity\Editor\Data\UnityExtensions\Unity there you have uGUI (called GUISystem)
     
  8. Deni35

    Deni35

    Joined:
    Jul 10, 2012
    Posts:
    43
    If I understand correctly Extension can be only DLL.
    Can I put assets into DLL?