Search Unity

Borderless Standalone Window (Resizable + Movable)

Discussion in 'Assets and Asset Store' started by NightmarexGR, Feb 15, 2015.

  1. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Welcome to the "Borderless Standalone Window + Advanced Windows API" Unity Asset.

    Updated 19/6/2018

    Summary:

    "Borderless Standalone Window + Advanced Windows API" is an Unity Plugin that gives you the ability to control the actual window position,size,borders of your standalone build via Scripting.
    In other words it lets you remove the borders of your game's window and gives you the API to minimize,close,maximize,resize,grab ect. through your scripts.
    There are tons of creative ways to use it and implement it to your games/programs/launchers an example would be this template.
    The package comes with Example Scenes and many scripts to help you start and understand its use.

    NOTE : This is a Windows only product, both for Unity Pro and Indie.

    What you actually get:
    What you actually get:
    ~A "QuickAutoBorderless" boolean that forces Borderless mode on the build on initialization without restarting it
    ~A "FullyAutoBorderless" boolean that forces Borderless mode on the build on initialization after restarting it
    ~A "AllowSizeResettingBeforeExit" boolean that makes the window start as a small 116x90 window instead of full size
    ~A "SilenceWarnings" boolean to silence any warning that keep your editor safe.
    ~A "AutoFixAfterResizing" boolean that will make the window borderless after resizing if its not already.
    ~New Scripting API.
    -Window.Minimize ();
    -Window.Minimize (boolean);
    -Window.Fullscreen ();
    -Window.Fullscreen (Vector2);
    -Window.Fullscreen (int,int);
    -Window.Maximize ();
    -Window.Maximize (boolean);
    -Window.UnMaximize ();
    -Window.Exit ();
    -Window.ForceExit ();
    -Window.IsDoneLoading();
    -Window.IsBorderless ();
    -Window.Border ();
    -Window.Border (boolean);
    -Window.SetMinWidth (int);
    -Window.SetMaxWidth (int);
    -Window.SetMinHeight (int);
    -Window.SetMaxHeight (int);
    -Window.SetRect (Rect);
    -Window.SetRect (int,int,int,int);
    -Window.SetPosition (int,int);
    -Window.SetPosition (Vector2);
    -Window.SetSize (int,int);
    -Window.SetSize (Vector2);
    -Window.GetMinWidth ();
    -Window.GetMaxWidth ();
    -Window.GetMinHeight ();
    -Window.GetMaxHeight ();
    -Window.GetBorderRect ();
    -Window.GetBorderPosition ();
    -Window.GetBorderSize ();
    -Window.GetPermnentBorderSize ();
    -Window.GetRect ();
    -Window.GetPosition ();
    -Window.GetSize ();
    -Window.GrabStart ();
    -Window.GrabEnd ();
    -Window.QuickDisableBorders();
    -Window.QuickEnableBorders();
    -Window.ResizeLeftStart (float);
    -Window.ResizeLeftStart ();
    -Window.ResizeLeftEnd ();
    -Window.ResizeDownLeftStart (float);
    -Window.ResizeDownLeftStart ();
    -Window.ResizeDownLeftEnd ();
    -Window.ResizeDownStart (float);
    -Window.ResizeDownStart ();
    -Window.ResizeDownEnd ();
    -Window.ResizeDownRightStart (float);
    -Window.ResizeDownRightStart ();
    -Window.ResizeDownRightEnd ();
    -Window.ResizeRightStart (float);
    -Window.ResizeRightStart ();
    -Window.ResizeRightEnd ();
    -Window.ResizeRightTopStart (float);
    -Window.ResizeRightTopStart ();
    -Window.ResizeRightTopEnd ();
    -Window.ResizeTopStart (float);
    -Window.ResizeTopStart ();
    -Window.ResizeTopEnd ();
    -Window.ResizeTopLeftStart (float);
    -Window.ResizeTopLeftStart ();

    ADVANCED VERSION ONLY :
    ~A "SizeReset" vector2 to overrite default resetting sizes when window closes
    ~A "FocusResetOnClick" boolean that will give focus to the window when click so child windows dont steal focus

    ~New Scripting API.

    -Window.Minimize (int);
    -Window.Minimize (int,boolean);
    -Window.Maximize (int);
    -Window.Maximize (int,boolean);
    -Window.UnMaximize (int);
    -Window.IsMaximized ();
    -Window.SetRect (int,Rect);
    -Window.SetRect (int,int,int,int,int);
    -Window.SetPosition (int,int,int);
    -Window.SetPosition (int,Vector2);
    -Window.SetSize (int,int,int);
    -Window.SetSize (int,Vector2);
    -Window.QuickDisableBorders(int);
    -Window.QuickEnableBorders(int);
    -Window.ResizeTopLeftEnd ();
    -Window.FlashEnd();
    -Window.FlashEnd(int);
    -Window.FlashPause();
    -Window.FlashPause(int);
    -Window.FlashStart();
    -Window.FlashStart(float);
    -Window.FlashStart(int);
    -Window.FlashStart(float,int);
    -Window.FlashStart(int);
    -Window.FlashStart(int,float);
    -Window.FlashStart(int,int);
    -Window.FlashStart(int,float,int);
    -Window.FlashStart(string);
    -Window.FlashStart(float,string);
    -Window.FlashStart(int,string);
    -Window.FlashStart(float,int,string);
    -Window.FlashStart(int,string);
    -Window.FlashStart(int,float,string);
    -Window.FlashStart(int,int,string);
    -Window.FlashStart(int,float,int,string);
    -Window.FlashUntilFocus();
    -Window.FlashUntilFocus(float);
    -Window.FlashUntilFocus(int);
    -Window.FlashUntilFocus(float,int);
    -Window.FlashUntilFocus(int);
    -Window.FlashUntilFocus(int,float);
    -Window.FlashUntilFocus(int,int);
    -Window.FlashUntilFocus(int,float,int);
    -Window.FlashUntilFocus(string);
    -Window.FlashUntilFocus(float,string);
    -Window.FlashUntilFocus(int,string);
    -Window.FlashUntilFocus(float,int,string);
    -Window.FlashUntilFocus(int,string);
    -Window.FlashUntilFocus(int,float,string);
    -Window.FlashUntilFocus(int,int,string);
    -Window.FlashUntilFocus(int,float,int,string);
    -Window.GetTitle();
    -Window.SetTitle(string);
    -Window.SetOwner(int);
    -Window.SetOwner(int,int);
    -Window.SetChild(int);
    -Window.SetChild(int,int);
    -Window.Hide();
    -Window.Hide(int);
    -Window.Show();
    -Window.Show(int);
    -Window.FindWindowByName(string);
    -Window.AboveRendering();
    -Window.AboveRendering(boolean);
    -Window.AboveRendering(int);
    -Window.AboveRendering(int,boolean);
    -Window.Clickthrough(boolean);
    -Window.Clickthrough(int,boolean);
    -Window.BootByName(string);
    -Window.BootByName(string,string);
    -Window.ProcessIdByName(string);
    -Window.ProcessNameById(int);
    -Window.HwndByPid(int);
    -Window.PidByHwnd(int);
    -Window.SetWindowPosition(int,int,int,int,int,int,int);
    -Window.AddSyncChild(int,rect);
    -Window.EditSyncChild(int,rect);
    -Window.RemoveAllSyncChilds();
    -Window.RemoveLastSyncChild();
    -Window.RemoveSyncChild(int);
    -Window.GetCurrentActive();
    -Window.SetActive();
    -Window.SetActive(int);
    -Window.SetForeground();
    -Window.SetForeground(int);
    -Window.HideAltTab();
    -Window.HideAltTab(int);
    -Window.IsMinimized();
    -Window.IsMinimized(int);
    -Window.OnMonitorResolutionChanged();
    -Window.ReturnParent(int);
    -Window.Find(string,string);
    -Window.FindChild(int,int,string,string);


    Example Uses:
    Create advanced Server programs.
    Create autonomus AI for your OS.
    Create professional advanced game launchers.
    Basically you can alter any window position with the new (BETA) external window controls.
    (What do i mean ? You can not only set the position,borders,status. ect. of your unity window but you can also alter OTHER windows)
    For example create dynamic notification windows in the desktop and control them through unity.

    Create games with awesome borders like the ones of top branded games (example: League of Legends or Steam !!) with no borders that make the difference in the user's desktop !!
    Simulate Window movement or teleport the window dynamically without having the user do anything !!
    Create popup/warning windows that can't be closed by the user and display information or other useful stuff.
    Have warning messages flash for notifications.
    Create invisible windows by having their width or height be 0 or even below 0.
    Move your windows outside the screen or in places that the cursor usually cant go.
    TOP: Have fullscreen windowed mode at full resolution without waiting for Unity's standard fullscreen buffering !!!
    and many more, just use your imagination and creativity...

    [NEW]

    Now all functions are Editor-protected meaning they will not cause any damage to the editor

    How to correctly use it:
    This plugin is not meant to be used in the editor , most functions are protected (cant be used in the editor) to protect you from causing damage or annoying behavior. Also some of the read or "get" values will return wrong information in the editor.

    Updated 18/6/2018
    ---------------------------------------------------------------
    "FullyAutoBorderless"
    Once you have dropped the script into a gameobject then you will see a tickbox variable that says "Fully Auto Borderless"
    If you have this variable enabled and you build your standalone , it will always force the borderless mode even if you try later to set it to bordered by code it will turn back to borderless !
    This is good if you want the standalone to be borderless from the beginning to the end the only drawback is that it requires the client to restart once every time you decide to remove or add borders.
    We can counter this behaviour by having a launcher scene (that is already included as an example).
    ---------------------------------------------------------------
    "QuickAutoBorderless"
    Once you have dropped the script into a gameobject then you will see a tickbox variable that says "Quick Auto Borderless"
    This is a lightweight borderless mode that will not require a restart to activate with the drawnback that it can't be resized without making the borderss return while resizing..
    If your project requires little to no window resizing or you are ok with your client to make this behaviour then this option is for you.
    ---------------------------------------------------------------
    "AllowSizeResettingBeforeExit"
    Once you have dropped the script into a gameobject then you will see a tickbox variable that says "Allow Size Resetting Before Exit"
    This variable is create to make the window launch with a small size (116 x 90) and reduce problems while increasing performance.
    It also recommended to edit player setting and set this resolution to the window.
    (Read installation guide for more info)
    ---------------------------------------------------------------
    "SilenceWarnings"
    If true, it will silence all warnings that protect the user from using the plugin in the editor and ruining his editor.
    ---------------------------------------------------------------
    "AutoFixAfterResizing"
    This boolean will make the window borderless after resizing if it's not already and it will also remake the window borderless after changing monitor resolution.
    ---------------------------------------------------------------
    "Limitations"
    This is a vector4, Window.Limitations.x = minimum allowed width , Window.Limitations.y = maximum allowed width , Window.Limitations.z = minimum allowed height , Window.Limitations.w = maximum allowed height
    be careful not to set maximum lower than 0 because your window will dissapear xD Its a common mistake.
    ---------------------------------------------------------------
    "SizeReset"
    This is a vector2 to overrite default resetting sizes when window closes.
    ---------------------------------------------------------------
    "FocusResetOnClick"
    If true it will reset the focus to this window once it is activated.
    This boolean will give focus to the window when clicked so child windows dont steal focus,
    it is actually not stable in some rare cases, you should trial / error youself to make it stable.
    ---------------------------------------------------------------
    "ID"
    Current window ID as int.
    ---------------------------------------------------------------
    -Window.Minimize ();
    Minimizes the window as if you had clicked the minimize button.
    ---------------------------------------------------------------
    -Window.Minimize (bool);
    Same as above but also turns autoborderless off, you shouldn't call this.
    ---------------------------------------------------------------
    -Window.Minimize (int);
    Same as Minimize () but with a custom window ID
    ---------------------------------------------------------------
    -Window.Minimize (int,bool);
    Same as Minimize (bool) but with a custom window ID
    ---------------------------------------------------------------
    -Window.Fullscreen ();
    Sets the window into fullscreen mode , by preserving the current resolution.
    (Works just like standard Unity fullscreen function)
    ---------------------------------------------------------------
    -Window.Fullscreen (Vector2);
    Same as above but allows you to set the quality as a Vector2
    ---------------------------------------------------------------
    -Window.Fullscreen (int,int);
    Same as above but allows you to set the quality as two integers instead of one Vector2
    ---------------------------------------------------------------
    -Window.Maximize ();
    Will Maximize the window at full speed and have the same results as if you had clicked the maximize button,
    if you are running on borderless mode it will look like fullscreen mode but a lot faster :)
    Additionally, if the window is bordered it will still maximize it as normal, it will also make the button on the top look like it is maximized.
    ---------------------------------------------------------------
    -Window.Maximize (boolean);
    Same as above but if the boolean is set to false it will take into consideration the min/max width/height you have set and will result into a max size mode ;)
    ---------------------------------------------------------------
    -Window.Maximize (int);
    Same with Maximize () but with a custom window ID
    ---------------------------------------------------------------
    -Window.Maximize (int,boolean);
    Same with Maximize (boolean) but with a custom window ID
    ---------------------------------------------------------------
    -Window.UnMaximize ();
    Will UnMaximize the bordered window, beaware the plugin is meant to be used for borderless windows only this is something extra ;)
    ---------------------------------------------------------------
    -Window.UnMaximize (int);
    Same as UnMaximize () but with a custom window ID
    ---------------------------------------------------------------
    -Window.Exit ();
    Similar to Unity's default quit function.
    ---------------------------------------------------------------
    -Window.IsMaximized ();
    Will return true if window is maximized.
    ---------------------------------------------------------------
    -Window.IsDoneLoading();
    Returns true if all calculatings of the window plugin are done at least once. Good for getting accurate info in the Start or Awake function.
    ---------------------------------------------------------------
    -Window.IsBorderless ();
    Returns true if the standalone is borderless and false if the window is bordered.
    ---------------------------------------------------------------
    -Window.Border ();
    Will make the window borderless if it has borders or will make the window bordered if its borderless.
    (Warning , it will force the window to restart and thus lose all processes so be careful to save before calling that)
    ---------------------------------------------------------------
    -Window.Border (boolean);
    Will set borderless mode if set to false,
    will set to bordered mode if set to true.
    (Same warning as above)
    ---------------------------------------------------------------
    -Window.SetMinWidth (int);
    Will set the minimum width allowed to the window
    (Some functions have the ability to ignore this)
    ---------------------------------------------------------------
    -Window.SetMaxWidth (int);
    Will set the maximum width allowed to the window
    (Some functions have the ability to ignore this)
    ---------------------------------------------------------------
    -Window.SetMinHeight (int);
    Will set the minimum height allowed to the window
    (Some functions have the ability to ignore this)
    ---------------------------------------------------------------
    -Window.SetMaxHeight (int);
    Will set the maximum height allowed to the window
    (Some functions have the ability to ignore this)
    ---------------------------------------------------------------
    -Window.GetMinWidth (int);
    Returns the minimum width you have set through Window.SetMinWidth as an int
    ---------------------------------------------------------------
    -Window.GetMaxWidth (int);
    Returns the maximum width you have set through Window.SetMaxWidth as an int
    ---------------------------------------------------------------
    -Window.GetMinHeight (int);
    Returns the minimum height you have set through Window.SetMinHeight as an int
    ---------------------------------------------------------------
    -Window.GetMaxHeight (int);
    Returns the maximum height you have set through Window.SetMaxHeight as an int
    ---------------------------------------------------------------
    -Window.SetRect (Rect);
    Sets the window's position and size at the same time to the given Rect
    ---------------------------------------------------------------
    -Window.SetRect (int,int,int,int);
    Same as above but instead of a rect it gets 4 separate ints
    ---------------------------------------------------------------
    -Window.SetRect (int,Rect);
    Same as SetRect (Rect) but with a custom window ID
    ---------------------------------------------------------------
    -Window.SetRect (int,int,int,int,int);
    Same as SetRect (int,int,int,int) but with a custom window ID
    ---------------------------------------------------------------
    -Window.SetPosition (int,int);
    Sets the position of the window only to the given int values and preserves the width and height
    (Height and Width will not work right in bordered mode)
    ---------------------------------------------------------------
    -Window.SetPosition (Vector2);
    Same as above but instead of two ints it takes one Vector2
    ---------------------------------------------------------------
    -Window.SetPosition (int,int,int);
    Same as SetPosition (int,int) but with a custom window ID
    ---------------------------------------------------------------
    -Window.SetPosition (int,Vector2);
    Same as SetPosition (Vector2) but with a custom window ID
    ---------------------------------------------------------------
    -Window.SetSize (int,int);
    Sets the window's Size to the given int values and preserves the location
    ---------------------------------------------------------------
    -Window.SetSize (Vector2);
    Same as above but instead of two ints it takes one Vector2
    ---------------------------------------------------------------
    -Window.SetSize (int,int,int);
    Same as SetSize (int,int) but with a custom window ID
    ---------------------------------------------------------------
    -Window.SetSize (int,Vector2);
    Same as SetSize (Vector2) but with a custom window ID
    ---------------------------------------------------------------
    -Window.GetBorderRect ();
    Returns the Border Position and Overall Size as a Rect
    ---------------------------------------------------------------
    -Window.GetBorderPosition ();
    Returns the Border Position as a Vector2
    ---------------------------------------------------------------
    -Window.GetBorderSize ();
    Returns the Border Width and Height as a Vector2
    (Might not work right)
    ---------------------------------------------------------------
    -Window.GetRect ();
    Returns the Window Position and Overall Size as a Rect
    ---------------------------------------------------------------
    -Window.GetPosition ();
    Returns the Window Position as a Vector2
    ---------------------------------------------------------------
    -Window.GetSize ();
    Returns the Window Size as a Vector2
    ---------------------------------------------------------------
    -Window.GrabStart ();
    Once called the Window will be "grabbed" by the cursor and will keep following it while preserving its offset until Window.GrabEnd is called
    (Always make sure you are able to call GrabEnd because once GrabStart is activated , you wont be able to click anywhere)
    (Grab and other Resize functions cant be active at the same time)
    ---------------------------------------------------------------
    -Window.GrabEnd ();
    Will give an end to the active GrabStart function
    ---------------------------------------------------------------
    -Window.QuickDisableBorders();
    This function will disable the borders of the window using the latest "Quick" method.
    You will probably not need to call it but so far it is only used in Unity5 after entering and exiting fullscreen mode to re-deactivate the borders if using QuickBorderless option.
    ---------------------------------------------------------------
    -Window.QuickDisableBorders(int);
    Same as QuickDisableBorders() but with a custom window ID
    ---------------------------------------------------------------
    -Window.QuickEnableBorders();
    This function will enable the borders of the window using the latest "Quick" method.
    Please not if the window is in "Fully" borderless mode it might not restore its borders.
    ---------------------------------------------------------------
    -Window.QuickEnableBorders(int);
    Same as QuickEnableBorders() but with a custom window ID
    ---------------------------------------------------------------
    All below ResizeStart functions accept a float as a parameter , this float is an optional aspect ratio.
    Be carefull with your Limitations, if they are not aspect ratio compatible you might experience artifacts.
    ---------------------------------------------------------------
    ---------------------------------------------------------------
    -Window.ResizeLeftStart ();
    Once called it will start changing the size of the window only from the left side according to the mouse position while preserving its offset.
    (Its important to call the Window.ResizeLeftEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
    ---------------------------------------------------------------
    -Window.ResizeLeftEnd ();
    Will stop resizing the window if the above function was called.
    ---------------------------------------------------------------
    -Window.ResizeDownLeftStart ();
    Once called it will start changing the size of the window only from the left and down side according to the mouse position while preserving its offset.
    (Its important to call the Window.ResizeDownLeftEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
    ---------------------------------------------------------------
    -Window.ResizeDownLeftEnd ();
    Will stop resizing the window if the above function was called.
    ---------------------------------------------------------------
    -Window.ResizeDownStart ();
    Once called it will start changing the size of the window only from the down side according to the mouse position while preserving its offset.
    (Its important to call the Window.ResizeDownEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
    ---------------------------------------------------------------
    -Window.ResizeDownEnd ();
    Will stop resizing the window if the above function was called.
    ---------------------------------------------------------------
    -Window.ResizeDownRightStart ();
    Once called it will start changing the size of the window only from the down and right side according to the mouse position while preserving its offset.
    (Its important to call the Window.ResizeDownRightEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
    ---------------------------------------------------------------
    -Window.ResizeDownRightEnd ();
    Will stop resizing the window if the above function was called.
    ---------------------------------------------------------------
    -Window.ResizeRightStart ();
    Once called it will start changing the size of the window only from the right side according to the mouse position while preserving its offset.
    (Its important to call the Window.ResizeRightEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
    ---------------------------------------------------------------
    -Window.ResizeRightEnd ();
    Will stop resizing the window if the above function was called.
    ---------------------------------------------------------------
    -Window.ResizeRightTopStart ();
    Once called it will start changing the size of the window only from the right and top side according to the mouse position while preserving its offset.
    (Its important to call the Window.ResizeRightTopEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
    ---------------------------------------------------------------
    -Window.ResizeRightTopEnd ();
    Will stop resizing the window if the above function was called.
    ---------------------------------------------------------------
    -Window.ResizeTopStart ();
    Once called it will start changing the size of the window only from the top side according to the mouse position while preserving its offset.
    (Its important to call the Window.ResizeTopEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
    ---------------------------------------------------------------
    -Window.ResizeTopEnd ();
    Will stop resizing the window if the above function was called.
    ---------------------------------------------------------------
    -Window.ResizeTopLeftStart ();
    Once called it will start changing the size of the window only from the top and left side according to the mouse position while preserving its offset.
    (Its important to call the Window.ResizeTopLeftEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
    ---------------------------------------------------------------
    -Window.ResizeTopLeftEnd ();
    Will stop resizing the window if the above function was called.
    --------------------------------------------------------------
    --------------------------------------------------------------
    -Window.FlashEnd();
    Ends any window.flash operation in progress.
    --------------------------------------------------------------
    -Window.FlashEnd(int);
    Do not use this , its for a future update
    Spoiler (You will be able to hack.. eeh control other windows)
    --------------------------------------------------------------
    -Window.FlashPause();
    Pause current window.flash operation, you can't resume tho
    (you can pause the notification to yellow , why not :p )
    --------------------------------------------------------------
    -Window.FlashPause(int);
    Do not use this either
    --------------------------------------------------------------
    -Window.FlashStart();
    Start an infinite notification blink, both window tray and caption will blink until Window.FlashEnd() is called.
    --------------------------------------------------------------
    -Window.FlashStart(float);
    Same as above but also set the timer on how fast to blink, infinite blinks until Window.FlashEnd() called.
    --------------------------------------------------------------
    -Window.FlashStart(int);
    Same as above but instead of timer , you set how many times you want the window to blink. Window.FlashEnd() can stop it at any time.
    --------------------------------------------------------------
    -Window.FlashStart(float,int);
    You set both a speed timer and how many times you want to flash , read above.
    --------------------------------------------------------------
    -Window.FlashStart(int,float);
    Same as FlashStart(float) but with a custom window ID
    --------------------------------------------------------------
    -Window.FlashStart(int,int);
    Same as FlashStart(int) but with a custom window ID
    --------------------------------------------------------------
    -Window.FlashStart(int,float,int);
    Same as FlashStart(float,int) but with a custom window ID
    --------------------------------------------------------------
    -Window.FlashStart(string);
    You can type either "Caption" or "Taskbar" anything else will blink both, Infinite times blink until Window.FlashEnd() is called. read above
    --------------------------------------------------------------
    -Window.FlashStart(float,string);
    Same as above but you can also set a speed timer
    --------------------------------------------------------------
    -Window.FlashStart(int,string);
    Same as FlashStart(string) but with a custom window ID
    --------------------------------------------------------------
    -Window.FlashStart(float,int,string);
    You can set speed timer , how many times to blink , "Caption" or "Taskbar" , read above
    --------------------------------------------------------------
    -Window.FlashStart(int,float,string);
    Same as FlashStart(float,string) but with a custom window ID
    --------------------------------------------------------------
    -Window.FlashStart(int,int,string);
    Same as FlashStart(int,string) but with a custom window ID
    --------------------------------------------------------------
    -Window.FlashStart(int,float,int,string);
    Same as FlashStart(float,int,string) but with a custom window ID
    --------------------------------------------------------------
    Ok these are the same as above but will stop blinking if the window is focused.
    For example once you call the FlashUntilFocus the window will blink until the user clicks it
    read above

    -Window.FlashUntilFocus();
    -Window.FlashUntilFocus(float);
    -Window.FlashUntilFocus(int);
    -Window.FlashUntilFocus(float,int);
    -Window.FlashUntilFocus(int);
    -Window.FlashUntilFocus(int,float);
    -Window.FlashUntilFocus(int,int);
    -Window.FlashUntilFocus(int,float,int);
    -Window.FlashUntilFocus(string);
    -Window.FlashUntilFocus(float,string);
    -Window.FlashUntilFocus(int,string);
    -Window.FlashUntilFocus(float,int,string);
    -Window.FlashUntilFocus(int,string);
    -Window.FlashUntilFocus(int,float,string);
    -Window.FlashUntilFocus(int,int,string);
    -Window.FlashUntilFocus(int,float,int,string);
    --------------------------------------------------------------
    -Window.GetTitle();
    Returns the window current title as String
    --------------------------------------------------------------
    -Window.GetTitle(int);
    Same as GetTitle() but with a custom window ID
    --------------------------------------------------------------
    -Window.SetTitle(string);
    Set the window title to the string parameter
    --------------------------------------------------------------
    -Window.SetTitle(int,string);
    Same as SetTitle(string) but with a custom window ID
    --------------------------------------------------------------
    -Window.SetOwner(int);
    Will set this window's owner to the id speciefied. (Will hide icon from taskbar and alt tab for this window)
    Strange behaviour seems to occur when you directly set a unity window as an owner of another window.
    I create a child to the unity window and set any owners there ;)
    --------------------------------------------------------------
    -Window.SetOwner(int,int);
    Same as SetOwner(int) but with a custom window ID
    --------------------------------------------------------------
    -Window.Hide();
    Will hide from taskbar, alt tab and screen the current window until Show() is called.
    --------------------------------------------------------------
    -Window.Hide(int);
    Same as Hide() but with a custom window ID
    --------------------------------------------------------------
    -Window.Show();
    Will restore a window that is hidden (note you should have RunInBackground enabled)
    --------------------------------------------------------------
    -Window.Show(int);
    Same as Show() but with a custom window ID
    --------------------------------------------------------------
    -Window.FindWindowByName(string);
    Will return a window ID as an int if it exists, if it doesn't it will return 0
    --------------------------------------------------------------
    -Window.AboveRendering();
    Will make the window render above all other windows
    --------------------------------------------------------------
    -Window.AboveRendering(bool);
    Will make the window render above all other windows
    --------------------------------------------------------------
    -Window.AboveRendering(int);
    Same as AboveRendering() but with a custom window ID
    --------------------------------------------------------------
    -Window.AboveRendering(int,bool);
    Same as AboveRendering(bool) but with a custom window ID
    --------------------------------------------------------------
    -Window.SetFocus(int)
    Will set the window focus to window ID
    --------------------------------------------------------------
    -Window.Clickthrough(bool);
    Will set the window clickthrough to the boolean speciefied, if true any clicks will pass through the window
    --------------------------------------------------------------
    -Window.Clickthrough(int,bool);
    Same as Clickthrough(bool) but with a custom window ID
    --------------------------------------------------------------
    -Window.BootByName(string);
    Will boot a process window by its location+name
    --------------------------------------------------------------
    -Window.BootByName(string,string);
    Will boot a process window by its location+name with set parameters
    --------------------------------------------------------------
    -Window.ProcessIdByName(string);
    Will return process id by name, if more than one processes with that name found then it will return the first one and print a warning.
    If nothing is found it will return 0
    --------------------------------------------------------------
    -Window.ProcessNameById(int);
    Will return process name by Id, if nothing is found it will return Error-Not-Found
    --------------------------------------------------------------
    -Window.HwndByPid(int);
    Will convert a process id to a window handle, you shouldn't use this.
    --------------------------------------------------------------
    -Window.PidByHwnd(int);
    Will convert a window handle to a process id, you shouldn't use this.
    --------------------------------------------------------------
    -Window.SetChild(int,int);
    Will make a window child to another window, meaning the child window will get inside the other window and follow its position,
    it will also dissapear from the task-bar , task manager and alt tab.
    Beaware tho, strage behaviours will happen if the child or parent window are borderless/clickthought/minimized/maximized ect.
    --------------------------------------------------------------
    -Window.SetChild(int);
    Same as SetChild(int,int) but default parent is this window.
    --------------------------------------------------------------
    -Window.SetWindowPosition (int,int,int,int,int,int,int);
    This function exists as a last step before changing a window rect, even tho you shouldn't use it you can use it for custom flags.
    I do not recomend messing with these because it can break things.
    (It also takes care of synching children positions)
    --------------------------------------------------------------
    -Window.AddSyncChild (int,Rect);
    First int is a window id, it will synch any movement changes with 0-1ms of this window and the window added.
    I do not recommend adding many windows. The rect stands for the window offset with the main window.
    --------------------------------------------------------------
    -Window.EditSyncChild (int,Rect);
    Will edit synch child's rect if it exists.
    --------------------------------------------------------------
    -Window.RemoveAllSyncChilds();
    Will clear all sync childs.
    --------------------------------------------------------------
    -Window.RemoveLastSyncChild();
    Will remove the lastly added sync child
    --------------------------------------------------------------
    -Window.RemoveSyncChild (int);
    Will remove specified sync child if it exists
    --------------------------------------------------------------
    -Window.GetCurrentActive();
    Will return the window ID if this window is active and will return 0 if any other window is active.
    --------------------------------------------------------------
    -Window.SetActive ();
    Will set the window to be the active window (focused and on top of all non top-most)
    --------------------------------------------------------------
    -Window.SetActive (int);
    Same as SetActive() but with a custom window ID
    --------------------------------------------------------------
    -Window.SetForeground();
    Will set the window to be top of all the non top-most windows but will not direct any keyboard input to it.
    --------------------------------------------------------------
    -Window.SetForeground (int);
    Same as SetForeground() but with a custom window ID
    --------------------------------------------------------------
    -Window.HideAltTab();
    Will hide the window from the alt-tab menu.
    --------------------------------------------------------------
    -Window.HideAltTab (int);
    Same as HideAltTab() but with a custom window ID
    --------------------------------------------------------------
    -Window.IsMinimized();
    Will return truw while the window is minimized.
    --------------------------------------------------------------
    -Window.IsMinimized(int);
    Same as IsMinimized() but with a custom window ID
    --------------------------------------------------------------
    -Window.OnMonitorResolutionChanged();
    You shouldn't call this function, it will return true 1 time when the resolution of the monitor changes.
    --------------------------------------------------------------
    -Window.ReturnParent(int);
    Will return the parent id of the child if none it will return 0
    --------------------------------------------------------------
    -Window.GetForegroundWindow();
    Will return the currently active non top-most and focused window in the desktop.
    --------------------------------------------------------------
    -Window.Find(string,string);
    Will return the window that matches the class name and window name.
    --------------------------------------------------------------
    -Window.FindChild(int,int,string,string);
    Will return the child window of the specified parent that matches the class name, window name and next child name.

    --------------------------------------------------------------
    Conctact Info :
    Email : DarknessBlade.Original@gmail.com
    Youtube :
    (We have TUTORIAL VIDEOS)


    ASSET STORE
    VIDEO-1
    VIDEO-2
    VIDEO-3 COMING SOON
    Photo 7.PNG Photo 2.PNG Photo 6.1.PNG Photo 6.2.PNG
     
    Last edited: Jun 19, 2018
    Geodeblock and chainalonez like this.
  2. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Made some progress , will have results within a week :)

    EDIT (16/7/2015)
    Finally made it work :D
    Problem is that i will have to rewrite the whole documentation, make a new video and make the scripts as readable as possible with a lot of comments, this is very time consuming since i am working on a big project atm and can't spend much time on this one. I estimate to have it finished within next week.
    Side Note: Price will go up :p

    EDIT (26/7/2015)
    I updated everything , only thing left is for unity to accept the plugin and for the video to be uploaded :)
     
    Last edited: Jul 25, 2015
  3. Jonathan-Bro

    Jonathan-Bro

    Joined:
    Apr 11, 2013
    Posts:
    35
    Hi there, does this asset work on a Surface 3 tablet? It runs Windows 8 or 10, but since it's not a windows standalone build, I'm not sure.
     
  4. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    I am not sure either but i made a small research and based on some forums i found that :
    Yes, if the tablet runs Windows 8 or 10. No, if the tablet runs Windows RT.
    That beeing said some tablets will support it and some not , i think your one will but this is not tested , proceed at your own risk.
    Thanks for contacting , and if you purchase and it works or it doesn't please leave a feedback so future buyers can know.
    If you have any technical problems please contact me again :)
     
  5. Ecocide

    Ecocide

    Joined:
    Aug 4, 2011
    Posts:
    293
    Hi NightmarexGR,

    in case of more than one display, is it possible to change the window size to fill those two displays? Have you tried something like that?
     
  6. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Hello .Rattlehead , yes it is possible , i actually have 3 monitors but i haven't tried something like this but i am sure it is possible and if u need help doing it i can provide it :)

    EDIT: Is this what u are looking for ? (image)
     

    Attached Files:

  7. Pi_3-14

    Pi_3-14

    Joined:
    May 9, 2012
    Posts:
    168
    Just to confirm this doesn't work for OSX:

    Code (csharp):
    1. Unhandled Exception: System.TypeLoadException: Could not load type 'System.Windows.Forms.Cursor' from assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
    2.   at (wrapper managed-to-native) System.MonoType:GetMethodsByName (string,System.Reflection.BindingFlags,bool,System.Type)
    3.   at System.MonoType.GetMethods (BindingFlags bindingAttr) [0x00000] in <filename unknown>:0
    4.   at Mono.CSharp.MemberCache.AddMethods (BindingFlags bf, System.Type type) [0x00000] in <filename unknown>:0
    5.   at Mono.CSharp.MemberCache.AddMethods (System.Type type) [0x00000] in <filename unknown>:0
    6.   at Mono.CSharp.MemberCache..ctor (IMemberContainer container) [0x00000] in <filename unknown>:0
    7.   at Mono.CSharp.TypeHandle..ctor (System.Type type) [0x00000] in <filename unknown>:0
    8.   at Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in <filename unknown>:0
    9.   at Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in <filename unknown>:0
    10.   at Mono.CSharp.TypeManager.MemberLookup_FindMembers (System.Type t, MemberTypes mt, BindingFlags bf, System.String name, System.Boolean& used_cache) [0x00000] in <filename unknown>:0
    11.   at Mono.CSharp.TypeManager.RealMemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] in <filename unknown>:0
    12.   at Mono.CSharp.TypeManager.MemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] in <filename unknown>:0
    13.   at Mono.CSharp.Expression.MemberLookup (Mono.CSharp.CompilerContext ctx, System.Type container_type, System.Type qualifier_type, System.Type queried_type, System.String name, MemberTypes mt, BindingFlags bf, Location loc) [0x00000] in <filename unknown>:0
    14.   at Mono.CSharp.Expression.MemberLookup (Mono.CSharp.CompilerContext ctx, System.Type container_type, System.Type qualifier_type, System.Type queried_type, System.String name, Location loc) [0x00000] in <filename unknown>:0
    15.   at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec, Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0
    16.   at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    17.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
    18.   at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec, Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0
    19.   at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    20.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
    21.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    22.   at Mono.CSharp.Binary.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    23.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
    24.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    25.   at Mono.CSharp.ParenthesizedExpression.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    26.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
    27.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    28.   at Mono.CSharp.Cast.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    29.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
    30.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    31.   at Mono.CSharp.Argument.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    32.   at Mono.CSharp.Arguments.Resolve (Mono.CSharp.ResolveContext ec, System.Boolean& dynamic) [0x00000] in <filename unknown>:0
    33.   at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    34.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
    35.   at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
    36.   at Mono.CSharp.ExpressionStatement.ResolveStatement (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
    37.   at Mono.CSharp.StatementExpression.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
    38.   at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
    39.   at Mono.CSharp.If.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
    40.   at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
    41.   at Mono.CSharp.If.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
    42.   at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
    43.   at Mono.CSharp.ToplevelBlock.Resolve (Mono.CSharp.FlowBranching parent, Mono.CSharp.BlockContext rc, Mono.CSharp.ParametersCompiled ip, IMethodData md) [0x00000] in <filename unknown>:0
    44.  
    45. Internal compiler error at Assets/Plugins/Window.cs(43,6):: exception caught while emitting MethodBuilder [Window::Update]
    46. The following assembly referenced from /Users/pi/Dev/Unity/2015/WindowTest/Assets/Plugins/System.Windows.Forms.dll could not be loaded:
    47.      Assembly:   System.Drawing    (assemblyref_index=1)
    48.      Version:    2.0.0.0
    49.      Public Key: b03f5f7f11d50a3a
    50. The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/Users/pi/Dev/Unity/2015/WindowTest/Assets/Plugins/).
    51.  
    52. Could not load file or assembly 'System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
    53.  
     
  8. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Thanks Pi_3.14 Good to let us know , i plan on adding osx support but it will not be soon..
     
  9. Pi_3-14

    Pi_3-14

    Joined:
    May 9, 2012
    Posts:
    168
    I should have mentioned in the last post: non-fullscreen eye-tracking games will need this asset. Because the tracker is calibrated to the physical monitor. If the game is running in a window, there is no way to interpret the incoming gaze coordinates unless you know the location of the window in screen coordinates.

    Current eye-tracking devices:
    π
     
  10. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Yes my asset provides you with both the borders' and the window positions so it will be useful in cases like this :)
     
  11. 8iVR

    8iVR

    Joined:
    Oct 29, 2014
    Posts:
    9
    Just purchased and had problems compiling with Visual Studio 2013. There were no errors in the Unity console, and it still built. But in the Visual Studio it threw out quite a few errors.
    The fix was to include System.Drawing.dll.
     
  12. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Glad you were able to fix them :)
    In the instructions.txt I explain how you can find the System.Drawing.dll. and all other dependacies that you might need.

    Thanks again for the feedback.
    If you have any problems please contact me , a review in the asset store always helps too :p
     
  13. sgoodrow

    sgoodrow

    Joined:
    Sep 28, 2012
    Posts:
    150
    When launching an application, does your asset allow the engine to launch in borderless mode, or does it require a frame to render (bordered or fullscreen) before the window becomes borderless?
     
  14. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    If you are using Unity 5 + then it needs 2-3 frames but during this time you will see a bordered white window. After that window becomes borderless and renders unity normaly.
    You can make varius tricks to hide the white window (like having it launch in coordinates (-1000,-1000) and once windows is borderless have it back in screen but this can be glitchy/tricky

    If you are using unity 4 then window will fully launcher as bordered and do a full restart as borderless , in this case i made a custom scene so it won't render anything but a color you want and once borderless load your scene automaticaly.
     
  15. sgoodrow

    sgoodrow

    Joined:
    Sep 28, 2012
    Posts:
    150
    Damn, same problem I'm running into then. I tired hiding the window by moving it immediately (in 4.x), but the frame still appeared briefly before moving. Bummer. Thanks for the reply.
     
  16. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    I was going to make a more advanced system but then unity 5 got released and it made my life easier..
    Since i did abandom the idea of that system i will send you a private message with a few other tricks you can use for Unity 4.x
     
  17. skullthug

    skullthug

    Joined:
    Oct 16, 2011
    Posts:
    202
    This is super neat!
    Any chance you'll add the ability to make the window transparent and/or click through?
     
  18. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Update: I will be adding the ability to click through the window and have transparent parts in the next update !!
    Perfect for launchers :)
     
    skullthug likes this.
  19. TBruce

    TBruce

    Joined:
    Jan 18, 2015
    Posts:
    86
    Hi,

    I currently have a window with a solid background. I have been able to make the window borderless and the background transparent but I am having problems moving the window. Also when I click on anywhere in the window, the click falls through to underneath the window as if it is not even there.

    Could you please tell me if you have added transparency yet? Your video shows that I can have borderless windows and still drag them around but it does not show if you have transparency implemented.

    Also two other things, first can I replace system.windows.forms.dll with one that I have on my computer and is all source included.
     
  20. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Hello Mavina ,
    I have finished the transparency but i was too lazy to upload it :p I will send you a link to a demo in a private message but if you are interested in buying the price is higher because the plugin with the transparency will be a seperate one , we can discuss about that in private chat.
    And yes you can replace window forms with the one that you have on your pc , but i see no point in this unless you have eddited yours moreover i Include full source but its not commented. Everything besides the .dll is visible to the buyer.
     
  21. hejaaa

    hejaaa

    Joined:
    Sep 14, 2014
    Posts:
    23
    I use Window.Border(false) and if use Window.Minimize() - application only blink and not minimize
     
  22. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Hello , hejaaa thanks for contacting, your problem is too generic , i will need some further info :

    Are you calling Window.Border(false) multiple times?
    What unity version do you have ? Unity 4 or Unity 5 ?
    Do you call Window.Minimize() once ? Or do you call it multiple times like in an update or something ?
    Could you provide some code ?
     
  23. hejaaa

    hejaaa

    Joined:
    Sep 14, 2014
    Posts:
    23
    You can try here http://s000.tinyupload.com/?file_id=04143370804708368777
     
  24. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    If you want to handle the borders yourself dont check either "Fully auto borderless" or "Quick auto borderless". Moreover for some reason "Window.Border(false)" doesnt work well in unity 5 , so please use "Window.QuickDisableBorders()" instead.

    But be aware:
    "If using Unity 5.x the QuickBorderless Option will work way better , the only drawnback noticed is that after entering and exiting fullscreen mode, you will most likely need to call "QuickDisableBorders(); function after exiting fullscreen mode.
    Therefore the Launcher Scene is not needed.."


    EDIT: Otherwise you can just check "Quick auto borderless" and let the system handle the borders on its own. Its more safe this way.
     
    Last edited: Sep 22, 2016
  25. hejaaa

    hejaaa

    Joined:
    Sep 14, 2014
    Posts:
    23
    I remove Window.Border(false), check Quick auto borderless and rewrite SetWindowPos in Update, Window class. Now work minimize.

    thx
     
  26. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Glad you have it working now , if you need any more help just ask here or through email :)
     
  27. hejaaa

    hejaaa

    Joined:
    Sep 14, 2014
    Posts:
    23
    I have next problem :) If lost focus during switching borders in windows, that window is forever outside screen.
     
  28. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    You should enable run in background from player options.
    If you for some reason dont want to have this option on , just turn it to true from script before changing position outside the screen and redisable it once the window is back to normal.
     
  29. hejaaa

    hejaaa

    Joined:
    Sep 14, 2014
    Posts:
    23
    I have enabled run in background, but not work
     
  30. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    hmm let me test it myself , if i get it to work on my side i will send you an example code unless you want me to work on your code directly. Communicating via email is easier if you are confortable with it please do so at DarknessBlade.original@gmail.com ?
     
  31. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Problem was solved new version with the bug fixed will be uploaded in the asset store.

    I will do a giveaway , the first person to post below me will get the asset for free !
     
  32. Tortyfoo

    Tortyfoo

    Joined:
    Mar 6, 2012
    Posts:
    132
    Horrible First post :)
     
  33. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Sending you a vouncher code in private , you can't participate to get any other assets of mine now.
    Enjoy your free plugin :)
     
  34. Shadowing

    Shadowing

    Joined:
    Jan 29, 2015
    Posts:
    1,648
    Does this only work for Windows?
    Also if it is windows only what happens when you do a mac or linux build does it error and crash or ignore linux and mac? Thanks.
    thanks
     
  35. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    So far i can guarantee it will work on all windows versions (except phone - not tested) , it won't work on linux (will give warnings ) and not ever tested in mac so it might have a small chance of working there. If i owned a mac i could make it work but i don't and its hard to code and have others to test :/

    Besides that it will work on windows , if it gives you any form of errors in other platforms i can update it to prevent the errors but not make it work (not yet at least)
     
  36. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Sale 60%

    When February hits , price will go up. And a new updated package will be released.

    So pick it up while you can :)

     
    Last edited: Jan 11, 2017
  37. PendingFox

    PendingFox

    Joined:
    Jan 15, 2017
    Posts:
    42
    Can you send me the trial or demo version so I could test it on Mac? Both Mac and Win platforms are mandatory for our project.
     
  38. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Sadly it doens't work in mac. Do you still want a demo for windows ?
     
  39. PendingFox

    PendingFox

    Joined:
    Jan 15, 2017
    Posts:
    42
    I know that u don't that's why I asked to send me the demo so I could test it on Mac myself :) yep I still want it thanks
     
  40. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
  41. PendingFox

    PendingFox

    Joined:
    Jan 15, 2017
    Posts:
    42
    Ok thank I'll try it out
     
  42. Reiika

    Reiika

    Joined:
    Jul 18, 2015
    Posts:
    43
    Hey, just tried your asset and it seems that with Unity 5.5.0f3 when just simply running this program from the editor it is resizing the editor and creating problems for me. I know we are not to resize the game when running from the editor, but the code seems to fail in detecting when it is in the editor and stopping it from doing certain actions. So it makes testing a scene with this tool in it harder because I have to disable everything while testing in order to work properly with other aspects of my project
     
  43. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
  44. Reiika

    Reiika

    Joined:
    Jul 18, 2015
    Posts:
    43
    Sent, and thanks for the speedy response!
     
  45. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    If you are satisfied with my support please remember to leave feedback :3
     
  46. pixelklaus

    pixelklaus

    Joined:
    Feb 12, 2013
    Posts:
    7
    Hi, I have a problem getting Window.Maximize() to work..

    When I call Window.Maximize(), it does not fill the whole screen (see screenshot below), and the icon in the window does not change to maximized. I get the exact same behaviour when using Window.SetRect(0, 0, Screen.currentResolution.width, Screen.currentResolution.height). Clicking the maximize button manually does work, on the other hand.



    I'm using Windows 10 Home and Unity 5.5.0f3 (64 bit). In the build settings, I have:
    - Target Platform: Windows x86
    - Default Is Full Screen: off
    - Default Screen Width: 1600
    - Default Screen Height: 1060
    - Run In Background: on
    - Display Resolution Dialog: Disabled
    - Resizable Window: on
    - Visible In Background: off
    - Allow Fullscreen Switch: off
    - Force Single Instance: on

    Is there any way to actually maximize the window? Any help would be appreciated.

    PS: When building, I get the following warning:
    System.Windows.Forms.dll assembly is referenced by user code, but is not supported on StandaloneWindows platform. Various failures might follow.
    UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()


    Is it safe to ignore this?
     
  47. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    -I see , the Window.Maximize() is meant to be used for borderless windows, in your case you still have the borders on.
    Moreover , try turning -Resizable window from player settings off, it will have a different effect. But still the button in the borders will think that its still not maximized. I can write a custom function for you and send it via email if you want to make it work for bordered windows like your case.
    -You can totally ignore the warning , its 100% harmless. (In the new update it will be silenced)

    P.S. Very nicely formatted post , feel free to ask for anything else you want from here or through email.
     
  48. pixelklaus

    pixelklaus

    Joined:
    Feb 12, 2013
    Posts:
    7
    Thanks for the quick reply!

    Making the window borderless could be an option, but unfortunately when I do that, maximixing the window hides the task bar as well (that's a no go since our application acts as kind of a dashboard, and the users should be able to switch between applications via taskbar).

    I would be very thankful if you could create a custom function (for windows with borders) that simulates clicking the maximize button. I'll send you my contact details via pm.
     
  49. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    Email with solution sent :)
    I hope you are happy with the functions i made for you. I will include them in the new update when the sale ends.

    IN 3 DAYS SALE ENDS
     
  50. pixelklaus

    pixelklaus

    Joined:
    Feb 12, 2013
    Posts:
    7
    Excellent, thanks a lot - we've given your plugin a 5 star rating :)