[방소연] Default 카메라 포인트 추가

(+ UI 해상도 낮은 이미지 수정)
This commit is contained in:
binmo7575-maker
2026-02-09 21:38:15 +09:00
parent 738df97bed
commit 4fe604c7cc
12 changed files with 211 additions and 40 deletions

View File

@@ -1,4 +1,4 @@
#nullable enable #nullable enable
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using RTGLite; using RTGLite;
@@ -143,7 +143,7 @@ namespace UVC.Studio.Manager
/// </summary> /// </summary>
/// <param name="toolType">설정할 도구 타입</param> /// <param name="toolType">설정할 도구 타입</param>
/// <param name="selectedCount">현재 선택된 객체 수</param> /// <param name="selectedCount">현재 선택된 객체 수</param>
public void SetActiveTool(TransformToolType toolType, int selectedCount = 0) public void SetActiveTool(TransformToolType toolType)
{ {
if (!_initialized) if (!_initialized)
{ {
@@ -160,11 +160,11 @@ namespace UVC.Studio.Manager
if (_rotateGizmo != null) _rotateGizmo.enabled = false; if (_rotateGizmo != null) _rotateGizmo.enabled = false;
if (_scaleGizmo != null) _scaleGizmo.enabled = false; if (_scaleGizmo != null) _scaleGizmo.enabled = false;
if (selectedCount == 0) //if (selectedCount == 0)
{ //{
Debug.Log("[GizmoController] No selected objects. Gizmos will remain disabled."); // Debug.Log("[GizmoController] No selected objects. Gizmos will remain disabled.");
return; // return;
} //}
// 선택된 도구에 해당하는 기즈모 활성화 // 선택된 도구에 해당하는 기즈모 활성화
switch (toolType) switch (toolType)

View File

@@ -23042,13 +23042,13 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 490108526} m_GameObject: {fileID: 490108526}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0.48600605, z: -0, w: 0.8739554}
m_LocalPosition: {x: 29.04, y: 0.35, z: 12.888} m_LocalPosition: {x: 29.8, y: 0.35, z: 12.888}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1005158937} m_Father: {fileID: 1005158937}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: -58.157, z: 0}
--- !u!114 &490108528 --- !u!114 &490108528
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -44765,6 +44765,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1698040805}
- {fileID: 1877012570} - {fileID: 1877012570}
- {fileID: 1740796822} - {fileID: 1740796822}
- {fileID: 842397949} - {fileID: 842397949}
@@ -78294,6 +78295,55 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 034bc47afcbf5e141a58d5c20b7808e4, type: 3} m_Script: {fileID: 11500000, guid: 034bc47afcbf5e141a58d5c20b7808e4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
--- !u!1 &1698040804
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1698040805}
- component: {fileID: 1698040806}
m_Layer: 0
m_Name: Default
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1698040805
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1698040804}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 2.3, y: 1.87, z: -1.21}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1005158937}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1698040806
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1698040804}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec4594a576c99c74b90ad6e3c4c2ac4b, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::ChunilENG.Object.CameraPoint
floorIndex: 2
azimuth: 270
elevation: 26
distance: 8.5
TargetPivotTransform: {fileID: 0}
--- !u!114 &1698921192 --- !u!114 &1698921192
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@@ -88406,7 +88456,7 @@ Transform:
m_GameObject: {fileID: 1877012569} m_GameObject: {fileID: 1877012569}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 23.1, y: 0, z: -1.21} m_LocalPosition: {x: 13.939, y: 0, z: 4.704}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 635 B

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 687 B

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 1bee05afcea9f694397fdb416714fccd
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -3534,7 +3534,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 9018949087606917739, guid: 0312eabdb9db59f41b04acd492040a66, type: 3} - target: {fileID: 9018949087606917739, guid: 0312eabdb9db59f41b04acd492040a66, type: 3}
propertyPath: m_SizeDelta.y propertyPath: m_SizeDelta.y
value: 120 value: 145
objectReference: {fileID: 0}
- target: {fileID: 9018949087606917739, guid: 0312eabdb9db59f41b04acd492040a66, type: 3}
propertyPath: m_AnchoredPosition.y
value: 130
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []

View File

@@ -1,4 +1,4 @@
using Cysharp.Threading.Tasks; using Cysharp.Threading.Tasks;
using UnityEngine; using UnityEngine;
using UVC.Core; using UVC.Core;
using UVC.Object3d.Manager; using UVC.Object3d.Manager;
@@ -18,11 +18,11 @@ public class ShortcutConfigurator : MonoBehaviour
[Inject] [Inject]
private SelectionManager? selectionManager; private SelectionManager? selectionManager;
// 단축키 관리자 // 단축키 관리자
public ShortcutManager? shortcutManager; public ShortcutManager? shortcutManager;
/// <summary> /// <summary>
/// 단축키 관리자를 설정합니다. /// 단축키 관리자를 설정합니다.
/// </summary> /// </summary>
public async void SetupShortcutManager() public async void SetupShortcutManager()
{ {
@@ -31,7 +31,7 @@ public class ShortcutConfigurator : MonoBehaviour
selectionManager = InjectorAppContext.Instance.Get<SelectionManager>(); selectionManager = InjectorAppContext.Instance.Get<SelectionManager>();
stageObjectManager = InjectorAppContext.Instance.Get<StageObjectManager>(); stageObjectManager = InjectorAppContext.Instance.Get<StageObjectManager>();
// StudioShortcutManager 생성 또는 가져오기 // StudioShortcutManager 생성 또는 가져오기
shortcutManager = ShortcutManager.Instance; shortcutManager = ShortcutManager.Instance;
if (shortcutManager == null) if (shortcutManager == null)
{ {
@@ -40,7 +40,7 @@ public class ShortcutConfigurator : MonoBehaviour
DontDestroyOnLoad(go); DontDestroyOnLoad(go);
} }
// Setting 주입 // Setting 주입
Setting? currentSetting = setting; Setting? currentSetting = setting;
if (currentSetting == null && InjectorAppContext.Instance != null) if (currentSetting == null && InjectorAppContext.Instance != null)
{ {
@@ -51,53 +51,53 @@ public class ShortcutConfigurator : MonoBehaviour
shortcutManager.SetSetting(currentSetting); shortcutManager.SetSetting(currentSetting);
} }
// 메뉴 단축키 등록 // 메뉴 단축키 등록
RegisterMenuShortcuts(); RegisterMenuShortcuts();
// 도구 단축키 등록 // 도구 단축키 등록
RegisterToolShortcuts(); RegisterToolShortcuts();
Debug.Log("[SetupShortcutManager] 단축키 관리자가 설정되었습니다."); Debug.Log("[SetupShortcutManager] 단축키 관리자가 설정되었습니다.");
} }
/// <summary> /// <summary>
/// 메뉴 단축키를 등록합니다. /// 메뉴 단축키를 등록합니다.
/// </summary> /// </summary>
private void RegisterMenuShortcuts() private void RegisterMenuShortcuts()
{ {
if (shortcutManager == null) return; if (shortcutManager == null) return;
// Edit 메뉴 // Edit 메뉴
shortcutManager.RegisterMenuShortcut("delete", new EditDeleteCommand(selectionManager!, stageObjectManager!)); shortcutManager.RegisterMenuShortcut("delete", new EditDeleteCommand(selectionManager!, stageObjectManager!));
} }
/// <summary> /// <summary>
/// 도구 단축키를 등록합니다. /// 도구 단축키를 등록합니다.
/// </summary> /// </summary>
private void RegisterToolShortcuts() private void RegisterToolShortcuts()
{ {
if (shortcutManager == null) return; if (shortcutManager == null) return;
// 도구 단축키 - SelectionManager를 통해 기즈모 제어 // 도구 단축키 - SelectionManager를 통해 기즈모 제어
//shortcutManager.RegisterToolShortcut("select", () => shortcutManager.RegisterToolShortcut("select", () =>
//{ {
// if (selectionManager != null) selectionManager.SetActiveTool(TransformToolType.Select); if (selectionManager != null) selectionManager.Gizmo.SetActiveTool(TransformToolType.Select);
//}); });
//shortcutManager.RegisterToolShortcut("move", () => shortcutManager.RegisterToolShortcut("move", () =>
//{ {
// if (selectionManager != null) selectionManager.SetActiveTool(TransformToolType.Move); if (selectionManager != null) selectionManager.Gizmo.SetActiveTool(TransformToolType.Move);
//}); });
//shortcutManager.RegisterToolShortcut("rotate", () => shortcutManager.RegisterToolShortcut("rotate", () =>
//{ {
// if (selectionManager != null) selectionManager.SetActiveTool(TransformToolType.Rotate); if (selectionManager != null) selectionManager.Gizmo.SetActiveTool(TransformToolType.Rotate);
//}); });
//shortcutManager.RegisterToolShortcut("scale", () => shortcutManager.RegisterToolShortcut("scale", () =>
//{ {
// if (selectionManager != null) selectionManager.SetActiveTool(TransformToolType.Scale); if (selectionManager != null) selectionManager.Gizmo.SetActiveTool(TransformToolType.Scale);
//}); });
shortcutManager.RegisterToolShortcut("node", () => shortcutManager.RegisterToolShortcut("node", () =>
{ {