기존 파일제거, 모두 XRLib 파일로 덮어씀.
This commit is contained in:
@@ -1,70 +0,0 @@
|
||||
#nullable enable
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UVC.Util;
|
||||
using UVC.Core;
|
||||
using UVC.UI.Menu;
|
||||
using UVC.Config;
|
||||
using UVC.Studio.Config;
|
||||
using UVC.Object3d.Manager;
|
||||
using UVC.Studio.Manager;
|
||||
using UVC.UI.Window.PropertyWindow;
|
||||
|
||||
namespace EnglewoodLAB
|
||||
{
|
||||
public class AppContext : InjectorAppContext
|
||||
{
|
||||
[SerializeField] private PropertyWindow? propertyWindow;
|
||||
|
||||
/// <summary>
|
||||
/// App <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ <20><><EFBFBD><EFBFBD><F1BDBAB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para><3E><EFBFBD> <20>ε尡 <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>鸸 <20><><EFBFBD>⼭ <20><><EFBFBD><EFBFBD>մϴ<D5B4>.</para>
|
||||
/// <para><3E><EFBFBD> <20>ε尡 <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD> RegisterServicesAsync()<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>.</para>
|
||||
/// </remarks>
|
||||
protected override void RegisterServices()
|
||||
{
|
||||
base.RegisterServices();
|
||||
|
||||
// <20><EFBFBD> <20>ε尡 <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>̱<EFBFBD><CCB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
Injector.RegisterSingleton<AppMain>();
|
||||
Injector.RegisterSingleton<CursorManager>();
|
||||
Injector.RegisterSingleton<ContextMenuManager>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// App <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ <20><><EFBFBD><EFBFBD><F1BDBAB5><EFBFBD> <20><EFBFBD><F1B5BFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
/// </summary>
|
||||
/// <returns><3E><EFBFBD> <20><><EFBFBD> <20>Ϸ<EFBFBD> UniTask</returns>
|
||||
/// <remarks>
|
||||
/// <para><3E><> <20><EFBFBD><DEBC><EFBFBD><EFBFBD> RegisterServices() <20>Ϸ<EFBFBD> <20><> await<69>Ǿ<EFBFBD> ȣ<><C8A3>˴ϴ<CBB4>.</para>
|
||||
/// <para><3E>Ϸ<EFBFBD><CFB7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IsInitialized<65><64> false<73><65> <20><><EFBFBD><EFBFBD><EFBFBD>ǹǷ<C7B9> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><EFBFBD> <20>ε带 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.</para>
|
||||
/// </remarks>
|
||||
protected override async UniTask RegisterServicesAsync()
|
||||
{
|
||||
await base.RegisterServicesAsync();
|
||||
|
||||
if (propertyWindow != null) Injector.RegisterInstance<PropertyWindow>(propertyWindow, ServiceLifetime.Scene);
|
||||
// StageObjectManager <20><><EFBFBD>
|
||||
var stageObjectManager = new StageObjectManager();
|
||||
Injector.RegisterInstance<StageObjectManager>(stageObjectManager);
|
||||
|
||||
// SelectionManager <20><><EFBFBD> (StageObjectManager, PropertyWindow <20><><EFBFBD><EFBFBD>)
|
||||
var selectionManager = new SelectionManager(stageObjectManager, propertyWindow);
|
||||
Injector.RegisterInstance<SelectionManager>(selectionManager);
|
||||
|
||||
// Setting<6E><67> Library<72><79> <20><><EFBFBD>ķ<EFBFBD> <20>ε<EFBFBD>
|
||||
var setting = new Setting();
|
||||
var library = new Library();
|
||||
await UniTask.WhenAll(
|
||||
setting.LoadAsync(),
|
||||
library.LoadAllParallelAsync()
|
||||
);
|
||||
|
||||
// <20>ε<EFBFBD> <20>Ϸ<EFBFBD> <20><> <20>ν<EFBFBD><CEBD>Ͻ<EFBFBD> <20><><EFBFBD>
|
||||
Injector.RegisterInstance<Setting>(setting);
|
||||
Injector.RegisterInstance<Library>(library);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 447ab6456d9962d49a983e5d57251b91
|
||||
@@ -1,71 +0,0 @@
|
||||
using Cysharp.Threading.Tasks;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UVC.Core;
|
||||
using UVC.Data;
|
||||
using UVC.Data.Mqtt;
|
||||
using UVC.Locale;
|
||||
using UVC.Util;
|
||||
|
||||
namespace EnglewoodLAB
|
||||
{
|
||||
[DefaultExecutionOrder(100)]
|
||||
public class AppMain : SingletonApp<AppMain>
|
||||
{
|
||||
public OrbitalController cameraController;
|
||||
|
||||
//public ShortcutConfigurator shortcutConfigurator;
|
||||
public Action Initialized;
|
||||
|
||||
/// <summary>
|
||||
/// 초기 화 메서드입니다.
|
||||
/// Awake 메서드에서 호출되며, MonoBehaviour가 생성될 때 한 번만 실행됩니다.
|
||||
/// </summary>
|
||||
protected override async void Init()
|
||||
{
|
||||
// 플레이 모드가 아닐 경우, 초기화 로직을 실행하지 않습니다.
|
||||
if (!Application.isPlaying) return;
|
||||
|
||||
SetNetworkConfig();
|
||||
cameraController = FindAnyObjectByType<OrbitalController>();
|
||||
|
||||
//shortcutConfigurator = FindAnyObjectByType<ShortcutConfigurator>();
|
||||
//shortcutConfigurator.SetupShortcutManager();
|
||||
|
||||
if (Initialized != null)
|
||||
{
|
||||
Initialized.Invoke();
|
||||
}
|
||||
|
||||
await UniTask.CompletedTask;
|
||||
}
|
||||
|
||||
private void SetNetworkConfig()
|
||||
{
|
||||
//dataManager.
|
||||
|
||||
//URLList.Add("baseinfo", $"{FactoryConstants.API_DOMAIN}/baseinfo");
|
||||
//URLList.Add("playbackList", $"{FactoryConstants.API_DOMAIN}/playback/list");
|
||||
//URLList.Add("playbackFile", $"{FactoryConstants.API_DOMAIN}/playback");
|
||||
|
||||
//bool useWebSocket = false;
|
||||
|
||||
//DataRepository.Instance.MqttReceiver.SetDomainPort("mqtt-input.flexing.ai", 3000);//VTM 외부망
|
||||
//DataRepository.Instance.MqttReceiver.SetDomainPort("localhost", 1883);
|
||||
//DataRepository.Instance.MqttReceiver.SetDataPicker(new MqttDataPicker(FactoryConstants.MQTT_DATA_KEY, FactoryConstants.MQTT_MESSAGEPACK_ENABLED));
|
||||
//DataRepository.Instance.MqttReceiver.SetDomainPort(FactoryConstants.MQTT_DOMAIN, FactoryConstants.MQTT_PORT);
|
||||
//DataRepository.Instance.MqttReceiver.SetUseWebSocket(useWebSocket);
|
||||
//DataRepository.Instance.MqttReceiver.AddTopic("AGV");
|
||||
//DataRepository.Instance.MqttReceiver.AddTopic("ALARM");
|
||||
//DataRepository.Instance.MqttReceiver.AddTopic("PORT");
|
||||
//DataRepository.Instance.MqttReceiver.AddTopic("AGV_RECIPE");
|
||||
|
||||
//10초 후 정지
|
||||
//UniTask.Delay(TimeSpan.FromSeconds(10)).ContinueWith(() =>
|
||||
//{
|
||||
// DataRepository.Instance.MqttReceiver.Exit();
|
||||
//});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace EnglewoodLAB
|
||||
{
|
||||
/// <summary>
|
||||
/// 카메라 이동 경로. 자식 Transform 순서대로 카메라가 보간 이동.
|
||||
/// 각 자식에 CameraRoutePoint를 추가하면 궤도 파라미터(elevation, azimuth, distance)도 제어 가능.
|
||||
/// </summary>
|
||||
public class CameraRoute : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private int gizmoResolution = 20;
|
||||
[SerializeField] private Color gizmoColor = Color.cyan;
|
||||
|
||||
public MovePoint[] movePoints;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
movePoints = GetComponentsInChildren<MovePoint>();
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
private void OnDrawGizmos()
|
||||
{
|
||||
var points = Application.isPlaying
|
||||
? movePoints
|
||||
: GetComponentsInChildren<MovePoint>();
|
||||
|
||||
if (points == null || points.Length < 2) return;
|
||||
|
||||
Gizmos.color = gizmoColor;
|
||||
|
||||
for (int i = 1; i < points.Length; i++)
|
||||
{
|
||||
Vector3 p0 = (i >= 2) ? points[i - 2].transform.position : points[i - 1].transform.position;
|
||||
Vector3 p1 = points[i - 1].transform.position;
|
||||
Vector3 p2 = points[i].transform.position;
|
||||
Vector3 p3 = (i + 1 < points.Length) ? points[i + 1].transform.position : points[i].transform.position;
|
||||
|
||||
Vector3 prev = p1;
|
||||
for (int s = 1; s <= gizmoResolution; s++)
|
||||
{
|
||||
float t = s / (float)gizmoResolution;
|
||||
Vector3 curr = CatmullRom(p0, p1, p2, p3, t);
|
||||
Gizmos.DrawLine(prev, curr);
|
||||
prev = curr;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < points.Length; i++)
|
||||
{
|
||||
Gizmos.color = (i == 0) ? Color.green : gizmoColor;
|
||||
Gizmos.DrawWireSphere(points[i].transform.position, 0.3f);
|
||||
}
|
||||
}
|
||||
|
||||
private static Vector3 CatmullRom(Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3, float t)
|
||||
{
|
||||
float t2 = t * t;
|
||||
float t3 = t2 * t;
|
||||
return 0.5f * (
|
||||
2f * p1 +
|
||||
(-p0 + p2) * t +
|
||||
(2f * p0 - 5f * p1 + 4f * p2 - p3) * t2 +
|
||||
(-p0 + 3f * p1 - 3f * p2 + p3) * t3
|
||||
);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6de7838db2221394597524e5a7722f9f
|
||||
@@ -1,11 +0,0 @@
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EnglewoodLAB
|
||||
{
|
||||
public class MovePoint : MonoBehaviour
|
||||
{
|
||||
public Ease easeType = Ease.InOutSine;
|
||||
public float speed = -1f;
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98ee8b0a292db7549857af100e90ae1e
|
||||
@@ -1,484 +0,0 @@
|
||||
using RTGLite;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using DG.Tweening;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace EnglewoodLAB
|
||||
{
|
||||
public enum ViewMode
|
||||
{
|
||||
PerspectiveView,
|
||||
TopView
|
||||
}
|
||||
public struct OrbitState
|
||||
{
|
||||
public float elevation;
|
||||
public float distance;
|
||||
public float azimuth;
|
||||
public Vector3 pivotPosition;
|
||||
public Quaternion pivotRotation;
|
||||
}
|
||||
|
||||
//TODO::Something... Util Functions
|
||||
public class OrbitalController : MonoBehaviour
|
||||
{
|
||||
public ViewMode viewMode;
|
||||
private Vector3 originValue;
|
||||
private Vector3 originTargetPos;
|
||||
|
||||
private OrbitState perspectiveState;
|
||||
private OrbitState orthoState;
|
||||
|
||||
private new Camera camera;
|
||||
|
||||
public Camera Camera { get { return camera; } }
|
||||
|
||||
public float moveSpeed;
|
||||
public float rotateSpeed;
|
||||
public float zoomSpeed;
|
||||
|
||||
public float maxElevation;
|
||||
public float minElevation;
|
||||
public float minDistance;
|
||||
public float maxDistance;
|
||||
public float currentElevation;
|
||||
public float currentDistance;
|
||||
public float currentAzimuth;
|
||||
|
||||
private Vector3 cameraPosition;
|
||||
private Vector3 nextPosition;
|
||||
private Quaternion originRotation;
|
||||
public OrbitalControllerTarget cameraPivot;
|
||||
|
||||
private UserInput input;
|
||||
|
||||
public Action<ViewMode> onChangeViewMode;
|
||||
|
||||
public bool IsCameraOperating { get; private set; }
|
||||
private bool isMoveOperation;
|
||||
private bool isRotateOperation;
|
||||
private bool isZoomOperation;
|
||||
|
||||
public bool Enable;
|
||||
public bool IsRouteActive => routeSequence != null && routeSequence.IsActive();
|
||||
private Sequence routeSequence;
|
||||
|
||||
private CameraRoute currentRoute;
|
||||
public bool IsRouteRunning { get; private set; }
|
||||
public Action onRouteComplete;
|
||||
public CameraRoute route;
|
||||
|
||||
public bool IsClickUI
|
||||
{
|
||||
get
|
||||
{
|
||||
bool result = false;
|
||||
if (Input.GetMouseButtonDown(0))
|
||||
{
|
||||
result = EventSystem.current.IsPointerOverGameObject();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsOnTheUI
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IsPointerOverExcludedUI())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var result = EventSystem.current.IsPointerOverGameObject();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
bool IsPointerOverExcludedUI()
|
||||
{
|
||||
PointerEventData pointerData = new PointerEventData(EventSystem.current);
|
||||
pointerData.position = Input.mousePosition;
|
||||
|
||||
List<RaycastResult> raycastResults = new List<RaycastResult>();
|
||||
EventSystem.current.RaycastAll(pointerData, raycastResults);
|
||||
|
||||
if (raycastResults.Count > 0)
|
||||
{
|
||||
if ((LayerMask.GetMask("Default") & (1 << raycastResults[0].gameObject.layer)) != 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void Awake()
|
||||
{
|
||||
camera = Camera.main;
|
||||
cameraPivot = transform.GetComponentInChildren<OrbitalControllerTarget>();
|
||||
}
|
||||
void Start()
|
||||
{
|
||||
originValue.x = currentElevation;
|
||||
originValue.y = currentDistance;
|
||||
originValue.z = currentAzimuth;
|
||||
|
||||
nextPosition = cameraPivot.transform.position;
|
||||
originTargetPos = cameraPivot.transform.position;
|
||||
|
||||
originRotation = cameraPivot.transform.rotation;
|
||||
|
||||
perspectiveState.elevation = originValue.x;
|
||||
perspectiveState.distance = originValue.y;
|
||||
perspectiveState.azimuth = originValue.z;
|
||||
perspectiveState.pivotPosition = originTargetPos;
|
||||
perspectiveState.pivotRotation = originRotation;
|
||||
|
||||
orthoState.elevation = 90f;
|
||||
orthoState.distance = originValue.y;
|
||||
orthoState.azimuth = 0f;
|
||||
orthoState.pivotPosition = Vector3.zero;
|
||||
orthoState.pivotRotation = originRotation;
|
||||
SetViewMode(ViewMode.PerspectiveView);
|
||||
}
|
||||
|
||||
public void SetEnable(bool isDrag)
|
||||
{
|
||||
Enable = !isDrag;
|
||||
}
|
||||
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.Q))
|
||||
{
|
||||
SetRoute(route);
|
||||
}
|
||||
//UI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if (IsClickUI || IsOnTheUI)
|
||||
return;
|
||||
|
||||
//<2F><><EFBFBD>̺귯<CCBA><EAB7AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><>ġ<EFBFBD><C4A1> ī<><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if (!Enable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (RTGizmos.get !=null )
|
||||
{
|
||||
if (RTGizmos.get.draggedGizmo != null)
|
||||
return;
|
||||
if (RTGizmos.get.hoveredGizmo != null)
|
||||
return;
|
||||
}
|
||||
input.GetInput();
|
||||
Movement();
|
||||
}
|
||||
|
||||
public void Movement()
|
||||
{
|
||||
Zoom();
|
||||
Rotate();
|
||||
Move();
|
||||
|
||||
UpdateOperationState();
|
||||
LastPositioning();
|
||||
}
|
||||
|
||||
private void Move()
|
||||
{
|
||||
if (!input.leftClick)
|
||||
{
|
||||
isMoveOperation = false;
|
||||
return;
|
||||
}
|
||||
|
||||
var delta = new Vector2(input.mouseX, input.mouseY);
|
||||
var x = delta.x;
|
||||
var y = delta.y * ((maxElevation - minElevation) / currentElevation);
|
||||
var z = delta.y * ((minElevation - currentElevation) / maxElevation);
|
||||
|
||||
var moveVector = camera.transform.TransformDirection(x, y, -z);
|
||||
moveVector.y = 0;
|
||||
|
||||
//moveVector *= moveSpeed * (currentDistance / maxDistance);
|
||||
nextPosition = cameraPivot.transform.position - moveVector;
|
||||
isMoveOperation = true;
|
||||
}
|
||||
|
||||
private void Zoom()
|
||||
{
|
||||
if (Mathf.Abs(input.mouseWheel) > 0.0001f)
|
||||
{
|
||||
isZoomOperation = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
isZoomOperation = false;
|
||||
return;
|
||||
}
|
||||
|
||||
var nextDistance = currentDistance - input.mouseWheel * zoomSpeed;
|
||||
currentDistance = Mathf.Lerp(currentDistance, nextDistance, zoomSpeed * Time.deltaTime);
|
||||
currentDistance = Mathf.Clamp(currentDistance, minDistance, maxDistance);
|
||||
|
||||
camera.orthographicSize = currentDistance;
|
||||
}
|
||||
|
||||
protected void Rotate()
|
||||
{
|
||||
if (!input.rightClick)
|
||||
{
|
||||
isRotateOperation = false;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
currentAzimuth += input.mouseX * rotateSpeed;
|
||||
currentAzimuth %= 360;
|
||||
|
||||
if(viewMode == ViewMode.PerspectiveView)
|
||||
{
|
||||
currentElevation -= input.mouseY * rotateSpeed;
|
||||
currentElevation = Mathf.Clamp(currentElevation, minElevation, maxElevation);
|
||||
}
|
||||
isRotateOperation = true;
|
||||
}
|
||||
|
||||
private void UpdateOperationState()
|
||||
{
|
||||
IsCameraOperating = isMoveOperation || isRotateOperation || isZoomOperation;
|
||||
}
|
||||
|
||||
public void LastPositioning()
|
||||
{
|
||||
cameraPivot.transform.position = nextPosition;
|
||||
var dist = new Vector3(0, 0, -currentDistance);
|
||||
var distPos = Quaternion.Euler(currentElevation, currentAzimuth, 0f) * dist;
|
||||
cameraPosition = nextPosition + distPos;
|
||||
camera.transform.position = cameraPosition;
|
||||
|
||||
if (currentElevation <= 90f)
|
||||
{
|
||||
camera.transform.rotation = Quaternion.Euler(currentElevation, currentAzimuth, 0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
camera.transform.LookAt(cameraPivot.transform);
|
||||
}
|
||||
}
|
||||
|
||||
public void Rewind()
|
||||
{
|
||||
SetViewMode(ViewMode.PerspectiveView);
|
||||
nextPosition = originTargetPos;
|
||||
|
||||
currentDistance = originValue.x;
|
||||
currentElevation = originValue.y;
|
||||
currentAzimuth = originValue.z;
|
||||
|
||||
LastPositioning();
|
||||
}
|
||||
|
||||
public void SetViewMode(ViewMode mode)
|
||||
{
|
||||
if (viewMode == mode)
|
||||
return;
|
||||
|
||||
SaveViewMode(viewMode);
|
||||
viewMode = mode;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case ViewMode.PerspectiveView:
|
||||
SetPerspectiveView();
|
||||
break;
|
||||
|
||||
case ViewMode.TopView:
|
||||
SetOrthographicView();
|
||||
break;
|
||||
}
|
||||
LastPositioning();
|
||||
onChangeViewMode?.Invoke(viewMode);
|
||||
}
|
||||
private void SetPerspectiveView()
|
||||
{
|
||||
camera.orthographic = false;
|
||||
|
||||
currentElevation = perspectiveState.elevation; //90 <20><> <20><><EFBFBD><EFBFBD>
|
||||
currentDistance = perspectiveState.distance;
|
||||
currentAzimuth = perspectiveState.azimuth;
|
||||
|
||||
nextPosition = perspectiveState.pivotPosition;
|
||||
}
|
||||
private void SetOrthographicView()
|
||||
{
|
||||
camera.orthographic = true;
|
||||
|
||||
currentElevation = orthoState.elevation;
|
||||
currentDistance = orthoState.distance;
|
||||
currentAzimuth = orthoState.azimuth;
|
||||
camera.orthographicSize = orthoState.distance;
|
||||
|
||||
nextPosition = orthoState.pivotPosition;
|
||||
}
|
||||
|
||||
public void SetTargetPos(Vector3 pos)
|
||||
{
|
||||
nextPosition = pos;
|
||||
LastPositioning();
|
||||
}
|
||||
|
||||
public void SetTargetRotation(Quaternion rotation)
|
||||
{
|
||||
originRotation = rotation;
|
||||
}
|
||||
|
||||
private void SaveViewMode(ViewMode mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case ViewMode.PerspectiveView:
|
||||
perspectiveState.elevation = currentElevation;
|
||||
perspectiveState.distance = currentDistance;
|
||||
perspectiveState.azimuth = currentAzimuth;
|
||||
perspectiveState.pivotPosition = cameraPivot.transform.position;
|
||||
break;
|
||||
|
||||
case ViewMode.TopView:
|
||||
orthoState.elevation = 90f; // 90 or <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
orthoState.distance = 60f;
|
||||
orthoState.azimuth = 0f;
|
||||
orthoState.pivotPosition = Vector3.zero;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
internal void SetControllOptionValue()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
|
||||
public void SetRoute(CameraRoute route)
|
||||
{
|
||||
StopRoute();
|
||||
currentRoute = route;
|
||||
|
||||
var points = currentRoute.movePoints;
|
||||
if (points == null || points.Length == 0) return;
|
||||
|
||||
IsRouteRunning = true;
|
||||
Enable = false;
|
||||
|
||||
camera.transform.position = points[0].transform.position;
|
||||
camera.transform.rotation = points[0].transform.rotation;
|
||||
|
||||
if (points.Length == 1)
|
||||
{
|
||||
CompleteRoute();
|
||||
return;
|
||||
}
|
||||
|
||||
int segCount = points.Length - 1;
|
||||
float[] segDurations = new float[segCount];
|
||||
float totalDuration = 0f;
|
||||
for (int i = 0; i < segCount; i++)
|
||||
{
|
||||
float dist = Vector3.Distance(points[i].transform.position, points[i + 1].transform.position);
|
||||
float spd = points[i + 1].speed > 0f ? points[i + 1].speed : moveSpeed;
|
||||
segDurations[i] = spd > 0f ? dist / spd : 1f;
|
||||
totalDuration += segDurations[i];
|
||||
}
|
||||
|
||||
float[] segEnd = new float[segCount];
|
||||
float acc = 0f;
|
||||
for (int i = 0; i < segCount; i++)
|
||||
{
|
||||
acc += segDurations[i];
|
||||
segEnd[i] = acc / totalDuration;
|
||||
}
|
||||
|
||||
Vector3[] pos = new Vector3[points.Length];
|
||||
Quaternion[] rot = new Quaternion[points.Length];
|
||||
for (int i = 0; i < points.Length; i++)
|
||||
{
|
||||
pos[i] = points[i].transform.position;
|
||||
rot[i] = points[i].transform.rotation;
|
||||
}
|
||||
|
||||
routeSequence = DOTween.Sequence();
|
||||
routeSequence.Append(
|
||||
DOVirtual.Float(0f, 1f, totalDuration, t =>
|
||||
{
|
||||
int seg = segCount - 1;
|
||||
for (int i = 0; i < segEnd.Length; i++)
|
||||
{
|
||||
if (t <= segEnd[i]) { seg = i; break; }
|
||||
}
|
||||
|
||||
float start = seg > 0 ? segEnd[seg - 1] : 0f;
|
||||
float localT = Mathf.InverseLerp(start, segEnd[seg], t);
|
||||
|
||||
int idx = seg + 1;
|
||||
Vector3 p0 = (idx >= 2) ? pos[idx - 2] : pos[idx - 1];
|
||||
Vector3 p1 = pos[idx - 1];
|
||||
Vector3 p2 = pos[idx];
|
||||
Vector3 p3 = (idx + 1 < pos.Length) ? pos[idx + 1] : pos[idx];
|
||||
|
||||
camera.transform.position = CatmullRom(p0, p1, p2, p3, localT);
|
||||
camera.transform.rotation = Quaternion.Slerp(rot[idx - 1], rot[idx], localT);
|
||||
}).SetEase(Ease.Linear));
|
||||
|
||||
routeSequence.OnComplete(CompleteRoute);
|
||||
}
|
||||
|
||||
private static Vector3 CatmullRom(Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3, float t)
|
||||
{
|
||||
float t2 = t * t;
|
||||
float t3 = t2 * t;
|
||||
return 0.5f * (
|
||||
2f * p1 +
|
||||
(-p0 + p2) * t +
|
||||
(2f * p0 - 5f * p1 + 4f * p2 - p3) * t2 +
|
||||
(-p0 + 3f * p1 - 3f * p2 + p3) * t3
|
||||
);
|
||||
}
|
||||
|
||||
public void StopRoute()
|
||||
{
|
||||
if (!IsRouteRunning) return;
|
||||
routeSequence?.Kill();
|
||||
routeSequence = null;
|
||||
currentRoute = null;
|
||||
IsRouteRunning = false;
|
||||
SyncFromCamera();
|
||||
Enable = true;
|
||||
}
|
||||
|
||||
private void CompleteRoute()
|
||||
{
|
||||
routeSequence = null;
|
||||
currentRoute = null;
|
||||
IsRouteRunning = false;
|
||||
SyncFromCamera();
|
||||
Enable = true;
|
||||
onRouteComplete?.Invoke();
|
||||
}
|
||||
|
||||
private void SyncFromCamera()
|
||||
{
|
||||
var euler = camera.transform.eulerAngles;
|
||||
currentElevation = euler.x;
|
||||
currentAzimuth = euler.y;
|
||||
|
||||
var offset = Quaternion.Euler(euler.x, euler.y, 0f) * new Vector3(0, 0, -currentDistance);
|
||||
nextPosition = camera.transform.position - offset;
|
||||
cameraPivot.transform.position = nextPosition;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace EnglewoodLAB
|
||||
{
|
||||
public class OrbitalControllerTarget : MonoBehaviour
|
||||
{
|
||||
OrbitalController controller;
|
||||
|
||||
|
||||
public void Awake()
|
||||
{
|
||||
controller = FindAnyObjectByType<OrbitalController>();
|
||||
}
|
||||
|
||||
private void OnTriggerStay(Collider floorWall)
|
||||
{
|
||||
SetPosToOutsideWall(floorWall);
|
||||
}
|
||||
|
||||
void SetPosToOutsideWall(Collider floorWall)
|
||||
{
|
||||
if (floorWall.gameObject.layer.Equals(LayerMask.NameToLayer("Floor Wall")))
|
||||
{
|
||||
Vector3 hitCenter = floorWall.bounds.center;
|
||||
float sizeX = floorWall.bounds.size.x;
|
||||
float sizeZ = floorWall.bounds.size.z;
|
||||
|
||||
Vector3 vectorPoint = Vector3.zero;
|
||||
|
||||
if (sizeX > sizeZ)
|
||||
{
|
||||
vectorPoint = new Vector3(transform.position.x, transform.position.y, hitCenter.z);
|
||||
}
|
||||
else
|
||||
{
|
||||
vectorPoint = new Vector3(hitCenter.x, transform.position.y, transform.position.z);
|
||||
}
|
||||
|
||||
Vector3 direction = transform.position - vectorPoint;
|
||||
float radius = GetComponent<SphereCollider>().radius;
|
||||
|
||||
transform.position += direction * radius;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
public struct UserInput
|
||||
{
|
||||
public bool leftClick;
|
||||
public bool rightClick;
|
||||
public bool wheelClick;
|
||||
public bool onClick;
|
||||
public float mouseX;
|
||||
public float mouseY;
|
||||
public float mouseWheel;
|
||||
public float keyboardX;
|
||||
public float keyboardY;
|
||||
|
||||
public void GetInput()
|
||||
{
|
||||
leftClick = Input.GetMouseButton(0);
|
||||
rightClick = Input.GetMouseButton(1);
|
||||
wheelClick = Input.GetMouseButton(2);
|
||||
|
||||
onClick = leftClick || rightClick || wheelClick;
|
||||
|
||||
mouseX = Input.GetAxis("Mouse X");
|
||||
mouseY = Input.GetAxis("Mouse Y");
|
||||
mouseWheel = Input.GetAxis("Mouse ScrollWheel");
|
||||
|
||||
keyboardX = Input.GetAxis("Horizontal");
|
||||
keyboardY = Input.GetAxis("Vertical");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 35d86d64dfcada645b679ce92e676e20
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,25 +0,0 @@
|
||||
using UVC.UI.Commands;
|
||||
using UVC.UI.Tab;
|
||||
|
||||
namespace EnglewoodLAB.Command
|
||||
{
|
||||
public class ActivateTabCommand : ICommand
|
||||
{
|
||||
private readonly TabController? _tabController;
|
||||
private readonly string _tabID;
|
||||
|
||||
public ActivateTabCommand(TabController? tabController, string tabID)
|
||||
{
|
||||
_tabController = tabController;
|
||||
_tabID = tabID;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
if (_tabController != null && !string.IsNullOrEmpty(_tabID))
|
||||
{
|
||||
_tabController.ActivateTab(_tabID, parameter);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3a545317dd039d34eb9e79e1a9262241
|
||||
@@ -1,21 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.Command
|
||||
{
|
||||
public class ActiveWallControlPanelCommand : ICommand
|
||||
{
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
// 파라미터는 여기서는 사용되지 않을 수 있음
|
||||
if (parameter != null)
|
||||
{
|
||||
Debug.Log($"QuitApplicationCommand 실행됨 (파라미터 무시됨: {parameter})");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("QuitApplicationCommand 실행됨");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8019fd70e1ce3f346b9a721c0a170f3f
|
||||
@@ -1,13 +0,0 @@
|
||||
using UVC.Core;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.Command
|
||||
{
|
||||
public class CommandManager : SingletonScene<CommandManager>
|
||||
{
|
||||
public void Execute(ICommand command)
|
||||
{
|
||||
command.Execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3576d1547259f3b46b474ce6fe82bdf2
|
||||
@@ -1,24 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using System.Collections.Generic;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class SetAlarmHistoryDataCommand : ICommand
|
||||
{
|
||||
private List<CompleteInfo> alarmHistoryData;
|
||||
|
||||
public SetAlarmHistoryDataCommand(List<CompleteInfo> alarmHistoryData)
|
||||
{
|
||||
this.alarmHistoryData = alarmHistoryData;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.uiManager;
|
||||
var popupCanvas = uiManager.GetCanvas<PopupCanvas>();
|
||||
|
||||
popupCanvas.GetPanel<AlarmHistoryPanel>().SetAlarmInfoItems(alarmHistoryData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 436d7393a7713274d829f5209b37ecad
|
||||
@@ -1,24 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using System.Collections.Generic;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class SetAssemblyProgressDataCommand : ICommand
|
||||
{
|
||||
private List<CompleteInfo> assemblyProgressData;
|
||||
|
||||
public SetAssemblyProgressDataCommand(List<CompleteInfo> assemblyProgressData)
|
||||
{
|
||||
this.assemblyProgressData = assemblyProgressData;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.uiManager;
|
||||
var popupCanvas = uiManager.GetCanvas<PopupCanvas>();
|
||||
|
||||
popupCanvas.GetPanel<ChargePackagingOrderPanel>().SetProductionStatus(assemblyProgressData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2272a95e45cf7e74e8580ebf9f14eb51
|
||||
@@ -1,24 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using System.Collections.Generic;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class SetFinalInspectionDataCommand : ICommand
|
||||
{
|
||||
private List<CompleteInfo> finalInspectionData;
|
||||
|
||||
public SetFinalInspectionDataCommand(List<CompleteInfo> finalInspectionData)
|
||||
{
|
||||
this.finalInspectionData = finalInspectionData;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.uiManager;
|
||||
var popupCanvas = uiManager.GetCanvas<PopupCanvas>();
|
||||
|
||||
popupCanvas.GetPanel<FinalInspectionPanel>().SetProductionStatus(finalInspectionData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8361bd56cea4d6344a27418ea3f7e2a6
|
||||
@@ -1,22 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using System.Collections.Generic;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class SetMachineInfoDataCommand : ICommand
|
||||
{
|
||||
private List<CompleteInfo> machineInfos;
|
||||
|
||||
public SetMachineInfoDataCommand(List<CompleteInfo> machineInfos)
|
||||
{
|
||||
this.machineInfos = machineInfos;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var machineInfoItemManager = SceneMain.Instance.machineInfoItemManager;
|
||||
machineInfoItemManager.SetMachineKPI(machineInfos);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 26b8494c1a2fccd40ad0d7f52fdf5730
|
||||
@@ -1,24 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using System.Collections.Generic;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class SetProductionProgressDataCommand : ICommand
|
||||
{
|
||||
private List<CompleteInfo> productionProgressData;
|
||||
|
||||
public SetProductionProgressDataCommand(List<CompleteInfo> productionProgressData)
|
||||
{
|
||||
this.productionProgressData = productionProgressData;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.uiManager;
|
||||
var popupCanvas = uiManager.GetCanvas<PopupCanvas>();
|
||||
|
||||
popupCanvas.GetPanel<ManufactoringOrderPanel>().SetProductionStatus(productionProgressData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 35fa892f06eb7a94aaa664e9c11cf5a5
|
||||
@@ -1,26 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using System.Collections.Generic;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class SetTotalProgressDataCommand : ICommand
|
||||
{
|
||||
private TotalProgressData totalProgressData;
|
||||
|
||||
public SetTotalProgressDataCommand(TotalProgressData totalProgressData)
|
||||
{
|
||||
this.totalProgressData = totalProgressData;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.uiManager;
|
||||
var popupCanvas = uiManager.GetCanvas<PopupCanvas>();
|
||||
|
||||
popupCanvas.GetPanel<OverviewPanel>().SetWorkProgressStatus(totalProgressData.workprogressData);
|
||||
popupCanvas.GetPanel<OverviewPanel>().SetProductionContent(totalProgressData.machineStatusGroup);
|
||||
popupCanvas.GetPanel<OverviewPanel>().SetEffectivenessContent(totalProgressData.machineEffectivenessGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d54f1c70e9851348a62d230c9c0ac46
|
||||
@@ -1,24 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using System.Collections.Generic;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class SetWorkProgressDataCommand : ICommand
|
||||
{
|
||||
private List<WorkShopInfo> workProgessData;
|
||||
|
||||
public SetWorkProgressDataCommand(List<WorkShopInfo> workProgessData)
|
||||
{
|
||||
this.workProgessData = workProgessData;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.uiManager;
|
||||
var popupCanvas = uiManager.GetCanvas<PopupCanvas>();
|
||||
|
||||
popupCanvas.GetPanel<WorkProgressPanel>().SetWorkProgressStatus(workProgessData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aed6e5fd1c1aae54fac2dd160bc97673
|
||||
@@ -1,26 +0,0 @@
|
||||
using EnglewoodLAB.Object;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.Command
|
||||
{
|
||||
public class ChangedCameraCommand : ICommand
|
||||
{
|
||||
private readonly CameraPoint point;
|
||||
|
||||
public ChangedCameraCommand(CameraPoint point)
|
||||
{
|
||||
this.point = point;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var orbitalController = AppMain.Instance.cameraController;
|
||||
if (orbitalController == null) return;
|
||||
|
||||
orbitalController.currentElevation = point.elevation;
|
||||
orbitalController.currentAzimuth = point.azimuth;
|
||||
orbitalController.currentDistance = point.distance;
|
||||
orbitalController.SetTargetPos(point.TargetPivotTransform.position);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3a0b76fc76339e54a866bc43e1b9d2a8
|
||||
@@ -1,55 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem.XR;
|
||||
using EnglewoodLAB;
|
||||
using EnglewoodLAB.UI;
|
||||
using EnglewoodLAB.Management;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.Command
|
||||
{
|
||||
public class ChangedFloorCommand : ICommand
|
||||
{
|
||||
private int floorIndex;
|
||||
private OrbitalController controller;
|
||||
public ChangedFloorCommand(int floorIndex)
|
||||
{
|
||||
this.floorIndex = floorIndex;
|
||||
controller = AppMain.Instance.cameraController;
|
||||
}
|
||||
|
||||
public async void Execute(object? parameter = null)
|
||||
{
|
||||
var uiIsActive = floorIndex == 2 ? true : false;
|
||||
var targetPos = Vector3.zero;
|
||||
var curDistance = 0f;
|
||||
var curElevation = 0f;
|
||||
var curAzimuth= 0f;
|
||||
if (uiIsActive)
|
||||
{
|
||||
targetPos = new Vector3(17f, 0.05f, -2.806954f);
|
||||
curDistance = 10f;
|
||||
curElevation = 23f;
|
||||
curAzimuth = 305f;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (SceneMain.Instance.GetManager<EWLUIManager>())
|
||||
{
|
||||
var leftSidePanel = SceneMain.Instance.GetManager<EWLUIManager>().GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>();
|
||||
leftSidePanel.DeactiveSideToolButton();
|
||||
}
|
||||
|
||||
targetPos = new Vector3(26.7f, 20f, 205.3f);
|
||||
curDistance = 60f;
|
||||
curElevation = 56;
|
||||
curAzimuth = 136f;
|
||||
|
||||
}
|
||||
controller.currentDistance = curDistance;
|
||||
controller.currentElevation = curElevation;
|
||||
controller.currentAzimuth = curAzimuth;
|
||||
|
||||
controller.SetTargetPos(targetPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 192a95c369275314f92d5823814750e9
|
||||
@@ -1,27 +0,0 @@
|
||||
using EnglewoodLAB;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EngleWoodLAB.UI.Command
|
||||
{
|
||||
public class SelectedMachineCommand : ICommand
|
||||
{
|
||||
private Machine machine;
|
||||
public SelectedMachineCommand(Machine machine)
|
||||
{
|
||||
this.machine = machine;
|
||||
}
|
||||
public SelectedMachineCommand(string machineCode)
|
||||
{
|
||||
var building = SceneMain.Instance.building;
|
||||
var machines = building.GetMachines();
|
||||
|
||||
this.machine = machines.Find(x => x.code == machineCode);
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var viewManager = SceneMain.Instance.viewManager;
|
||||
viewManager.SetTargetPosToMachine(machine);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b2157e63c66d8b4eb2aa55b66c2791f
|
||||
@@ -1,23 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using UnityEngine;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class ScreenResetCommand : ICommand
|
||||
{
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
//var controller = ChunilENGAppMain.Instance.cameraController;
|
||||
//controller.Rewind();
|
||||
|
||||
//var uiManager = ChunilENGSceneMain.Instance.GetManager<AZTECHUIManager>();
|
||||
//var activePanels = uiManager.GetCanvas<Canvas_Popup>().GetActivePanels();
|
||||
|
||||
//foreach(var activePanel in activePanels)
|
||||
//{
|
||||
// activePanel.Close();
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6b0a731ca13d5be4f9c5d808936a3480
|
||||
@@ -1,43 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UVC.Tab;
|
||||
using UVC.UI.Commands;
|
||||
using UVC.UI.Toolbar;
|
||||
|
||||
namespace EnglewoodLAB
|
||||
{
|
||||
public class SetLibraryControllerCommand : ICommand
|
||||
{
|
||||
private SideTabBar sideTabBar;
|
||||
private GameObject stage;
|
||||
public SetLibraryControllerCommand(SideTabBar sideTabBar)
|
||||
{
|
||||
this.sideTabBar = sideTabBar;
|
||||
}
|
||||
public void Execute(object parameter = null)
|
||||
{
|
||||
|
||||
stage = SceneMain.Instance.Stage;
|
||||
|
||||
var sideTabBarAccordion = sideTabBar.GetComponentInChildren<SideTabBarAccordion>(true);
|
||||
|
||||
// sideTabBarAccordion이 null인지 확인합니다.
|
||||
if (sideTabBarAccordion == null)
|
||||
{
|
||||
Debug.LogError("SideTabBarAccordion 컴포넌트를 찾을 수 없습니다. sideTabBar 오브젝트의 자식으로 해당 컴포넌트가 있는지 확인해주세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
sideTabBarAccordion.SetStage(stage);
|
||||
|
||||
// cameraController가 null인지 확인합니다.
|
||||
if (AppMain.Instance.cameraController == null)
|
||||
{
|
||||
Debug.LogError("AppMain.Instance.cameraController가 null입니다. Scene에 OrbitalController가 존재하는지 확인해주세요.");
|
||||
return;
|
||||
}
|
||||
sideTabBarAccordion.isDrag += AppMain.Instance.cameraController.SetEnable;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a40385bb4a337024588dc66d26833e27
|
||||
@@ -1,56 +0,0 @@
|
||||
using System.ComponentModel;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.Command
|
||||
{
|
||||
public class ShowLibraryViewCommand : ICommand
|
||||
{
|
||||
// UIDocument의 rootVisualElement
|
||||
private readonly VisualElement _root;
|
||||
// UI를 삽입할 부모 Element의 이름
|
||||
private readonly string _containerName;
|
||||
|
||||
public ShowLibraryViewCommand(VisualElement root, string containerName)
|
||||
{
|
||||
_root = root;
|
||||
_containerName = containerName;
|
||||
}
|
||||
|
||||
public void Execute(object parameter = null)
|
||||
{
|
||||
// 3D State 정보
|
||||
var stage = SceneMain.Instance.Stage;
|
||||
if (stage != null)
|
||||
{
|
||||
Debug.LogError("Stage is not set in SceneMain");
|
||||
return;
|
||||
}
|
||||
|
||||
// UI 담을 컨테이너를 이름으로 찾기
|
||||
var container = _root.Q<VisualElement>(_containerName);
|
||||
if (container != null)
|
||||
{
|
||||
Debug.LogError($"Container '{_containerName}' not found in the UI Document");
|
||||
return;
|
||||
}
|
||||
|
||||
// 컨테이너의 기존 자식 모두 삭제
|
||||
container.Clear();
|
||||
|
||||
// 새로운 LibraryView 인스턴스 생성 (MonoBehaviour처럼 new로 생성)
|
||||
var libraryView = new LibraryView(stage.transform);
|
||||
|
||||
// LibraryView의 C# 이벤트에 카메라 제어 로직 직접 연결
|
||||
libraryView.OnDragStateChanged += AppMain.Instance.cameraController.SetEnable;
|
||||
|
||||
// 컨테이너에 새로 만든 View 추가
|
||||
container.Add(libraryView);
|
||||
|
||||
// (필요 시) 데이터 로드하여 View를 채움
|
||||
// var libraryData = ...
|
||||
// libraryView.LoadData(libraryData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: efb5ed3bfa1d4a6439ab6d2f28d550f2
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b545289dbfe376d47ae2797e12458cf3
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c1fb4c73fa99de94d8fe9e67fe50ff86
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,29 +0,0 @@
|
||||
using UnityEngine;
|
||||
using EnglewoodLAB.UI;
|
||||
using EnglewoodLAB.Management;
|
||||
using UVC.UI.Commands;
|
||||
using UVC.UI.Window.PropertyWindow;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenAlarmHistoryPanelCommand : ICommand
|
||||
{
|
||||
private PropertyWindow propertyWindow;
|
||||
|
||||
public OpenAlarmHistoryPanelCommand(PropertyWindow propertyWindow)
|
||||
{
|
||||
this.propertyWindow = propertyWindow;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.GetManager<EWLUIManager>();
|
||||
uiManager.GetCanvas<PopupCanvas>().OpenPanel<AlarmHistoryPanel>(CanvasPanelOpenMode.Single);
|
||||
|
||||
//uiManager.GetCanvas<StaticCanvas>().GetPanel<BottomLeftToolbar>().HideItem();
|
||||
|
||||
var topmenuPanel = uiManager.GetCanvas<StaticCanvas>().GetPanel<TopMenuPanel>();
|
||||
topmenuPanel.PropertyWindow.Hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 90d55940ffdd8594696a4fc422f86758
|
||||
@@ -1,24 +0,0 @@
|
||||
using EnglewoodLAB.UI;
|
||||
using UVC.UI.Commands;
|
||||
using EnglewoodLAB.Management;
|
||||
using UVC.UI.Window.PropertyWindow;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenChargePackagingOrderPanelCommand : ICommand
|
||||
{
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.GetManager<EWLUIManager>();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().SideTabBar.DeactivateCurrentTab();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().DeactiveSideToolButton();
|
||||
|
||||
//uiManager.GetCanvas<StaticCanvas>().GetPanel<BottomLeftToolbar>().HideItem();
|
||||
|
||||
var topmenuPanel = uiManager.GetCanvas<StaticCanvas>().GetPanel<TopMenuPanel>();
|
||||
topmenuPanel.PropertyWindow.Hide();
|
||||
|
||||
uiManager.GetCanvas<PopupCanvas>().OpenPanel<ChargePackagingOrderPanel>(CanvasPanelOpenMode.Single);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8ba93d6bce7202a4581d653e6671d9c4
|
||||
@@ -1,25 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UVC.UI.Commands;
|
||||
using UVC.UI.Window.PropertyWindow;
|
||||
using EnglewoodLAB.UI;
|
||||
using EnglewoodLAB.Management;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenFinalInspectionPanelCommand : ICommand
|
||||
{
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.GetManager<EWLUIManager>();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().SideTabBar.DeactivateCurrentTab();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().DeactiveSideToolButton();
|
||||
|
||||
//uiManager.GetCanvas<StaticCanvas>().GetPanel<BottomLeftToolbar>().HideItem();
|
||||
|
||||
var topmenuPanel = uiManager.GetCanvas<StaticCanvas>().GetPanel<TopMenuPanel>();
|
||||
topmenuPanel.PropertyWindow.Hide();
|
||||
|
||||
uiManager.GetCanvas<PopupCanvas>().OpenPanel<FinalInspectionPanel>(CanvasPanelOpenMode.Single);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4a195b8813c430e4c80e99ead4c3a997
|
||||
@@ -1,13 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UVC.UI.Commands;
|
||||
using EnglewoodLAB.Management;
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
internal class OpenLibarayPanelCommand : ICommand
|
||||
{
|
||||
public void Execute(object parameter = null)
|
||||
{
|
||||
Debug.Log("라이브러리 눌림");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e610da596d5101344b459f89b292ace0
|
||||
@@ -1,33 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UVC.UI.Commands;
|
||||
using UVC.UI.Window.PropertyWindow;
|
||||
using EnglewoodLAB.Management;
|
||||
using EnglewoodLAB.UI;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenMachineDashBoardCommand : ICommand
|
||||
{
|
||||
public Machine machine;
|
||||
public CompleteInfo completeInfo;
|
||||
|
||||
public OpenMachineDashBoardCommand(Machine machine, CompleteInfo completeInfo)
|
||||
{
|
||||
this.machine = machine;
|
||||
this.completeInfo = completeInfo;
|
||||
}
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.GetManager<EWLUIManager>();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().SideTabBar.DeactivateCurrentTab();
|
||||
|
||||
//uiManager.GetCanvas<StaticCanvas>().GetPanel<BottomLeftToolbar>().HideItem();
|
||||
|
||||
var topmenuPanel = uiManager.GetCanvas<StaticCanvas>().GetPanel<TopMenuPanel>();
|
||||
topmenuPanel.PropertyWindow.Hide();
|
||||
|
||||
uiManager.GetCanvas<PopupCanvas>().GetPanel<MachineDashBoard>().SetDetailDashBoardData(completeInfo, machine);
|
||||
uiManager.GetCanvas<PopupCanvas>().OpenPanel<MachineDashBoard>(CanvasPanelOpenMode.Single);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 17101cb4004d1a14f87c00bc6bdbc591
|
||||
@@ -1,22 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenManufactoringOrderPanelCommand : ICommand
|
||||
{
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.GetManager<EWLUIManager>();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().SideTabBar.DeactivateCurrentTab();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().DeactiveSideToolButton();
|
||||
|
||||
//uiManager.GetCanvas<StaticCanvas>().GetPanel<BottomLeftToolbar>().HideItem();
|
||||
|
||||
var topmenuPanel = uiManager.GetCanvas<StaticCanvas>().GetPanel<TopMenuPanel>();
|
||||
topmenuPanel.PropertyWindow.Hide();
|
||||
|
||||
uiManager.GetCanvas<PopupCanvas>().OpenPanel<ManufactoringOrderPanel>(CanvasPanelOpenMode.Single);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd07fefd8d7b83c4a88b3fdbaf3daa92
|
||||
@@ -1,22 +0,0 @@
|
||||
using UVC.UI.Commands;
|
||||
using EnglewoodLAB.Management;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenOverviewPanelCommand : ICommand
|
||||
{
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.GetManager<EWLUIManager>();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().SideTabBar.DeactivateCurrentTab();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().DeactiveSideToolButton();
|
||||
|
||||
//uiManager.GetCanvas<StaticCanvas>().GetPanel<BottomLeftToolbar>().HideItem();
|
||||
|
||||
var topmenuPanel = uiManager.GetCanvas<StaticCanvas>().GetPanel<TopMenuPanel>();
|
||||
topmenuPanel.PropertyWindow.Hide();
|
||||
|
||||
uiManager.GetCanvas<PopupCanvas>().OpenPanel<OverviewPanel>(CanvasPanelOpenMode.Single);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a743e6c7d8ada094393e46553d63747c
|
||||
@@ -1,28 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UVC.UI.Commands;
|
||||
using UVC.UI.Window.PropertyWindow;
|
||||
using EnglewoodLAB.Management;
|
||||
using EnglewoodLAB.UI;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenPlaybackControllerCommand : ICommand
|
||||
{
|
||||
private PropertyWindow propertyWindow;
|
||||
|
||||
public OpenPlaybackControllerCommand()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
|
||||
var uiManager = SceneMain.Instance.GetManager<EWLUIManager>();
|
||||
uiManager.GetCanvas<PopupCanvas>().OpenPanel<PlaybackControllPanel>(CanvasPanelOpenMode.Single);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 13aaf19bc6e0b3943acc63c40524e88f
|
||||
@@ -1,25 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UVC.UI.Commands;
|
||||
using UVC.UI.Window.PropertyWindow;
|
||||
using EnglewoodLAB.UI;
|
||||
using EnglewoodLAB.Management;
|
||||
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenPlaybackListPanelCommand : ICommand
|
||||
{
|
||||
private PropertyWindow propertyWindow;
|
||||
|
||||
public OpenPlaybackListPanelCommand()
|
||||
{
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.GetManager<EWLUIManager>();
|
||||
uiManager.GetCanvas<PopupCanvas>().OpenPanel<PlaybackListPanel>(CanvasPanelOpenMode.Single);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d5bb81955729a714bbcb2c782d5a67da
|
||||
@@ -1,23 +0,0 @@
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UVC.UI.Commands;
|
||||
using UVC.UI.Modal;
|
||||
using EnglewoodLAB.Management;
|
||||
using EnglewoodLAB.UI;
|
||||
using EnglewoodLAB.Modal;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenSettingPanelCommand : ICommand
|
||||
{
|
||||
private ContentModalView SettingView;
|
||||
public OpenSettingPanelCommand(ContentModalView modalView)
|
||||
{
|
||||
SettingView = modalView;
|
||||
SettingView.Hide();
|
||||
}
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
SettingView.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ecd6ac9a524838d4185ad9551b557647
|
||||
@@ -1,22 +0,0 @@
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenThermostatControlPanelCommand : ICommand
|
||||
{
|
||||
private Thermostat thermostat;
|
||||
public OpenThermostatControlPanelCommand(Thermostat thermostat)
|
||||
{
|
||||
this.thermostat = thermostat;
|
||||
}
|
||||
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var dataManger = SceneMain.Instance.dataManager;
|
||||
dataManger.SetSelectedThermostatData(thermostat);
|
||||
|
||||
var uiManager = SceneMain.Instance.uiManager;
|
||||
uiManager.GetCanvas<PopupCanvas>().GetPanel<ThermostatControlPanel>().SettingThermostatData(thermostat);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d4f59c9f313bf3b4f9088d402baacbd9
|
||||
@@ -1,22 +0,0 @@
|
||||
using EnglewoodLAB.Management;
|
||||
using UVC.UI.Commands;
|
||||
|
||||
namespace EnglewoodLAB.UI.Command
|
||||
{
|
||||
public class OpenWorkProgressPanelCommand : ICommand
|
||||
{
|
||||
public void Execute(object? parameter = null)
|
||||
{
|
||||
var uiManager = SceneMain.Instance.GetManager<EWLUIManager>();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().SideTabBar.DeactivateCurrentTab();
|
||||
uiManager.GetCanvas<StaticCanvas>().GetPanel<LeftSidePanel>().DeactiveSideToolButton();
|
||||
|
||||
//uiManager.GetCanvas<StaticCanvas>().GetPanel<BottomLeftToolbar>().HideItem();
|
||||
|
||||
var topmenuPanel = uiManager.GetCanvas<StaticCanvas>().GetPanel<TopMenuPanel>();
|
||||
topmenuPanel.PropertyWindow.Hide();
|
||||
|
||||
uiManager.GetCanvas<PopupCanvas>().OpenPanel<WorkProgressPanel>(CanvasPanelOpenMode.Single);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d219f1ce167fc6846bd4c9f7bf7d01cb
|
||||
@@ -1,9 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace EnglewoodLAB.Config
|
||||
{
|
||||
public class AppConfig
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 27e1a0fb6abf20b4baeef8f3c1da77ee
|
||||
@@ -1,9 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace EnglewoodLAB.Config
|
||||
{
|
||||
public class Constants
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b1b0ea5b581fcff47bb140d623e7c1b1
|
||||
@@ -1,118 +0,0 @@
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UVC.Core;
|
||||
using UVC.Object3d.Manager;
|
||||
using UVC.Studio.Command;
|
||||
using UVC.Studio.Config;
|
||||
using UVC.Studio.Manager;
|
||||
using UVC.Util;
|
||||
using UVC.Extention;
|
||||
|
||||
public class ShortcutConfigurator : MonoBehaviour
|
||||
{
|
||||
[Inject]
|
||||
private Setting? setting;
|
||||
|
||||
[Inject]
|
||||
private StageObjectManager? stageObjectManager;
|
||||
|
||||
[Inject]
|
||||
private SelectionManager? selectionManager;
|
||||
|
||||
// 단축키 관리자
|
||||
public ShortcutManager? shortcutManager;
|
||||
|
||||
/// <summary>
|
||||
/// 단축키 관리자를 설정합니다.
|
||||
/// </summary>
|
||||
public async void SetupShortcutManager()
|
||||
{
|
||||
await InjectorAppContext.Instance.WaitForInitializationAsync();
|
||||
|
||||
selectionManager = InjectorAppContext.Instance.Get<SelectionManager>();
|
||||
stageObjectManager = InjectorAppContext.Instance.Get<StageObjectManager>();
|
||||
|
||||
// StudioShortcutManager 생성 또는 가져오기
|
||||
shortcutManager = ShortcutManager.Instance;
|
||||
if (shortcutManager == null)
|
||||
{
|
||||
var go = new GameObject("StudioShortcutManager");
|
||||
shortcutManager = go.AddComponent<ShortcutManager>();
|
||||
DontDestroyOnLoad(go);
|
||||
}
|
||||
|
||||
// Setting 주입
|
||||
Setting? currentSetting = setting;
|
||||
if (currentSetting == null && InjectorAppContext.Instance != null)
|
||||
{
|
||||
currentSetting = InjectorAppContext.Instance.Get<Setting>();
|
||||
}
|
||||
if (currentSetting != null)
|
||||
{
|
||||
shortcutManager.SetSetting(currentSetting);
|
||||
}
|
||||
|
||||
// 메뉴 단축키 등록
|
||||
RegisterMenuShortcuts();
|
||||
|
||||
// 도구 단축키 등록
|
||||
RegisterToolShortcuts();
|
||||
|
||||
Debug.Log("[SetupShortcutManager] 단축키 관리자가 설정되었습니다.");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 메뉴 단축키를 등록합니다.
|
||||
/// </summary>
|
||||
private void RegisterMenuShortcuts()
|
||||
{
|
||||
if (shortcutManager == null) return;
|
||||
|
||||
// Edit 메뉴
|
||||
shortcutManager.RegisterMenuShortcut("delete", new EditDeleteCommand(selectionManager!, stageObjectManager!));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 도구 단축키를 등록합니다.
|
||||
/// </summary>
|
||||
private void RegisterToolShortcuts()
|
||||
{
|
||||
if (shortcutManager == null) return;
|
||||
|
||||
// 도구 단축키 - SelectionManager를 통해 기즈모 제어
|
||||
shortcutManager.RegisterToolShortcut("select", () =>
|
||||
{
|
||||
if (selectionManager != null) selectionManager.Gizmo.SetActiveTool(TransformToolType.Select);
|
||||
});
|
||||
|
||||
shortcutManager.RegisterToolShortcut("move", () =>
|
||||
{
|
||||
if (selectionManager != null) selectionManager.Gizmo.SetActiveTool(TransformToolType.Move);
|
||||
});
|
||||
|
||||
shortcutManager.RegisterToolShortcut("rotate", () =>
|
||||
{
|
||||
if (selectionManager != null) selectionManager.Gizmo.SetActiveTool(TransformToolType.Rotate);
|
||||
});
|
||||
|
||||
shortcutManager.RegisterToolShortcut("scale", () =>
|
||||
{
|
||||
if (selectionManager != null) selectionManager.Gizmo.SetActiveTool(TransformToolType.Scale);
|
||||
});
|
||||
|
||||
shortcutManager.RegisterToolShortcut("node", () =>
|
||||
{
|
||||
CursorManager.Instance.SetCursor(CursorType.Node);
|
||||
});
|
||||
|
||||
shortcutManager.RegisterToolShortcut("link", () =>
|
||||
{
|
||||
CursorManager.Instance.SetCursor(CursorType.Link);
|
||||
});
|
||||
|
||||
shortcutManager.RegisterToolShortcut("arc", () =>
|
||||
{
|
||||
CursorManager.Instance.SetCursor(CursorType.Arc);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 46a7c33e718e95140be1287c56a9dd5e
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c2209fb57c2ba244fb59f4a6487158fe
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace EnglewoodLAB.Constants
|
||||
{
|
||||
public class ResourceURL
|
||||
{
|
||||
public static readonly string UIPrefabFolderPath = "UI/Prefab/EnglewoodLAB/";
|
||||
public static readonly string UISpriteFolderPath = "UI/Sprites/";
|
||||
public static readonly string DataFolderPath = "Data/";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7b37a1d72df31254eb5c05cc66366081
|
||||
@@ -1,28 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c6afc1f7da23fd44d957e1b9874bdf6d, type: 3}
|
||||
m_Name: Data_AFAS
|
||||
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.ProjectData
|
||||
projectName: AFAS
|
||||
description: "Location: \uACBD\uAE30 \uC548\uC0B0\uC2DC \uB2E8\uC6D0\uAD6C\nFile
|
||||
Size: 150.2MB\nLast Updated: 2026.02.11"
|
||||
thumbnail: {fileID: 21300000, guid: 77287373a259fab409ed7c74935c5102, type: 3}
|
||||
hover: {fileID: 21300000, guid: 8b3c67ca65ee21643a8906c8ee3c729d, type: 3}
|
||||
curSceneStatus: 0
|
||||
modelPrefab: {fileID: 0}
|
||||
sceneAssets: []
|
||||
volumeProfiles: []
|
||||
staticCanvasPrefab: {fileID: 0}
|
||||
popupCanvasPrefab: {fileID: 0}
|
||||
sceneMain: {fileID: 0}
|
||||
labelCanvas: {fileID: 0}
|
||||
isLocked: 1
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 01338d1235b49a844b0d64290c8c015d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,28 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c6afc1f7da23fd44d957e1b9874bdf6d, type: 3}
|
||||
m_Name: Data_AZTECH
|
||||
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.ProjectData
|
||||
projectName: AZTECH
|
||||
description: "Location: \uBD80\uC0B0 \uC0AC\uD558\uAD6C \uD558\uC2E0\nFile Size:
|
||||
113MB\nLast Updated: 2026.02.11"
|
||||
thumbnail: {fileID: 21300000, guid: c2dd61a75c3903248971617c8f89b32d, type: 3}
|
||||
hover: {fileID: 21300000, guid: 8b3c67ca65ee21643a8906c8ee3c729d, type: 3}
|
||||
curSceneStatus: 0
|
||||
modelPrefab: {fileID: 0}
|
||||
sceneAssets: []
|
||||
volumeProfiles: []
|
||||
staticCanvasPrefab: {fileID: 0}
|
||||
popupCanvasPrefab: {fileID: 0}
|
||||
sceneMain: {fileID: 0}
|
||||
labelCanvas: {fileID: 0}
|
||||
isLocked: 1
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f00d24b5b2ee5f244af3fdb38a96b9cf
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,33 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c6afc1f7da23fd44d957e1b9874bdf6d, type: 3}
|
||||
m_Name: Data_Chunil
|
||||
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.ProjectData
|
||||
projectName: "OO\uC5D4\uC9C0\uB2C8\uC5B4\uB9C1"
|
||||
description: "Location: \uC778\uCC9C\uAD11\uC5ED\uC2DC \uB0A8\uB3D9\uAD6C \uACE0\uC794\uB3D9\nFile
|
||||
Size: 214.4MB \nLast Updated: 2026.02.11"
|
||||
thumbnail: {fileID: 21300000, guid: 65fe46bd8eb44044485387b91b9d525c, type: 3}
|
||||
hover: {fileID: 21300000, guid: 984c32caad08205489f1b2725d5e0dd5, type: 3}
|
||||
curSceneStatus: 1
|
||||
modelPrefab: {fileID: 1600303972707744018, guid: 02de84299dbbd354fa8fe07b680d5d8c, type: 3}
|
||||
sceneNames:
|
||||
- OCTODAY_Twin
|
||||
- ChunilScene
|
||||
volumeProfiles:
|
||||
- {fileID: 11400000, guid: effb784cf609a224abefb3ce73fa5e37, type: 2}
|
||||
- {fileID: 11400000, guid: acb38c230e250d64fbb3abdd5aeac83c, type: 2}
|
||||
staticCanvasPrefab: {fileID: 2790366768964733958, guid: 8d9932723a4c65b43b24708f39835e52, type: 3}
|
||||
popupCanvasPrefab: {fileID: 6863753461202511297, guid: 0312eabdb9db59f41b04acd492040a66, type: 3}
|
||||
contentModalViewPrefab: {fileID: 660829159889194611, guid: e1d277c7d9a85d3419471387fb9f9bee, type: 3}
|
||||
sceneMain: {fileID: 5864217899410193969, guid: c5aba32de168cfa4ca923671c537b9b1, type: 3}
|
||||
labelCanvas: {fileID: 88577447179949765, guid: 53dc99c47ad0b9b47a70382721cd50ac, type: 3}
|
||||
isLocked: 0
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e64e9a2b1feb4d849af07549deddf7ba
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,28 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c6afc1f7da23fd44d957e1b9874bdf6d, type: 3}
|
||||
m_Name: Data_ENGLEWOODLAB
|
||||
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.ProjectData
|
||||
projectName: ENGLEWOODLAB
|
||||
description: "Location: \uC778\uCC9C\uAD11\uC5ED\uC2DC \uB0A8\uB3D9\uAD6C\nFile
|
||||
Size: 114MB\nLast Updated: 2026.02.11"
|
||||
thumbnail: {fileID: 21300000, guid: cf9aa331ea4a9de40889555cfce67a2e, type: 3}
|
||||
hover: {fileID: 21300000, guid: 8b3c67ca65ee21643a8906c8ee3c729d, type: 3}
|
||||
curSceneStatus: 0
|
||||
modelPrefab: {fileID: 0}
|
||||
sceneAssets: []
|
||||
volumeProfiles: []
|
||||
staticCanvasPrefab: {fileID: 0}
|
||||
popupCanvasPrefab: {fileID: 0}
|
||||
sceneMain: {fileID: 0}
|
||||
labelCanvas: {fileID: 0}
|
||||
isLocked: 1
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3dd1001b0a1d6454bbb96e8f3a8f7d95
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,30 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c6afc1f7da23fd44d957e1b9874bdf6d, type: 3}
|
||||
m_Name: Data_HyundaiWIA
|
||||
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.ProjectData
|
||||
projectName: HyundaiWIA
|
||||
description: "Location: \uACBD\uC0C1\uB0A8\uB3C4 \uCC3D\uC6D0\uC2DC \uC131\uC0B0\uAD6C\nFile
|
||||
Size: 155MB\nLast Updated: 2026.02.11"
|
||||
thumbnail: {fileID: 21300000, guid: 48812a0cc4b904f4b8dda5a89691424b, type: 3}
|
||||
hover: {fileID: 21300000, guid: 00207835f82d3a049808bac1edb6420a, type: 3}
|
||||
curSceneStatus: 3
|
||||
modelPrefab: {fileID: 7895599977219415672, guid: 1640d857ae03ade4f958a521e19f11cd, type: 3}
|
||||
sceneNames:
|
||||
- OCTODAY_Twin_Hyundai_wia
|
||||
volumeProfiles:
|
||||
- {fileID: 11400000, guid: effb784cf609a224abefb3ce73fa5e37, type: 2}
|
||||
staticCanvasPrefab: {fileID: 8033998068328256001, guid: 257ded03459cccb49b84a69fb54037de, type: 3}
|
||||
popupCanvasPrefab: {fileID: 3178617709267424133, guid: f26776b9f8433c34b9e254b2a145b73b, type: 3}
|
||||
sceneMain: {fileID: 3953432803056626161, guid: a35446b7bf8d6bf4595dac237037fcbd, type: 3}
|
||||
labelCanvas: {fileID: 5518232223177137399, guid: 7422d603dfb09e9448d89b5fe17a3ef6, type: 3}
|
||||
isLocked: 0
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: df9e390ded1c7b244887f8dc781de41c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,30 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c6afc1f7da23fd44d957e1b9874bdf6d, type: 3}
|
||||
m_Name: Data_KEPCO
|
||||
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.ProjectData
|
||||
projectName: KEPCO
|
||||
description: "Location: \uACBD\uAE30\uB3C4 \uC758\uC815\uBD80\uC2DC \uC790\uC77C\uB3D9\nFile
|
||||
Size: 193MB\nLast Updated: 2026.02.11"
|
||||
thumbnail: {fileID: 21300000, guid: 2cc16eff5df4bff45a782786135df53f, type: 3}
|
||||
hover: {fileID: 21300000, guid: afe44b78cbec59948ad9053bc2a686e0, type: 3}
|
||||
curSceneStatus: 2
|
||||
modelPrefab: {fileID: 1364758469199115521, guid: 423036aa0a8d7e54896acc2d79cf08b5, type: 3}
|
||||
sceneNames:
|
||||
- KEPCOScene
|
||||
volumeProfiles:
|
||||
- {fileID: 11400000, guid: b88f584d02e80704dbb909e5ca9daccb, type: 2}
|
||||
staticCanvasPrefab: {fileID: 9115987721486925841, guid: df39e435fbc6b27458c0ced9b20b0bd7, type: 3}
|
||||
popupCanvasPrefab: {fileID: 6944805395147841475, guid: 211ab265afe9f854bae51f1a2602c3f5, type: 3}
|
||||
sceneMain: {fileID: 5850141579646257595, guid: 2b7f55830958f804aaad00ae1d4bbe6a, type: 3}
|
||||
labelCanvas: {fileID: 5307194914983898905, guid: 3611a796a20d61f4faad719a2a0352be, type: 3}
|
||||
isLocked: 0
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1b1f8db8ab645f54a91bbf6c944bd925
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,28 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c6afc1f7da23fd44d957e1b9874bdf6d, type: 3}
|
||||
m_Name: Data_SAMKWANG
|
||||
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.ProjectData
|
||||
projectName: SAMKWANG
|
||||
description: "Location: \uC6B8\uC0B0\uAD11\uC5ED\uC2DC \uB0A8\uAD6C\nFile Size:
|
||||
181MB\nLast Updated: 2026.02.11"
|
||||
thumbnail: {fileID: 21300000, guid: 677015f688ee11a44af399dfb1e395a6, type: 3}
|
||||
hover: {fileID: 21300000, guid: 8b3c67ca65ee21643a8906c8ee3c729d, type: 3}
|
||||
curSceneStatus: 0
|
||||
modelPrefab: {fileID: 0}
|
||||
sceneAssets: []
|
||||
volumeProfiles: []
|
||||
staticCanvasPrefab: {fileID: 0}
|
||||
popupCanvasPrefab: {fileID: 0}
|
||||
sceneMain: {fileID: 0}
|
||||
labelCanvas: {fileID: 0}
|
||||
isLocked: 1
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c93cb1d12307c249a14bccd868e169c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,28 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c6afc1f7da23fd44d957e1b9874bdf6d, type: 3}
|
||||
m_Name: Data_SH-INT
|
||||
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.ProjectData
|
||||
projectName: SH-INT
|
||||
description: "Location: \uACBD\uB0A8 \uAE40\uD574\uC2DC \uC9C4\uC601\uC74D\nFile
|
||||
Size: 147.7MB\nLast Updated: 2026.02.11"
|
||||
thumbnail: {fileID: 21300000, guid: cab18c80575252e46a468d4abeefe5fc, type: 3}
|
||||
hover: {fileID: 21300000, guid: 8b3c67ca65ee21643a8906c8ee3c729d, type: 3}
|
||||
curSceneStatus: 0
|
||||
modelPrefab: {fileID: 0}
|
||||
sceneAssets: []
|
||||
volumeProfiles: []
|
||||
staticCanvasPrefab: {fileID: 0}
|
||||
popupCanvasPrefab: {fileID: 0}
|
||||
sceneMain: {fileID: 0}
|
||||
labelCanvas: {fileID: 0}
|
||||
isLocked: 1
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 21128e94512247f4b9249cbd940eb884
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7849948b5c399554f91e4d008db9b05b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,10 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace EnglewoodLAB.UI
|
||||
{
|
||||
public enum CanvasPanelOpenMode
|
||||
{
|
||||
None,
|
||||
Single,
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 02a359aa7b010e444a16699f26fd7496
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4bca0ddfa06eea743abc609fe66634d9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,35 +0,0 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
|
||||
public static class ReflectionExtensions
|
||||
{
|
||||
public static IEnumerable<FieldInfo> GetAllFields(this Type type)
|
||||
{
|
||||
if (type == null)
|
||||
{
|
||||
return new List<FieldInfo>();
|
||||
}
|
||||
|
||||
BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic |
|
||||
BindingFlags.Static | BindingFlags.Instance |
|
||||
BindingFlags.DeclaredOnly;
|
||||
|
||||
return type.GetFields(flags).Concat(GetAllFields(type.BaseType));
|
||||
}
|
||||
|
||||
public static FieldInfo GetAllField(this Type type, string fieldName)
|
||||
{
|
||||
if (type == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic |
|
||||
BindingFlags.Static | BindingFlags.Instance;
|
||||
|
||||
return type.GetField(fieldName, flags) ?? GetAllField(type.BaseType, fieldName);
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77115797a2101c746b806dfeb9b2c89c
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user