앨범 작업 중... 2
This commit is contained in:
parent
0c41a84550
commit
29b02bb4c2
Binary file not shown.
|
|
@ -5332,8 +5332,8 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: -11.69}
|
m_AnchoredPosition: {x: 0, y: -50.76}
|
||||||
m_SizeDelta: {x: 0, y: -479.75}
|
m_SizeDelta: {x: 0, y: -557.9}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &37784574
|
--- !u!114 &37784574
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
|
@ -13270,6 +13270,44 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 257565703}
|
m_GameObject: {fileID: 257565703}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &264014380
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 264014381}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: AlbumType
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &264014381
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 264014380}
|
||||||
|
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: 2115985145}
|
||||||
|
- {fileID: 506914502}
|
||||||
|
- {fileID: 1297051184}
|
||||||
|
m_Father: {fileID: 726633383}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 3.06, y: -114.33}
|
||||||
|
m_SizeDelta: {x: 498.96, y: 101.53}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!1 &265543179
|
--- !u!1 &265543179
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -36615,6 +36653,138 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 506455296}
|
m_GameObject: {fileID: 506455296}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &506914501
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 506914502}
|
||||||
|
- component: {fileID: 506914505}
|
||||||
|
- component: {fileID: 506914504}
|
||||||
|
- component: {fileID: 506914503}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: btn_left
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &506914502
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 506914501}
|
||||||
|
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: 264014381}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 31.6, y: 0}
|
||||||
|
m_SizeDelta: {x: 90, y: 90}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &506914503
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 506914501}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 506914504}
|
||||||
|
m_OnClick:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls:
|
||||||
|
- m_Target: {fileID: 1535761048}
|
||||||
|
m_TargetAssemblyTypeName:
|
||||||
|
m_MethodName:
|
||||||
|
m_Mode: 1
|
||||||
|
m_Arguments:
|
||||||
|
m_ObjectArgument: {fileID: 0}
|
||||||
|
m_ObjectArgumentAssemblyTypeName:
|
||||||
|
m_IntArgument: 0
|
||||||
|
m_FloatArgument: 0
|
||||||
|
m_StringArgument:
|
||||||
|
m_BoolArgument: 0
|
||||||
|
m_CallState: 2
|
||||||
|
--- !u!114 &506914504
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 506914501}
|
||||||
|
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: 21300000, guid: 64cc73f1b28e8884ba355c0cb01034b3, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
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!222 &506914505
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 506914501}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &509214193
|
--- !u!1 &509214193
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -44064,6 +44234,7 @@ RectTransform:
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 281679011}
|
- {fileID: 281679011}
|
||||||
|
- {fileID: 264014381}
|
||||||
m_Father: {fileID: 1535761049}
|
m_Father: {fileID: 1535761049}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 1}
|
m_AnchorMin: {x: 0.5, y: 1}
|
||||||
|
|
@ -78397,6 +78568,138 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1294863010}
|
m_GameObject: {fileID: 1294863010}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &1297051183
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1297051184}
|
||||||
|
- component: {fileID: 1297051187}
|
||||||
|
- component: {fileID: 1297051186}
|
||||||
|
- component: {fileID: 1297051185}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: btn_right
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1297051184
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1297051183}
|
||||||
|
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: 264014381}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 1, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: -31.6, y: 0}
|
||||||
|
m_SizeDelta: {x: 90, y: 90}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &1297051185
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1297051183}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 1297051186}
|
||||||
|
m_OnClick:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls:
|
||||||
|
- m_Target: {fileID: 1535761048}
|
||||||
|
m_TargetAssemblyTypeName:
|
||||||
|
m_MethodName:
|
||||||
|
m_Mode: 1
|
||||||
|
m_Arguments:
|
||||||
|
m_ObjectArgument: {fileID: 0}
|
||||||
|
m_ObjectArgumentAssemblyTypeName:
|
||||||
|
m_IntArgument: 0
|
||||||
|
m_FloatArgument: 0
|
||||||
|
m_StringArgument:
|
||||||
|
m_BoolArgument: 0
|
||||||
|
m_CallState: 2
|
||||||
|
--- !u!114 &1297051186
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1297051183}
|
||||||
|
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: 21300000, guid: 64cc73f1b28e8884ba355c0cb01034b3, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
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!222 &1297051187
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1297051183}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &1299200114
|
--- !u!1 &1299200114
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -101051,9 +101354,9 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: 927f127287890ae46b433715f57e8c3a, type: 3}
|
m_Script: {fileID: 11500000, guid: 927f127287890ae46b433715f57e8c3a, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
SlotPrefab: {fileID: 1075369012538214656, guid: 63a9cbea0069cea4ca146a6deecc4279, type: 3}
|
m_ScrollRect: {fileID: 37784574}
|
||||||
EmptySlotPrefab: {fileID: 7410697389645852299, guid: 6f427dbbb09cdcc4c996d920328a4647, type: 3}
|
m_Content: {fileID: 0}
|
||||||
Content: {fileID: 612821334}
|
go_card: {fileID: 1075369012538214656, guid: 63a9cbea0069cea4ca146a6deecc4279, type: 3}
|
||||||
TitleTMP: {fileID: 281679012}
|
TitleTMP: {fileID: 281679012}
|
||||||
Buttons:
|
Buttons:
|
||||||
- {fileID: 2088694187}
|
- {fileID: 2088694187}
|
||||||
|
|
@ -170927,6 +171230,142 @@ ParticleSystem:
|
||||||
m_PostInfinity: 2
|
m_PostInfinity: 2
|
||||||
m_RotationOrder: 4
|
m_RotationOrder: 4
|
||||||
vectorLabel1_3: W
|
vectorLabel1_3: W
|
||||||
|
--- !u!1 &2115985144
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2115985145}
|
||||||
|
- component: {fileID: 2115985147}
|
||||||
|
- component: {fileID: 2115985146}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: t_albumtype
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2115985145
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2115985144}
|
||||||
|
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: 264014381}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 200, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &2115985146
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2115985144}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 0
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text: "\uD310\uD0C0\uC9C0"
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: cf1ae75e65a967946b23286a5ffbb812, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2100000, guid: 1cd9f54883d04fa4a8273aaf06ef64e9, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 90
|
||||||
|
m_fontSizeBase: 90
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 2
|
||||||
|
m_VerticalAlignment: 4096
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 0
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!222 &2115985147
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2115985144}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &2119992376
|
--- !u!1 &2119992376
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ public partial class DB_HuntingData : BGEntity
|
||||||
public const string ClearConditionMoney = "ClearConditionMoney";
|
public const string ClearConditionMoney = "ClearConditionMoney";
|
||||||
public const string Name = "Name";
|
public const string Name = "Name";
|
||||||
public const string Description = "Description";
|
public const string Description = "Description";
|
||||||
|
public const string BuyPrice = "BuyPrice";
|
||||||
|
public const string n_AlbumType = "n_AlbumType";
|
||||||
}
|
}
|
||||||
private static BansheeGz.BGDatabase.BGMetaRow _metaDefault;
|
private static BansheeGz.BGDatabase.BGMetaRow _metaDefault;
|
||||||
public static BansheeGz.BGDatabase.BGMetaRow MetaDefault => _metaDefault ?? (_metaDefault = BGCodeGenUtils.GetMeta<BansheeGz.BGDatabase.BGMetaRow>(new BGId(5596441023656399567UL,15076767032258538916UL), () => _metaDefault = null));
|
public static BansheeGz.BGDatabase.BGMetaRow MetaDefault => _metaDefault ?? (_metaDefault = BGCodeGenUtils.GetMeta<BansheeGz.BGDatabase.BGMetaRow>(new BGId(5596441023656399567UL,15076767032258538916UL), () => _metaDefault = null));
|
||||||
|
|
@ -61,6 +63,16 @@ public partial class DB_HuntingData : BGEntity
|
||||||
get => _DBF_Description[Index];
|
get => _DBF_Description[Index];
|
||||||
set => _DBF_Description[Index] = value;
|
set => _DBF_Description[Index] = value;
|
||||||
}
|
}
|
||||||
|
public System.Int32 DBF_BuyPrice
|
||||||
|
{
|
||||||
|
get => _DBF_BuyPrice[Index];
|
||||||
|
set => _DBF_BuyPrice[Index] = value;
|
||||||
|
}
|
||||||
|
public System.Int32 DBF_n_AlbumType
|
||||||
|
{
|
||||||
|
get => _DBF_n_AlbumType[Index];
|
||||||
|
set => _DBF_n_AlbumType[Index] = value;
|
||||||
|
}
|
||||||
private static BansheeGz.BGDatabase.BGFieldEntityName _ufle12jhs77_DBF_name;
|
private static BansheeGz.BGDatabase.BGFieldEntityName _ufle12jhs77_DBF_name;
|
||||||
public static BansheeGz.BGDatabase.BGFieldEntityName _DBF_name => _ufle12jhs77_DBF_name ?? (_ufle12jhs77_DBF_name = BGCodeGenUtils.GetField<BansheeGz.BGDatabase.BGFieldEntityName>(MetaDefault, new BGId(4847030112262966783UL, 17507168723429622181UL), () => _ufle12jhs77_DBF_name = null));
|
public static BansheeGz.BGDatabase.BGFieldEntityName _DBF_name => _ufle12jhs77_DBF_name ?? (_ufle12jhs77_DBF_name = BGCodeGenUtils.GetField<BansheeGz.BGDatabase.BGFieldEntityName>(MetaDefault, new BGId(4847030112262966783UL, 17507168723429622181UL), () => _ufle12jhs77_DBF_name = null));
|
||||||
private static BansheeGz.BGDatabase.BGFieldUnitySprite _ufle12jhs77_DBF_HuntingImage;
|
private static BansheeGz.BGDatabase.BGFieldUnitySprite _ufle12jhs77_DBF_HuntingImage;
|
||||||
|
|
@ -77,6 +89,10 @@ public partial class DB_HuntingData : BGEntity
|
||||||
public static BansheeGz.BGDatabase.BGFieldString _DBF_Name => _ufle12jhs77_DBF_Name ?? (_ufle12jhs77_DBF_Name = BGCodeGenUtils.GetField<BansheeGz.BGDatabase.BGFieldString>(MetaDefault, new BGId(5618959453113093320UL, 13927985292163229361UL), () => _ufle12jhs77_DBF_Name = null));
|
public static BansheeGz.BGDatabase.BGFieldString _DBF_Name => _ufle12jhs77_DBF_Name ?? (_ufle12jhs77_DBF_Name = BGCodeGenUtils.GetField<BansheeGz.BGDatabase.BGFieldString>(MetaDefault, new BGId(5618959453113093320UL, 13927985292163229361UL), () => _ufle12jhs77_DBF_Name = null));
|
||||||
private static BansheeGz.BGDatabase.BGFieldString _ufle12jhs77_DBF_Description;
|
private static BansheeGz.BGDatabase.BGFieldString _ufle12jhs77_DBF_Description;
|
||||||
public static BansheeGz.BGDatabase.BGFieldString _DBF_Description => _ufle12jhs77_DBF_Description ?? (_ufle12jhs77_DBF_Description = BGCodeGenUtils.GetField<BansheeGz.BGDatabase.BGFieldString>(MetaDefault, new BGId(4722429003445808783UL, 13878556420686707390UL), () => _ufle12jhs77_DBF_Description = null));
|
public static BansheeGz.BGDatabase.BGFieldString _DBF_Description => _ufle12jhs77_DBF_Description ?? (_ufle12jhs77_DBF_Description = BGCodeGenUtils.GetField<BansheeGz.BGDatabase.BGFieldString>(MetaDefault, new BGId(4722429003445808783UL, 13878556420686707390UL), () => _ufle12jhs77_DBF_Description = null));
|
||||||
|
private static BansheeGz.BGDatabase.BGFieldInt _ufle12jhs77_DBF_BuyPrice;
|
||||||
|
public static BansheeGz.BGDatabase.BGFieldInt _DBF_BuyPrice => _ufle12jhs77_DBF_BuyPrice ?? (_ufle12jhs77_DBF_BuyPrice = BGCodeGenUtils.GetField<BansheeGz.BGDatabase.BGFieldInt>(MetaDefault, new BGId(4847726788656022279UL, 11553665224223930517UL), () => _ufle12jhs77_DBF_BuyPrice = null));
|
||||||
|
private static BansheeGz.BGDatabase.BGFieldInt _ufle12jhs77_DBF_n_AlbumType;
|
||||||
|
public static BansheeGz.BGDatabase.BGFieldInt _DBF_n_AlbumType => _ufle12jhs77_DBF_n_AlbumType ?? (_ufle12jhs77_DBF_n_AlbumType = BGCodeGenUtils.GetField<BansheeGz.BGDatabase.BGFieldInt>(MetaDefault, new BGId(5125684997853971800UL, 2820862331281249426UL), () => _ufle12jhs77_DBF_n_AlbumType = null));
|
||||||
private static readonly DB_HuntingData.Factory _factory0_PFS = new DB_HuntingData.Factory();
|
private static readonly DB_HuntingData.Factory _factory0_PFS = new DB_HuntingData.Factory();
|
||||||
private static readonly DB_Script.Factory _factory1_PFS = new DB_Script.Factory();
|
private static readonly DB_Script.Factory _factory1_PFS = new DB_Script.Factory();
|
||||||
private static readonly DB_HuntingListData.Factory _factory2_PFS = new DB_HuntingListData.Factory();
|
private static readonly DB_HuntingListData.Factory _factory2_PFS = new DB_HuntingListData.Factory();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: da3459deaeab8a842a6c08bbd406cd75
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public enum eUICardType { None, UI, NoTouch, }
|
||||||
|
|
||||||
|
public class CardBase : MonoBehaviour
|
||||||
|
{
|
||||||
|
public virtual void Set() { Set_Active(); }
|
||||||
|
public virtual void Set(int _val) { Set_Active(); }
|
||||||
|
public virtual void Set<T>(T _base, int iLoop = -1, int idata = -1) { Set_Active(); }
|
||||||
|
void Set_Active()
|
||||||
|
{
|
||||||
|
if (!gameObject.activeInHierarchy)
|
||||||
|
gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
public virtual void Set_UI() { }
|
||||||
|
|
||||||
|
public virtual void Set_Selected(bool active) { }
|
||||||
|
|
||||||
|
public virtual int Get_IntData() { return 0; }
|
||||||
|
|
||||||
|
protected eUICardType CardType = eUICardType.None;
|
||||||
|
public virtual void Set_CardType(eUICardType _type) { CardType = _type; }
|
||||||
|
public virtual void Set_CardEffectOrder(int _order) { }
|
||||||
|
public virtual void Do_SomeThing() { }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e91267fe89fec60419860c3f85338c01
|
||||||
|
|
@ -0,0 +1,991 @@
|
||||||
|
using UnityEngine;
|
||||||
|
using System;
|
||||||
|
using System.Text;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Runtime.Serialization.Formatters.Binary;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Reflection;
|
||||||
|
using Random = UnityEngine.Random;
|
||||||
|
using UnityEngine.AI;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
public delegate void VoidDelegate();
|
||||||
|
|
||||||
|
public static partial class DSUtil
|
||||||
|
{
|
||||||
|
// --------------------------------------------------------------------
|
||||||
|
// 로그 관련 함수
|
||||||
|
// String객체
|
||||||
|
private static StringBuilder m_strBuilder = new StringBuilder(1024);
|
||||||
|
public static StringBuilder DSString
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
m_strBuilder.Remove(0, m_strBuilder.Length);
|
||||||
|
return m_strBuilder;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// String조립
|
||||||
|
public static string Format(string strMessage, params object[] args)
|
||||||
|
{
|
||||||
|
StringBuilder strBuilder = DSString;
|
||||||
|
strBuilder.AppendFormat(strMessage, args);
|
||||||
|
return strBuilder.ToString();
|
||||||
|
}
|
||||||
|
// 로그 : 에러
|
||||||
|
public static void LogError(string strMessage, params object[] args)
|
||||||
|
{
|
||||||
|
Verify(false, Format(strMessage, args));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 로그 : 워닝
|
||||||
|
public static void LogWarning(string strMessage, params object[] args)
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
UnityEngine.Debug.LogWarning(Format(strMessage, args));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// 로그 : 일반
|
||||||
|
public static void Log(string strMessage, params object[] args)
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
UnityEngine.Debug.Log(Format(strMessage, args));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// 서버로그 : 에러값
|
||||||
|
public static void LogErrorToServer(int iErrorCode, string strMessage = "")
|
||||||
|
{
|
||||||
|
string strErrorMessage = string.Empty;
|
||||||
|
switch (iErrorCode)
|
||||||
|
{
|
||||||
|
// MAP_CONST[5] = "Http 프로토콜 에러";
|
||||||
|
// TimeOut 도 포함.
|
||||||
|
case 5:
|
||||||
|
//strErrorMessage = "Timed Out.. Please Retry..";
|
||||||
|
strErrorMessage = "시간이 초과되었습니다. 다시 시도해주세요.";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 메시지가 있으면 덮어 씀.
|
||||||
|
if (false == string.IsNullOrEmpty(strMessage))
|
||||||
|
{
|
||||||
|
strErrorMessage = strMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
DSUtil.LogError(strErrorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 예외 : try-Catch문에서 예외전달메시지
|
||||||
|
public static System.ArgumentException GetExceptionMsg(string strMessage, params object[] args)
|
||||||
|
{
|
||||||
|
return new System.ArgumentException(Format(strMessage, args));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 예외 : 에러로그와 리턴값을 하나로 묶음( EX : return ErrorReturn<bool>(false, "{0} 예외야!!", "나쁜"); )
|
||||||
|
public static T ErrorReturn<T>(T tReturnValue, string strMessage, params object[] args)
|
||||||
|
{
|
||||||
|
LogError(strMessage, args);
|
||||||
|
return tReturnValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 정보 : 콜스택을 얻습니다.
|
||||||
|
public static StackFrame[] GetCallStack()
|
||||||
|
{
|
||||||
|
StackTrace stackTrace = new StackTrace();
|
||||||
|
return stackTrace.GetFrames();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------
|
||||||
|
// 형 변환 관련
|
||||||
|
// 형변환 : String을 Enum으로
|
||||||
|
// Enum.Parse 엄청느립니다. 가급적 사용금지!!!
|
||||||
|
public static T FormatStringToEnum<T>(string _strTypeName, params object[] args)
|
||||||
|
{
|
||||||
|
return StringToEnum<T>(Format(_strTypeName, args));
|
||||||
|
}
|
||||||
|
public static T StringToEnum<T>(string _strTypeName)
|
||||||
|
{
|
||||||
|
_strTypeName = _strTypeName.Replace(" ", "");
|
||||||
|
if (true == string.IsNullOrEmpty(_strTypeName) || false == Enum.IsDefined(typeof(T), _strTypeName))
|
||||||
|
{
|
||||||
|
LogWarning("[Not Defined " + typeof(T) + " ] " + _strTypeName);
|
||||||
|
return default(T);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (T)Enum.Parse(typeof(T), _strTypeName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static T CheerSoundStringToEnum<T>(string _strTypeName)
|
||||||
|
{
|
||||||
|
_strTypeName = _strTypeName.Replace(" ", "");
|
||||||
|
if (true == string.IsNullOrEmpty(_strTypeName) || false == Enum.IsDefined(typeof(T), _strTypeName))
|
||||||
|
return default(T);
|
||||||
|
|
||||||
|
return (T)Enum.Parse(typeof(T), _strTypeName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 형변환 : String을 Enum으로
|
||||||
|
// Enum.Parse 엄청느립니다. 가급적 사용금지!!!
|
||||||
|
public static T StringToEnum<T>(string strEnum, string strErrorLog)
|
||||||
|
{
|
||||||
|
strEnum = strEnum.Replace(" ", "");
|
||||||
|
if (true == string.IsNullOrEmpty(strEnum) || false == Enum.IsDefined(typeof(T), strEnum))
|
||||||
|
{
|
||||||
|
LogError("{0}(Enum:{1})", strErrorLog, strEnum);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 없는 Enum이면 크래시되도록 놔두자!!
|
||||||
|
return (T)Enum.Parse(typeof(T), strEnum);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 형변환 : Object을 String으로
|
||||||
|
public static string ObjectToString(System.Object _cObject)
|
||||||
|
{
|
||||||
|
if (_cObject == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var binaryFormatter = new BinaryFormatter();
|
||||||
|
var memoryStream = new MemoryStream();
|
||||||
|
binaryFormatter.Serialize(memoryStream, _cObject);
|
||||||
|
|
||||||
|
return Convert.ToBase64String(memoryStream.GetBuffer());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 형변환 : String을 Object로
|
||||||
|
public static System.Object StringToObject(string _strValue)
|
||||||
|
{
|
||||||
|
if (true == string.IsNullOrEmpty(_strValue))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var binaryFormatter = new BinaryFormatter();
|
||||||
|
var memoryStream = new MemoryStream(Convert.FromBase64String(_strValue));
|
||||||
|
System.Object obj = binaryFormatter.Deserialize(memoryStream);
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------
|
||||||
|
// 컨테이너 관련
|
||||||
|
// Foreach : Enum
|
||||||
|
public static void ForeachToEnum<T>(Action<T> pLambda)
|
||||||
|
{
|
||||||
|
foreach (T eEnum in Enum.GetValues(typeof(T)))
|
||||||
|
pLambda(eEnum);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Foreach : List
|
||||||
|
public static void ForeachToList<T>(List<T> list, Action<T> pLambda)
|
||||||
|
{
|
||||||
|
if (null == list)
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (T tList in list)
|
||||||
|
pLambda(tList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Foreach : List
|
||||||
|
public static void ForeachToListOfBreak<T>(List<T> list, bool bBreakCondition, Func<T, bool> pLambda)
|
||||||
|
{
|
||||||
|
if (null == list)
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (T tList in list)
|
||||||
|
{
|
||||||
|
if (bBreakCondition == pLambda(tList))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Foreach Dictionary
|
||||||
|
public static void ForeachToDic<TKey, TValue>(Dictionary<TKey, TValue> dic, Action<TKey, TValue> pLambda)
|
||||||
|
{
|
||||||
|
if (null == dic)
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (KeyValuePair<TKey, TValue> kvp in dic)
|
||||||
|
pLambda(kvp.Key, kvp.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// FirstKey
|
||||||
|
// if (.NET 3.5) return dic.Keys.First();
|
||||||
|
public static Key FirstKey<Key, Value>(Dictionary<Key, Value> dic, Key defaultVal)
|
||||||
|
{
|
||||||
|
foreach (var pair in dic)
|
||||||
|
return pair.Key;
|
||||||
|
return defaultVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
// dictionary 램덤키 뽑는다.
|
||||||
|
public static Key RandomKey<Key, Value>(Dictionary<Key, Value> dic, Key defaultVal)
|
||||||
|
{
|
||||||
|
if (null == dic)
|
||||||
|
return defaultVal;
|
||||||
|
|
||||||
|
if (0 == dic.Count)
|
||||||
|
return defaultVal;
|
||||||
|
|
||||||
|
System.Random rand = new System.Random();
|
||||||
|
var listKey = dic.ToList()[rand.Next(0, dic.Count)];
|
||||||
|
return listKey.Key;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// test_code
|
||||||
|
public static void TestRandomTrue()
|
||||||
|
{
|
||||||
|
List<bool> list = new List<bool>();
|
||||||
|
var p = 0.3f;
|
||||||
|
for (int i = 0; i < 1000; i++)
|
||||||
|
list.Add(DSUtil.RandomTrue(p));
|
||||||
|
|
||||||
|
var countTrue = list.Count(e => e == true);
|
||||||
|
var countTotal = list.Count();
|
||||||
|
var ratio = (float)countTrue / (float)countTotal;
|
||||||
|
Log(" RandomTrue(" + p + "); " +
|
||||||
|
"result ratio [" + ratio + "], " +
|
||||||
|
"true count [" + countTrue + "], " +
|
||||||
|
"total count [" + countTotal + "]");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// RandomTrue
|
||||||
|
// 확률 P% 이하로 true 리턴. (단, 100% == 1.0f)
|
||||||
|
public static bool RandomTrue(float p)
|
||||||
|
{
|
||||||
|
// 유니티 랜덤함수 직접 사용[blueasa / 2014-10-30]
|
||||||
|
return p > UnityEngine.Random.Range(0f, 1f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool RandomFalse(float p)
|
||||||
|
{
|
||||||
|
// 유니티 랜덤함수 직접 사용[blueasa / 2014-10-30]
|
||||||
|
return RandomTrue(1.0f - p);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool RandomTrue(double p)
|
||||||
|
{
|
||||||
|
// 유니티 랜덤함수 직접 사용[blueasa / 2014-10-30]
|
||||||
|
return p > UnityEngine.Random.Range(0f, 1f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// RandomW<T>
|
||||||
|
// 가중치에 따라 랜덤하게 원소 선택
|
||||||
|
public static T RandomW<T>(List<T> values, List<float> weights)
|
||||||
|
{
|
||||||
|
if ((null == values) || (0 == values.Count))
|
||||||
|
return default(T);
|
||||||
|
|
||||||
|
if ((null == weights) || (0 == weights.Count))
|
||||||
|
return RandomN(values);
|
||||||
|
|
||||||
|
// ex: weights = { 0.1, 0.3, 0.6};
|
||||||
|
|
||||||
|
// assert(weight.Sum > 0);
|
||||||
|
var subsums = new List<float>(weights.Count);
|
||||||
|
|
||||||
|
var sum = weights.Aggregate(0.0f, (acc, f) =>
|
||||||
|
{ acc += f; subsums.Add(acc); return acc; });
|
||||||
|
// ex : subsums = {0.1, 0.4, 1.0}, sum = 1.0
|
||||||
|
|
||||||
|
var r = UnityEngine.Random.Range(0.0f, sum);
|
||||||
|
// ex : r = 0.35
|
||||||
|
|
||||||
|
var index = subsums.FindIndex(f => (r < f));
|
||||||
|
// ex : index = 1
|
||||||
|
|
||||||
|
// 2017. 08. 29. 정인호. 크래쉬 리포트(ArgumentOutOfRangeException: Argument is out of range.)에 의해 로그 추가
|
||||||
|
if (values.Count <= index || index < 0)
|
||||||
|
{
|
||||||
|
string valuesvalue = "";
|
||||||
|
for (int iLoop = 0; iLoop < values.Count; ++iLoop)
|
||||||
|
valuesvalue += values[iLoop] + ", ";
|
||||||
|
string weightsvalue = "";
|
||||||
|
for (int iLoop = 0; iLoop < weights.Count; ++iLoop)
|
||||||
|
weightsvalue += weights[iLoop] + ", ";
|
||||||
|
Assert(false, Format("DSUtil RandomW Error : values : {0}, weights : {1}, index : {2}, ", valuesvalue, weightsvalue, index));
|
||||||
|
}
|
||||||
|
|
||||||
|
return values[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// RandomOneW<T>
|
||||||
|
// 가중치에 따라 랜덤하게 원소 선택 ( 무조건 하나는 선택되도록 )
|
||||||
|
// 가중치를 정규화해서 합이 1인 값으로 만들고, 의미없는 원소는 제거하여 RandomW처리
|
||||||
|
public static T RandomOneW<T>(List<T> values, List<float> weights)
|
||||||
|
{
|
||||||
|
if ((null == values) || (0 == values.Count))
|
||||||
|
return default(T);
|
||||||
|
|
||||||
|
if ((null == weights) || (0 == weights.Count))
|
||||||
|
return RandomN(values);
|
||||||
|
|
||||||
|
// 전체 가중치 합
|
||||||
|
float fSum = 0.0f;
|
||||||
|
foreach (float fValue in weights)
|
||||||
|
fSum += fValue;
|
||||||
|
|
||||||
|
// 예외처리 : 가중치 합이 0이면 선택할 원소가 없다...
|
||||||
|
if (0.0f == fSum)
|
||||||
|
return default(T);
|
||||||
|
|
||||||
|
// 데이터 복사용 변수
|
||||||
|
List<T> CopyValues = new List<T>();
|
||||||
|
List<float> CopyWeights = new List<float>();
|
||||||
|
|
||||||
|
// 가중치 정규화하면서 필요없는 원소는 제거
|
||||||
|
for (int iLoop = 0; iLoop < weights.Count; ++iLoop)
|
||||||
|
{
|
||||||
|
if (0.0f == weights[iLoop])
|
||||||
|
continue;
|
||||||
|
|
||||||
|
CopyValues.Add(values[iLoop]);
|
||||||
|
CopyWeights.Add(weights[iLoop] / fSum);
|
||||||
|
}
|
||||||
|
|
||||||
|
return RandomW(CopyValues, CopyWeights);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// RandomN<T>
|
||||||
|
// RandomW<T> 와 스팩은 동일하나, 모든 원소의 가중치가 동일한 경우로 제한함.
|
||||||
|
public static T RandomN<T>(List<T> values)
|
||||||
|
{
|
||||||
|
if ((null == values) || (0 == values.Count))
|
||||||
|
return default(T);
|
||||||
|
|
||||||
|
var index = (int)UnityEngine.Random.Range(0.0f, values.Count);
|
||||||
|
if (index == values.Count)
|
||||||
|
index = values.Count - 1;
|
||||||
|
return values[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// RandomRange
|
||||||
|
// int일 경우, Max값도 나오도록 하기 위해 Max + 1을 함.
|
||||||
|
public static int RandomRange(int _iMin, int _iMax)
|
||||||
|
{
|
||||||
|
if (_iMin == _iMax) return _iMin;
|
||||||
|
return UnityEngine.Random.Range(_iMin, _iMax + 1);
|
||||||
|
}
|
||||||
|
public static float RandomRange(float _fMin, float _fMax)
|
||||||
|
{
|
||||||
|
if (_fMin == _fMax) return _fMin;
|
||||||
|
return UnityEngine.Random.Range(_fMin, _fMax);
|
||||||
|
}
|
||||||
|
public static Vector3 RandomVector(float fMin, float fMax)
|
||||||
|
{
|
||||||
|
return RandomVector(fMin, fMax, fMin, fMax, fMin, fMax);
|
||||||
|
}
|
||||||
|
public static Vector3 RandomVector(float fMinX, float fMaxX, float fMinY, float fMaxY, float fMinZ, float fMaxZ)
|
||||||
|
{
|
||||||
|
return new Vector3(RandomRange(fMinX, fMaxX), RandomRange(fMinY, fMaxY), RandomRange(fMinZ, fMaxZ));
|
||||||
|
}
|
||||||
|
public static Vector3 RandomVector_Exception_y(float minX, float maxX, float y, float minZ, float maxZ)
|
||||||
|
{
|
||||||
|
return new Vector3(RandomRange(minX, maxX), y, RandomRange(minZ, maxZ));
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
public static List<int> RandomIndex(int _iCount)
|
||||||
|
{
|
||||||
|
List<int> listResult = new List<int>();
|
||||||
|
List<int> listCount = new List<int>();
|
||||||
|
|
||||||
|
for (int i = 0; i < _iCount; i++)
|
||||||
|
listCount.Add(i);
|
||||||
|
|
||||||
|
while (0 < listCount.Count)
|
||||||
|
{
|
||||||
|
int iRand = UnityEngine.Random.Range(0, listCount.Count);
|
||||||
|
listResult.Add(listCount[iRand]);
|
||||||
|
listCount.RemoveAt(iRand);
|
||||||
|
}
|
||||||
|
|
||||||
|
return listResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
//========================================================================
|
||||||
|
// 폴링 함수 getter 를 이용해 이벤트 드리븐 함수 onChange 를 호출
|
||||||
|
// prev - 이전값
|
||||||
|
// getter - 폴링함수.
|
||||||
|
// onChange := Action<PrevValue, CurrentValue> - 이벤트 함수.
|
||||||
|
public static void PollingToEvent(float prev, Func<float> getter, Action<float, float> onChange)
|
||||||
|
{
|
||||||
|
// 값이 변했는지 검사. 다를 때만 호출
|
||||||
|
var current = getter();
|
||||||
|
if (prev != current)
|
||||||
|
onChange(prev, current);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GUID
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetGUID()
|
||||||
|
{
|
||||||
|
System.Guid uid = System.Guid.NewGuid();
|
||||||
|
return uid.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UUID(이걸 사용)
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetUUID()
|
||||||
|
{
|
||||||
|
return SystemInfo.deviceUniqueIdentifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 프리팹에 Component가 Missing된 것이 있는지 체크
|
||||||
|
public static void CheckMissingComponent()
|
||||||
|
{
|
||||||
|
UnityEngine.Object[] pObjects = Resources.FindObjectsOfTypeAll(typeof(GameObject));
|
||||||
|
foreach (UnityEngine.Object pObject in pObjects)
|
||||||
|
{
|
||||||
|
GameObject pGameObject = pObject as GameObject;
|
||||||
|
if (null == pGameObject)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
Component[] pComponents = pGameObject.GetComponents<Component>();
|
||||||
|
foreach (Component pComponent in pComponents)
|
||||||
|
{
|
||||||
|
if (null == pComponent)
|
||||||
|
DSUtil.LogError("MissingComponent!!(GameObject{0})", pObject.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 유니티 에디터의 Pause를 Toggle합니다.
|
||||||
|
public static void EditorPauseOfToggle(bool bToggle)
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
EditorApplication.isPaused = bToggle;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ContainsDictionary<TKey, TValue>(Dictionary<TKey, TValue> dicContainer, TKey tKey)
|
||||||
|
{
|
||||||
|
if (false == dicContainer.ContainsKey(tKey))
|
||||||
|
dicContainer[tKey] = default(TValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 클래스 Null체크
|
||||||
|
/*
|
||||||
|
* null for classes
|
||||||
|
* null (empty) for Nullable<T>
|
||||||
|
* zero/false/etc for other structs
|
||||||
|
*/
|
||||||
|
public static bool IsNull<T>(T value)
|
||||||
|
{
|
||||||
|
if (EqualityComparer<T>.Default.Equals(value, default(T)))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*Assert 관련
|
||||||
|
*/
|
||||||
|
public static void Assert(bool condition)
|
||||||
|
{
|
||||||
|
// if (Debug.isDebugBuild && !condition) throw new Exception();
|
||||||
|
if (!condition) throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Assert(bool condition, string log)
|
||||||
|
{
|
||||||
|
// if (Debug.isDebugBuild && !condition) {
|
||||||
|
// Debug.Log (log);
|
||||||
|
// throw new Exception ();
|
||||||
|
// }
|
||||||
|
if (!condition)
|
||||||
|
{
|
||||||
|
UnityEngine.Debug.LogError(log);
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Assert(bool condition, string strMessage, params object[] args)
|
||||||
|
{
|
||||||
|
// if (Debug.isDebugBuild && !condition) {
|
||||||
|
// Debug.Log (Format (strMessage, args));
|
||||||
|
// throw new Exception ();
|
||||||
|
// }
|
||||||
|
if (!condition)
|
||||||
|
{
|
||||||
|
UnityEngine.Debug.Log(Format(strMessage, args));
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Verify(bool condition)
|
||||||
|
{
|
||||||
|
if (!condition)
|
||||||
|
{
|
||||||
|
//EditorPauseOfToggle (true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Verify(bool condition, string log)
|
||||||
|
{
|
||||||
|
if (!condition)
|
||||||
|
{
|
||||||
|
UnityEngine.Debug.LogError(log);
|
||||||
|
//EditorPauseOfToggle (true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Verify(bool condition, string strMessage, params object[] args)
|
||||||
|
{
|
||||||
|
if (!condition)
|
||||||
|
{
|
||||||
|
UnityEngine.Debug.LogError(Format(strMessage, args));
|
||||||
|
//EditorPauseOfToggle (true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Search(string strPath, Action<FileInfo> pCallBack)
|
||||||
|
{
|
||||||
|
DirectoryInfo pDirInfo = new DirectoryInfo(strPath);
|
||||||
|
SearchFiles(pDirInfo, pCallBack);
|
||||||
|
SearchDirs(pDirInfo, pCallBack);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SearchDirs(DirectoryInfo pDirInfo, Action<FileInfo> pCallBack)
|
||||||
|
{
|
||||||
|
DirectoryInfo[] pDirs = pDirInfo.GetDirectories();
|
||||||
|
foreach (DirectoryInfo pDir in pDirs)
|
||||||
|
{
|
||||||
|
SearchFiles(pDir, pCallBack);
|
||||||
|
SearchDirs(pDir, pCallBack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SearchFiles(DirectoryInfo pDirInfo, Action<FileInfo> pCallBack)
|
||||||
|
{
|
||||||
|
FileInfo[] pFiles = pDirInfo.GetFiles();
|
||||||
|
foreach (FileInfo pFile in pFiles)
|
||||||
|
{
|
||||||
|
pCallBack(pFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Encrypt(string toEncrypt, string key = "12345678901234567890123456789012") /*key limit 32byte 12345678901234567890123456789012*/
|
||||||
|
{
|
||||||
|
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
|
||||||
|
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
|
||||||
|
RijndaelManaged rDel = new RijndaelManaged();
|
||||||
|
rDel.Key = keyArray;
|
||||||
|
rDel.Mode = CipherMode.ECB;
|
||||||
|
rDel.Padding = PaddingMode.PKCS7;
|
||||||
|
ICryptoTransform cTransform = rDel.CreateEncryptor();
|
||||||
|
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
|
||||||
|
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
|
||||||
|
}
|
||||||
|
public static string Decrypt(string toDecrypt, string key = "12345678901234567890123456789012") /*key limit 32byte 12345678901234567890123456789012*/
|
||||||
|
{
|
||||||
|
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
|
||||||
|
byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
|
||||||
|
RijndaelManaged rDel = new RijndaelManaged();
|
||||||
|
rDel.Key = keyArray;
|
||||||
|
rDel.Mode = CipherMode.ECB;
|
||||||
|
rDel.Padding = PaddingMode.PKCS7;
|
||||||
|
ICryptoTransform cTransform = rDel.CreateDecryptor();
|
||||||
|
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
|
||||||
|
return UTF8Encoding.UTF8.GetString(resultArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Activate(GameObject _goTarget, bool _bActive)
|
||||||
|
{
|
||||||
|
if (null != _goTarget)
|
||||||
|
{
|
||||||
|
_goTarget.SetActive(_bActive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ActivateGameObjects(GameObject[] _gos, int _inactiveIndex = -1)
|
||||||
|
{
|
||||||
|
for (int iLoop = 0; iLoop < _gos.Length; ++iLoop)
|
||||||
|
{
|
||||||
|
if (_gos[iLoop] != null)
|
||||||
|
_gos[iLoop].SetActive(true);
|
||||||
|
}
|
||||||
|
if (_inactiveIndex > -1 && _gos[_inactiveIndex] != null)
|
||||||
|
_gos[_inactiveIndex].SetActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void InActivateGameObjects(GameObject[] _gos, int _activeIndex = -1)
|
||||||
|
{
|
||||||
|
for (int iLoop = 0; iLoop < _gos.Length; ++iLoop)
|
||||||
|
{
|
||||||
|
if (_gos[iLoop] != null)
|
||||||
|
_gos[iLoop].SetActive(false);
|
||||||
|
}
|
||||||
|
if (_activeIndex > -1 && _gos[_activeIndex] != null)
|
||||||
|
_gos[_activeIndex].SetActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ActivateCollider(BoxCollider _collider, bool _bActive)
|
||||||
|
{
|
||||||
|
if (null != _collider)
|
||||||
|
{
|
||||||
|
_collider.enabled = _bActive;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Stopwatch m_cStopwatch = new Stopwatch();
|
||||||
|
public static void StartStopWatch()
|
||||||
|
{
|
||||||
|
m_cStopwatch.Reset();
|
||||||
|
m_cStopwatch.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TimeSpan StopStopWatch(bool debugtime)
|
||||||
|
{
|
||||||
|
m_cStopwatch.Stop();
|
||||||
|
if (debugtime) Log("{0}", m_cStopwatch.Elapsed);
|
||||||
|
return m_cStopwatch.Elapsed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetNumberLen(int iNum)
|
||||||
|
{
|
||||||
|
return iNum.ToString().Length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Quit()
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
EditorApplication.isPlaying = false;
|
||||||
|
#else
|
||||||
|
Application.Quit();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 문자열에서 한글만 얻기
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="_strText"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetStringOnlyKorean(string _strText)
|
||||||
|
{
|
||||||
|
return Regex.Replace(_strText, @"[^가-힣]", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 문자열에서 영어만 얻기
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="_strText"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetStringOnlyEnglish(string _strText)
|
||||||
|
{
|
||||||
|
return Regex.Replace(_strText, @"[^a-zA-Z]", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 텍스트의 문자열이 영어 대소문자/숫자/한글인지 체크하는 정규식
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="_strText">체크할 텍스트</param>
|
||||||
|
/// <returns>유효 여부</returns>
|
||||||
|
public static bool IsValidString(string _strText)
|
||||||
|
{
|
||||||
|
string strPattern = @"^[a-zA-Z0-9가-힣]*$";
|
||||||
|
return Regex.IsMatch(_strText, strPattern);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// int -> 세자리마다 콤마가 있는 숫자
|
||||||
|
/// </summary>
|
||||||
|
public static string GetThousandCommaText(double data, bool _incluePercent = false)
|
||||||
|
{
|
||||||
|
if (_incluePercent) return Format("{0:#,##0}%", data);
|
||||||
|
else return Format("{0:#,##0}", data);
|
||||||
|
}
|
||||||
|
public static string GetCommaText_N2(double data)
|
||||||
|
{
|
||||||
|
return Format("{0:#,##0.##}", data);
|
||||||
|
}
|
||||||
|
public static string GetCommaText_N4(double data)
|
||||||
|
{
|
||||||
|
return Format("{0:#,##0.####}", data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 00:00:00 형식
|
||||||
|
/// </summary>
|
||||||
|
public static string Get_TimeText_HMS(DateTime _dt) { return Format("{0:00}:{1:00}:{2:00}", _dt.Hour, _dt.Minute, _dt.Second); }
|
||||||
|
public static string Get_TimeText_HMS(TimeSpan _ts) { return Format("{0:00}:{1:00}:{2:00}", _ts.Hours, _ts.Minutes, _ts.Seconds); }
|
||||||
|
public static string Get_TimeText_MS(TimeSpan _ts) { return Format("{0:00}:{1:00}", _ts.Minutes, _ts.Seconds); }
|
||||||
|
public static string Get_TimeText_HMS(bool _text, double _totalseconds)
|
||||||
|
{
|
||||||
|
if (_text)
|
||||||
|
return Format("{0:00}시간 {1:00}분 {2:00}초", _totalseconds / 60 / 60, _totalseconds / 60 % 60, _totalseconds % 60);
|
||||||
|
return Format("{0:00}:{1:00}:{2:00}", _totalseconds / 60 / 60, _totalseconds / 60 % 60, _totalseconds % 60);
|
||||||
|
}
|
||||||
|
public static string Get_TimeText_HM(double _totalminutes) { return Format("{0:00}:{1:00}", (int)(_totalminutes / 60), (int)(_totalminutes % 60)); }
|
||||||
|
public static string Get_TimeText_MS(double _totalseconds) { return Format("{0:00}:{1:00}", (int)(_totalseconds / 60), (int)(_totalseconds % 60)); }
|
||||||
|
public static string Get_TimeText_MSms(double _tick)
|
||||||
|
{
|
||||||
|
var min = (int)(_tick / 60);
|
||||||
|
var sec = (int)(_tick % 60);
|
||||||
|
float ms = ((float)_tick - (int)_tick) * 100f;
|
||||||
|
return Format("{0:00}분 {1:00}초 {2:00}", min, sec, Mathf.Approximately(ms, 100f) ? 0 : ms);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsUnityObjectDestroyed(object target)
|
||||||
|
{
|
||||||
|
if ((target is UnityEngine.Object) == false)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if ((target is UnityEngine.Object) && (target.Equals(null)) == true)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public static bool IsActionUnityObjectDestroyed(object target, MethodInfo method)
|
||||||
|
{
|
||||||
|
if (target == null && method == null)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (IsUnityObjectDestroyed(target))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public static bool IsActionUnityObjectDestroyed(Action action)
|
||||||
|
{
|
||||||
|
if (action == null)
|
||||||
|
return true;
|
||||||
|
return IsActionUnityObjectDestroyed(action.Target, action.Method);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsActionUnityObjectDestroyed<T>(Action<T> action)
|
||||||
|
{
|
||||||
|
if (action == null)
|
||||||
|
return true;
|
||||||
|
return IsActionUnityObjectDestroyed(action.Target, action.Method);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsActionUnityObjectDestroyed<T1, T2>(Action<T1, T2> action)
|
||||||
|
{
|
||||||
|
if (action == null)
|
||||||
|
return true;
|
||||||
|
return IsActionUnityObjectDestroyed(action.Target, action.Method);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Set_Transform_withParent(Transform _tf, Transform _parent, Vector3? _pos = null, Vector3? _scale = null)
|
||||||
|
{
|
||||||
|
_tf.SetParent(_parent);
|
||||||
|
_tf.localPosition = _pos == null ? Vector3.zero : (Vector3)_pos;
|
||||||
|
_tf.localScale = _scale == null ? Vector3.one : (Vector3)_scale;
|
||||||
|
_tf.localRotation = Quaternion.identity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GameObject Get_Clone(string _path, Transform _parent = null, Vector3? _pos = null, Vector3? _scale = null)
|
||||||
|
{
|
||||||
|
var temp = GameObject.Instantiate(Resources.Load(_path)) as GameObject;
|
||||||
|
Set_Transform_withParent(temp.transform, _parent, _pos, _scale);
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
public static GameObject Get_Clone(GameObject _obj, Transform _parent = null, Vector3? _pos = null, Vector3? _scale = null)
|
||||||
|
{
|
||||||
|
var temp = GameObject.Instantiate(_obj);
|
||||||
|
Set_Transform_withParent(temp.transform, _parent, _pos, _scale);
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
public static T Get_Clone<T>(GameObject _obj, Transform _parent = null, Vector3? _pos = null, Vector3? _scale = null)
|
||||||
|
{
|
||||||
|
var temp = GameObject.Instantiate(_obj);
|
||||||
|
Set_Transform_withParent(temp.transform, _parent, _pos, _scale);
|
||||||
|
return temp.GetComponent<T>();
|
||||||
|
}
|
||||||
|
public static T Get_Clone<T>(string _path, Transform _parent = null, Vector3? _pos = null, Vector3? _scale = null)
|
||||||
|
{
|
||||||
|
var res = Resources.Load(_path);
|
||||||
|
if (res == null) UnityEngine.Debug.Log(Format("no exist res : {0}", _path));
|
||||||
|
return Get_Clone<T>(res as GameObject, _parent, _pos, _scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool Check_ObjectInMainCamera(Transform _target)
|
||||||
|
{
|
||||||
|
var screenP = Camera.main.WorldToViewportPoint(_target.position);
|
||||||
|
return screenP.z > 0 && screenP.x > 0 && screenP.x < 1 && screenP.y > 0 && screenP.y < 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//public static DateTime Get_NextWeekMonday()
|
||||||
|
//{
|
||||||
|
// DateTime NextWeek;
|
||||||
|
// switch (ServerInfo.ServerTime.DayOfWeek)
|
||||||
|
// {
|
||||||
|
// case DayOfWeek.Monday: NextWeek = ServerInfo.ServerTime.AddDays(7); break;
|
||||||
|
// case DayOfWeek.Tuesday: NextWeek = ServerInfo.ServerTime.AddDays(6); break;
|
||||||
|
// case DayOfWeek.Wednesday: NextWeek = ServerInfo.ServerTime.AddDays(5); break;
|
||||||
|
// case DayOfWeek.Thursday: NextWeek = ServerInfo.ServerTime.AddDays(4); break;
|
||||||
|
// case DayOfWeek.Friday: NextWeek = ServerInfo.ServerTime.AddDays(3); break;
|
||||||
|
// case DayOfWeek.Saturday: NextWeek = ServerInfo.ServerTime.AddDays(2); break;
|
||||||
|
// default: NextWeek = ServerInfo.ServerTime.AddDays(1); break;
|
||||||
|
// }
|
||||||
|
// return new DateTime(NextWeek.Year, NextWeek.Month, NextWeek.Day);
|
||||||
|
//}
|
||||||
|
|
||||||
|
public static void ChangeLayersRecursively(Transform trans, string name)
|
||||||
|
{
|
||||||
|
trans.gameObject.layer = LayerMask.NameToLayer(name);
|
||||||
|
foreach (Transform child in trans)
|
||||||
|
{
|
||||||
|
ChangeLayersRecursively(child, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Vector3 StringToVector3(string str)
|
||||||
|
{
|
||||||
|
string[] s = str.Split(',');
|
||||||
|
return new Vector3(float.Parse(s[0]), float.Parse(s[1]), float.Parse(s[2]));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int Get_RandomIndex<T>(List<T> probs) where T : struct, IConvertible
|
||||||
|
{
|
||||||
|
float total = 0f;
|
||||||
|
foreach (var p in probs)
|
||||||
|
total += Convert.ToSingle(p);
|
||||||
|
|
||||||
|
float randomPoint = Random.value * total;
|
||||||
|
|
||||||
|
for (int i = 0; i < probs.Count; i++)
|
||||||
|
{
|
||||||
|
float val = Convert.ToSingle(probs[i]);
|
||||||
|
if (randomPoint < val)
|
||||||
|
return i;
|
||||||
|
randomPoint -= val;
|
||||||
|
}
|
||||||
|
return probs.Count - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Vector3 Get_RandomPos_onNavMesh(Vector3 origin, float minradius = 0f, float maxradius = 3f, int _trycount = 50)
|
||||||
|
{
|
||||||
|
// Set the parameters for the NavMesh.SamplePosition method
|
||||||
|
NavMeshHit hit;
|
||||||
|
Vector3 randomPoint = origin;
|
||||||
|
int maxTries = _trycount;
|
||||||
|
int currentTry = 0;
|
||||||
|
minradius = Math.Max(0f, minradius);
|
||||||
|
|
||||||
|
// Try to find a random location on the NavMesh
|
||||||
|
while (currentTry < maxTries)
|
||||||
|
{
|
||||||
|
Vector3 randomDirection = Random.insideUnitSphere * maxradius;
|
||||||
|
randomDirection += origin;
|
||||||
|
NavMesh.SamplePosition(randomDirection, out hit, maxradius, NavMesh.AllAreas);
|
||||||
|
|
||||||
|
// If a valid location is found, check if it is reachable and far enough
|
||||||
|
if (hit.hit && Vector3.Distance(origin, hit.position) >= minradius)
|
||||||
|
{
|
||||||
|
NavMeshPath path = new NavMeshPath();
|
||||||
|
if (NavMesh.CalculatePath(origin, hit.position, NavMesh.AllAreas, path))
|
||||||
|
{
|
||||||
|
// If a path can be found, return the random location
|
||||||
|
randomPoint = hit.position;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
currentTry++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the random reachable location on the NavMesh
|
||||||
|
return randomPoint;
|
||||||
|
}
|
||||||
|
public static bool IsValidPos_onNaveMesh(Vector3 pos, float maxDistance = 0f)
|
||||||
|
{
|
||||||
|
NavMeshHit hit;
|
||||||
|
// maxDistance 안에서 pos에 가장 가까운 NavMesh 위치 찾기
|
||||||
|
if (NavMesh.SamplePosition(pos, out hit, maxDistance, NavMesh.AllAreas))
|
||||||
|
{
|
||||||
|
// 유효한 위치가 있고 너무 멀리 떨어지지 않았으면 true
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool CheckNull(UnityEngine.Object obj)
|
||||||
|
{
|
||||||
|
return ReferenceEquals(obj, null) || obj.Equals(null);
|
||||||
|
}
|
||||||
|
public static bool CheckNull(object obj)
|
||||||
|
{
|
||||||
|
return ReferenceEquals(obj, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float Get_SliderValue(float f) { return float.IsNaN(f) ? 0f : f; }
|
||||||
|
|
||||||
|
public static bool WithInDistance(Vector3 a, Vector3 b, float dist) { return Get_Distance(a, b) <= dist * dist; }
|
||||||
|
public static float Get_Distance(Vector3 a, Vector3 b) { return (a - b).sqrMagnitude; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NumberFormatter
|
||||||
|
{
|
||||||
|
// 알파벳 시작값 (a = 97 in ASCII)
|
||||||
|
private const char startChar = 'a';
|
||||||
|
|
||||||
|
public static string FormatNumber(double number)
|
||||||
|
{
|
||||||
|
if (number < 1000)
|
||||||
|
return number.ToString("0.##"); // 1,000 미만은 그냥 숫자로 반환
|
||||||
|
|
||||||
|
int suffixIndex = 0;
|
||||||
|
while (number >= 1000)
|
||||||
|
{
|
||||||
|
number /= 1000;
|
||||||
|
suffixIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 소수점 두 자리까지 표시하고, 알파벳 단위 추가 (suffixIndex에 따라 동적 알파벳 생성)
|
||||||
|
char suffix = (char)(startChar + (suffixIndex - 1));
|
||||||
|
return $"{number:F2}{suffix}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct ErrorString
|
||||||
|
{
|
||||||
|
public string error;
|
||||||
|
public ErrorString(string str){error=str;}
|
||||||
|
};
|
||||||
|
|
||||||
|
public class DSTime_HMS
|
||||||
|
{
|
||||||
|
public int m_Hour, m_Min, m_Sec;
|
||||||
|
|
||||||
|
public DSTime_HMS(int _second)
|
||||||
|
{
|
||||||
|
m_Hour = _second / 3600;
|
||||||
|
m_Min = _second % 3600 / 60;
|
||||||
|
m_Sec = _second % 3600 % 60;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 35140a898f557944ba21099fda14b30f
|
||||||
|
|
@ -0,0 +1,83 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
public class uScrollViewMgr : MonoBehaviour
|
||||||
|
{
|
||||||
|
public ScrollRect m_ScrollRect;
|
||||||
|
public GameObject m_Content;
|
||||||
|
public GameObject go_card;
|
||||||
|
|
||||||
|
protected List<CardBase> list_CardBase = new List<CardBase>();
|
||||||
|
protected RectTransform contentRt;
|
||||||
|
|
||||||
|
protected CardBase m_SelectCard;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void Init()
|
||||||
|
{
|
||||||
|
if (DSUtil.CheckNull(contentRt))
|
||||||
|
{
|
||||||
|
if (m_ScrollRect)
|
||||||
|
contentRt = m_ScrollRect.content;
|
||||||
|
else if (m_Content)
|
||||||
|
contentRt = m_Content.GetComponent<RectTransform>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void CardBase_AllOff()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < list_CardBase.Count; i++)
|
||||||
|
list_CardBase[i].gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
CardBase MakeCard(int i)
|
||||||
|
{
|
||||||
|
CardBase temp;
|
||||||
|
if (list_CardBase.Count > i) temp = list_CardBase[i];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
temp = DSUtil.Get_Clone<CardBase>(go_card, contentRt);
|
||||||
|
list_CardBase.Add(temp);
|
||||||
|
}
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void Set_ScrollView<T>(List<T> _lst, int idata = -1)
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
CardBase_AllOff();
|
||||||
|
|
||||||
|
for (int i = 0; i < _lst.Count; i++)
|
||||||
|
MakeCard(i).Set(_lst[i], i, idata);
|
||||||
|
}
|
||||||
|
protected virtual void Set_ScrollView_NotSet(int _makecount)
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
for (int i = 0; i < _makecount; i++)
|
||||||
|
{
|
||||||
|
if (list_CardBase.Count > i) { }
|
||||||
|
else list_CardBase.Add(DSUtil.Get_Clone<CardBase>(go_card, contentRt));
|
||||||
|
}
|
||||||
|
CardBase_AllOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void ScrollTo_XY(Transform target)
|
||||||
|
{
|
||||||
|
Canvas.ForceUpdateCanvases();
|
||||||
|
contentRt.anchoredPosition = (Vector2)m_ScrollRect.transform.InverseTransformPoint(contentRt.position) - (Vector2)m_ScrollRect.transform.InverseTransformPoint(target.position);
|
||||||
|
}
|
||||||
|
protected void ScrollTo(Transform target, bool vertical)
|
||||||
|
{
|
||||||
|
Canvas.ForceUpdateCanvases();
|
||||||
|
Vector2 offset = (Vector2)m_ScrollRect.transform.InverseTransformPoint(contentRt.position) - (Vector2)m_ScrollRect.transform.InverseTransformPoint(target.position);
|
||||||
|
Vector2 anchor = contentRt.anchoredPosition;
|
||||||
|
if (vertical) anchor.y = offset.y - target.GetComponent<RectTransform>().sizeDelta.y;
|
||||||
|
else anchor.x = offset.x - target.GetComponent<RectTransform>().sizeDelta.x;
|
||||||
|
contentRt.anchoredPosition = anchor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c7423543f271c8648a9e60f0c5151d1e
|
||||||
|
|
@ -5,7 +5,6 @@ using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Android;
|
|
||||||
using UnityEngine.Events;
|
using UnityEngine.Events;
|
||||||
|
|
||||||
namespace CodeJay
|
namespace CodeJay
|
||||||
|
|
@ -133,6 +132,8 @@ namespace CodeJay
|
||||||
public int TextureIndex;
|
public int TextureIndex;
|
||||||
public long ClearConditionMoney;
|
public long ClearConditionMoney;
|
||||||
|
|
||||||
|
public int BuyPrice, n_AlbumType;
|
||||||
|
|
||||||
public string Name;
|
public string Name;
|
||||||
public string Description;
|
public string Description;
|
||||||
public string Script;
|
public string Script;
|
||||||
|
|
@ -150,14 +151,26 @@ namespace CodeJay
|
||||||
this.Script = script;
|
this.Script = script;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
public HuntingData(int index, int stake, long clearMoney, string name, string desc, string huntingDataID)
|
//public HuntingData(int index, int stake, long clearMoney, string name, string desc, string huntingDataID)
|
||||||
|
//{
|
||||||
|
// this.Index = index;
|
||||||
|
// this.Stake = stake;
|
||||||
|
// this.ClearConditionMoney = clearMoney;
|
||||||
|
// this.Name = name;
|
||||||
|
// this.Description = desc;
|
||||||
|
// this.HuntingDataID = huntingDataID;
|
||||||
|
//}
|
||||||
|
|
||||||
|
public HuntingData(int index, DB_HuntingData data)
|
||||||
{
|
{
|
||||||
this.Index = index;
|
Index = index;
|
||||||
this.Stake = stake;
|
Stake = data.DBF_Stake;
|
||||||
this.ClearConditionMoney = clearMoney;
|
ClearConditionMoney = data.DBF_ClearConditionMoney;
|
||||||
this.Name = name;
|
Name = data.DBF_name;
|
||||||
this.Description = desc;
|
Description = data.DBF_Description;
|
||||||
this.HuntingDataID = huntingDataID;
|
HuntingDataID = data.Id.ToString();
|
||||||
|
BuyPrice = data.DBF_BuyPrice;
|
||||||
|
n_AlbumType = data.DBF_n_AlbumType;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -301,8 +314,8 @@ public partial class DBManager : MonoBehaviour
|
||||||
data = DB_HuntingData.GetEntity(i);
|
data = DB_HuntingData.GetEntity(i);
|
||||||
if (data != null)
|
if (data != null)
|
||||||
{
|
{
|
||||||
_lstHuntindData.Add(new HuntingData(i, data.DBF_Stake, data.DBF_ClearConditionMoney, data.DBF_Name, data.DBF_Description, data.Id.ToString()));
|
//_lstHuntindData.Add(new HuntingData(i, data.DBF_Stake, data.DBF_ClearConditionMoney, data.DBF_Name, data.DBF_Description, data.Id.ToString()));
|
||||||
|
_lstHuntindData.Add(new HuntingData(i, data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -498,6 +511,10 @@ public partial class DBManager : MonoBehaviour
|
||||||
return _lstHuntindData[index];
|
return _lstHuntindData[index];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public List<HuntingData> Get_AlbumDatas(int type)
|
||||||
|
{
|
||||||
|
return _lstHuntindData.FindAll(f => f.n_AlbumType == type);
|
||||||
|
}
|
||||||
|
|
||||||
public bool AddCurrentChallengeCondition(long amount)
|
public bool AddCurrentChallengeCondition(long amount)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,65 +3,50 @@ using CodeJay.Classes;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public class HuntingPanel : MonoBehaviour
|
public class HuntingPanel : uScrollViewMgr
|
||||||
{
|
{
|
||||||
[SerializeField] private GameObject SlotPrefab;
|
|
||||||
[SerializeField] private GameObject EmptySlotPrefab;
|
|
||||||
[SerializeField] private Transform Content;
|
|
||||||
[SerializeField] private TMPro.TextMeshProUGUI TitleTMP;
|
[SerializeField] private TMPro.TextMeshProUGUI TitleTMP;
|
||||||
[SerializeField] private GameObject[] Buttons;
|
[SerializeField] private GameObject[] Buttons;
|
||||||
public GameObject go_mainpaenl, go_botpanel, go_x;
|
public GameObject go_mainpaenl, go_botpanel, go_x;
|
||||||
|
|
||||||
private List<HuntingSlot> _lstSlots;
|
private List<HuntingSlot> _lstSlots;
|
||||||
|
private int CurAlbumType = 1;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
// HuntingData하나에 2개의 데이터 필요함.
|
//// HuntingData하나에 2개의 데이터 필요함.
|
||||||
// 100개라면 50개만 생성해야함 (왼쪽 오른쪽 있기때문)
|
//// 100개라면 50개만 생성해야함 (왼쪽 오른쪽 있기때문)
|
||||||
_lstSlots = new List<HuntingSlot>(DB_HuntingListData.CountEntities);
|
//_lstSlots = new List<HuntingSlot>(DB_HuntingListData.CountEntities);
|
||||||
|
|
||||||
|
|
||||||
// 소수점이 나오면 데이터가 홀수로 끝난다는것이기 때문에
|
//// 소수점이 나오면 데이터가 홀수로 끝난다는것이기 때문에
|
||||||
// 오른쪽에 슬롯이 생성되지 않는것을 방지하기위해 올림을 한다.
|
//// 오른쪽에 슬롯이 생성되지 않는것을 방지하기위해 올림을 한다.
|
||||||
//int length = Mathf.CeilToInt(GameManager.DB.GetHuntingDataLength() / 2f);
|
////int length = Mathf.CeilToInt(GameManager.DB.GetHuntingDataLength() / 2f);
|
||||||
|
|
||||||
// 헌팅 도전 슬롯 생성
|
//// 헌팅 도전 슬롯 생성
|
||||||
HuntingSlot slot = null;
|
//HuntingSlot slot = null;
|
||||||
for (int i = 0; i < DB_HuntingListData.CountEntities; i++)
|
//for (int i = 0; i < DB_HuntingListData.CountEntities; i++)
|
||||||
{
|
//{
|
||||||
slot = Instantiate(SlotPrefab, Content).GetComponent<HuntingSlot>();
|
// slot = Instantiate(SlotPrefab, Content).GetComponent<HuntingSlot>();
|
||||||
_lstSlots.Add(slot);
|
// _lstSlots.Add(slot);
|
||||||
|
//}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 하단 UI에 가려지는것을 방지하기 위한 프리팹.
|
|
||||||
// 2개 생성하면 데이터의 길이가 4의 배수가 되지 않아도 홀수로 끝나도 위에까지 올라온다.
|
|
||||||
//Instantiate(EmptySlotPrefab, Content);
|
|
||||||
//Instantiate(EmptySlotPrefab, Content);
|
|
||||||
|
|
||||||
if (GameManager.Instance != null)
|
if (GameManager.Instance != null)
|
||||||
{
|
{
|
||||||
// 이벤트 매니저에 구독
|
// 이벤트 매니저에 구독
|
||||||
GameManager.Event.RegistEvent(EEventType.OnSynchronizeAIChllengeModeAIData, this.UpdateData);
|
GameManager.Event.RegistEvent(EEventType.OnSynchronizeAIChllengeModeAIData, this.Set_UI);
|
||||||
GameManager.Event.RegistEvent(EEventType.OnClickFullView, this.OnClickFullView);
|
GameManager.Event.RegistEvent(EEventType.OnClickFullView, this.OnClickFullView);
|
||||||
GameManager.Event.RegistEvent(EEventType.OnReturnFullView, this.OnReturnFullView);
|
GameManager.Event.RegistEvent(EEventType.OnReturnFullView, this.OnReturnFullView);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
// 다른 스크립트들도 구독을 완료하고 난 뒤에 호출하도록
|
|
||||||
// Start에서 슬롯을 업데이트한다.
|
|
||||||
this.UpdateData();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
if (GameManager.Instance != null)
|
if (GameManager.Instance != null)
|
||||||
{
|
{
|
||||||
// 구독한 이벤트 해제
|
// 구독한 이벤트 해제
|
||||||
GameManager.Event.RemoveEvent(EEventType.OnSynchronizeAIChllengeModeAIData, this.UpdateData);
|
GameManager.Event.RemoveEvent(EEventType.OnSynchronizeAIChllengeModeAIData, this.Set_UI);
|
||||||
GameManager.Event.RemoveEvent(EEventType.OnClickFullView, this.OnClickFullView);
|
GameManager.Event.RemoveEvent(EEventType.OnClickFullView, this.OnClickFullView);
|
||||||
GameManager.Event.RemoveEvent(EEventType.OnReturnFullView, this.OnReturnFullView);
|
GameManager.Event.RemoveEvent(EEventType.OnReturnFullView, this.OnReturnFullView);
|
||||||
|
|
||||||
|
|
@ -73,45 +58,13 @@ public class HuntingPanel : MonoBehaviour
|
||||||
GameManager.DB.CheckDayReset();
|
GameManager.DB.CheckDayReset();
|
||||||
go_botpanel.SetActive(false);
|
go_botpanel.SetActive(false);
|
||||||
go_x.SetActive(true);
|
go_x.SetActive(true);
|
||||||
|
|
||||||
|
Set_UI();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 슬롯들 업데이트 하는 함수
|
public void Set_UI()
|
||||||
private void UpdateData()
|
|
||||||
{
|
{
|
||||||
// 해금해야하는 인덱스를 가져온다.
|
Set_ScrollView(GameManager.DB.Get_AlbumDatas(CurAlbumType), GameManager.DB.GetUnlockTargetIndex());
|
||||||
// 3번째까지(0 ~ 2) 클리어했으면 index 3을 가져온다.
|
|
||||||
int unlockTargetIndex = GameManager.DB.GetUnlockTargetIndex();
|
|
||||||
|
|
||||||
// 헌팅 도전에 들어갈 데이터를 DB매니저에서 가져온다.
|
|
||||||
HuntingData data = GameManager.DB.GetHuntingData(unlockTargetIndex);
|
|
||||||
DB_HuntingListData huntingListData = DB_HuntingListData.GetEntity(GameManager.BGDatabase.GetNextLockHuntingListDataID());
|
|
||||||
|
|
||||||
// 모두 해금을 했는지 체크하기 위한
|
|
||||||
if (GameManager.DB.IsAllUnlocked())
|
|
||||||
{
|
|
||||||
TitleTMP.text = "모두 해금 완료";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
string temp = huntingListData.DBF_Title;
|
|
||||||
//if (huntingListData != null)
|
|
||||||
//{
|
|
||||||
// temp = $"Ep {unlockTargetIndex + 1}. {huntingListData.DBF_Title} (#{((unlockTargetIndex) % 2 + 1)} / #2)";
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// temp = $"Ep {unlockTargetIndex + 1}. {data.Description} {data.Name} (#{((unlockTargetIndex) % 2 + 1)} / #2)";
|
|
||||||
//}
|
|
||||||
//temp += "\n<size=40>점 " + CodeJay.CodeJayUtility.Converter.MoneyToString(data.Stake);
|
|
||||||
//temp += "\n그녀의 남은 판돈 " + GameManager.DB.GetReaminingTargetConditionString(data.Index) + "</size>";
|
|
||||||
TitleTMP.text = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Data Length 100 == Slot Length 50
|
|
||||||
for (int i = 0; i < _lstSlots.Count; i++)
|
|
||||||
{
|
|
||||||
_lstSlots[i].SetData(i * 2, unlockTargetIndex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnClickFullView(object huntingDataID, object huntingListDataID)
|
private void OnClickFullView(object huntingDataID, object huntingListDataID)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ using BansheeGz.BGDatabase;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
|
|
||||||
public class HuntingSlot : MonoBehaviour
|
public class HuntingSlot : CardBase
|
||||||
{
|
{
|
||||||
[SerializeField] private TMPro.TextMeshProUGUI NameTMP;
|
[SerializeField] private TMPro.TextMeshProUGUI NameTMP;
|
||||||
|
|
||||||
|
|
@ -32,6 +32,12 @@ public class HuntingSlot : MonoBehaviour
|
||||||
|
|
||||||
private BGId _huntingListID;
|
private BGId _huntingListID;
|
||||||
|
|
||||||
|
public override void Set<T>(T _base, int iLoop = -1, int idata = -1)
|
||||||
|
{
|
||||||
|
base.Set(_base, iLoop, idata);
|
||||||
|
SetData(iLoop, idata);
|
||||||
|
}
|
||||||
|
|
||||||
public void SetData(int index, int unlockTargetIndex)
|
public void SetData(int index, int unlockTargetIndex)
|
||||||
{
|
{
|
||||||
DB_HuntingListData huntingListData = DB_HuntingListData.GetEntity(Mathf.FloorToInt((float)((float)index / 2.0f)));
|
DB_HuntingListData huntingListData = DB_HuntingListData.GetEntity(Mathf.FloorToInt((float)((float)index / 2.0f)));
|
||||||
|
|
@ -46,8 +52,8 @@ public class HuntingSlot : MonoBehaviour
|
||||||
gos_openbutton[0].SetActive(true);
|
gos_openbutton[0].SetActive(true);
|
||||||
if (_data_right != null && _data_right.Index == unlockTargetIndex)
|
if (_data_right != null && _data_right.Index == unlockTargetIndex)
|
||||||
gos_openbutton[1].SetActive(true);
|
gos_openbutton[1].SetActive(true);
|
||||||
texts_price[0].text = _data_left.Stake.ToString();
|
texts_price[0].text = _data_left.BuyPrice.ToString();
|
||||||
texts_price[1].text = _data_right.Stake.ToString();
|
texts_price[1].text = _data_right.BuyPrice.ToString();
|
||||||
|
|
||||||
_huntigdata_left = DB_HuntingData.GetEntity(new BansheeGz.BGDatabase.BGId(_data_left.HuntingDataID));
|
_huntigdata_left = DB_HuntingData.GetEntity(new BansheeGz.BGDatabase.BGId(_data_left.HuntingDataID));
|
||||||
|
|
||||||
|
|
@ -190,7 +196,7 @@ public class HuntingSlot : MonoBehaviour
|
||||||
|
|
||||||
if (GameManager.DB.IsAllUnlocked() == false)
|
if (GameManager.DB.IsAllUnlocked() == false)
|
||||||
{
|
{
|
||||||
var needKey = left ? _data_left.Stake : _data_right.Stake;
|
var needKey = left ? _data_left.BuyPrice : _data_right.BuyPrice;
|
||||||
if (GameManager.DB.Key >= needKey)
|
if (GameManager.DB.Key >= needKey)
|
||||||
{
|
{
|
||||||
GameManager.DB.SubKey(needKey, this.name);
|
GameManager.DB.SubKey(needKey, this.name);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
namespace CodeJay
|
namespace CodeJay
|
||||||
{
|
{
|
||||||
namespace Enum
|
namespace Enum
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -140,7 +140,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 486 KiB |
|
|
@ -1,156 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: e4d6af7001b22644d8b59bf781139cf1
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable:
|
|
||||||
- first:
|
|
||||||
213: 6003738084820011512
|
|
||||||
second: "\uACE0\uC2A4\uD1B1 \uC568\uBC94 \uBA54\uB274_0"
|
|
||||||
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: 1
|
|
||||||
nPOTScale: 0
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 2
|
|
||||||
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
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
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:
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: "\uACE0\uC2A4\uD1B1 \uC568\uBC94 \uBA54\uB274_0"
|
|
||||||
rect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1096
|
|
||||||
height: 1920
|
|
||||||
alignment: 0
|
|
||||||
pivot: {x: 0, y: 0}
|
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
customData:
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
tessellationDetail: -1
|
|
||||||
bones: []
|
|
||||||
spriteID: 8f94e2e9aff815350800000000000000
|
|
||||||
internalID: 6003738084820011512
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable:
|
|
||||||
"\uACE0\uC2A4\uD1B1 \uC568\uBC94 \uBA54\uB274_0": 6003738084820011512
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
|
|
@ -138,7 +138,7 @@ TextureImporter:
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID:
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue