This commit is contained in:
wsh
2025-04-16 11:45:14 +09:00
18 changed files with 133 additions and 305 deletions

View File

@@ -1,5 +1,6 @@
using NUnit.Framework; using NUnit.Framework;
using System.Collections.Generic; using System.Collections.Generic;
using XED.Manage;
namespace XED.VirtualFactory namespace XED.VirtualFactory
{ {

View File

@@ -9,8 +9,6 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 1821569750776054505} - component: {fileID: 1821569750776054505}
- component: {fileID: 7245323945551537659}
- component: {fileID: 2051839441129491893}
- component: {fileID: 4636811485307056759} - component: {fileID: 4636811485307056759}
- component: {fileID: 8127948644408097011} - component: {fileID: 8127948644408097011}
m_Layer: 0 m_Layer: 0
@@ -35,43 +33,6 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &7245323945551537659
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1409607586026230811}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2bb472437f31bb444ac3a380ebdd2f3f, type: 3}
m_Name:
m_EditorClassIdentifier:
nodePrefab: {fileID: 2579942234611465176, guid: 5b3355ff1ae888e428ebf6ad2853e303, type: 3}
markerPrefab: {fileID: 2579942234611465176, guid: f2ef013240a7d2548b78c9434734181a, type: 3}
nodeSelectMode: 2
currentlySelectedNode: {fileID: 0}
agvNodeMap:
maxid: 0
agvNodeData: []
--- !u!114 &2051839441129491893
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1409607586026230811}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a6552f9ab96d944459a5e5a6f3eb6463, type: 3}
m_Name:
m_EditorClassIdentifier:
moveGizmo:
_settings:
_canBeDisplayed: 1
_isExpanded: 1
_transformableLayers: -1
target: {fileID: 0}
--- !u!114 &4636811485307056759 --- !u!114 &4636811485307056759
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -98,6 +59,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 43c2fa2860dfa344d856558ec881bb8a, type: 3} m_Script: {fileID: 11500000, guid: 43c2fa2860dfa344d856558ec881bb8a, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
agvPrefab: {fileID: 1505508720499862715, guid: 03eb7e95fc0cb334d848d40c49b4110e, type: 3} prf_AGV: {fileID: 0}
agvs: [] prf_Spec: {fileID: 0}
fileName: Assets/AGVsLog.csv autoIndexing: 0

View File

@@ -2265,51 +2265,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 502356474} m_GameObject: {fileID: 502356474}
m_CullTransparentMesh: 0 m_CullTransparentMesh: 0
--- !u!1 &503307893
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 503307894}
- component: {fileID: 503307895}
m_Layer: 0
m_Name: Raycaster
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &503307894
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 503307893}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1093055756}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &503307895
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 503307893}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 73c8199685949fb4eb02e83a235ec68b, type: 3}
m_Name:
m_EditorClassIdentifier:
uiHoverTime: 0
--- !u!1 &535540530 --- !u!1 &535540530
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -3018,72 +2973,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 4, y: 20} m_SizeDelta: {x: 4, y: 20}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1001 &812349387
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1093055756}
m_Modifications:
- target: {fileID: 3963811325703941763, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_Name
value: WallBuilder
objectReference: {fileID: 0}
- target: {fileID: 3963811325703941763, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalPosition.x
value: 1.3484559
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalPosition.y
value: 3.002852
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalPosition.z
value: -2.1850286
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
--- !u!4 &812349388 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 7756644939596186566, guid: a906cd4ab09260143b9d87e622d9e458, type: 3}
m_PrefabInstance: {fileID: 812349387}
m_PrefabAsset: {fileID: 0}
--- !u!1 &827571245 --- !u!1 &827571245
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -4289,9 +4178,6 @@ Transform:
- {fileID: 1149817090} - {fileID: 1149817090}
- {fileID: 636283413} - {fileID: 636283413}
- {fileID: 2021424132} - {fileID: 2021424132}
- {fileID: 812349388}
- {fileID: 503307894}
- {fileID: 2057021881}
- {fileID: 538683123} - {fileID: 538683123}
- {fileID: 617235297} - {fileID: 617235297}
- {fileID: 749092880} - {fileID: 749092880}
@@ -11274,68 +11160,6 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
currentMode: 0 currentMode: 0
--- !u!1001 &2057021880
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1093055756}
m_Modifications:
- target: {fileID: 1409607586026230811, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_Name
value: AGVNodeManager
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
--- !u!4 &2057021881 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1821569750776054505, guid: 2e1f6b521b86f624a9e2eba79ecb0de5, type: 3}
m_PrefabInstance: {fileID: 2057021880}
m_PrefabAsset: {fileID: 0}
--- !u!224 &34056510312835704 --- !u!224 &34056510312835704
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -0,0 +1,34 @@
using UnityEngine;
namespace XED
{
public static class Enums
{
public enum NodeSelectMode
{
Idle,
Draw,
SelectRunNode,
Select,
Setting
}
public enum VirtualPoint
{
LeftTop,
LeftBottom,
RightTop,
RightBottom,
LeftCenter,
RightCenter,
}
public enum BuilderState
{
None,
PointModfiy,
PointRemove,
Drawing
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: ca60beab57bc28c4ba8d59f3593937b2

View File

@@ -5,9 +5,9 @@ using TriLibCore.Dae.Schema;
using UnityEngine; using UnityEngine;
using XRLib; using XRLib;
namespace XED namespace XED.Manage
{ {
public class MeshCreator : MonoBehaviour,ISingle public class MeshCreator : Manager
{ {
Vector3[] vertices; Vector3[] vertices;
int[] triangles; int[] triangles;
@@ -15,6 +15,11 @@ namespace XED
private MeshFilter meshfilter; private MeshFilter meshfilter;
//private Vector3 offset = Vector3.zero; //private Vector3 offset = Vector3.zero;
public override void Init()
{
}
public void MeshDeformer<T>(HashSet<T> type) public void MeshDeformer<T>(HashSet<T> type)
{ {
if(type is HashSet<Floor>) if(type is HashSet<Floor>)

View File

@@ -5,7 +5,7 @@ using System.Linq;
using System.Security.Cryptography; using System.Security.Cryptography;
using UnityEngine; using UnityEngine;
using XRLib; using XRLib;
using static XED.WallBuilder; using static XED.Enums;
using Color = UnityEngine.Color; using Color = UnityEngine.Color;
namespace XED namespace XED

View File

@@ -9,28 +9,13 @@ using XRLib;
using XED.Interfaces; using XED.Interfaces;
using XED.Manage; using XED.Manage;
using XED.RuntimeGizmo; using XED.RuntimeGizmo;
using Object = UnityEngine.Object;
using static XED.Enums;
namespace XED namespace XED.Manage
{ {
public class WallBuilder : MonoBehaviour, ISingle, IInputHandler, IModeController public class WallBuilder : Manager, IInputHandler, IModeController
{ {
public enum VirtualPoint
{
LeftTop,
LeftBottom,
RightTop,
RightBottom,
LeftCenter,
RightCenter,
}
public enum BuilderState
{
None,
PointModfiy,
PointRemove,
Drawing
}
public float thickness; public float thickness;
private GameObject renderParent; private GameObject renderParent;
private Material lineMat; private Material lineMat;
@@ -81,7 +66,8 @@ namespace XED
wallLines.Add(wallLine); wallLines.Add(wallLine);
} }
} }
public override void AfterAwake()
public override void Init()
{ {
renderParent = new GameObject("LineRenderParent"); renderParent = new GameObject("LineRenderParent");
lineMat = Resources.Load<Material>("Materials/Mat_LineRender"); lineMat = Resources.Load<Material>("Materials/Mat_LineRender");
@@ -90,7 +76,7 @@ namespace XED
prf_Wall = Resources.Load<Wall>("Prefabs/PRF_Wall"); prf_Wall = Resources.Load<Wall>("Prefabs/PRF_Wall");
prf_WallGroup = Resources.Load<WallGroup>("Prefabs/PRF_WallGroup"); prf_WallGroup = Resources.Load<WallGroup>("Prefabs/PRF_WallGroup");
meshCreator = FindSingle<MeshCreator>(); meshCreator = ManagerHub.instance.Get<MeshCreator>();
handler = GetInputHandler(); handler = GetInputHandler();
} }
@@ -146,14 +132,14 @@ namespace XED
{ {
//ToDo..연결된 포인트가 없는 Point찾아서 제거 //ToDo..연결된 포인트가 없는 Point찾아서 제거
DisconnectLine(removeWalls[i]); DisconnectLine(removeWalls[i]);
Destroy(removeWalls[i].gameObject); Object.Destroy(removeWalls[i].gameObject);
} }
Remove(lp); Remove(lp);
} }
public LinePoint CreateLinePoint(Vector3 pos) public LinePoint CreateLinePoint(Vector3 pos)
{ {
var result = Instantiate(prf_LinePoint); var result = Object.Instantiate(prf_LinePoint);
result.transform.SetParent(renderParent.transform); result.transform.SetParent(renderParent.transform);
result.name = cc++.ToString(); result.name = cc++.ToString();
result.transform.position = pos; result.transform.position = pos;
@@ -175,7 +161,7 @@ namespace XED
private Wall CreateWall(LinePoint lcp, LinePoint rcp) private Wall CreateWall(LinePoint lcp, LinePoint rcp)
{ {
var result = Instantiate(prf_Wall); var result = Object.Instantiate(prf_Wall);
result.Generate(lcp, rcp, lineMat, thickness); result.Generate(lcp, rcp, lineMat, thickness);
result.name = "WallLine" + index++; result.name = "WallLine" + index++;
walls.Add(result); walls.Add(result);
@@ -339,7 +325,7 @@ namespace XED
{ {
linePoints.Remove(lp); linePoints.Remove(lp);
pointToWall.Remove(lp); pointToWall.Remove(lp);
Destroy(lp.gameObject); Object.Destroy(lp.gameObject);
} }
void BuildWall(Vector3 endPos) void BuildWall(Vector3 endPos)
@@ -426,7 +412,7 @@ namespace XED
pointToWall.Remove(rcp); pointToWall.Remove(rcp);
} }
wall.Deselect(); wall.Deselect();
Destroy(wall.gameObject); Object.Destroy(wall.gameObject);
} }
Wall BuildContinuesWall(Vector3 p) Wall BuildContinuesWall(Vector3 p)
@@ -684,7 +670,7 @@ namespace XED
private WallGroup CreateWallGroup() private WallGroup CreateWallGroup()
{ {
var group = Instantiate(prf_WallGroup); var group = Object.Instantiate(prf_WallGroup);
groupTable.Add(group, new()); groupTable.Add(group, new());
wallgroups.Add(group); wallgroups.Add(group);
@@ -996,7 +982,7 @@ namespace XED
public void StatusEnterEvent() public void StatusEnterEvent()
{ {
var raycaster = FindSingle<Raycaster>(); 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);
@@ -1006,7 +992,7 @@ namespace XED
public void StatusExitEvent() public void StatusExitEvent()
{ {
var raycaster = FindSingle<Raycaster>(); 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);
@@ -1026,7 +1012,7 @@ namespace XED
linePoints.Remove(handlePoint); linePoints.Remove(handlePoint);
pointToWall.Remove(handlePoint); pointToWall.Remove(handlePoint);
handlePoint.Release(); handlePoint.Release();
Destroy(handlePoint.gameObject); Object.Destroy(handlePoint.gameObject);
} }
if (pilePoint != null) if (pilePoint != null)
@@ -1044,7 +1030,7 @@ namespace XED
{ {
walls.Remove(tempWall); walls.Remove(tempWall);
tempWall.Release(); tempWall.Release();
Destroy(tempWall.gameObject); Object.Destroy(tempWall.gameObject);
} }
tempWall = null; tempWall = null;

View File

@@ -1,16 +1,23 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using XED.VirtualFactory;
using XRLib; using XRLib;
namespace XED.VirtualFactory namespace XED.Manage
{ {
public class AGVManager : MonoBehaviour, ISingle public class AGVManager : Manager
{ {
public AGV prf_AGV; public AGV prf_AGV;
public AGVSpec prf_Spec; public AGVSpec prf_Spec;
public HashSet<AGV> agvs = new(); public HashSet<AGV> agvs = new();
public bool autoIndexing; public bool autoIndexing;
public override void Init()
{
}
public bool TryGetIdleAGV(out AGV result) public bool TryGetIdleAGV(out AGV result)
{ {
//Debug.Log($"Try Get Idle AGV"); //Debug.Log($"Try Get Idle AGV");
@@ -30,7 +37,7 @@ namespace XED.VirtualFactory
public AGV CreateEmptyAGV() public AGV CreateEmptyAGV()
{ {
var agv = Instantiate(prf_AGV); var agv = UnityEngine.Object.Instantiate(prf_AGV);
agvs.Add(agv); agvs.Add(agv);
if (autoIndexing) if (autoIndexing)

View File

@@ -1,10 +1,10 @@
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using XRLib; using XED.VirtualFactory;
namespace XED.VirtualFactory namespace XED.Manage
{ {
public class AGVNodeLinkManager : MonoBehaviour,ISingle public class AGVNodeLinkManager : Manager
{ {
public HashSet<Pair<AGVNode>> linkedNode = new HashSet<Pair<AGVNode>>(); public HashSet<Pair<AGVNode>> linkedNode = new HashSet<Pair<AGVNode>>();
private Dictionary<Pair<AGVNode>, GameObject> lineObjects = new Dictionary<Pair<AGVNode>, GameObject>(); private Dictionary<Pair<AGVNode>, GameObject> lineObjects = new Dictionary<Pair<AGVNode>, GameObject>();
@@ -14,6 +14,11 @@ namespace XED.VirtualFactory
[SerializeField] [SerializeField]
Material lineMat; Material lineMat;
public override void Init()
{
}
public void AddLines(List<AGVNode> nodeList) public void AddLines(List<AGVNode> nodeList)
{ {
for (int i = 0; i < nodeList.Count; i++) for (int i = 0; i < nodeList.Count; i++)
@@ -100,7 +105,7 @@ namespace XED.VirtualFactory
{ {
if (lineObjects.ContainsKey(pair)) if (lineObjects.ContainsKey(pair))
{ {
Destroy(lineObjects[pair]); Object.Destroy(lineObjects[pair]);
lineObjects.Remove(pair); lineObjects.Remove(pair);
} }
else else

View File

@@ -1,27 +1,20 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using Ookii.Dialogs;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Runtime.CompilerServices;
using TriLibCore.SFB; using TriLibCore.SFB;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems;
using XRLib; using XRLib;
using XED.Interfaces; using XED.Interfaces;
using XED.Manage; using XED.VirtualFactory;
using XED.Asset;
using Object = UnityEngine.Object;
using static XED.Enums;
namespace XED.VirtualFactory namespace XED.Manage
{ {
public enum NodeSelectMode
{ public class AGVNodeManager : Manager, IModeController, IInputHandler
Idle,
Draw,
SelectRunNode,
Select,
Setting
}
public class AGVNodeManager : MonoBehaviour, ISingle, IModeController, IInputHandler
{ {
[SerializeField] [SerializeField]
GameObject nodePrefab; GameObject nodePrefab;
@@ -50,14 +43,18 @@ namespace XED.VirtualFactory
List<AGVNode> selectedNodeSequence = new List<AGVNode>(); List<AGVNode> selectedNodeSequence = new List<AGVNode>();
InputHandler myHandler; InputHandler myHandler;
NodeGizmoController nodeGizmoController; NodeGizmoController nodeGizmoController;
UserInputManager userInputManager;
Raycaster raycaster;
public ModePanel.ProgramMode mode => ModePanel.ProgramMode.AGVPathDrawing; public ModePanel.ProgramMode mode => ModePanel.ProgramMode.AGVPathDrawing;
public override void AfterStart() public override void Init()
{ {
agvNodeMap = new AGVNodeMap(); agvNodeMap = new AGVNodeMap();
myHandler = GetInputHandler(); myHandler = GetInputHandler();
nodeGizmoController = FindSingle<NodeGizmoController>(); nodeGizmoController = ManagerHub.instance.Get<NodeGizmoController>();
userInputManager = ManagerHub.instance.Get<UserInputManager>();
raycaster = ManagerHub.instance.Get<Raycaster>();
} }
private void Update() private void Update()
@@ -200,13 +197,13 @@ namespace XED.VirtualFactory
{ {
if (flag) if (flag)
{ {
nodeTarget = Instantiate(markerPrefab); nodeTarget = Object.Instantiate(markerPrefab);
} }
else else
{ {
if (nodeTarget) if (nodeTarget)
{ {
Destroy(nodeTarget); Object.Destroy(nodeTarget);
} }
} }
} }
@@ -226,7 +223,7 @@ namespace XED.VirtualFactory
return; return;
} }
GameObject go = Instantiate(nodePrefab); GameObject go = Object.Instantiate(nodePrefab);
var objNode = go.GetComponent<AGVNode>(); var objNode = go.GetComponent<AGVNode>();
nodeTable.Add(nodedata.id, objNode); nodeTable.Add(nodedata.id, objNode);
objNode.Initialize(nodedata); objNode.Initialize(nodedata);
@@ -257,7 +254,7 @@ namespace XED.VirtualFactory
DeselectNode(); DeselectNode();
if (nodeSelectMode == NodeSelectMode.Draw) if (nodeSelectMode == NodeSelectMode.Draw)
{ {
GameObject go = Instantiate(nodePrefab); GameObject go = Object.Instantiate(nodePrefab);
go.transform.position = hit.point; go.transform.position = hit.point;
var objNode = go.GetComponent<AGVNode>(); var objNode = go.GetComponent<AGVNode>();
int maxid = int.Parse(agvNodeMap.maxid); int maxid = int.Parse(agvNodeMap.maxid);
@@ -281,7 +278,7 @@ namespace XED.VirtualFactory
{ {
return; return;
} }
GameObject NewNode = Instantiate(nodePrefab, currentlySelectedNode.transform.position + Vector3.right, Quaternion.identity); GameObject NewNode = Object.Instantiate(nodePrefab, currentlySelectedNode.transform.position + Vector3.right, Quaternion.identity);
AGVNode node = NewNode.GetComponent<AGVNode>(); AGVNode node = NewNode.GetComponent<AGVNode>();
int maxid = int.Parse(agvNodeMap.maxid); int maxid = int.Parse(agvNodeMap.maxid);
maxid++; maxid++;
@@ -322,7 +319,7 @@ namespace XED.VirtualFactory
n.linkedNodID.Remove(currentlySelectedNode.nodeClass.id); n.linkedNodID.Remove(currentlySelectedNode.nodeClass.id);
} }
Destroy(currentlySelectedNode.gameObject); Object.Destroy(currentlySelectedNode.gameObject);
DeselectNode(); DeselectNode();
} }
@@ -356,7 +353,7 @@ namespace XED.VirtualFactory
n.linkedNodID.Remove(node.nodeClass.id); n.linkedNodID.Remove(node.nodeClass.id);
} }
Destroy(node.gameObject); Object.Destroy(node.gameObject);
DeselectNode(); DeselectNode();
} }
@@ -404,8 +401,7 @@ namespace XED.VirtualFactory
public void StatusEnterEvent() public void StatusEnterEvent()
{ {
var raycaster = FindSingle<Raycaster>(); userInputManager.SetHandler(myHandler);
ManagerHub.instance.Get<UserInputManager>().SetHandler(myHandler);
raycaster.AddEvent(Raycaster.EventType.FirstLeftClickOnly, typeof(AGVNode), OnClickAGVNode); raycaster.AddEvent(Raycaster.EventType.FirstLeftClickOnly, typeof(AGVNode), OnClickAGVNode);
raycaster.AddEvent(Raycaster.EventType.Stay, typeof(Map), MoveDrawTarget); raycaster.AddEvent(Raycaster.EventType.Stay, typeof(Map), MoveDrawTarget);
raycaster.AddEvent(Raycaster.EventType.FirstLeftClickOnly, typeof(Map), ONClickGround); raycaster.AddEvent(Raycaster.EventType.FirstLeftClickOnly, typeof(Map), ONClickGround);
@@ -413,8 +409,7 @@ namespace XED.VirtualFactory
public void StatusExitEvent() public void StatusExitEvent()
{ {
var raycaster = FindSingle<Raycaster>(); userInputManager.RemoveHandler(myHandler);
ManagerHub.instance.Get<UserInputManager>().RemoveHandler(myHandler);
raycaster.RemoveEvent(Raycaster.EventType.FirstLeftClickOnly, typeof(AGVNode), OnClickAGVNode); raycaster.RemoveEvent(Raycaster.EventType.FirstLeftClickOnly, typeof(AGVNode), OnClickAGVNode);
raycaster.RemoveEvent(Raycaster.EventType.Stay, typeof(Map), MoveDrawTarget); raycaster.RemoveEvent(Raycaster.EventType.Stay, typeof(Map), MoveDrawTarget);
raycaster.RemoveEvent(Raycaster.EventType.FirstLeftClickOnly, typeof(Map), ONClickGround); raycaster.RemoveEvent(Raycaster.EventType.FirstLeftClickOnly, typeof(Map), ONClickGround);
@@ -438,10 +433,10 @@ namespace XED.VirtualFactory
return handler; return handler;
} }
protected override void OnDestroy() //protected override void OnDestroy()
{ //{
//vistaOpenFileDialog.Dispose(); // //vistaOpenFileDialog.Dispose();
//saveFileDialog.Dispose(); // //saveFileDialog.Dispose();
} //}
} }
} }

View File

@@ -4,6 +4,7 @@ using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using XRLib.UI; using XRLib.UI;
using static XED.Enums;
namespace XED.VirtualFactory namespace XED.VirtualFactory
{ {

View File

@@ -1,19 +1,17 @@
using RTG; using RTG;
using UnityEngine; using UnityEngine;
using XRLib;
namespace XED.VirtualFactory namespace XED.Manage
{ {
public class NodeGizmoController : MonoBehaviour,ISingle public class NodeGizmoController : Manager
{ {
public ObjectTransformGizmo moveGizmo; public ObjectTransformGizmo moveGizmo;
public GameObject target; public GameObject target;
// Start is called before the first frame update public override void Init()
void Awake()
{ {
moveGizmo = RTGizmosEngine.Get.CreateObjectMoveGizmo(); //moveGizmo = RTGizmosEngine.Get.CreateObjectMoveGizmo();
moveGizmo.Gizmo.SetEnabled(false); //moveGizmo.Gizmo.SetEnabled(false);
} }
public void Attach(GameObject target) public void Attach(GameObject target)

View File

@@ -20,6 +20,13 @@ namespace XED.Manage
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 NodeGizmoController());
Join(new AGVNodeLinkManager());
Join(new AGVManager());
Join(new WallBuilder());
Join(new MeshCreator());
foreach(var m in managers) foreach(var m in managers)
{ {

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 = FindAnyObjectByType<Raycaster>(); var raycaster = ManagerHub.instance.Get<Raycaster>();
raycaster.onUIHoverEvent += panel_tooltip.ActivateTooltip; raycaster.onUIHoverEvent += panel_tooltip.ActivateTooltip;
raycaster.onUIHoverExitEvent += panel_tooltip.DeactivateTooltip; raycaster.onUIHoverExitEvent += panel_tooltip.DeactivateTooltip;

View File

@@ -1,7 +1,7 @@
using System; using System;
using UnityEngine.UI; using UnityEngine.UI;
using XRLib.UI; using XRLib.UI;
using static XED.WallBuilder; using static XED.Enums;
namespace XED.UI namespace XED.UI
{ {

View File

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

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using UnityEditor; using UnityEditor;
using UnityEngine; using UnityEngine;
using XED.Manage;
using XED.VirtualFactory; using XED.VirtualFactory;
namespace XED namespace XED
@@ -43,7 +44,7 @@ public class VirtualFactoryManager : MonoBehaviour
{ {
agvMap = FindSingle<AGVMap>(); agvMap = FindSingle<AGVMap>();
portMap = FindSingle<PortMap>(); portMap = FindSingle<PortMap>();
agvManager = FindSingle<AGVManager>(); agvManager = ManagerHub.instance.Get<AGVManager>();
stackerCranes = FindObjectsByType<StackerCrane>(UnityEngine.FindObjectsSortMode.None).ToList(); stackerCranes = FindObjectsByType<StackerCrane>(UnityEngine.FindObjectsSortMode.None).ToList();
agvNeedScanner = new AGVNeedsScanner(this, agvManager); agvNeedScanner = new AGVNeedsScanner(this, agvManager);