v2
Add tests Modify syntax to be clearer Add Query function
This commit is contained in:
parent
a0e23300a5
commit
e68b1a5214
23 changed files with 222 additions and 48 deletions
42
Assets/Plugins/UnityGameMode/LinuxGameMode.cs
Normal file
42
Assets/Plugins/UnityGameMode/LinuxGameMode.cs
Normal file
|
@ -0,0 +1,42 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
public class LinuxGameMode : MonoBehaviour
|
||||
{
|
||||
#if UNITY_EDITOR_LINUX || UNITY_STANDALONE_LINUX
|
||||
|
||||
// Import functions from native lib
|
||||
[DllImport("UnityGameMode")]
|
||||
public static extern int GameModeRequestStart();
|
||||
[DllImport("UnityGameMode")]
|
||||
public static extern int GameModeRequestEnd();
|
||||
[DllImport("UnityGameMode")]
|
||||
public static extern int GameModeQueryStatus();
|
||||
|
||||
private void Start()
|
||||
{
|
||||
Debug.Log("Requesting Linux GameMode Start");
|
||||
var ret = GameModeRequestStart();
|
||||
if (ret != 0)
|
||||
{
|
||||
Debug.Log($"Linux GameMode Start Failed: #{ret}");
|
||||
}
|
||||
}
|
||||
|
||||
private void OnApplicationQuit()
|
||||
{
|
||||
Debug.Log("Requesting Linux GameMode End");
|
||||
var ret = GameModeRequestEnd();
|
||||
if (ret != 0)
|
||||
{
|
||||
Debug.Log($"Linux GameMode End failed: #{ret}");
|
||||
}
|
||||
}
|
||||
#else
|
||||
public static int GameModeRequestStart() { return 0; }
|
||||
public static int GameModeRequestEnd() { return 0; }
|
||||
public static int GameModeQueryStatus() { return 0; }
|
||||
#endif // UNITY_EDITOR_LINUX || UNITY_STANDALONE_LINUX
|
||||
}
|
11
Assets/Plugins/UnityGameMode/LinuxGameMode.cs.meta
Normal file
11
Assets/Plugins/UnityGameMode/LinuxGameMode.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 37e3f85ce68c6c2f186d5cf8cc78661a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/Plugins/UnityGameMode/Tests.meta
Normal file
8
Assets/Plugins/UnityGameMode/Tests.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 861cc3c09d2156d259770af563e138ee
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
42
Assets/Plugins/UnityGameMode/Tests/LinuxGameModeTests.cs
Normal file
42
Assets/Plugins/UnityGameMode/Tests/LinuxGameModeTests.cs
Normal file
|
@ -0,0 +1,42 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
|
||||
#if UNITY_EDITOR_LINUX || UNITY_STANDALONE_LINUX
|
||||
namespace Tests
|
||||
{
|
||||
public class LinuxGameModeTests
|
||||
{
|
||||
[Test]
|
||||
public void GameModeRequestStartWorks()
|
||||
{
|
||||
var ret = LinuxGameMode.GameModeRequestStart();
|
||||
Assert.IsTrue( ret == 0 );
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GameModeRequestEndWorks()
|
||||
{
|
||||
var ret = LinuxGameMode.GameModeRequestStart();
|
||||
Assert.IsTrue( ret == 0 );
|
||||
ret = LinuxGameMode.GameModeRequestEnd();
|
||||
Assert.IsTrue( ret == 0 );
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GameModeGameModeQueryStatusWorks()
|
||||
{
|
||||
var ret = LinuxGameMode.GameModeRequestStart();
|
||||
Assert.IsTrue( ret == 0 );
|
||||
|
||||
ret = LinuxGameMode.GameModeQueryStatus();
|
||||
Assert.IsTrue( ret == 2 );
|
||||
|
||||
ret = LinuxGameMode.GameModeRequestEnd();
|
||||
Assert.IsTrue( ret == 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 10924db4abe9770f4afcae590ef633b4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
16
Assets/Plugins/UnityGameMode/Tests/Tests.asmdef
Normal file
16
Assets/Plugins/UnityGameMode/Tests/Tests.asmdef
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"name": "Tests",
|
||||
"references": [
|
||||
"UnityGameMode"
|
||||
],
|
||||
"optionalUnityReferences": [
|
||||
"TestAssemblies"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": []
|
||||
}
|
7
Assets/Plugins/UnityGameMode/Tests/Tests.asmdef.meta
Normal file
7
Assets/Plugins/UnityGameMode/Tests/Tests.asmdef.meta
Normal file
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 988460cbe66440da5957c2009cf1716c
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
3
Assets/Plugins/UnityGameMode/UnityGameMode.asmdef
Normal file
3
Assets/Plugins/UnityGameMode/UnityGameMode.asmdef
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"name": "UnityGameMode"
|
||||
}
|
7
Assets/Plugins/UnityGameMode/UnityGameMode.asmdef.meta
Normal file
7
Assets/Plugins/UnityGameMode/UnityGameMode.asmdef.meta
Normal file
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b64a5e540ca9753878ce248d3c605b90
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,2 +1,3 @@
|
|||
#!/bin/bash
|
||||
g++ unitygamemode.c -shared -ldl -o libUnityGameMode.so
|
||||
nm -C libUnityGameMode.so | grep GameMode
|
||||
|
|
7
Assets/Plugins/UnityGameMode/compile.sh.meta
Normal file
7
Assets/Plugins/UnityGameMode/compile.sh.meta
Normal file
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 034bb0da8726741ad84b3f98590ac9b9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,9 +1,13 @@
|
|||
#include "gamemode_client.h"
|
||||
|
||||
extern "C" int UnityEnterGameMode() {
|
||||
gamemode_request_start();
|
||||
extern "C" int GameModeRequestStart() {
|
||||
return gamemode_request_start();
|
||||
}
|
||||
|
||||
extern "C" int UnityExitGameMode() {
|
||||
gamemode_request_end();
|
||||
extern "C" int GameModeRequestEnd() {
|
||||
return gamemode_request_end();
|
||||
}
|
||||
|
||||
extern "C" int GameModeQueryStatus() {
|
||||
return gamemode_query_status();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue