ugui 소스 제거

This commit is contained in:
logonkhi
2025-11-27 13:52:13 +09:00
parent e24f221853
commit d387b97d77
55 changed files with 70 additions and 10739 deletions

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -0,0 +1,67 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3129090381825983309
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1951183495053314226}
- component: {fileID: 5150788519260695383}
- component: {fileID: 5178822619495094378}
m_Layer: 0
m_Name: ISOPModal
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1951183495053314226
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3129090381825983309}
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: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5150788519260695383
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3129090381825983309}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_PanelSettings: {fileID: 11400000, guid: 23c44a2b28cd90c418bdfb0ea56f91e8, type: 2}
m_ParentUI: {fileID: 0}
sourceAsset: {fileID: 9197481963319205126, guid: c64f687137f7a2940861d34fc593a917, type: 3}
m_SortingOrder: 100
m_WorldSpaceSizeMode: 1
m_WorldSpaceWidth: 1920
m_WorldSpaceHeight: 1080
--- !u!114 &5178822619495094378
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3129090381825983309}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a070d33d51211a84ea9e6c6e6133735f, type: 3}
m_Name:
m_EditorClassIdentifier:
uiDocument: {fileID: 5150788519260695383}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2a2c49ea5939c5749aa88e892518f979
guid: 7382f025177c6264da13b7255d6480d2
PrefabImporter:
externalObjects: {}
userData:

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -1,823 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1462360020605571893
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1022765863909309765}
- component: {fileID: 2951520196524031467}
- component: {fileID: 2289736159566368719}
- component: {fileID: 6025781672912143612}
m_Layer: 5
m_Name: Scrollbar Horizontal
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1022765863909309765
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1462360020605571893}
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: 3097322909638401089}
m_Father: {fileID: 8894486403032071402}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 5}
m_Pivot: {x: 0, y: 0}
--- !u!222 &2951520196524031467
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1462360020605571893}
m_CullTransparentMesh: 1
--- !u!114 &2289736159566368719
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1462360020605571893}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.09411765, g: 0.09411765, b: 0.09411765, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &6025781672912143612
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1462360020605571893}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 2680734087760533677}
m_HandleRect: {fileID: 6081086258189437538}
m_Direction: 0
m_Value: 0
m_Size: 1
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &1572880287690542826
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3301928374361144381}
m_Layer: 5
m_Name: Sliding Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3301928374361144381
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1572880287690542826}
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: 6234462523872176539}
m_Father: {fileID: 5780838202259870402}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: -20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1848783212353540151
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5780838202259870402}
- component: {fileID: 2689031090661273458}
- component: {fileID: 4121319568877025449}
- component: {fileID: 4856300785373777908}
m_Layer: 5
m_Name: Scrollbar Vertical
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5780838202259870402
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1848783212353540151}
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: 3301928374361144381}
m_Father: {fileID: 8894486403032071402}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 5, y: 0}
m_Pivot: {x: 1, y: 1}
--- !u!222 &2689031090661273458
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1848783212353540151}
m_CullTransparentMesh: 0
--- !u!114 &4121319568877025449
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1848783212353540151}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.09411765, g: 0.09411765, b: 0.09411765, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &4856300785373777908
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1848783212353540151}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Highlighted
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 7428146289359687929}
m_HandleRect: {fileID: 6234462523872176539}
m_Direction: 2
m_Value: 0
m_Size: 1
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &3011982018749398316
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8894486403032071402}
- component: {fileID: 9000987459549261387}
- component: {fileID: 4415661564241239138}
- component: {fileID: 2006518343008415563}
- component: {fileID: 5742779717166474465}
m_Layer: 5
m_Name: ShiTreeList
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8894486403032071402
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3011982018749398316}
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: 3974886479277341081}
- {fileID: 5780838202259870402}
- {fileID: 1022765863909309765}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -76}
m_SizeDelta: {x: 0, y: -76}
m_Pivot: {x: 0, y: 1}
--- !u!114 &9000987459549261387
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3011982018749398316}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7be08eb56899e2042811c8d1da0924a6, type: 3}
m_Name:
m_EditorClassIdentifier:
itemPrefab: {fileID: 4190301731963491743, guid: 3b667b13f22b81b4896e14bd416de1f7, type: 3}
root: {fileID: 908297234377844233}
allowMultipleSelection: 1
enableDragDrop: 1
--- !u!222 &4415661564241239138
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3011982018749398316}
m_CullTransparentMesh: 1
--- !u!114 &2006518343008415563
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3011982018749398316}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.14509805, g: 0.14509805, b: 0.14901961, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &5742779717166474465
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3011982018749398316}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Content: {fileID: 2261173428971837695}
m_Horizontal: 1
m_Vertical: 1
m_MovementType: 2
m_Elasticity: 0.1
m_Inertia: 1
m_DecelerationRate: 0.135
m_ScrollSensitivity: 10
m_Viewport: {fileID: 3974886479277341081}
m_HorizontalScrollbar: {fileID: 6025781672912143612}
m_VerticalScrollbar: {fileID: 4856300785373777908}
m_HorizontalScrollbarVisibility: 1
m_VerticalScrollbarVisibility: 1
m_HorizontalScrollbarSpacing: -3
m_VerticalScrollbarSpacing: -3
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &3904395414431480648
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3974886479277341081}
- component: {fileID: 2640013902256625935}
- component: {fileID: 7267482512719985956}
- component: {fileID: 1414930982064568929}
m_Layer: 5
m_Name: Viewport
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3974886479277341081
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3904395414431480648}
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: 2261173428971837695}
m_Father: {fileID: 8894486403032071402}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &2640013902256625935
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3904395414431480648}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 0
--- !u!222 &7267482512719985956
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3904395414431480648}
m_CullTransparentMesh: 0
--- !u!114 &1414930982064568929
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3904395414431480648}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4125224351293165923
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6234462523872176539}
- component: {fileID: 68695882802577982}
- component: {fileID: 7428146289359687929}
m_Layer: 5
m_Name: Handle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6234462523872176539
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4125224351293165923}
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: 3301928374361144381}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &68695882802577982
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4125224351293165923}
m_CullTransparentMesh: 0
--- !u!114 &7428146289359687929
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4125224351293165923}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4235972654286552744
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 908297234377844233}
- component: {fileID: 5053221704473354703}
- component: {fileID: 2409632255040810509}
- component: {fileID: 3050818479446949986}
m_Layer: 5
m_Name: Root
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &908297234377844233
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4235972654286552744}
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: 2261173428971837695}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &5053221704473354703
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4235972654286552744}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 20
m_Right: 0
m_Top: 2
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 0
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &2409632255040810509
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4235972654286552744}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 2
m_VerticalFit: 2
--- !u!114 &3050818479446949986
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4235972654286552744}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: de4afb3a0d93f05448f2fc60683275c0, type: 3}
m_Name:
m_EditorClassIdentifier:
EnableWidth: 0
EnableHeight: 1
margin: {x: 0, y: 0}
target:
- {fileID: 2261173428971837695}
--- !u!1 &4766152670497772902
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3097322909638401089}
m_Layer: 5
m_Name: Sliding Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3097322909638401089
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4766152670497772902}
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: 6081086258189437538}
m_Father: {fileID: 1022765863909309765}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: -20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &4888954506875524224
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6081086258189437538}
- component: {fileID: 1173046865919000884}
- component: {fileID: 2680734087760533677}
m_Layer: 5
m_Name: Handle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6081086258189437538
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4888954506875524224}
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: 3097322909638401089}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1173046865919000884
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4888954506875524224}
m_CullTransparentMesh: 0
--- !u!114 &2680734087760533677
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4888954506875524224}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8720199997050006827
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2261173428971837695}
m_Layer: 5
m_Name: Content
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2261173428971837695
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8720199997050006827}
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: 908297234377844233}
m_Father: {fileID: 3974886479277341081}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 2}
m_Pivot: {x: 0, y: 1}

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -1,30 +0,0 @@
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
public class GantChartView : EditorWindow
{
[SerializeField]
private VisualTreeAsset m_VisualTreeAsset = default;
[MenuItem("Window/UI Toolkit/GantChartView")]
public static void ShowExample()
{
GantChartView wnd = GetWindow<GantChartView>();
wnd.titleContent = new GUIContent("GantChartView");
}
public void CreateGUI()
{
// Each editor window contains a root VisualElement object
VisualElement root = rootVisualElement;
// VisualElements objects can contain other VisualElement following a tree hierarchy.
VisualElement label = new Label("Hello World! From C#");
root.Add(label);
// Instantiate UXML
VisualElement labelFromUXML = m_VisualTreeAsset.Instantiate();
root.Add(labelFromUXML);
}
}

View File

@@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: d7cfb84525061514b899380405a7d881
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- m_VisualTreeAsset: {fileID: 9197481963319205126, guid: c4ef95400fcdb23448d991f05d022741, type: 3}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +0,0 @@
.custom-label {
font-size: 20px;
-unity-font-style: bold;
color: rgb(68, 138, 255);
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: acd6a9051b5206b4db77f775332e354b
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -1,5 +0,0 @@
<engine:UXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:engine="UnityEngine.UIElements" xmlns:editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
<Style src="project://database/Assets/Resources/SHI/UIToolkit/GantChartView.uss?fileID=7433441132597879392&amp;guid=acd6a9051b5206b4db77f775332e354b&amp;type=3#GantChartView" />
<engine:Label text="Hello World! From UXML" />
<engine:Label text="Hello World! With Style" class="custom-label" />
</engine:UXML>

View File

@@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: c4ef95400fcdb23448d991f05d022741
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

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

View File

@@ -1,147 +0,0 @@
#task-list-header {
align-items: flex-start;
padding-top: 6px;
}
#gantt-container {
flex-grow: 1;
flex-direction: row;
background-color: rgb(250, 250, 250);
}
#task-list-panel {
width: 390px;
background-color: white;
border-right-width: 1px;
border-right-color: rgb(51, 51, 51);
}
#task-list-header {
height: 54px;
background-color: rgb(123, 183, 226);
border-bottom-width: 1px;
border-bottom-color: black;
padding-left: 0;
padding-right: 0;
font-size: 12px;
-unity-text-align: upper-center;
padding-top: 0;
padding-bottom: 0;
}
#task-list-header Label {
font-size: 12px;
-unity-font-style: normal;
color: black;
margin-bottom: 4px;
-unity-background-scale-mode: stretch-to-fill;
justify-content: center;
align-self: center;
align-content: center;
align-items: center;
height: 100%;
-unity-text-align: middle-left;
}
#task-list-view {
flex-grow: 1;
background-color: rgb(228, 236, 255);
}
#task-list-view .unity-list-view__item {
padding: 0;
margin: 0;
}
.task-row {
flex-direction: row;
height: 49px;
width: 390px;
background-color: rgb(136, 190, 230);
border-top-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-right-style: solid;
border-top-width: 0;
border-bottom-width: 0;
border-left-width: 0;
border-right-width: 0;
border-bottom-color: rgb(136, 190, 230);
border-left-color: rgb(136, 190, 230);
border-right-color: rgb(136, 190, 230);
box-sizing: border-box;
-unity-font-definition: resource('Fonts/Pretendard/Pretendard-Regular');
font-size: 10px;
color: rgb(34, 34, 34);
}
.task-row:first-child {
border-top-width: 1px;
border-top-color: rgb(136, 190, 230);
}
.task-cell {
width: 48px;
height: 48px;
flex-grow: 0;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
-unity-text-align: middle-center;
font-size: 10px;
color: rgb(34, 34, 34);
background-color: rgb(228, 236, 255);
border-left-width: 0;
border-left-color: rgb(136, 190, 230);
border-left-style: solid;
box-sizing: border-box;
-unity-font-definition: resource('Fonts/Pretendard/Pretendard-Regular');
border-top-width: 0;
border-right-width: 0;
border-bottom-width: 0;
margin-top: 0;
margin-right: 1px;
margin-bottom: 1px;
margin-left: 0;
padding-top: 0;
padding-right: 0;
padding-bottom: 0;
padding-left: 0;
flex-direction: row;
}
.task-cell:first-child {
border-left-width: 0;
}
.task-row:hover {
background-color: rgb(228, 236, 255);
}
#timeline-panel {
flex-grow: 1;
background-color: white;
}
#timeline-header {
height: 54px;
background-color: rgb(240, 240, 240);
border-bottom-width: 1px;
border-bottom-color: black;
}
#time-axis-scroll {
flex-grow: 1;
overflow: hidden;
}
#time-axis-container {
height: 100%;
position: relative;
}
#timeline-scroll-view {
flex-grow: 1;
flex-direction: column;
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 1f4fe30776858ce4e96b520e8f407bc8
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -1,19 +0,0 @@
<ui:UXML xmlns:ui="UnityEngine.UIElements" editor-extension-mode="False">
<Style src="project://database/Assets/Resources/SHI/UIToolkit/ISOP/ShipblockGantt.uss?fileID=7433441132597879392&amp;guid=1f4fe30776858ce4e96b520e8f407bc8&amp;type=3#ShipblockGantt" />
<ui:VisualElement name="gantt-container">
<ui:VisualElement name="task-list-panel">
<ui:VisualElement name="task-list-header">
<ui:Label text="BLOCK STRUCTURE" />
</ui:VisualElement>
<ui:ListView name="task-list-view" />
</ui:VisualElement>
<ui:VisualElement name="timeline-panel">
<ui:VisualElement name="timeline-header">
<ui:ScrollView name="time-axis-scroll">
<ui:VisualElement name="time-axis-container" />
</ui:ScrollView>
</ui:VisualElement>
<ui:ScrollView name="timeline-scroll-view" />
</ui:VisualElement>
</ui:VisualElement>
</ui:UXML>

View File

@@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: 2233c37def8330b4381da9ca3928d163
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -1,297 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using TMPro;
using UnityEngine;
using UnityEngine.TextCore.Text;
using UnityEngine.UIElements;
using UVC.Util;
public class ShipblockGanttController : MonoBehaviour
{
[SerializeField] private VisualTreeAsset taskRowTemplate; // row with 8 cells
[SerializeField] private StyleSheet styleSheet;
[SerializeField] private Color planColor = new Color(0.2f, 0.4f, 0.8f, 0.8f);
[SerializeField] private Color actualColor = new Color(0.2f, 0.9f, 0.3f, 0.9f);
private float pixelsPerDay = 18f; // day cell width
[SerializeField] private Font PretendardRegular;
private VisualElement root;
private ListView taskListView;
private ScrollView timelineScrollView; // main scroll view (vertical + horizontal)
private ScrollView axisScrollView; // header axis scroll view (hidden scrollers, synced)
private VisualElement timelineContent;
private List<ShipblockTask> tasks;
private DateTime projectStartDate;
private DateTime projectEndDate;
private int totalDays;
public void Load(string jsonFileName)
{
root = GetComponent<UIDocument>().rootVisualElement;
if (styleSheet != null && !root.styleSheets.Contains(styleSheet)) root.styleSheets.Add(styleSheet);
LoadData(jsonFileName);
CalculateProjectRange();
InitializeUI();
SetupTimeAxis();
RenderTasks();
}
void LoadData(string jsonFileName)
{
var json = File.ReadAllText(jsonFileName);
var wrapper = JsonUtility.FromJson<ShipblockDataWrapper>("{\"items\":" + json + "}");
tasks = wrapper.items.Where(t => !string.IsNullOrEmpty(t.STDT21) && t.STDT21 != "null").ToList();
foreach (var task in tasks)
task.CalculatedProgress = CalculateProgress(task);
}
void CalculateProjectRange()
{
var dates = new List<DateTime>();
foreach (var task in tasks)
{
if (task.GetPlanStart().HasValue) dates.Add(task.GetPlanStart().Value);
if (task.GetPlanEnd().HasValue) dates.Add(task.GetPlanEnd().Value);
if (task.GetActualStart().HasValue) dates.Add(task.GetActualStart().Value);
if (task.GetActualEnd().HasValue) dates.Add(task.GetActualEnd().Value);
}
projectStartDate = dates.Any() ? dates.Min().AddDays(-3) : new DateTime(2025, 1, 6);
projectEndDate = dates.Any() ? dates.Max().AddDays(3) : new DateTime(2025, 2, 28);
totalDays = (int)(projectEndDate - projectStartDate).TotalDays + 1;
}
void InitializeUI()
{
taskListView = root.Q<ListView>("task-list-view");
taskListView.itemsSource = tasks;
taskListView.makeItem = () => taskRowTemplate.CloneTree();
taskListView.bindItem = (ve, i) => BindTaskRow(ve, tasks[i]);
taskListView.fixedItemHeight = 49;
taskListView.selectionType = SelectionType.None;
taskListView.showAlternatingRowBackgrounds = AlternatingRowBackground.None;
taskListView.reorderable = false;
taskListView.showBoundCollectionSize = false;
taskListView.virtualizationMethod = CollectionVirtualizationMethod.FixedHeight;
var internalScroll = taskListView.Q<ScrollView>();
if (internalScroll != null)
{
internalScroll.verticalScrollerVisibility = ScrollerVisibility.Hidden;
internalScroll.horizontalScrollerVisibility = ScrollerVisibility.Hidden;
}
axisScrollView = root.Q<ScrollView>("time-axis-scroll");
if (axisScrollView != null)
{
axisScrollView.verticalScrollerVisibility = ScrollerVisibility.Hidden;
axisScrollView.horizontalScrollerVisibility = ScrollerVisibility.Hidden;
}
timelineScrollView = root.Q<ScrollView>("timeline-scroll-view");
if (timelineScrollView != null)
{
timelineScrollView.mode = ScrollViewMode.VerticalAndHorizontal;
timelineContent = timelineScrollView.Q<VisualElement>("unity-content-container");
if (timelineContent != null)
timelineContent.style.width = totalDays * pixelsPerDay;
}
if (internalScroll != null && timelineScrollView != null)
{
internalScroll.verticalScroller.valueChanged += v => timelineScrollView.verticalScroller.value = v;
timelineScrollView.verticalScroller.valueChanged += v => internalScroll.verticalScroller.value = v;
}
if (axisScrollView != null && timelineScrollView != null)
{
axisScrollView.horizontalScroller.valueChanged += v => timelineScrollView.horizontalScroller.value = v;
timelineScrollView.horizontalScroller.valueChanged += v => axisScrollView.horizontalScroller.value = v;
}
}
void BindTaskRow(VisualElement row, ShipblockTask task)
{
Set(row, "c1", task?.L1); Set(row, "c2", task?.L2); Set(row, "c3", task?.L3); Set(row, "c4", task?.L4);
Set(row, "c5", task?.L5); Set(row, "c6", task?.L6); Set(row, "c7", task?.L7); Set(row, "c8", task?.L8);
row.tooltip = task != null ? $"{task.BLK_NO} | {task.SHIP_TYPE}" : string.Empty;
}
static void Set(VisualElement row, string name, string text)
{ var lab = row.Q<UnityEngine.UIElements.Label>(name); if (lab != null) lab.text = string.IsNullOrEmpty(text) ? string.Empty : text; }
void SetupTimeAxis() => SetupThreeTierHeader();
void SetupThreeTierHeader()
{
var container = root.Q<VisualElement>("time-axis-container");
container.Clear();
container.style.height = pixelsPerDay * 3; // total header height
// Background base grid style color
Color lineColor = ColorUtil.FromHex("#7BB7E2"); // light blue lines
var monthsLayer = new VisualElement { name = "months-layer" };
var weeksLayer = new VisualElement { name = "weeks-layer" };
var daysLayer = new VisualElement { name = "days-layer" };
foreach (var layer in new[] { monthsLayer, weeksLayer, daysLayer })
{
layer.style.position = Position.Absolute;
layer.style.left = 0;
layer.style.top = 0;
layer.style.height = pixelsPerDay * 3;
layer.style.width = totalDays * pixelsPerDay;
}
container.Add(monthsLayer); container.Add(weeksLayer); container.Add(daysLayer);
DateTime cursor = projectStartDate;
while (cursor <= projectEndDate)
{
DateTime monthStart = new DateTime(cursor.Year, cursor.Month, 1);
DateTime nextMonthStart = monthStart.AddMonths(1);
DateTime segmentStart = cursor; // first day we actually display within month
DateTime segmentEnd = nextMonthStart.AddDays(-1) < projectEndDate ? nextMonthStart.AddDays(-1) : projectEndDate;
int startIndex = (int)(segmentStart - projectStartDate).TotalDays;
int spanDays = (int)(segmentEnd - segmentStart).TotalDays + 1;
AddMonthLabel(monthsLayer, segmentStart.Year, segmentStart.Month, startIndex, spanDays, lineColor);
// Weeks inside month
DateTime weekCursor = segmentStart;
int weekOfMonth = 1; // label weeks sequentially per month
while (weekCursor <= segmentEnd)
{
DateTime weekStart = weekCursor;
// Keep the existing segmentation logic (end at Sunday or month end)
DateTime tentativeEnd = weekStart.AddDays(7 - (int)weekStart.DayOfWeek); // until Sunday
DateTime weekEnd = tentativeEnd > segmentEnd ? segmentEnd : tentativeEnd;
int weekStartIndex = (int)(weekStart - projectStartDate).TotalDays;
int weekSpanDays = (int)(weekEnd - weekStart).TotalDays + 1;
AddWeekLabel(weeksLayer, weekOfMonth, weekStartIndex, weekSpanDays, lineColor);
weekCursor = weekEnd.AddDays(1);
weekOfMonth++;
}
cursor = segmentEnd.AddDays(1);
}
// Days line
for (int i = 0; i < totalDays; i++)
{
DateTime date = projectStartDate.AddDays(i);
AddDayCell(daysLayer, date.Day, i, lineColor);
}
}
void AddMonthLabel(VisualElement parent, int year, int month, int startIndex, int spanDays, Color lineColor)
{
var ve = new VisualElement();
ve.style.position = Position.Absolute; ve.style.left = startIndex * pixelsPerDay; ve.style.top = 0;
ve.style.width = spanDays * pixelsPerDay; ve.style.height = pixelsPerDay;
ve.style.borderLeftColor = lineColor; ve.style.borderLeftWidth = startIndex == 0 ? 0 : 1;
ve.style.borderBottomColor = lineColor; ve.style.borderBottomWidth = 1;
var lab = new Label($"{year}년 {month}월"); lab.style.unityTextAlign = TextAnchor.MiddleCenter; lab.style.unityFontStyleAndWeight = FontStyle.Normal; lab.style.color = Color.black;
lab.style.position = Position.Absolute; lab.style.left = 0; lab.style.top = 0; lab.style.width = spanDays * pixelsPerDay; lab.style.height = pixelsPerDay;
lab.style.unityFontDefinition = FontDefinition.FromFont(PretendardRegular);
lab.style.fontSize = 10;
lab.style.marginBottom = 0;
lab.style.marginLeft = 0;
lab.style.marginRight = 0;
lab.style.marginTop = 0;
lab.style.paddingBottom = 0;
lab.style.paddingLeft = 0;
lab.style.paddingRight = 0;
lab.style.paddingTop = 0;
ve.Add(lab);
parent.Add(ve);
}
void AddWeekLabel(VisualElement parent, int weekOfMonth, int startIndex, int spanDays, Color lineColor)
{
var ve = new VisualElement();
ve.style.position = Position.Absolute; ve.style.left = startIndex * pixelsPerDay; ve.style.top = pixelsPerDay;
ve.style.width = spanDays * pixelsPerDay; ve.style.height = pixelsPerDay;
ve.style.borderLeftColor = lineColor; ve.style.borderLeftWidth = startIndex == 0 ? 0 : 1;
ve.style.borderBottomColor = lineColor; ve.style.borderBottomWidth = 1;
var lab = new Label($"{weekOfMonth}주"); lab.style.unityTextAlign = TextAnchor.MiddleCenter; lab.style.color = Color.black;
lab.style.position = Position.Absolute; lab.style.left = 0; lab.style.top = 0; lab.style.width = spanDays * pixelsPerDay; lab.style.height = pixelsPerDay;
lab.style.unityFontDefinition = FontDefinition.FromFont(PretendardRegular);
lab.style.fontSize = 10;
lab.style.marginBottom = 0;
lab.style.marginLeft = 0;
lab.style.marginRight = 0;
lab.style.marginTop = 0;
lab.style.paddingBottom = 0;
lab.style.paddingLeft = 0;
lab.style.paddingRight = 0;
lab.style.paddingTop = 0;
ve.Add(lab);
parent.Add(ve);
}
void AddDayCell(VisualElement parent, int day, int dayIndex, Color lineColor)
{
var ve = new VisualElement();
ve.style.position = Position.Absolute; ve.style.left = dayIndex * pixelsPerDay; ve.style.top = pixelsPerDay * 2;
ve.style.width = pixelsPerDay; ve.style.height = pixelsPerDay;
ve.style.borderLeftColor = lineColor; ve.style.borderLeftWidth = dayIndex == 0 ? 0 : 1;
var lab = new Label(day.ToString("00")); lab.style.unityTextAlign = TextAnchor.MiddleCenter; lab.style.fontSize = 10; lab.style.color = Color.black;
lab.style.position = Position.Absolute; lab.style.left = 0; lab.style.top = 0; lab.style.width = pixelsPerDay; lab.style.height = pixelsPerDay;
lab.style.unityFontDefinition = FontDefinition.FromFont(PretendardRegular);
lab.style.fontSize = 10;
lab.style.marginBottom = 0;
lab.style.marginLeft = 0;
lab.style.marginRight = 0;
lab.style.marginTop = 0;
lab.style.paddingBottom = 0;
lab.style.paddingLeft = 0;
lab.style.paddingRight = 0;
lab.style.paddingTop = 0;
ve.Add(lab);
parent.Add(ve);
}
void RenderTasks()
{
if (timelineContent == null) return;
timelineContent.Clear();
for (int i = 0; i < tasks.Count; i++)
{
var task = tasks[i];
var row = new VisualElement();
row.style.height = 40; row.style.flexDirection = FlexDirection.Row; row.style.position = Position.Relative;
row.style.borderBottomWidth = 1; row.style.borderBottomColor = new Color(0.9f, 0.9f, 0.9f);
if (task.GetPlanStart().HasValue && task.GetPlanEnd().HasValue)
row.Add(CreateBar(task, task.GetPlanStart().Value, task.GetPlanEnd().Value, planColor, 10));
if (task.GetActualStart().HasValue && task.GetActualEnd().HasValue)
row.Add(CreateBar(task, task.GetActualStart().Value, task.GetActualEnd().Value, actualColor, 22));
var progressLabel = new Label($"{Mathf.RoundToInt(task.CalculatedProgress)}%");
progressLabel.style.position = Position.Absolute; progressLabel.style.right = 8; progressLabel.style.top = 10; progressLabel.style.fontSize = 10; progressLabel.style.color = Color.black; progressLabel.style.unityFontStyleAndWeight = FontStyle.Bold;
row.Add(progressLabel);
timelineContent.Add(row);
}
}
VisualElement CreateBar(ShipblockTask task, DateTime start, DateTime end, Color color, int top)
{
var bar = new VisualElement();
bar.style.position = Position.Absolute; bar.style.backgroundColor = color; bar.style.height = 12; bar.style.top = top;
bar.style.borderBottomLeftRadius = 2; bar.style.borderBottomRightRadius = 2; bar.style.borderTopLeftRadius = 2; bar.style.borderTopRightRadius = 2;
float startX = (float)(start - projectStartDate).TotalDays * pixelsPerDay;
float width = Mathf.Max((float)(end - start).TotalDays * pixelsPerDay, 6);
bar.style.left = startX; bar.style.width = width;
bar.tooltip = $"{task.GetDisplayName()}\n{start:MM/dd} ~ {end:MM/dd}";
return bar;
}
float CalculateProgress(ShipblockTask task)
{
var planStart = task.GetPlanStart(); var planEnd = task.GetPlanEnd(); var actualEnd = task.GetActualEnd();
if (!planStart.HasValue || !planEnd.HasValue) return 0;
float total = (float)(planEnd.Value - planStart.Value).TotalDays; if (total <= 0) return 0;
if (actualEnd.HasValue)
{ float actualDays = (float)(actualEnd.Value - planStart.Value).TotalDays; return Mathf.Clamp(actualDays / total * 100, 0, 100); }
return 0;
}
}
[Serializable]
public class JSONWrapper { public List<ShipblockTask> items; }

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 45d3090dd89645248a052afa1122996f

