Some 3D applications, especially for kiosks, training, and trade show displays, require multiple screens in sync. Since Mac OS X and Windows both support display spanning, it would be great to see Unity support it too, in some simple way. Two ways I can think to make this work: 1. A way, within Unity scripting, to get a list of all available displays and pick any one. One of the options would be "all"--meaning a Unity window big enough to cover the whole span of all currently connected displays. (Even if some parts of that span are hidden--which can happen if the span includes displays of different sizes.) Then, within that Unity window, you could use existing methods to split into multiple views from different cameras. This would be awkward, but it would make it possible to have a different camera showing on each screen. At least it might be easy for OTEE to implement? Just make a bigger window, and nothing else about Unity has to be aware of the change? 2. Better solution: allow scripting to specify which screen each camera renders to. Then, within that screen, everything would work normally--GUI layers, etc. It might be nice to set up named displays for the project--just like you set up named input axes. For instance, a project might have displays named "Main," and "Secondary," or "Front," "Rear," "Left," and "Right." Scripts could then refer to those displays by those names--and each camera could specify which named display to use. In the absence of enough displays, Unity should gracefully simply fail to render those cameras. Thus, a Unity app could use 2 displays if available, but make do with 1 otherwise. Much like the Input Settings list, each named display could have a popup to help Unity choose which screen to default to for that display. Choices might be things like: Main OS Screen (menu bar screen) Largest Screen Smallest Screen Screen 1 Screen 2 Screen 3 Screen 4 The startup dialog could let the user choose the config they want to use--what monitor to use for "Front," "Rear," etc.--or that could be left to the Unity programmer to implement. (I imagine this could help with 3D goggles as well.)
I'd be pretty interesting in just getting the Unity IDE using multiple monitors. Opening a game view on one monitor, with the rest of the panes on the other would be cool. I suppose I could just pull out the window to extend over both screens...
Off-topic -- with the increasing prevalance of wide-screen monitors, I'd like a utility which allowed me to treat a single monitor as two monitors (e.g. split my 1680x1050 display into 1050x1050 and 530x1050 "virtual" displays -- then be able to "maximize" windows to one part of the display only. I'm currently looking at this page on a 1680 pixel wide display with 2/3 of the page WHITE.
Good idea, I never thought about whether you could split panes off as separate windows or not. That would be a big help once I have 2 displays. (Re maximizing... I'd settle for every app having a truly INTELLIGENT maximize. I like that OS X doesn't blindly maximize to the full screen if that means wasted space. It maximizes to show all the content. But that decision is up to the app, and a lot of apps are pretty poor about that. Safari included. Safari maximizes this editing screen to about half the screen, which is about perfect. But then if I go to a site that COULD show much wider (like the non-editing forum pages), it should maximize really big, and it doesn't.)
I was going to reply with at "You can already do that in Unity" until I noticed it was a OS-level utility you were looking for. ... I like the idea, although I have no idea how or if this is possible. ... btw. the maximise in most Mac apps does not make the window fill the entire screen, but rather tries to find the maximum size the contents of the window will fit in. It doesn't always work as I want it to, but it is ususally better thant filling the screen with white background.
Excellent! That's a great start for some things. And occasionally it could even have an advantage over specifying a screen for each camera: with this method, ONE camera can span several screens, if all you really want is an extra large display.
Add my vote for putting the GAME view on a 2nd monitor. It would really help me (since I'm on a laptop) to be able to put my game view on the 2nd monitor (in my case a TV) while doing all of the editing work on the laptop.
Dual screen support in the Unity editor for the game/scene views... excellent idea! Make the 3D viewport detachable to move to a second screen. Dual screen support at run-time seems very niche, but awesome for people like me. I drool at the idea of having two viewports set to two separate screens. For VJing I could have GUI controls on screen 1 and project the Scene on screen 2. Not sure how useful this would be for general gaming though?
Not necessary (but fun) for general gaming... but VITAL for some kinds of museum, training, and simulation work.
I don't see how dual monitor support is 'niche' to anybody who has 2 monitors. Not only that, if doing development for games that will ultimately be played on a TV it is essential to be able to use the TV as a persistent 'game view' Any idea if this is in the cards guys?
Yeah, but displaying the game onto a second monitor would still be only one screen, so that's not really dual monitor support, it's just choosing which single screen of these two monitors to display the game... similar to choosing which screen to play a movie in QuickTime at fullscreen. I've never seen a game that requires two simultaneous monitors each displaying separate data at the same time, so that does sound rather rare/niche. But it would be cool for the above mentioned kiosks and VJ implementations. For the Unity editor it would be awesome to be able to detach a panel (the scene or game view) and drag it over to a second monitor. I'm hooked on using 2 monitors for most work I do and it would be great to have this in Unity. It would be so nice to simply shove the game view over to the second monitor in fullscreen. It would free up a lot of screen real estate.
>>I've never seen a game that requires two simultaneous monitors each >>displaying separate data at the same time nintendo ds yeah ok that's a lil different beast all together... though i could see some cool 2 player games like Time Trial (? not sure if that's the name - it was an arcade shooter with a gun you shot at a screen. fun one though. you pressed a foot plate to duck and stuff like that. namco?)
Lol, whoops, yeah the DS! But that's kinda built into the whole ethos of the platform, not the same as a general "PC" (macs included) game where maybe 5% of the users would have a dual monitor setup. Nah, that seems more like a fundamental GUI implementation than a Pro only feature.
Good points, but I think what I meant is more what you are describing. That is, 'detaching' the game view from the main editor window and using the 2nd monitor for the 'game view' only. The main thing I would love is to have my 'work' window where I show all of the 'editor' stuff (scene view, project, inspector, etc) and then the 2nd monitor just used full time to display the GAME when it is run. That would be awesome. But, yeah - just being able to 'detach' one of the window panels would be almost exactly the same. One thing that I think would be cool about it is that if/when Unity supports consoles we can directly test the video output in full screen on a consumer grade TV.
I would also love to see better multimontor support. As a first step I would like to automatically lock my mouse to the main display screen when in full screen game playing. Currently the mouse can go to the second monitor which is confusing. Better would be to allow us to develop games that span multiple monitors, as has been mentioned this might work best if cameras could be assigned to a particular monitor. I could also see the need to use 1 camera and span over 3 monitors for a flight simulator, but I suppose this could be done with 1 main camera and 2 sub cameras. The screen.width and screen.height would need to be updated so that we can ask for a particular displays width and height and get a screen count.