i think this works on mac now

This commit is contained in:
Firerise9402 2023-08-14 12:56:10 -04:00
parent e7a5017dc5
commit 992fd043fd
3 changed files with 62 additions and 11 deletions

View file

@ -1,8 +1,8 @@
using System;
public static class AppInfo {
public const string Version = "0.0.1039";
public static readonly DateTime Date = new DateTime(2023, 08, 11, 16, 44, 42, 336, DateTimeKind.Utc);
public const string Version = "0.0.1040";
public static readonly DateTime Date = new DateTime(2023, 08, 14, 16, 49, 15, 063, DateTimeKind.Utc);
}

View file

@ -10,7 +10,14 @@ using Jukebox;
using Jukebox.Legacy;
using System;
#if UNITY_STANDALONE_WIN
using System.Runtime.InteropServices;
#elif UNITY_STANDALONE_OSX
using Foundation;
using Appkit;
#endif
namespace HeavenStudio
{
@ -47,11 +54,17 @@ namespace HeavenStudio
here's a google doc with helpful sites(i think) for getting this working on mac
https://docs.google.com/document/d/1mvHNNsXC6mo7PV6yZitpKam1fYnud7CXP73YLsebEo8/edit?usp=sharing
good luck i cant figure this out
update: just some default values for nscontroller or whatever it is:
windowstyle is closable; resizable; tilted
nsbackthingy's default is buffer
*/
//Credit to Grizmu on the unity forums for this
//DLL Stuff for windows
#region WinDLLstuff
#if UNITY_STANDALONE_WIN
const int SWP_HIDEWINDOW = 0x80; //idk why you would want this but here you go
const int SWP_SHOWWINDOW = 0x40; //show window flag.
const int SWP_NOMOVE = 0x0002; //don't move the window flag. idk why this either
@ -81,16 +94,50 @@ namespace HeavenStudio
uint uFlags
);
System.IntPtr hWnd;
System.IntPtr HWND_TOP = new System.IntPtr(0);
System.IntPtr HWND_TOPMOST = new System.IntPtr(-1);
System.IntPtr HWND_NOTOPMOST = new System.IntPtr(-2);
#elif UNITY_STANDALONE_OSX
NSWindow _window;
var style = NSWindowStyle.Closable | NSWindowStyle.Resizable | NSWindowStyle.tilted;
public void SetWindowPos(double x, double y, double cX, double cY)
{
_window = new NSWindow(
new CoreGraphics.CGRect(x, Screen.mainWindowDisplayInfo.height - y, cx, cy),
style,
NSBackingStore.Buffered,
false
);
}
public override NSWindow mainWindowDisplayInfo
{
get { return _window; }
}
#endif
public void SetPosition(System.IntPtr ptr, short x, short y, short resX, short resY)
{
if(!Application.isEditor && !Editor.Editor.instance.fullscreen && (pan != defaultPan | scale != defaultScale)) Reset();
if(Application.isEditor || !Editor.Editor.instance.fullscreen) return;
#if UNITY_STANDALONE_WIN
SetWindowPos(ptr, HWND_NOTOPMOST, x, y, resX, resY, SWP_SHOWWINDOW);
#elif UNITY_STANDALONE_OSX
SetWindowPos(x, y, resX, resY);
#endif
}
private void Awake()
{
#if UNITY_STANDALONE_WIN
hWnd = GetActiveWindow();
#endif
AspectRatioWidth = Screen.mainWindowDisplayInfo.width;
AspectRatioHeight = Screen.mainWindowDisplayInfo.height;
defaultScale = new Vector3(Screen.width, Screen.height, 0);
@ -98,10 +145,7 @@ namespace HeavenStudio
instance = this;
}
System.IntPtr hWnd;
System.IntPtr HWND_TOP = new System.IntPtr(0);
System.IntPtr HWND_TOPMOST = new System.IntPtr(-1);
System.IntPtr HWND_NOTOPMOST = new System.IntPtr(-2);
#endregion
@ -145,8 +189,11 @@ namespace HeavenStudio
UpdatePan();
//SetShakeIntensity();
#if UNITY_STANDALONE_WIN
SetPosition(hWnd, Convert.ToInt16(pan.x), Convert.ToInt16(pan.y), Convert.ToInt16(scale.x), Convert.ToInt16(scale.y));
#elif UNITY_STANDALONE_OSX
SetPosition(pan.x, pan.y, scale.x, scale.y);
#endif
//SetPosition(hWnd, Convert.ToInt16(pan.x + shakeResult.x), Convert.ToInt16(pan.y + shakeResult.y), Convert.ToInt16(scale.x), Convert.ToInt16(scale.y));
}
@ -257,7 +304,11 @@ namespace HeavenStudio
scale = defaultScale;
shakeResult = defaultShake;
if(Application.isEditor) return;
#if UNITY_STANDALONE_WIN
SetWindowPos(hWnd, HWND_NOTOPMOST, Convert.ToInt16(pan.x), Convert.ToInt16(pan.y), Convert.ToInt16(scale.x), Convert.ToInt16(scale.y), SWP_SHOWWINDOW);
#elif UNITY_STANDALONE_OSX
SetWindowPos(pan.x, pan.y, scale.x, scale.y);
#endif
}
}
}

View file

@ -134,7 +134,7 @@ PlayerSettings:
16:10: 1
16:9: 1
Others: 1
bundleVersion: 0.0.1039
bundleVersion: 0.0.1040
preloadedAssets:
- {fileID: 102900000, guid: 5348c08b82446e0478cee8bda6c02cfc, type: 3}
metroInputSource: 0
@ -158,11 +158,11 @@ PlayerSettings:
applicationIdentifier:
Standalone: com.RHeavenStudio.Heaven-Studio
buildNumber:
Standalone: 1039
Standalone: 1040
iPhone: 0
tvOS: 0
overrideDefaultApplicationIdentifier: 0
AndroidBundleVersionCode: 1039
AndroidBundleVersionCode: 1040
AndroidMinSdkVersion: 22
AndroidTargetSdkVersion: 0
AndroidPreferredInstallLocation: 1