Is it possible to do some tasks during in full screen unity app? I mean like below
Screen1: running unity’s some app.exe in fullscreen
Screen2: do something, ie. web browsing, seeing log and so on.
I could launch app in fullscreen, but when I do something on Screen2, Screen1’s app switch to min window mode. So in unity’s current specification, it’s impossible to do something in other window?
Hi, the answer is no. But you can start your app in window mode, without border, set the position and resolution to fit the target monitor (enable run in background player property). I have used this many times.
You can do this via Windows Native Methods, you can send messages to window handle to set position, size and other properties. See code below.
Note: I am using external (controller) application to do this.
/// <summary>
/// Changes the size, position, and Z order of a child, pop-up, or top-level window. These windows
/// are ordered according to their appearance on the screen.
/// The topmost window receives the highest rank and is the first window in the Z order.
/// </summary>
/// <param name="hWnd">A handle to the window.</param>
/// <param name="handle">A handle to the window to precede the positioned window in the Z order.</param>
/// <param name="x">The new position of the left side of the window, in client coordinates.</param>
/// <param name="y">The new position of the top of the window, in client coordinates.</param>
/// <param name="cx">The new width of the window, in pixels.</param>
/// <param name="cy">The new height of the window, in pixels.</param>
/// <param name="flags">The window sizing and positioning flags.</param>
/// <returns>
/// If the function succeeds, the return value is nonzero.
/// If the function fails, the return value is zero. To get extended error information, call GetLastError.
/// </returns>
public static bool SetWindowPos(IntPtr hWnd, SetWindowPosHandle handle, int x, int y, int cx, int cy, SetWindowPosFlag flags) {
return SetWindowPos(hWnd, handle.Handle, x, y, cx, cy, (uint)flags);
}
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);