99 lines
2.0 KiB
C#
99 lines
2.0 KiB
C#
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
#if ENABLE_INPUT_SYSTEM
|
|
using UnityEngine.InputSystem;
|
|
#endif
|
|
|
|
namespace StarterAssets
|
|
{
|
|
public class StarterAssetsInputs : MonoBehaviour
|
|
{
|
|
[Header("Character Input Values")]
|
|
public Vector2 move;
|
|
public Vector2 look;
|
|
public float lookSpeed = 1;
|
|
public bool jump;
|
|
public bool sprint;
|
|
private bool rightButton;
|
|
|
|
[Header("Movement Settings")]
|
|
public bool analogMovement;
|
|
|
|
[Header("Mouse Cursor Settings")]
|
|
public bool cursorLocked = true;
|
|
public bool cursorInputForLook = true;
|
|
|
|
#if ENABLE_INPUT_SYSTEM
|
|
public void OnMove(InputValue value)
|
|
{
|
|
MoveInput(value.Get<Vector2>());
|
|
}
|
|
|
|
public void OnLook(InputValue value)
|
|
{
|
|
if(cursorInputForLook)
|
|
{
|
|
LookInput(value.Get<Vector2>());
|
|
}
|
|
else
|
|
{
|
|
if (rightButton && !EventSystem.current.IsPointerOverGameObject())
|
|
{
|
|
LookInput(value.Get<Vector2>() * lookSpeed);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void OnRotate(InputValue value)
|
|
{
|
|
rightButton = value.isPressed;
|
|
if (!rightButton)
|
|
{
|
|
LookInput(Vector2.zero);
|
|
}
|
|
}
|
|
|
|
public void OnJump(InputValue value)
|
|
{
|
|
JumpInput(value.isPressed);
|
|
}
|
|
|
|
public void OnSprint(InputValue value)
|
|
{
|
|
SprintInput(value.isPressed);
|
|
}
|
|
#endif
|
|
|
|
|
|
public void MoveInput(Vector2 newMoveDirection)
|
|
{
|
|
move = newMoveDirection;
|
|
}
|
|
|
|
public void LookInput(Vector2 newLookDirection)
|
|
{
|
|
look = newLookDirection;
|
|
}
|
|
|
|
public void JumpInput(bool newJumpState)
|
|
{
|
|
jump = newJumpState;
|
|
}
|
|
|
|
public void SprintInput(bool newSprintState)
|
|
{
|
|
sprint = newSprintState;
|
|
}
|
|
|
|
private void OnApplicationFocus(bool hasFocus)
|
|
{
|
|
SetCursorState(cursorLocked);
|
|
}
|
|
|
|
private void SetCursorState(bool newState)
|
|
{
|
|
Cursor.lockState = newState ? CursorLockMode.Locked : CursorLockMode.None;
|
|
}
|
|
}
|
|
|
|
} |