88 lines
2.8 KiB
C#

using Assets.Scripts;
using Assets.Scripts.Menu;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class ControlsMenu : MonoBehaviour
{
UIHandlerMenu uihandler;
MoveDirection direction;
PlayerInput playerInput;
void Start()
{
uihandler = GameObject.Find("UIHandler").GetComponent<UIHandlerMenu>();
direction = MoveDirection.None;
playerInput = GetComponent<PlayerInput>();
}
// Update is called once per frame
void Update()
{
changeNameInput();
if(playerInput.currentControlScheme == "Controller"){
if(EventSystem.current.currentSelectedGameObject == null){
EventSystem.current.SetSelectedGameObject(FindFirstObjectByType<Button>().gameObject);
}
if(Cursor.lockState != CursorLockMode.Locked){
Cursor.lockState = CursorLockMode.Locked;
}
if(playerInput.currentActionMap.name != "Menu"){
playerInput.SwitchCurrentActionMap("Menu");
}
}
else{
if(Cursor.lockState != CursorLockMode.Confined){
Cursor.lockState = CursorLockMode.Confined;
}
}
}
public void FixedUpdate(){
if(direction != MoveDirection.None){
AxisEventData data = new AxisEventData(EventSystem.current);
data.moveDir = direction;
data.selectedObject = EventSystem.current.currentSelectedGameObject;
ExecuteEvents.Execute(data.selectedObject, data, ExecuteEvents.moveHandler);
}
}
public void OnMovement(InputValue value){
if(value.Get<Vector2>().x < 0){
direction = MoveDirection.Left;
}
else if(value.Get<Vector2>().x > 0){
direction = MoveDirection.Right;
}
else if(value.Get<Vector2>().y < 0){
direction = MoveDirection.Down;
}
else if(value.Get<Vector2>().y > 0){
direction = MoveDirection.Up;
}
}
public void OnBack(){
}
public void changeNameInput(){
if(uihandler.isCharacterCreation()){
if(playerInput.currentControlScheme == "Controller"){
if(EventSystem.current.currentSelectedGameObject == null || EventSystem.current.currentSelectedGameObject == GameObject.Find("inName")){
EventSystem.current.SetSelectedGameObject(GameObject.Find("btnRandomName"));
}
GameObject.Find("inName").GetComponent<InputField>().interactable = false;
}
else{
GameObject.Find("inName").GetComponent<InputField>().interactable = true;
}
}
}
}