Fix audio on MacOS (#214)
* JoyShockLibrary Fix PlayerInput.cs errors on MacOS Fix libraries not being added to the final build * how did i do this * both ! * Fix Audio on MacOS (and fix JSL again) * Extra notes
This commit is contained in:
parent
d41463ed82
commit
002fa19971
BIN
Assets/Plugins/VorbisPlugin/Plugins/OSX/libVorbisPlugin.dylib
Normal file → Executable file
BIN
Assets/Plugins/VorbisPlugin/Plugins/OSX/libVorbisPlugin.dylib
Normal file → Executable file
Binary file not shown.
|
@ -6,7 +6,7 @@ PluginImporter:
|
||||||
iconMap: {}
|
iconMap: {}
|
||||||
executionOrder: {}
|
executionOrder: {}
|
||||||
defineConstraints: []
|
defineConstraints: []
|
||||||
isPreloaded: 0
|
isPreloaded: 1
|
||||||
isOverridable: 0
|
isOverridable: 0
|
||||||
isExplicitlyReferenced: 0
|
isExplicitlyReferenced: 0
|
||||||
validateReferences: 1
|
validateReferences: 1
|
||||||
|
@ -16,23 +16,23 @@ PluginImporter:
|
||||||
second:
|
second:
|
||||||
enabled: 0
|
enabled: 0
|
||||||
settings:
|
settings:
|
||||||
Exclude Android: 1
|
Exclude Android: 0
|
||||||
Exclude Editor: 0
|
Exclude Editor: 0
|
||||||
Exclude Linux64: 1
|
Exclude Linux64: 1
|
||||||
Exclude OSXUniversal: 0
|
Exclude OSXUniversal: 0
|
||||||
Exclude Win: 1
|
Exclude Win: 1
|
||||||
Exclude Win64: 1
|
Exclude Win64: 1
|
||||||
Exclude iOS: 1
|
Exclude iOS: 0
|
||||||
- first:
|
- first:
|
||||||
Android: Android
|
Android: Android
|
||||||
second:
|
second:
|
||||||
enabled: 0
|
enabled: 1
|
||||||
settings:
|
settings:
|
||||||
CPU: ARMv7
|
CPU: ARMv7
|
||||||
- first:
|
- first:
|
||||||
Any:
|
Any:
|
||||||
second:
|
second:
|
||||||
enabled: 0
|
enabled: 1
|
||||||
settings: {}
|
settings: {}
|
||||||
- first:
|
- first:
|
||||||
Editor: Editor
|
Editor: Editor
|
||||||
|
@ -41,7 +41,7 @@ PluginImporter:
|
||||||
settings:
|
settings:
|
||||||
CPU: AnyCPU
|
CPU: AnyCPU
|
||||||
DefaultValueInitialized: true
|
DefaultValueInitialized: true
|
||||||
OS: OSX
|
OS: AnyOS
|
||||||
- first:
|
- first:
|
||||||
Standalone: Linux64
|
Standalone: Linux64
|
||||||
second:
|
second:
|
||||||
|
@ -69,7 +69,7 @@ PluginImporter:
|
||||||
- first:
|
- first:
|
||||||
iPhone: iOS
|
iPhone: iOS
|
||||||
second:
|
second:
|
||||||
enabled: 0
|
enabled: 1
|
||||||
settings:
|
settings:
|
||||||
AddToEmbeddedBinaries: false
|
AddToEmbeddedBinaries: false
|
||||||
CPU: AnyCPU
|
CPU: AnyCPU
|
||||||
|
|
|
@ -14,17 +14,17 @@ namespace HeavenStudio
|
||||||
public const int RIGHT = 1;
|
public const int RIGHT = 1;
|
||||||
public const int DOWN = 2;
|
public const int DOWN = 2;
|
||||||
public const int LEFT = 3;
|
public const int LEFT = 3;
|
||||||
|
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
////TEMPORARY JSL FUNCTIONS////
|
////TEMPORARY JSL FUNCTIONS////
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
|
|
||||||
static int jslDevicesFound = 0;
|
static int jslDevicesFound = 0;
|
||||||
static int jslDevicesConnected = 0;
|
static int jslDevicesConnected = 0;
|
||||||
static int[] jslDeviceHandles;
|
static int[] jslDeviceHandles;
|
||||||
|
|
||||||
static List<InputController> inputDevices;
|
static List<InputController> inputDevices;
|
||||||
|
|
||||||
public static int InitInputControllers()
|
public static int InitInputControllers()
|
||||||
{
|
{
|
||||||
inputDevices = new List<InputController>();
|
inputDevices = new List<InputController>();
|
||||||
|
@ -34,11 +34,11 @@ namespace HeavenStudio
|
||||||
keyboard.InitializeController();
|
keyboard.InitializeController();
|
||||||
inputDevices.Add(keyboard);
|
inputDevices.Add(keyboard);
|
||||||
//end Keyboard setup
|
//end Keyboard setup
|
||||||
|
|
||||||
//JoyShock setup
|
//JoyShock setup
|
||||||
Debug.Log("Flushing possible JoyShocks...");
|
Debug.Log("Flushing possible JoyShocks...");
|
||||||
DisconnectJoyshocks();
|
DisconnectJoyshocks();
|
||||||
|
|
||||||
jslDevicesFound = JslConnectDevices();
|
jslDevicesFound = JslConnectDevices();
|
||||||
if (jslDevicesFound > 0)
|
if (jslDevicesFound > 0)
|
||||||
{
|
{
|
||||||
|
@ -53,7 +53,7 @@ namespace HeavenStudio
|
||||||
Debug.Log("Found " + jslDevicesFound + " JoyShocks.");
|
Debug.Log("Found " + jslDevicesFound + " JoyShocks.");
|
||||||
Debug.Log("Connected " + jslDevicesConnected + " JoyShocks.");
|
Debug.Log("Connected " + jslDevicesConnected + " JoyShocks.");
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (int i in jslDeviceHandles)
|
foreach (int i in jslDeviceHandles)
|
||||||
{
|
{
|
||||||
Debug.Log("Setting up JoyShock: ( Handle " + i + ", type " + JslGetControllerType(i) + " )");
|
Debug.Log("Setting up JoyShock: ( Handle " + i + ", type " + JslGetControllerType(i) + " )");
|
||||||
|
@ -68,27 +68,27 @@ namespace HeavenStudio
|
||||||
Debug.Log("No JoyShocks found.");
|
Debug.Log("No JoyShocks found.");
|
||||||
}
|
}
|
||||||
//end JoyShock setup
|
//end JoyShock setup
|
||||||
|
|
||||||
//TODO: XInput setup (boo)
|
//TODO: XInput setup (boo)
|
||||||
//end XInput setup
|
//end XInput setup
|
||||||
|
|
||||||
return inputDevices.Count;
|
return inputDevices.Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int GetNumControllersConnected()
|
public static int GetNumControllersConnected()
|
||||||
{
|
{
|
||||||
return inputDevices.Count;
|
return inputDevices.Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<InputController> GetInputControllers()
|
public static List<InputController> GetInputControllers()
|
||||||
{
|
{
|
||||||
return inputDevices;
|
return inputDevices;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static InputController GetInputController(int player)
|
public static InputController GetInputController(int player)
|
||||||
{
|
{
|
||||||
// Needed so Keyboard works on MacOS
|
// Needed so Keyboard works on MacOS
|
||||||
#if UNITY_EDITOR_OSX
|
#if UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX
|
||||||
inputDevices = new List<InputController>();
|
inputDevices = new List<InputController>();
|
||||||
if(inputDevices.Count < 1)
|
if(inputDevices.Count < 1)
|
||||||
{
|
{
|
||||||
|
@ -110,7 +110,7 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int GetInputControllerId(int player)
|
public static int GetInputControllerId(int player)
|
||||||
{
|
{
|
||||||
//select input controller id that has player field set to player
|
//select input controller id that has player field set to player
|
||||||
|
@ -120,7 +120,7 @@ namespace HeavenStudio
|
||||||
|
|
||||||
|
|
||||||
// Needed so Keyboard works on MacOS
|
// Needed so Keyboard works on MacOS
|
||||||
#if UNITY_EDITOR_OSX
|
#if UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX
|
||||||
inputDevices = new List<InputController>();
|
inputDevices = new List<InputController>();
|
||||||
if(inputDevices.Count < 1)
|
if(inputDevices.Count < 1)
|
||||||
{
|
{
|
||||||
|
@ -139,11 +139,11 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void UpdateInputControllers()
|
public static void UpdateInputControllers()
|
||||||
{
|
{
|
||||||
// Needed so Keyboard works on MacOS
|
// Needed so Keyboard works on MacOS
|
||||||
#if UNITY_EDITOR_OSX
|
#if UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX
|
||||||
inputDevices = new List<InputController>();
|
inputDevices = new List<InputController>();
|
||||||
if(inputDevices.Count < 1)
|
if(inputDevices.Count < 1)
|
||||||
{
|
{
|
||||||
|
@ -158,7 +158,7 @@ namespace HeavenStudio
|
||||||
i.UpdateState();
|
i.UpdateState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DisconnectJoyshocks()
|
public static void DisconnectJoyshocks()
|
||||||
{
|
{
|
||||||
if (jslDeviceHandles != null && jslDevicesConnected > 0 && jslDeviceHandles.Length > 0)
|
if (jslDeviceHandles != null && jslDevicesConnected > 0 && jslDeviceHandles.Length > 0)
|
||||||
|
@ -176,7 +176,7 @@ namespace HeavenStudio
|
||||||
jslDevicesFound = 0;
|
jslDevicesFound = 0;
|
||||||
jslDevicesConnected = 0;
|
jslDevicesConnected = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The autoplay isn't activated AND
|
// The autoplay isn't activated AND
|
||||||
// The song is actually playing AND
|
// The song is actually playing AND
|
||||||
// The GameManager allows you to Input
|
// The GameManager allows you to Input
|
||||||
|
@ -184,96 +184,96 @@ namespace HeavenStudio
|
||||||
{
|
{
|
||||||
return !GameManager.instance.autoplay && Conductor.instance.isPlaying && GameManager.instance.canInput;
|
return !GameManager.instance.autoplay && Conductor.instance.isPlaying && GameManager.instance.canInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*--------------------*/
|
/*--------------------*/
|
||||||
/* MAIN INPUT METHODS */
|
/* MAIN INPUT METHODS */
|
||||||
/*--------------------*/
|
/*--------------------*/
|
||||||
|
|
||||||
// BUTTONS
|
// BUTTONS
|
||||||
//TODO: refactor for controller and custom binds, currently uses temporary button checks
|
//TODO: refactor for controller and custom binds, currently uses temporary button checks
|
||||||
|
|
||||||
public static bool Pressed(bool includeDPad = false)
|
public static bool Pressed(bool includeDPad = false)
|
||||||
{
|
{
|
||||||
bool keyDown = GetInputController(1).GetButtonDown((int) InputController.ButtonsPad.PadE) || (includeDPad && GetAnyDirectionDown());
|
bool keyDown = GetInputController(1).GetButtonDown((int) InputController.ButtonsPad.PadE) || (includeDPad && GetAnyDirectionDown());
|
||||||
return keyDown && !GameManager.instance.autoplay && Conductor.instance.isPlaying && GameManager.instance.canInput ;
|
return keyDown && !GameManager.instance.autoplay && Conductor.instance.isPlaying && GameManager.instance.canInput ;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool PressedUp(bool includeDPad = false)
|
public static bool PressedUp(bool includeDPad = false)
|
||||||
{
|
{
|
||||||
bool keyUp = GetInputController(1).GetButtonUp((int) InputController.ButtonsPad.PadE) || (includeDPad && GetAnyDirectionUp());
|
bool keyUp = GetInputController(1).GetButtonUp((int) InputController.ButtonsPad.PadE) || (includeDPad && GetAnyDirectionUp());
|
||||||
return keyUp && !GameManager.instance.autoplay && Conductor.instance.isPlaying && GameManager.instance.canInput;
|
return keyUp && !GameManager.instance.autoplay && Conductor.instance.isPlaying && GameManager.instance.canInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool Pressing(bool includeDPad = false)
|
public static bool Pressing(bool includeDPad = false)
|
||||||
{
|
{
|
||||||
bool pressing = GetInputController(1).GetButton((int) InputController.ButtonsPad.PadE) || (includeDPad && GetAnyDirection());
|
bool pressing = GetInputController(1).GetButton((int) InputController.ButtonsPad.PadE) || (includeDPad && GetAnyDirection());
|
||||||
return pressing && !GameManager.instance.autoplay && Conductor.instance.isPlaying && GameManager.instance.canInput;
|
return pressing && !GameManager.instance.autoplay && Conductor.instance.isPlaying && GameManager.instance.canInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static bool AltPressed()
|
public static bool AltPressed()
|
||||||
{
|
{
|
||||||
bool down = GetInputController(1).GetButtonDown((int) InputController.ButtonsPad.PadS);
|
bool down = GetInputController(1).GetButtonDown((int) InputController.ButtonsPad.PadS);
|
||||||
return down && playerHasControl();
|
return down && playerHasControl();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AltPressedUp()
|
public static bool AltPressedUp()
|
||||||
{
|
{
|
||||||
bool up = GetInputController(1).GetButtonUp((int) InputController.ButtonsPad.PadS);
|
bool up = GetInputController(1).GetButtonUp((int) InputController.ButtonsPad.PadS);
|
||||||
return up && playerHasControl();
|
return up && playerHasControl();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AltPressing()
|
public static bool AltPressing()
|
||||||
{
|
{
|
||||||
bool pressing = GetInputController(1).GetButton((int) InputController.ButtonsPad.PadS);
|
bool pressing = GetInputController(1).GetButton((int) InputController.ButtonsPad.PadS);
|
||||||
return pressing && playerHasControl();
|
return pressing && playerHasControl();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Directions
|
//Directions
|
||||||
|
|
||||||
public static bool GetAnyDirectionDown()
|
public static bool GetAnyDirectionDown()
|
||||||
{
|
{
|
||||||
InputController c = GetInputController(1);
|
InputController c = GetInputController(1);
|
||||||
return (c.GetHatDirectionDown((InputController.InputDirection) UP)
|
return (c.GetHatDirectionDown((InputController.InputDirection) UP)
|
||||||
|| c.GetHatDirectionDown((InputController.InputDirection) DOWN)
|
|| c.GetHatDirectionDown((InputController.InputDirection) DOWN)
|
||||||
|| c.GetHatDirectionDown((InputController.InputDirection) LEFT)
|
|| c.GetHatDirectionDown((InputController.InputDirection) LEFT)
|
||||||
|| c.GetHatDirectionDown((InputController.InputDirection) RIGHT)
|
|| c.GetHatDirectionDown((InputController.InputDirection) RIGHT)
|
||||||
) && playerHasControl();
|
) && playerHasControl();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool GetAnyDirectionUp()
|
public static bool GetAnyDirectionUp()
|
||||||
{
|
{
|
||||||
InputController c = GetInputController(1);
|
InputController c = GetInputController(1);
|
||||||
return (c.GetHatDirectionUp((InputController.InputDirection) UP)
|
return (c.GetHatDirectionUp((InputController.InputDirection) UP)
|
||||||
|| c.GetHatDirectionUp((InputController.InputDirection) DOWN)
|
|| c.GetHatDirectionUp((InputController.InputDirection) DOWN)
|
||||||
|| c.GetHatDirectionUp((InputController.InputDirection) LEFT)
|
|| c.GetHatDirectionUp((InputController.InputDirection) LEFT)
|
||||||
|| c.GetHatDirectionUp((InputController.InputDirection) RIGHT)
|
|| c.GetHatDirectionUp((InputController.InputDirection) RIGHT)
|
||||||
) && playerHasControl();
|
) && playerHasControl();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool GetAnyDirection()
|
public static bool GetAnyDirection()
|
||||||
{
|
{
|
||||||
InputController c = GetInputController(1);
|
InputController c = GetInputController(1);
|
||||||
return (c.GetHatDirection((InputController.InputDirection) UP)
|
return (c.GetHatDirection((InputController.InputDirection) UP)
|
||||||
|| c.GetHatDirection((InputController.InputDirection) DOWN)
|
|| c.GetHatDirection((InputController.InputDirection) DOWN)
|
||||||
|| c.GetHatDirection((InputController.InputDirection) LEFT)
|
|| c.GetHatDirection((InputController.InputDirection) LEFT)
|
||||||
|| c.GetHatDirection((InputController.InputDirection) RIGHT)
|
|| c.GetHatDirection((InputController.InputDirection) RIGHT)
|
||||||
) && playerHasControl();
|
) && playerHasControl();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool GetSpecificDirection(int direction)
|
public static bool GetSpecificDirection(int direction)
|
||||||
{
|
{
|
||||||
return GetInputController(1).GetHatDirection((InputController.InputDirection) direction) && playerHasControl();
|
return GetInputController(1).GetHatDirection((InputController.InputDirection) direction) && playerHasControl();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool GetSpecificDirectionDown(int direction)
|
public static bool GetSpecificDirectionDown(int direction)
|
||||||
{
|
{
|
||||||
return GetInputController(1).GetHatDirectionDown((InputController.InputDirection) direction) && playerHasControl();
|
return GetInputController(1).GetHatDirectionDown((InputController.InputDirection) direction) && playerHasControl();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool GetSpecificDirectionUp(int direction)
|
public static bool GetSpecificDirectionUp(int direction)
|
||||||
{
|
{
|
||||||
return GetInputController(1).GetHatDirectionUp((InputController.InputDirection) direction) && playerHasControl();
|
return GetInputController(1).GetHatDirectionUp((InputController.InputDirection) direction) && playerHasControl();
|
||||||
|
|
|
@ -29,7 +29,8 @@ This project is still in development, so there are currently no release builds y
|
||||||
- [MacOS](https://nightly.link/megaminerjenny/HeavenStudio/workflows/main/master/StandaloneOSX-build.zip)
|
- [MacOS](https://nightly.link/megaminerjenny/HeavenStudio/workflows/main/master/StandaloneOSX-build.zip)
|
||||||
|
|
||||||
## Self-Building
|
## Self-Building
|
||||||
#### Note: Mac-OS and Linux-based builds are not fully tested, you may [experience bugs with audio-related tasks](https://github.com/megaminerjenny/HeavenStudio/issues/72).
|
#### Note: MacOS and Linux-based builds are not fully tested, you may [experience bugs with audio-related tasks](https://github.com/megaminerjenny/HeavenStudio/issues/72).
|
||||||
|
#### Note: on MacOS, You need to [set the app as executable by yourself](https://cdn.discordapp.com/attachments/954121092564402207/1060769484278861844/IMG_6336.jpg).
|
||||||
Heaven Studio is made in [Unity 2020.3.25f1](https://unity3d.com/unity/whats-new/2020.3.25),
|
Heaven Studio is made in [Unity 2020.3.25f1](https://unity3d.com/unity/whats-new/2020.3.25),
|
||||||
and programmed with [Visual Studio Code](https://code.visualstudio.com/).
|
and programmed with [Visual Studio Code](https://code.visualstudio.com/).
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue