Search Unity

ProBuilderVR

Discussion in 'EditorXR' started by karl_, Jan 25, 2017.

  1. karl_

    karl_

    Joined:
    Mar 4, 2010
    Posts:
    464
    Over the last few weeks we've been working on bringing some of the functionality of our 3d modeling plugin into EditorVR. Here's the latest work in progress:



    There are a few things I'd like to accomplish in the future that I'm struggling with; any suggestions on how to achieve these goals would be welcome.

    The tool selector rotating cube is a clunky interface. In our particular case we'd like to be able to swap between the Shape Creation tool and Translate Elements tool in a more fluid manner. Short of re-thinking that whole concept a stop-gap could be keeping a "Recent Tools" menu open near the controller.

    Ideally we'd have enough control over the editor environment to "own" both the controller and menus such that we could implement a more customized menu to swap between just the relevant tools. I think this would be possible already by creating an exclusive mode uber-tool that just wraps smaller tools, but that's not really in the spirit of the EditorVR code structure.

    Pursuant to the last bit, the selection and locomotion tools interfere with other tools. As far as I can tell there's not a good way to push a custom locomotion tool onto the stack that will override the default while still working with other tools on top. For example, we have a "Grab Locomotion" tool. I'd like to engage that tool on both controllers then open an editing tool on top of that. I've already mentioned my issues with the selection tool here.

    I'd also really like to see Undo implemented, but I'm sure that's something you're already working on!

    Overall it's been nice working with the EditorVR. The plumbing it provides made these first couple tools quite easy to build. I'm excited to see where it's heading in the future.
     
    gregroberts likes this.
  2. amirebrahimi_unity

    amirebrahimi_unity

    Joined:
    Aug 12, 2015
    Posts:
    400
    @karl_, Awesome work here. I'm happy to hear that it was easy to get your first couple of tools running. We've certainly made that a goal, so that any developer could hop in and create a tool within hours.

    Re: your recent tools suggestion, I suppose you mean a planar menu that would show? Currently, we have a single tool button that shows up below at the base of the controller, but we could expand that to have the last 2-3 tools (or N once we get some config settings) that were last used. Would that suffice?

    Seprate from that -- the main menu is just one implementation of IMainMenu. Our original idea is that others may want to experiment with their own menu systems and that any user could swap between them. However, we also know that most devs simply want to get their tools up and running and not customize the rest of the system.

    There are some other options available to you though - you could implement IUsesRayOrigin + ISelectTool with your specific tool types to provide a way to swap between your tools.

    Your mention of IExclusiveMode would work to disable all built-in tools, but your idea of an uber tool w/ sub-tools can also work without necessarily using IExclusiveMode. These would be modes of your main tool, so you'd need your own interface to switch between them. If your tools can stand on their own, then it's likely they should be separate tools though. I'm interested in hearing more about what control you'd want over the main menu and the controller. I'll DM you separately.

    Re: your other point about the selection tool and locomotion tools getting in the way, there are many ways we could go about making that more controllable. Because the stack currently only allows a single custom tool at a time on each hand it wouldn't be possible to stack a custom locomotion tool + your other tools on top currently. We're open to having tools stacked on top, but there are issues of button consumption + the UX for allowing users to manage what is on their stack. However, one solution would be to detect that an ILocomotor was being added and disable any of the same type below in the stack.
     
    Last edited: Jan 26, 2017
  3. karl_

    karl_

    Joined:
    Mar 4, 2010
    Posts:
    464
    Last edited: Feb 28, 2017
    gregroberts likes this.
  4. amirebrahimi_unity

    amirebrahimi_unity

    Joined:
    Aug 12, 2015
    Posts:
    400
    @karl_, I tried out the complete package and couldn't get much to work. Is this currently Vive only?
     
  5. pb_karl

    pb_karl

    Joined:
    Apr 19, 2015
    Posts:
    1
    @amirebrahimi_unity We worked with both Vive and Oculus, though I mostly used a Vive during development. I'll double-check the Oculus today.
     
  6. karl_

    karl_

    Joined:
    Mar 4, 2010
    Posts:
    464
    Was it that the menu and tools weren't showing up, or just that the tools themselves didn't do anything in scene?
     
  7. amirebrahimi_unity

    amirebrahimi_unity

    Joined:
    Aug 12, 2015
    Posts:
    400
    Tools didn't do anything in the scene. When I spawned them a UI showed up along my right hand near my thumb.
     
  8. karl_

    karl_

    Joined:
    Mar 4, 2010
    Posts:
    464
    Was that using Unity 5.4.3 with the ProBuilderVR package that bundles dependencies, or from source?
     
  9. amirebrahimi_unity

    amirebrahimi_unity

    Joined:
    Aug 12, 2015
    Posts:
    400
    Using the 5.4x3 custom build w/ all the dependencies