96 lines
3.4 KiB
C#
96 lines
3.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using NeoFPS;
|
|
using NeoCC;
|
|
using NeoFPS.SinglePlayer;
|
|
using NeoFPS.Samples;
|
|
|
|
namespace SimpleInventorySystem
|
|
{
|
|
public class NeoFPSPause : MonoBehaviour
|
|
{
|
|
NeoCharacterController ncc;
|
|
MouseAndGamepadAimController inputAim;
|
|
InputCharacterMotion inputMotion;
|
|
InputInventory inputInventory;
|
|
FpsInventoryQuickSwitch fpsIQS;
|
|
Rigidbody rb;
|
|
bool usingState;
|
|
FpsSoloCharacter fpsSoloCharacter;
|
|
Player_IS player;
|
|
InputFirearm[] inputFirearms;
|
|
NeoFPSAnimationController nfpsAC;
|
|
public InGameMenu pauseMenu;
|
|
bool paused;
|
|
|
|
public bool IsPaused()
|
|
{
|
|
return paused;
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
paused = pauseMenu.IsPaused();
|
|
|
|
if (!InventorySystem.instance.IsUsingInventoryMenuUI())
|
|
{
|
|
pauseMenu.gameObject.SetActive(true);
|
|
pauseMenu.enabled = true;
|
|
}
|
|
else
|
|
{
|
|
pauseMenu.gameObject.SetActive(false);
|
|
pauseMenu.enabled = false;
|
|
}
|
|
|
|
if (player == null && InventorySystem.instance.player != null)
|
|
{
|
|
player = InventorySystem.instance.player;
|
|
inputMotion = player.GetComponent<InputCharacterMotion>();
|
|
inputAim = player.GetComponent<MouseAndGamepadAimController>();
|
|
ncc = player.GetComponent<NeoCharacterController>();
|
|
inputInventory = player.GetComponent<InputInventory>();
|
|
fpsIQS = player.GetComponent<FpsInventoryQuickSwitch>();
|
|
rb = player.GetComponent<Rigidbody>();
|
|
fpsSoloCharacter = player.GetComponent<FpsSoloCharacter>();
|
|
inputFirearms = player.GetComponentsInChildren<InputFirearm>();
|
|
nfpsAC = player.GetComponent<NeoFPSAnimationController>();
|
|
}
|
|
else if (usingState != InventorySystem.instance.IsUsingInventoryMenuUI())
|
|
{
|
|
switch (InventorySystem.instance.IsUsingInventoryMenuUI())
|
|
{
|
|
case true:
|
|
fpsSoloCharacter.motionController.inputMoveDirection = Vector2.zero;
|
|
rb.velocity = new Vector3(0, rb.velocity.y, 0);
|
|
//ncc.ResetVelocity(); // TODO: optimize this in case player is falling
|
|
//ncc.SetVelocity(new Vector3(0, ncc.velocity.y, 0));
|
|
SetEnabledComponents(false);
|
|
usingState = true;
|
|
break;
|
|
case false:
|
|
SetEnabledComponents(true);
|
|
usingState = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void SetEnabledComponents(bool value)
|
|
{
|
|
inputMotion.enabled = value;
|
|
inputAim.enabled = value;
|
|
inputInventory.enabled = value;
|
|
fpsIQS.enabled = value;
|
|
ncc.enabled = value;
|
|
fpsSoloCharacter.enabled = value;
|
|
nfpsAC.enabled = value;
|
|
foreach (InputFirearm inputFirearm in inputFirearms)
|
|
{
|
|
inputFirearm.enabled = value;
|
|
}
|
|
}
|
|
}
|
|
} |