UserInputManager 로직 수정, UpdateRunner 제거 #48

Merged
UVCXR merged 4 commits from pgd/20250416 into main 2025-04-16 16:27:39 +09:00
10 changed files with 19 additions and 62 deletions
Showing only changes of commit 1f525994d0 - Show all commits

View File

@@ -24,6 +24,7 @@ namespace XED.Util
CustomAssetRenderObject prevSelectedObject;
RTGController rtgController;
ConvexHullCalculator convexHullCalculator = new ConvexHullCalculator();
UserInputManager userInputManager;
Vector3 clickBeginPos;
float clickLengthThreshold = 5.0f;
int uiLayer;
@@ -37,7 +38,7 @@ namespace XED.Util
rtgController.onTransformBegin = OnTransformBegin;
rtgController.onTransformChanged = OnTransformChangedFromRTG;
uiLayer = LayerMask.NameToLayer("UI");
//var inputManager = FindSingle<UserInputManager>();
userInputManager = GameObject.FindAnyObjectByType<UserInputManager>();
var statusPanel = GameObject.FindFirstObjectByType<ModePanel>();
statusPanel.AddController(this);
@@ -422,12 +423,12 @@ namespace XED.Util
public void StatusEnterEvent()
{
ManagerHub.instance.Get<UserInputManager>().SetHandler(myHandler);
userInputManager.SetHandler(myHandler);
}
public void StatusExitEvent()
{
ManagerHub.instance.Get<UserInputManager>().RemoveHandler(myHandler);
userInputManager .RemoveHandler(myHandler);
}
public InputHandler GetInputHandler()

View File

@@ -54,6 +54,9 @@ namespace XED.Manage
internal event Action onDrawStart;
private MeshCreator meshCreator;
private UserInputManager userInputManager;
private Raycaster raycaster;
public class Group
{
public List<LinePoint> points = new();
@@ -77,6 +80,8 @@ namespace XED.Manage
prf_WallGroup = Resources.Load<WallGroup>("Prefabs/PRF_WallGroup");
meshCreator = ManagerHub.instance.Get<MeshCreator>();
userInputManager = GameObject.FindAnyObjectByType<UserInputManager>();
raycaster = GameObject.FindAnyObjectByType<Raycaster>();
handler = GetInputHandler();
}
@@ -982,21 +987,19 @@ namespace XED.Manage
public void StatusEnterEvent()
{
var raycaster = ManagerHub.instance.Get<Raycaster>();
raycaster.AddEvent(Raycaster.EventType.FirstStay, typeof (Map), OnStayMap);
raycaster.AddEvent(Raycaster.EventType.FirstClick, typeof(Map), OnClickMap);
raycaster.AddEvent(Raycaster.EventType.FirstClick, typeof(LinePoint), OnClickLinePoint);
raycaster.AddEvent(Raycaster.EventType.FirstClick, typeof(LinePoint), OnClickLinePoint);
ManagerHub.instance.Get<UserInputManager>().SetHandler(handler);
userInputManager.SetHandler(handler);
}
public void StatusExitEvent()
{
var raycaster = ManagerHub.instance.Get<Raycaster>();
raycaster.RemoveEvent(Raycaster.EventType.FirstStay, typeof(Map), OnStayMap);
raycaster.RemoveEvent(Raycaster.EventType.FirstClick, typeof(Map), OnClickMap);
raycaster.RemoveEvent(Raycaster.EventType.FirstClick, typeof(LinePoint), OnClickLinePoint);
ManagerHub.instance.Get<UserInputManager>().RemoveHandler(handler);
userInputManager.RemoveHandler(handler);
}
void Pointing()

View File

@@ -53,8 +53,8 @@ namespace XED.Manage
agvNodeMap = new AGVNodeMap();
myHandler = GetInputHandler();
nodeGizmoController = ManagerHub.instance.Get<NodeGizmoController>();
userInputManager = ManagerHub.instance.Get<UserInputManager>();
raycaster = ManagerHub.instance.Get<Raycaster>();
userInputManager = GameObject.FindAnyObjectByType<UserInputManager>();
raycaster = GameObject.FindAnyObjectByType<Raycaster>();
}
private void Update()

View File

@@ -38,7 +38,7 @@ namespace XED.Manage
public void Init()
{
var userInputManager = ManagerHub.instance.Get<UserInputManager>();
var userInputManager = GameObject.FindAnyObjectByType<UserInputManager>();
var commandHandler = CommandInvoker.instance.GetInputHandler();
userInputManager.SetHandler(GetDefaultInputHandler());

View File

@@ -14,13 +14,11 @@ namespace XED.Manage
{
Join(new ProjectManager());
Join(new FBXFileManager());
Join(new UserInputManager());
Join(new CustomAssetConnector());
Join(new RenderObjectHandler());
Join(new InterferedObjectManager());
Join(new CursorManager());
Join(new CameraManager());
Join(new Raycaster());
Join(new AGVNodeManager());
Join(new NodeGizmoController());
Join(new AGVNodeLinkManager());

View File

@@ -1,37 +0,0 @@
using NUnit.Framework;
using System;
using System.Collections.Generic;
using UnityEngine;
using XED.Core;
namespace XED
{
public class UpdateRunner : UnitySingleton<UpdateRunner>
{
private static List<Action> updateActions = new List<Action>();
public static void AddAction(Action action)
{
if (!updateActions.Contains(action))
{
updateActions.Add(action);
}
}
public static void RemoveAction(Action action)
{
if (updateActions.Contains(action))
{
updateActions.Remove(action);
}
}
void Update()
{
foreach (Action action in updateActions)
{
action?.Invoke();
}
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 40294507f68cc2942b2bef179e37eb08

View File

@@ -6,7 +6,7 @@ using XRLib;
namespace XED.Manage
{
public class UserInputManager : Manager
public class UserInputManager : MonoBehaviour
{
Dictionary<KeyCode, Action> getKeyActionTable = new Dictionary<KeyCode, Action>();
Dictionary<KeyCode, Action> upKeyActionTable = new Dictionary<KeyCode, Action>();
@@ -149,10 +149,5 @@ namespace XED.Manage
updateLoop?.Invoke();
}
public override void Init()
{
UpdateRunner.AddAction(Update);
}
}
}

View File

@@ -37,7 +37,7 @@ namespace XED
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
panel_objectinfo.onTransformChanged += renderObjectHandler.OnTransformChanged;
var raycaster = ManagerHub.instance.Get<Raycaster>();
var raycaster = GameObject.FindAnyObjectByType<Raycaster>();
raycaster.onUIHoverEvent += panel_tooltip.ActivateTooltip;
raycaster.onUIHoverExitEvent += panel_tooltip.DeactivateTooltip;

View File

@@ -9,7 +9,7 @@ using XED;
namespace XED.Manage
{
[DefaultExecutionOrder(int.MinValue)]
public class Raycaster : Manager
public class Raycaster : MonoBehaviour
{
public enum EventType
{
@@ -58,10 +58,9 @@ namespace XED.Manage
Vector2 prevMousePos;
public override void Init()
public override void AfterAwake()
{
cam = Camera.main;
UpdateRunner.AddAction(Update);
}
void Update()