change: input dialogue on player spawn

This commit is contained in:
Chris
2025-09-03 16:58:40 -04:00
parent 40badd1f95
commit 18cebf6f9c
12 changed files with 2818 additions and 83 deletions

View File

@@ -1,14 +1,20 @@
using System;
using System.Collections.Generic;
using Reset.Core.Tools;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Users;
namespace Reset{
public static class GameManager{
public static GameObject UI;
public static GameObject Camera;
public static GameObject Input;
[RuntimeInitializeOnLoadMethodAttribute]
public static SessionManager Session;
public static GameObject Player;
[RuntimeInitializeOnLoadMethod]
static void PopulateSceneReferences(){
try {
UI = GameObject.Find("UICanvas");
@@ -18,8 +24,29 @@ namespace Reset{
Console.WriteLine(e);
throw;
}
}
public static void AttachControllerToPlayer(InputDevice device){
if (!Player) {
throw new Exception(message: "There is no player to attach this new input device to.");
}
InputUser playerUser = Player.GetComponent<PlayerInput>().user;
playerUser = InputUser.PerformPairingWithDevice(device, playerUser, InputUserPairingOptions.UnpairCurrentDevicesFromUser);
}
public static void RequestNewController(){
try {
GameObject.Find("Input Selector").GetComponent<InputFinder>().AwaitNewInput();
} catch (Exception e) {
Debug.LogError($"Can't request a new controller: {e.Message}");
}
}
public static void ClearCurrentController(){
InputUser playerUser = Player.GetComponent<PlayerInput>().user;
playerUser.UnpairDevices();
}
}
}