UserInputManager 수정, UpdateRunner 제거

This commit is contained in:
geondo55
2025-04-16 16:09:12 +09:00
parent d4ead516d2
commit 1f525994d0
10 changed files with 19 additions and 62 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -14,13 +14,11 @@ namespace XED.Manage
{ {
Join(new ProjectManager()); Join(new ProjectManager());
Join(new FBXFileManager()); Join(new FBXFileManager());
Join(new UserInputManager());
Join(new CustomAssetConnector()); Join(new CustomAssetConnector());
Join(new RenderObjectHandler()); Join(new RenderObjectHandler());
Join(new InterferedObjectManager()); Join(new InterferedObjectManager());
Join(new CursorManager()); Join(new CursorManager());
Join(new CameraManager()); Join(new CameraManager());
Join(new Raycaster());
Join(new AGVNodeManager()); Join(new AGVNodeManager());
Join(new NodeGizmoController()); Join(new NodeGizmoController());
Join(new AGVNodeLinkManager()); 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 namespace XED.Manage
{ {
public class UserInputManager : Manager public class UserInputManager : MonoBehaviour
{ {
Dictionary<KeyCode, Action> getKeyActionTable = new Dictionary<KeyCode, Action>(); Dictionary<KeyCode, Action> getKeyActionTable = new Dictionary<KeyCode, Action>();
Dictionary<KeyCode, Action> upKeyActionTable = new Dictionary<KeyCode, Action>(); Dictionary<KeyCode, Action> upKeyActionTable = new Dictionary<KeyCode, Action>();
@@ -149,10 +149,5 @@ namespace XED.Manage
updateLoop?.Invoke(); updateLoop?.Invoke();
} }
public override void Init()
{
UpdateRunner.AddAction(Update);
}
} }
} }

View File

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

View File

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