mirror of
https://github.com/RHeavenStudioPlus/HeavenStudioPlus.git
synced 2024-11-22 01:25:12 +00:00
Convert Starpelly.OS.Windows to be platform agnostic. (#106)
This commit is contained in:
parent
ae017fdeef
commit
3b65aec32f
18 changed files with 93 additions and 23 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -73,3 +73,6 @@ crashlytics-build.properties
|
|||
|
||||
# Visual Studio Code
|
||||
/.vscode/
|
||||
|
||||
# Rider
|
||||
.idea/
|
||||
|
|
23
Assets/Plugins/Starpelly/OS.cs
Normal file
23
Assets/Plugins/Starpelly/OS.cs
Normal file
|
@ -0,0 +1,23 @@
|
|||
namespace Starpelly
|
||||
{
|
||||
public static class OS
|
||||
{
|
||||
private static readonly OperatingSystem.IOperatingSystem _os;
|
||||
|
||||
static OS()
|
||||
{
|
||||
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
|
||||
_os = new OperatingSystem.Windows();
|
||||
#elif UNITY_STANDALONE_LINUX || UNITY_EDITOR_LINUX
|
||||
_os = new OperatingSystem.Linux();
|
||||
#elif UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX
|
||||
_os = new OperatingSystem.MacOS();
|
||||
#endif
|
||||
}
|
||||
|
||||
public static void ChangeWindowTitle(string newTitle)
|
||||
{
|
||||
_os.ChangeWindowTitle(newTitle);
|
||||
}
|
||||
}
|
||||
}
|
3
Assets/Plugins/Starpelly/OS.cs.meta
Normal file
3
Assets/Plugins/Starpelly/OS.cs.meta
Normal file
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 36edcede4a1a4ef9bb0902354c3be0d1
|
||||
timeCreated: 1655775758
|
3
Assets/Plugins/Starpelly/OperatingSystem.meta
Normal file
3
Assets/Plugins/Starpelly/OperatingSystem.meta
Normal file
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7b17a1aeeb0f43bb805dc7ac03408ebb
|
||||
timeCreated: 1655775758
|
|
@ -0,0 +1,7 @@
|
|||
namespace Starpelly.OperatingSystem
|
||||
{
|
||||
public interface IOperatingSystem
|
||||
{
|
||||
public void ChangeWindowTitle(string newTitle);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8bb82376a44e4330b6398deddb17d282
|
||||
timeCreated: 1655775758
|
16
Assets/Plugins/Starpelly/OperatingSystem/Linux.cs
Normal file
16
Assets/Plugins/Starpelly/OperatingSystem/Linux.cs
Normal file
|
@ -0,0 +1,16 @@
|
|||
#if UNITY_EDITOR_LINUX || UNITY_STANDALONE_LINUX
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Starpelly.OperatingSystem
|
||||
{
|
||||
public class Linux : IOperatingSystem
|
||||
{
|
||||
public void ChangeWindowTitle(string newTitle)
|
||||
{
|
||||
var pid = Process.GetCurrentProcess().Id;
|
||||
var args = $"search --all --pid {pid} --class '.' set_window --name \"{newTitle}\"";
|
||||
Process.Start("xdotool", args);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
3
Assets/Plugins/Starpelly/OperatingSystem/Linux.cs.meta
Normal file
3
Assets/Plugins/Starpelly/OperatingSystem/Linux.cs.meta
Normal file
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9e5d25ae0c3e4256abae4d2e07f7e14b
|
||||
timeCreated: 1655775758
|
10
Assets/Plugins/Starpelly/OperatingSystem/MacOS.cs
Normal file
10
Assets/Plugins/Starpelly/OperatingSystem/MacOS.cs
Normal file
|
@ -0,0 +1,10 @@
|
|||
namespace Starpelly.OperatingSystem
|
||||
{
|
||||
public class MacOS : IOperatingSystem
|
||||
{
|
||||
public void ChangeWindowTitle(string newTitle)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
3
Assets/Plugins/Starpelly/OperatingSystem/MacOS.cs.meta
Normal file
3
Assets/Plugins/Starpelly/OperatingSystem/MacOS.cs.meta
Normal file
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cfc6152d5db74f568b229047970f7889
|
||||
timeCreated: 1655775758
|
|
@ -1,3 +1,4 @@
|
|||
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
@ -5,7 +6,7 @@ using System.Text;
|
|||
using Starpelly.Common;
|
||||
using Starpelly.Enums.Windows;
|
||||
|
||||
namespace Starpelly.OS
|
||||
namespace Starpelly.OperatingSystem
|
||||
{
|
||||
public class User32
|
||||
{
|
||||
|
@ -53,4 +54,5 @@ namespace Starpelly.OS
|
|||
public static extern IntPtr GetForegroundWindow();
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
|
@ -1,12 +1,13 @@
|
|||
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using Starpelly.Enums.Windows;
|
||||
using System.Text;
|
||||
|
||||
namespace Starpelly.OS
|
||||
namespace Starpelly.OperatingSystem
|
||||
{
|
||||
public class Windows
|
||||
public class Windows : IOperatingSystem
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the current title of the game window.
|
||||
|
@ -29,7 +30,7 @@ namespace Starpelly.OS
|
|||
/// Changes the game's window title.
|
||||
/// </summary>
|
||||
/// <param name="newTitle">The title the window will be changed to.</param>
|
||||
public static void ChangeWindowTitle(string newTitle)
|
||||
public void ChangeWindowTitle(string newTitle)
|
||||
{
|
||||
var windowPtr = User32.FindWindow(null, GetActiveWindowTitle());
|
||||
User32.SetWindowText(windowPtr, newTitle);
|
||||
|
@ -136,4 +137,5 @@ namespace Starpelly.OS
|
|||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 24f2fe0d29590e64bbf4bc9d4f230b9f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -49,7 +49,7 @@ namespace HeavenStudio
|
|||
Init();
|
||||
DontDestroyOnLoad(this.gameObject);
|
||||
instance = this;
|
||||
Starpelly.OS.Windows.ChangeWindowTitle($"Heaven Studio DEMO");
|
||||
Starpelly.OS.ChangeWindowTitle("Heaven Studio DEMO");
|
||||
}
|
||||
|
||||
public static GameObject CreateFade()
|
||||
|
@ -99,4 +99,4 @@ namespace HeavenStudio
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
"com.unity.2d.sprite": "1.0.0",
|
||||
"com.unity.assetbundlebrowser": "https://github.com/Unity-Technologies/AssetBundles-Browser.git",
|
||||
"com.unity.collab-proxy": "1.15.4",
|
||||
"com.unity.ide.rider": "2.0.7",
|
||||
"com.unity.ide.visualstudio": "2.0.12",
|
||||
"com.unity.ide.vscode": "1.2.4",
|
||||
"com.unity.ide.rider": "3.0.14",
|
||||
"com.unity.ide.visualstudio": "2.0.15",
|
||||
"com.unity.ide.vscode": "1.2.5",
|
||||
"com.unity.nuget.newtonsoft-json": "2.0.2",
|
||||
"com.unity.postprocessing": "3.2.1",
|
||||
"com.unity.test-framework": "1.1.29",
|
||||
|
|
|
@ -31,16 +31,16 @@
|
|||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ide.rider": {
|
||||
"version": "2.0.7",
|
||||
"version": "3.0.14",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.test-framework": "1.1.1"
|
||||
"com.unity.ext.nunit": "1.0.6"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ide.visualstudio": {
|
||||
"version": "2.0.12",
|
||||
"version": "2.0.15",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
|
@ -49,7 +49,7 @@
|
|||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ide.vscode": {
|
||||
"version": "1.2.4",
|
||||
"version": "1.2.5",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {},
|
||||
|
|
Loading…
Reference in a new issue