Home Technical Talk

Unity Questions

polycounter lvl 17
Offline / Send Message
Jesse Moody polycounter lvl 17
So I've never really worked or even opened Unity for that matter and now having to dive right in I have a ton of questions.

Basically some features that are in UDK / Unreal that I would like to find out if they are in Unity or if there are similiar work arounds with it.

So on with the questions.

1.) Q: Can multiple people work inside a unity map / level like in UDK.
Ex. I create a persistent map titled RaceTrack_P and then add in RaceTrack_GEO (for all the geometry in the map), RaceTrack_LIGHTS, RaceTrack_GP (for gameplay, kisment, etc)

Basically I want to be able to do the geo and lights together while another person does the gameplay / scripting part.


Currently I have to hand everything off to the other person and wait until they are done before I can make more changes.



A:
G3L wrote: »
Don't know if this has been mentioned before but what me and others do at my studio (since we have that same problem of not being able to work on map layers like Unreal allows us to) we'll have different layers of gameobjects in the hierarchy.

For example all the design stuff goes in the design gameobject (paths, specific designer assets, designer scripts, etc), another one called data (for persistant game data and certain scripts), UI (pretty self-explanatory) and of course environment (prefabs of art assets essentially with triggers and collision tossed in there).

with that set up, say I'm working on a level named "Level A"...now I can open up "Level A" on my pc and access the environment gameobject with all of the art assets and my buddy can be working on the design end on the design gameobject.

I do my work locally and once I'm done with my pass on art, I then take the entire environment gameobject and paste that into a new .unity file named "Level A Art" and export out just the level and not the prefabs (unless I made any changes to a specific prefab) and from there I access the main computer we're merging our stuff into, import the package I exported from my machine, take the environment game object from "Level A Art" and paste that into "Level A," and now the art is updated for that Level and anyone who syncs to latest content will get the latest changes I merged.

Yeah, there's definitely some drawbacks to this method and some pros (such as programmer, designer and art being able to work on the same map at the same time if need be) but that's the way we've figured our way around this missing feature in Unity.

Hopefully that was clear enough and might help in some way ?



2.) Can you change the mouse movement controls in Unity to act more like UDK?


More questions to come. I'll update this first post as they get answered.

