States
unknown
csharp
a year ago
2.4 kB
4
Indexable
using System.Linq.Expressions;
using UnityEngine;
#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 bool jump;
public bool sprint;
public bool wallRun;
public LayerMask wallLayer;
private ThirdPersonController _playerController;
[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>());
}
}
public void OnJump(InputValue value)
{
JumpInput(value.isPressed);
}
public void OnSprint(InputValue value)
{
SprintInput(value.isPressed);
}
public void OnWallRun(InputValue value)
{
bool isWallRunning = CheckForWallRun();
WallRunInput(isWallRunning);
}
#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;
}
public void WallRunInput(bool newWallRunState)
{
wallRun = newWallRunState;
}
private bool CheckForWallRun()
{
if (!_playerController.Grounded && move != Vector2.zero)
{
RaycastHit leftHit;
RaycastHit rightHit;
bool leftWall = Physics.Raycast(transform.position, -transform.right, out leftHit, 1f, wallLayer);
bool rightWall = Physics.Raycast(transform.position, transform.right, out rightHit, 1f, wallLayer);
if (leftWall || rightWall)
{
return true;
}
}
return false;
}
private void OnApplicationFocus(bool hasFocus)
{
SetCursorState(cursorLocked);
}
private void SetCursorState(bool newState)
{
Cursor.lockState = newState ? CursorLockMode.Locked : CursorLockMode.None;
}
}
}Editor is loading...
Leave a Comment