View File

@@ -1,72 +0,0 @@
using System;
using System.Collections.Generic;
[Serializable]
public class ShipblockTask
{
// 기본 정보
public string PROJ_NO;
public string BLK_NO;
public string L1;
public string L2;
public string L3;
public string L4;
public string L5;
public string L6;
public string L7;
public string L8;
public string SHIP_TYPE;
// 계획 일정 (파란색 막대)
public string STDT21;
public string FNDT21;
public int DUR21;
// 실적 일정 (연두색 막대)
public string STDT23;
public string FNDT23;
public int DUR23;
// 추가 작업 코드들...
public string STDT43, FNDT43; public int DUR43;
public string STDT44, FNDT44; public int DUR44;
public string STDT46, FNDT46; public int DUR46;
public string STDT49, FNDT49; public int DUR49;
public string STDT4A, FNDT4A; public int DUR4A;
public string STDT4B, FNDT4B; public int DUR4B;
public string STDT62, FNDT62; public int DUR62;
[NonSerialized] public float CalculatedProgress;
public DateTime? GetPlanStart() => ParseDate(STDT21);
public DateTime? GetPlanEnd() => ParseDate(FNDT21);
public DateTime? GetActualStart() => ParseDate(STDT23);
public DateTime? GetActualEnd() => ParseDate(FNDT23);
private DateTime? ParseDate(string dateStr)
{
if (string.IsNullOrEmpty(dateStr) || dateStr == "null") return null;
if (DateTime.TryParseExact(dateStr, "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out DateTime date))
return date;
return null;
}
public string GetDisplayName()
{
// L1~L8 중 가장 하위 유효값
if (!string.IsNullOrEmpty(L8)) return L8;
if (!string.IsNullOrEmpty(L7)) return L7;
if (!string.IsNullOrEmpty(L6)) return L6;
if (!string.IsNullOrEmpty(L5)) return L5;
if (!string.IsNullOrEmpty(L4)) return L4;
if (!string.IsNullOrEmpty(L3)) return L3;
if (!string.IsNullOrEmpty(L2)) return L2;
return L1 ?? BLK_NO;
}
}
[Serializable]
public class ShipblockDataWrapper
{
public List<ShipblockTask> items;
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 17fd71296384e3045873a6553d88a065

View File

@@ -1,13 +0,0 @@
<ui:UXML xmlns:ui="UnityEngine.UIElements" editor-extension-mode="False">
<Style src="project://database/Assets/Resources/SHI/UIToolkit/ISOP/ShipblockGantt.uss?fileID=7433441132597879392&amp;guid=1f4fe30776858ce4e96b520e8f407bc8&amp;type=3#ShipblockGantt" />
<ui:VisualElement name="task-row" class="task-row">
<ui:Label name="c1" class="task-cell" />
<ui:Label name="c2" class="task-cell" />
<ui:Label name="c3" class="task-cell" />
<ui:Label name="c4" class="task-cell" />
<ui:Label name="c5" class="task-cell" />
<ui:Label name="c6" class="task-cell" />
<ui:Label name="c7" class="task-cell" />
<ui:Label name="c8" class="task-cell" />
</ui:VisualElement>
</ui:UXML>

View File

@@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: c6a7ece3f9f2c8449acb7b00aa7a7038
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -1,46 +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: 19101, guid: 0000000000000000e000000000000000, type: 0}
m_Name: PanelSettings
m_EditorClassIdentifier:
themeUss: {fileID: -4733365628477956816, guid: 7f6362c1cd0b3074ab0f0f88dd27536b, type: 3}
m_DisableNoThemeWarning: 0
m_TargetTexture: {fileID: 0}
m_RenderMode: 0
m_WorldSpaceLayer: 0
m_ScaleMode: 1
m_ReferenceSpritePixelsPerUnit: 100
m_PixelsPerUnit: 100
m_Scale: 1
m_ReferenceDpi: 96
m_FallbackDpi: 96
m_ReferenceResolution: {x: 1200, y: 800}
m_ScreenMatchMode: 0
m_Match: 0
m_SortingOrder: 0
m_TargetDisplay: 0
m_BindingLogLevel: 0
m_ClearDepthStencil: 1
m_ClearColor: 0
m_ColorClearValue: {r: 0, g: 0, b: 0, a: 0}
m_VertexBudget: 0
m_DynamicAtlasSettings:
m_MinAtlasSize: 64
m_MaxAtlasSize: 4096
m_MaxSubTextureSize: 64
m_ActiveFilters: -1
m_AtlasBlitShader: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0}
m_RuntimeShader: {fileID: 9100, guid: 0000000000000000f000000000000000, type: 0}
m_RuntimeWorldShader: {fileID: 9102, guid: 0000000000000000f000000000000000, type: 0}
m_ICUDataAsset: {fileID: 0}
forceGammaRendering: 0
textSettings: {fileID: 0}

View File

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

View File

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

View File

@@ -1,16 +0,0 @@
/* Basic USS for Gantt */
.header-container { }
.month-row { }
.week-row { }
.day-row { }
.rows-container { }
.chart-row { flex-direction: row; height:28px; position: relative; border-bottom:1px solid #3A3A3A; }
.hierarchy-cell { font-size:11px; width:240px; padding-left:4px; }
.segments-layer { flex-grow:1; position: relative; }
.segment { border-radius:3px; height:22px; background-color: rgba(64,128,220,0.6); }
.marker { color:#2AA3FF; font-size:12px; }
.row-selected { background-color: rgba(255,255,0,0.15); }
.segment-selected { outline:2px solid #FFD500; }
.span-cell { text-align:center; font-size:11px; border-right:1px solid #222; }
.day-cell { text-align:center; font-size:10px; border-right:1px solid #333; width:16px; }
.today-line { position:absolute; width:1px; background:#ff6b00; top:0; bottom:0; }

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 4557a013dc4822f499286c5a202a41a5
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0