[정영민] 로그인 기능 수정

26.03.12
- 로그인 단축키 기능 추가
This commit is contained in:
정영민
2026-03-16 08:54:59 +09:00
parent 160000a247
commit 70515575f5
18 changed files with 3670 additions and 3396 deletions

332
Assets/Controller.prefab Normal file
View File

@@ -0,0 +1,332 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &967602586133009498
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6107025353302400571}
- component: {fileID: 3495848388720781848}
m_Layer: 0
m_Name: MaxRange
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6107025353302400571
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 967602586133009498}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6249273175452778659}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &3495848388720781848
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 967602586133009498}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 10, y: 10, z: 10}
m_Center: {x: 0, y: 5, z: 0}
--- !u!1 &2352456897746626842
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6249273175452778659}
- component: {fileID: 4849487717897217064}
m_Layer: 0
m_Name: Controller
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6249273175452778659
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2352456897746626842}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2309573268008395755}
- {fileID: 6107025353302400571}
- {fileID: 9001389034207476749}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &4849487717897217064
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2352456897746626842}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fafd8d68ae7258c4485adb2fffef3373, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.OrbitalController
viewMode: 0
moveSpeed: 5
rotateSpeed: 15
zoomSpeed: 10
maxElevation: 89.5
minElevation: 5
minDistance: 2
maxDistance: 60
currentElevation: 45
currentDistance: 10
currentAzimuth: 45
cameraPivot: {fileID: 0}
--- !u!1 &2757562361402319016
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2309573268008395755}
- component: {fileID: 1010522037587960632}
- component: {fileID: 4206386149743580918}
m_Layer: 0
m_Name: PRF_ControllerViewTarget
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2309573268008395755
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2757562361402319016}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.5, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6249273175452778659}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!135 &1010522037587960632
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2757562361402319016}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 0.25
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &4206386149743580918
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2757562361402319016}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: eab1a07f8f5c6754a8f2a9789fb6b020, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::OCTOPUS_TWIN.OrbitalControllerTarget
--- !u!1 &2763845652876697868
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9001389034207476749}
- component: {fileID: 7069514109681801646}
- component: {fileID: 6638986454919060636}
- component: {fileID: 4584611143028985535}
m_Layer: 6
m_Name: Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &9001389034207476749
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2763845652876697868}
serializedVersion: 2
m_LocalRotation: {x: 0.35355338, y: 0.35355338, z: -0.1464466, w: 0.8535535}
m_LocalPosition: {x: -45, y: 62.35534, z: -45}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6249273175452778659}
m_LocalEulerAnglesHint: {x: 45, y: 45, z: 0}
--- !u!20 &7069514109681801646
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2763845652876697868}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!136 &6638986454919060636
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2763845652876697868}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Height: 1
m_Direction: 1
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &4584611143028985535
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2763845652876697868}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8fe9a887ef4f1864c8f9dcc02ffa4619
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Models.meta Normal file
View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -60,7 +60,6 @@ namespace AZTECHWB.Core
//실제 데이터 받을 시 코드 변경 예정
private void SetupDataSetting()
{
//var machineStatusIconManager = GetManager<MachineStatusIconManager>();
var popupCanvas = GetManager<AZTECHUIManager>().GetCanvas<PopupCanvas>();
dataManager.onMatchedMachineData += popupCanvas.GetPanel<ProductionProgressPanel>().SetProductionStatus;

View File

@@ -1,6 +1,7 @@
using AZTECHWB.Command;
using AZTECHWB.Core;
using AZTECHWB.Management;
using AZTECHWB.Wrapper;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UVC.UI.Toolbar;

View File

@@ -1,4 +1,5 @@
using AZTECHWB.Core;
using AZTECHWB.Wrapper;
using Cysharp.Threading.Tasks;
using System;
using TMPro;
@@ -9,6 +10,8 @@ namespace AZTECHWB.UI
{
public class LoginPanel : UIPanel
{
private LoginShortcutHandler loginShortcutHandler;
private CanvasGroup Login;
private CanvasGroup LoginInfo;
@@ -43,8 +46,15 @@ namespace AZTECHWB.UI
Button_Login.onClick.AddListener(OnClickLoginButton);
Toggle_Show.onValueChanged.AddListener(OnChangedPasswordShowToggle);
loginShortcutHandler = new LoginShortcutHandler();
loginShortcutHandler.Init(InputField_ID, InputField_Password, Button_Login, OnClickLoginButton);
await UniTask.CompletedTask;
}
private void Update()
{
loginShortcutHandler.Tick();
}
public override void Open()
{
gameObject.SetActive(true);
@@ -71,7 +81,7 @@ namespace AZTECHWB.UI
return;
}
AuthService authService = new AuthService();
var authService = new AuthService();
try
{
bool success = await authService.TryLogin(id, pw);

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6229805963a45334ab540c52fbfb6576
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -37,14 +37,6 @@ namespace AZTECHWB.UI
await UniTask.CompletedTask;
}
public override void Open()
{
gameObject.SetActive(true);
}
public override void Close()
{
gameObject.SetActive(false);
}
public void SetDataDashobardInfo(Machine machine, CompleteInfo infos)
{
if (Text_MachineName.text == machine.machineName)

View File

@@ -2,7 +2,6 @@ using AZTECHWB.Core;
using AZTECHWB.Extensions;
using AZTECHWB.Management;
using Cysharp.Threading.Tasks;
using System;
using UnityEngine;
using UnityEngine.UI;

View File

@@ -43,9 +43,9 @@ namespace AZTECHWB.UI
{
var toolbarModel = new ToolbarModel();
// --- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ---
// --- Top Menu 모델 구성 시작 ---
// AI <EFBFBD>ùķ<EFBFBD><EFBFBD>̼<EFBFBD>
// AI 시뮬레이션
toolbarModel.AddToggleButton("AI Simulation", false,
$"UI/Sprites/TopToolBar/IMG_Playback_on",
$"UI/Sprites/TopToolBar/IMG_Playback",
@@ -69,7 +69,7 @@ namespace AZTECHWB.UI
null
);
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 설정
toolbarModel.AddToggleButton("Setting", false,
$"UI/Sprites/TopToolBar/IMG_Setting_on",
$"UI/Sprites/TopToolBar/IMG_Setting",
@@ -89,7 +89,7 @@ namespace AZTECHWB.UI
null
);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//나가기
toolbarModel.AddStandardButton("Exit",
$"UI/Sprites/TopToolBar/IMG_Exit",
new OpenExitProgramPanelCommand()

View File

@@ -3,7 +3,7 @@ using SFB;
using System.IO;
using UnityEngine;
namespace AZTECHWB.Management
namespace AZTECHWB.Wrapper
{
public class CaptureRecoder
{

View File

@@ -0,0 +1,70 @@
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace AZTECHWB.Wrapper
{
public class LoginShortcutHandler
{
private Selectable[] _focusOrder;
private System.Action _onLoginRequested;
public void Init(TMP_InputField inputID, TMP_InputField inputPassword, Button loginButton, System.Action onLoginRequested)
{
_focusOrder = new Selectable[] { inputID, inputPassword, loginButton };
_onLoginRequested = onLoginRequested;
}
public void Tick()
{
bool isShift = Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift);
if (Input.GetKeyDown(KeyCode.Tab))
{
MoveFocus(isShift ? -1 : 1);
}
if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.KeypadEnter))
{
var current = EventSystem.current?.currentSelectedGameObject;
bool onInputField = current != null &&(current == _focusOrder[0].gameObject || current == _focusOrder[1].gameObject);
if (!onInputField)
{
_onLoginRequested?.Invoke();
}
}
}
public void FocusFirst() => SelectFocusAt(0);
private void MoveFocus(int direction)
{
var current = EventSystem.current?.currentSelectedGameObject;
int currentIndex = -1;
for (int i = 0; i < _focusOrder.Length; i++)
{
if (_focusOrder[i].gameObject == current)
{
currentIndex = i;
break;
}
}
SelectFocusAt(currentIndex == -1 ? 0 : (currentIndex + direction + _focusOrder.Length) % _focusOrder.Length);
}
private void SelectFocusAt(int index)
{
var target = _focusOrder[index];
EventSystem.current?.SetSelectedGameObject(target.gameObject);
if (target is TMP_InputField inputField)
{
inputField.ActivateInputField();
}
}
}
}

View File

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

View File

@@ -54,7 +54,7 @@ MonoBehaviour:
m_ReflectionProbeBlending: 1
m_ReflectionProbeBoxProjection: 1
m_ReflectionProbeAtlas: 1
m_ShadowDistance: 20
m_ShadowDistance: 50
m_ShadowCascadeCount: 4
m_Cascade2Split: 0.25
m_Cascade3Split: {x: 0.1, y: 0.3}

View File

@@ -5,6 +5,7 @@
"com.unity.ai.navigation": "2.0.9",
"com.unity.cloud.gltfast": "6.16.0",
"com.unity.collab-proxy": "2.10.2",
"com.unity.formats.alembic": "2.4.4",
"com.unity.ide.rider": "3.0.38",
"com.unity.ide.visualstudio": "2.0.25",
"com.unity.inputsystem": "1.14.2",

View File

@@ -98,6 +98,17 @@
"source": "builtin",
"dependencies": {}
},
"com.unity.formats.alembic": {
"version": "2.4.4",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.timeline": "1.8.7",
"com.unity.modules.cloth": "1.0.0",
"com.unity.modules.unityanalytics": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.ide.rider": {
"version": "3.0.38",
"depth": 0,