기존 파일제거, 모두 XRLib 파일로 덮어씀.

This commit is contained in:
2026-03-10 16:16:01 +09:00
parent 047311053c
commit dea7320597
6582 changed files with 155187 additions and 4800058 deletions

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 447ab6456d9962d49a983e5d57251b91

View File

@@ -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();
//});
}
}
}

View File

@@ -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
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 6de7838db2221394597524e5a7722f9f

View File

@@ -1,11 +0,0 @@
using DG.Tweening;
using UnityEngine;
namespace EnglewoodLAB
{
public class MovePoint : MonoBehaviour
{
public Ease easeType = Ease.InOutSine;
public float speed = -1f;
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 98ee8b0a292db7549857af100e90ae1e

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}
}

View File

@@ -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");
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 35d86d64dfcada645b679ce92e676e20
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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);
}
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 3a545317dd039d34eb9e79e1a9262241

View File

@@ -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 실행됨");
}
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 8019fd70e1ce3f346b9a721c0a170f3f

View File

@@ -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();
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 3576d1547259f3b46b474ce6fe82bdf2

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 436d7393a7713274d829f5209b37ecad

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 2272a95e45cf7e74e8580ebf9f14eb51

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 8361bd56cea4d6344a27418ea3f7e2a6

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 26b8494c1a2fccd40ad0d7f52fdf5730

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 35fa892f06eb7a94aaa664e9c11cf5a5

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 9d54f1c70e9851348a62d230c9c0ac46

View File

@@ -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);
}
}
}

View File

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

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 3a0b76fc76339e54a866bc43e1b9d2a8

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 192a95c369275314f92d5823814750e9

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 3b2157e63c66d8b4eb2aa55b66c2791f

View File

@@ -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();
//}
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 6b0a731ca13d5be4f9c5d808936a3480

View File

@@ -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;
}
}
}

View File

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

View File

@@ -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);
}
}
}

View File

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

View File

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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: c1fb4c73fa99de94d8fe9e67fe50ff86
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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();
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 90d55940ffdd8594696a4fc422f86758

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 8ba93d6bce7202a4581d653e6671d9c4

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 4a195b8813c430e4c80e99ead4c3a997

View File

@@ -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("라이브러리 눌림");
}
}
}

View File

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

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 17101cb4004d1a14f87c00bc6bdbc591

View File

@@ -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);
}
}
}

View File

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

View File

@@ -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);
}
}
}

View File

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

View File

@@ -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);
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 13aaf19bc6e0b3943acc63c40524e88f

View File

@@ -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);
}
}
}

View File

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

View File

@@ -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();
}
}
}

View File

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

View File

@@ -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);
}
}
}

View File

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

View File

@@ -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);
}
}
}

View File

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

View File

@@ -1,9 +0,0 @@
using UnityEngine;
namespace EnglewoodLAB.Config
{
public class AppConfig
{
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 27e1a0fb6abf20b4baeef8f3c1da77ee

View File

@@ -1,9 +0,0 @@
using UnityEngine;
namespace EnglewoodLAB.Config
{
public class Constants
{
}
}

View File

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

View File

@@ -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);
});
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 46a7c33e718e95140be1287c56a9dd5e

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: c2209fb57c2ba244fb59f4a6487158fe
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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/";
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 7b37a1d72df31254eb5c05cc66366081

View File

@@ -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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 01338d1235b49a844b0d64290c8c015d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: f00d24b5b2ee5f244af3fdb38a96b9cf
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: e64e9a2b1feb4d849af07549deddf7ba
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 3dd1001b0a1d6454bbb96e8f3a8f7d95
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: df9e390ded1c7b244887f8dc781de41c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 1b1f8db8ab645f54a91bbf6c944bd925
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 2c93cb1d12307c249a14bccd868e169c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 21128e94512247f4b9249cbd940eb884
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 7849948b5c399554f91e4d008db9b05b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,10 +0,0 @@
using UnityEngine;
namespace EnglewoodLAB.UI
{
public enum CanvasPanelOpenMode
{
None,
Single,
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 02a359aa7b010e444a16699f26fd7496

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 4bca0ddfa06eea743abc609fe66634d9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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);
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 77115797a2101c746b806dfeb9b2c89c

Some files were not shown because too many files have changed in this diff Show More