Replies

  • bugo
    Offline / Send Message
    bugo polycounter lvl 17
    no, I don't think you can, unfortunately. I think you will have to copy over the lights etc. But that's my experience, maybe someone knows a plugin or something.

    If you have a server, and multiple people are working on the files it might corrupt the whole thing. Unless you use a SVN system or Unity Asset Server itself.

    You won't be able to save the scene separately tho. Whoever has the scene can move objects and light, the other people will only be able to update scripts, textures, etc.
    And that will be automatically updating. Believe me, that's not a good option if your scene is heavy.
  • Axios
    Offline / Send Message
    Axios polycounter lvl 10
    I don't know if there's a specific system in place for that, but you can do it through prefabs. Just create a prefab "RaceTrack_GEO" etc, and apply that in your main scene. From there you can update that prefab externally just as you would an Unreal level to update the main scene so long as the prefab connection remains intact.
  • Farfarer
    No, but as Axios said, you can edit prefabs.

    There's support in the Pro version for hooking the project up to a CVS type system, too.
  • Jesse Moody
    Offline / Send Message
    Jesse Moody polycounter lvl 17
    Yeah using full pro dev version.

    So if I understand right. I can say take my Track level, geometry for the terrain, track, side of the track stuff, props, etc and lay it all out in the level as i need and save it all as a giant prefab?

    Then I can also do this for lighting?

    After this is done I can then load a level where the designer or programmer can then edit code, scripts, etc while I make changes to the prefab?
  • kio
    Offline / Send Message
    kio polycounter lvl 15
    well you have to setup your lighting and all the other stuff in prefabs. sadly the beast settings are saved in the scene.

    so for example you can add a Props Prefab in your Production Scene and check in. Now create a work scene and place all the stuff where you want it. when youre done overwrite the prefab you have created before with your new stuff (make new empty game object paste everything - now drag&drop the gameobject to your prefab in project view).

    but remember - prefab in prefab dont get updated, which sucks hard (called nested prefabs).

    but looking at their 2011 roadmap - it seams like theyre already after fixing all this crap and implement colaborative scene handling and the like..

    edit: well yeah - use a work scene and update the gigangtic level prefab ;)
  • Richard Kain
    Offline / Send Message
    Richard Kain polycounter lvl 18
    If I were you, I would look up some articles on Component-based design. This is the model that Unity utilizes in its general structure. Understanding component design principles will help you wrap your head around how Unity works, and will help you to keep your Unity projects efficient.

    The good thing about component design is that it tends to be very good for rapid prototyping. (one of Unity's biggest strengths) It also responds well to data-driven design, and incorporating external scripting into games. (such as XML or LUA)
  • gsokol
    Another thing you could do is pass around asset bundles.

    So, if your coder kinda owns the unity project, and your doing arts, you can take your stuff, create a unity package, and pass it to him. Then when he/she opens that package, it will place everything in the same location within the directory that you had them in.

    Not sure how you would go about making changes, you would have to see if sending a new asset bundle with over-wright the existing files with the same names. If it does though, that would be a good solution.
  • commander_keen
    Offline / Send Message
    commander_keen polycounter lvl 18
    Yeah theres nothing currently implemented for this. It is confirmed to be a feature in one of the next 2 updates though. I think you could probably setup a layer based editing system with editor scripts and LoadLevelAdditive though.
  • Axios
    Offline / Send Message
    Axios polycounter lvl 10
    Yeah using full pro dev version.

    So if I understand right. I can say take my Track level, geometry for the terrain, track, side of the track stuff, props, etc and lay it all out in the level as i need and save it all as a giant prefab?

    Then I can also do this for lighting?

    After this is done I can then load a level where the designer or programmer can then edit code, scripts, etc while I make changes to the prefab?

    Yeah, that's pretty much how I did it and it was the simplest option for me outside of taking turns with a scene or manually copying assets. Stuff to keep in mind would be anything that is saved in the scene itself, such as beast or render settings. Additionally, connections to lightmaps are scene dependent, so while you can bake outside of the scene (obviously saves a lot of time) you'll need to edit the main scene to attach the lightmaps afterwards. Prefabs are a good workaround and are serviceable for collaborative development but clearly are not ideal.
  • G3L
    Offline / Send Message
    G3L polycounter lvl 9
    Don't know if this has been mentioned before but what me and others do at my studio (since we have that same problem of not being able to work on map layers like Unreal allows us to) we'll have different layers of gameobjects in the hierarchy.

    For example all the design stuff goes in the design gameobject (paths, specific designer assets, designer scripts, etc), another one called data (for persistant game data and certain scripts), UI (pretty self-explanatory) and of course environment (prefabs of art assets essentially with triggers and collision tossed in there).

    with that set up, say I'm working on a level named "Level A"...now I can open up "Level A" on my pc and access the environment gameobject with all of the art assets and my buddy can be working on the design end on the design gameobject.

    I do my work locally and once I'm done with my pass on art, I then take the entire environment gameobject and paste that into a new .unity file named "Level A Art" and export out just the level and not the prefabs (unless I made any changes to a specific prefab) and from there I access the main computer we're merging our stuff into, import the package I exported from my machine, take the environment game object from "Level A Art" and paste that into "Level A," and now the art is updated for that Level and anyone who syncs to latest content will get the latest changes I merged.

    Yeah, there's definitely some drawbacks to this method and some pros (such as programmer, designer and art being able to work on the same map at the same time if need be) but that's the way we've figured our way around this missing feature in Unity.

    Hopefully that was clear enough and might help in some way ?
  • osman
    Offline / Send Message
    osman polycounter lvl 18
    They are planning to implement this in 3.5, this is from the roadmap blog-post they made:
    Text-based scene/prefab/… format
    Unity will now write all data in a text-based file format for scenes, prefabs, materials and other binary files in your project folder. The format is based on YAML and is optimized for being easy to merge. Multiple team members can work on a scene at the same time and merge the resulting changes afterwards.

    Here's the link: ROADMAP 2011

    Until then, you're stuck with the prefab trick etc.
  • Ged
    Offline / Send Message
    Ged interpolator
    sounds interesting g3l, someone should do a short tutorial on this, my workmates have been trying to use 1 unity file on a server at the same time(1 doing art 1 doing code) and Im pretty sure its not working quite right.
  • Jesse Moody
    Offline / Send Message
    Jesse Moody polycounter lvl 17
    Ok new question added.

    Can you change the mouse movement controls in Unity to act more like UDK?
  • equil
    the editor camera? unfortunately no, the controls themself are out of reach for the common user iirc. I think you can move it and do some stuff with camera.current, assuming the scene view is the active view, but i'm pretty sure you can't override the default controls.
  • G3L
    Offline / Send Message
    G3L polycounter lvl 9
    in case some hadn't noticed because i know i did until later in the production cycle, a lot of the movement and hotkeys from maya apply to unity. for example vertex snapping in maya works the same in unity although i've found that some meshes don't want to cooperate. from what i gain meshes in the hierarchy that are under a gameobject cannot use the vertex snapping method. i just tried it on different meshes and that was the conclusion i've come up with.

    the unity documentation doesn't have any mention of this and i think it might be something important worth noting for people not to get all frustrated with ><
  • Campaignjunkie
    Offline / Send Message
    Campaignjunkie polycounter lvl 18
    Real-time collab was being worked-on as an editor plug-in ( http://blog.m2h.nl/search/label/UnityCollab ) but I think it's still pretty far from being usable.
Sign In or Register to comment.