Closes #255 거대 슬라임 보스 추가

+ UiManager의 CombatUi, OceanUi 모두 분리
각각의 씬에서 CombatUiManager, OceanUiManager로 변경
+ Ocean, OceanUi input action map 추가 및 변경
input action map, uiManager 변경에 따른 Player input 로직 변경
+ CombatPlayer가 죽으면 GameOverUi 추가
+ 재시작 기능 추가
+ 인벤토리 Ui 수정
+ 슬라임 보스 로직 및 애니메이션 수정
This commit is contained in:
NTG 2024-05-12 06:29:16 +09:00
parent ed4312ba6f
commit 7a2b5e9d02
168 changed files with 21730 additions and 1872 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2973,282 +2973,6 @@ PrefabInstance:
m_AddedGameObjects: [] m_AddedGameObjects: []
m_AddedComponents: [] m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 439669267b0f5414f8d634c267655048, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 439669267b0f5414f8d634c267655048, type: 3}
--- !u!1001 &47534568
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 2105062291}
m_Modifications:
- target: {fileID: 565125081776105703, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 565125081776105703, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 565125081776105703, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_SizeDelta.x
value: 770
objectReference: {fileID: 0}
- target: {fileID: 565125081776105703, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_SizeDelta.y
value: 80
objectReference: {fileID: 0}
- target: {fileID: 565125081776105703, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 415
objectReference: {fileID: 0}
- target: {fileID: 565125081776105703, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -386.45
objectReference: {fileID: 0}
- target: {fileID: 1085871107826994528, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1085871107826994528, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1085871107826994528, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_SizeDelta.x
value: 339.94
objectReference: {fileID: 0}
- target: {fileID: 1085871107826994528, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_SizeDelta.y
value: 46.45
objectReference: {fileID: 0}
- target: {fileID: 1085871107826994528, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 169.97
objectReference: {fileID: 0}
- target: {fileID: 1085871107826994528, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -23.225
objectReference: {fileID: 0}
- target: {fileID: 1602256590533234797, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_Name
value: DiscardPopupUi
objectReference: {fileID: 0}
- target: {fileID: 1602256590533234797, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2723646561387303199, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2723646561387303199, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2723646561387303199, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_SizeDelta.x
value: 339.94
objectReference: {fileID: 0}
- target: {fileID: 2723646561387303199, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_SizeDelta.y
value: 46.45
objectReference: {fileID: 0}
- target: {fileID: 2723646561387303199, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 415
objectReference: {fileID: 0}
- target: {fileID: 2723646561387303199, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -223.225
objectReference: {fileID: 0}
- target: {fileID: 3076794530633919408, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_SizeDelta.y
value: 476.45
objectReference: {fileID: 0}
- target: {fileID: 4309148249451214806, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4309148249451214806, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4309148249451214806, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 192.5
objectReference: {fileID: 0}
- target: {fileID: 4309148249451214806, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -40
objectReference: {fileID: 0}
- target: {fileID: 6595659152096959151, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6595659152096959151, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6595659152096959151, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 577.5
objectReference: {fileID: 0}
- target: {fileID: 6595659152096959151, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -40
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 69cc62c186ba8fe44af29df72fb672ce, type: 3}
--- !u!114 &47534569 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2819079776940216040, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
m_PrefabInstance: {fileID: 47534568}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff0b44300107a9b4ca017d7805271ac4, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!224 &47534570 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 1631593940396857549, guid: 69cc62c186ba8fe44af29df72fb672ce,
type: 3}
m_PrefabInstance: {fileID: 47534568}
m_PrefabAsset: {fileID: 0}
--- !u!1 &48474840 stripped --- !u!1 &48474840 stripped
GameObject: GameObject:
m_CorrespondingSourceObject: {fileID: 1563627856476138492, guid: a9b42b99a195f5d4bb8584e402ba48c1, m_CorrespondingSourceObject: {fileID: 1563627856476138492, guid: a9b42b99a195f5d4bb8584e402ba48c1,
@ -100981,12 +100705,12 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_persistent: 1 _persistent: 1
<OceanInventory>k__BackingField: <OceanInventory>k__BackingField:
<InventoryItemList>k__BackingField: [] <ItemSlotList>k__BackingField: []
<WeightLimit>k__BackingField: 150 <WeightLimit>k__BackingField: 150
<CurrentTotalWeight>k__BackingField: 0 <CurrentTotalWeight>k__BackingField: 0
<IsOverWeight>k__BackingField: 0 <IsOverWeight>k__BackingField: 0
<CombatInventory>k__BackingField: <CombatInventory>k__BackingField:
<InventoryItemList>k__BackingField: [] <ItemSlotList>k__BackingField: []
<WeightLimit>k__BackingField: Infinity <WeightLimit>k__BackingField: Infinity
<CurrentTotalWeight>k__BackingField: 0 <CurrentTotalWeight>k__BackingField: 0
<IsOverWeight>k__BackingField: 0 <IsOverWeight>k__BackingField: 0
@ -124991,7 +124715,6 @@ RectTransform:
- {fileID: 805316000} - {fileID: 805316000}
- {fileID: 2140726697619417834} - {fileID: 2140726697619417834}
- {fileID: 834995726} - {fileID: 834995726}
- {fileID: 47534570}
m_Father: {fileID: 0} m_Father: {fileID: 0}
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}
@ -125024,7 +124747,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1e9bae7b916e44f429c86bbd698f0145, type: 3} m_Script: {fileID: 11500000, guid: 1e9bae7b916e44f429c86bbd698f0145, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
autoInit: 1 _persistent: 0
<ProcessBar>k__BackingField: <ProcessBar>k__BackingField:
<Obj>k__BackingField: {fileID: 868726319} <Obj>k__BackingField: {fileID: 868726319}
<Fill>k__BackingField: {fileID: 271798700} <Fill>k__BackingField: {fileID: 271798700}
@ -125038,7 +124761,7 @@ MonoBehaviour:
<DropItemGroupController>k__BackingField: {fileID: 805316001} <DropItemGroupController>k__BackingField: {fileID: 805316001}
<WeatherUi>k__BackingField: {fileID: 2977125648263133580} <WeatherUi>k__BackingField: {fileID: 2977125648263133580}
<OceanItemInventoryUi>k__BackingField: {fileID: 834995725} <OceanItemInventoryUi>k__BackingField: {fileID: 834995725}
<DiscardPopupUi>k__BackingField: {fileID: 47534569} popupUiList: []
--- !u!1001 &2105322227 --- !u!1001 &2105322227
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -128766,12 +128489,12 @@ PrefabInstance:
- target: {fileID: 5290961994918313947, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 5290961994918313947, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
value: 0.9898618 value: 0.9516782
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5290961994918313947, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 5290961994918313947, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
propertyPath: m_LocalRotation.y propertyPath: m_LocalRotation.y
value: 0.14203401 value: 0.307097
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5465818858273453228, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 5465818858273453228, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
@ -128821,17 +128544,17 @@ PrefabInstance:
- target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 966.08264 value: -37.29999
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 559.97156 value: 27.144754
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: -317.23975 value: -42.87467
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
@ -128896,17 +128619,17 @@ PrefabInstance:
- target: {fileID: 7878254740279761662, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 7878254740279761662, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
propertyPath: m_LocalScale.x propertyPath: m_LocalScale.x
value: 1.7320508 value: 0.5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 7878254740279761662, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 7878254740279761662, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
propertyPath: m_LocalScale.y propertyPath: m_LocalScale.y
value: 1.7320508 value: 0.5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 7878254740279761662, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 7878254740279761662, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}
propertyPath: m_LocalScale.z propertyPath: m_LocalScale.z
value: 1.7320508 value: 0.5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8211506079654505266, guid: be1d50d0f9a83864698b17f9e155db2d, - target: {fileID: 8211506079654505266, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3} type: 3}

View File

@ -108,15 +108,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""interactions"": ""Hold(duration=1)"", ""interactions"": ""Hold(duration=1)"",
""initialStateCheck"": false ""initialStateCheck"": false
}, },
{
""name"": ""SpawnInIsladnPlayer"",
""type"": ""Button"",
""id"": ""1558b861-5937-46f7-8887-3f322044049b"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{ {
""name"": ""CancelHold"", ""name"": ""CancelHold"",
""type"": ""Button"", ""type"": ""Button"",
@ -135,33 +126,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""interactions"": """", ""interactions"": """",
""initialStateCheck"": false ""initialStateCheck"": false
}, },
{
""name"": ""ActivateMainSkill"",
""type"": ""Button"",
""id"": ""bde6ac11-b3da-4cdd-a8a9-b11db01d47e3"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""ToggleLaunchMode"",
""type"": ""Button"",
""id"": ""2d9a2349-b5a2-4926-a6e8-41abf2e24a3a"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""LaunchCannon"",
""type"": ""Button"",
""id"": ""36407aa9-c5a9-4654-8452-ac5c52abf32f"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{ {
""name"": ""ShiftKey"", ""name"": ""ShiftKey"",
""type"": ""Button"", ""type"": ""Button"",
@ -180,15 +144,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""interactions"": """", ""interactions"": """",
""initialStateCheck"": false ""initialStateCheck"": false
}, },
{
""name"": ""ItemInventory"",
""type"": ""Button"",
""id"": ""1a1c112e-8c2b-47b5-b6ff-e7c113db0b1f"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{ {
""name"": ""Esc"", ""name"": ""Esc"",
""type"": ""Button"", ""type"": ""Button"",
@ -343,17 +298,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""isComposite"": false, ""isComposite"": false,
""isPartOfComposite"": false ""isPartOfComposite"": false
}, },
{
""name"": """",
""id"": ""95f474a1-8d98-4b85-8fd9-fa128951f69f"",
""path"": ""<Keyboard>/t"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""SpawnInIsladnPlayer"",
""isComposite"": false,
""isPartOfComposite"": false
},
{ {
""name"": """", ""name"": """",
""id"": ""3e2f42b7-0dd3-4c8b-bdd5-9be3254465c0"", ""id"": ""3e2f42b7-0dd3-4c8b-bdd5-9be3254465c0"",
@ -387,28 +331,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""isComposite"": false, ""isComposite"": false,
""isPartOfComposite"": false ""isPartOfComposite"": false
}, },
{
""name"": """",
""id"": ""f1364876-ede7-4831-b23e-532d6995031e"",
""path"": ""<Mouse>/rightButton"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""ActivateMainSkill"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""5b299ee0-2df8-4980-b81e-af5faccd0a8e"",
""path"": ""<Mouse>/leftButton"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""LaunchCannon"",
""isComposite"": false,
""isPartOfComposite"": false
},
{ {
""name"": """", ""name"": """",
""id"": ""8d33ba7e-c3f4-4c6d-bd6a-11a48f13fdb6"", ""id"": ""8d33ba7e-c3f4-4c6d-bd6a-11a48f13fdb6"",
@ -431,28 +353,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""isComposite"": false, ""isComposite"": false,
""isPartOfComposite"": false ""isPartOfComposite"": false
}, },
{
""name"": """",
""id"": ""9a454696-c796-4188-88db-0c0b82e77c98"",
""path"": ""<Mouse>/rightButton"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""ToggleLaunchMode"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""ba74fb0a-93f0-42ef-abb7-4086df2a23fe"",
""path"": ""<Keyboard>/i"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""ItemInventory"",
""isComposite"": false,
""isPartOfComposite"": false
},
{ {
""name"": """", ""name"": """",
""id"": ""9eacb0a0-9492-4531-9579-743e48d41b7e"", ""id"": ""9eacb0a0-9492-4531-9579-743e48d41b7e"",
@ -525,6 +425,226 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
} }
] ]
}, },
{
""name"": ""Ocean"",
""id"": ""b1d3abc9-6ca4-4c0f-a9c3-db8fd683f7c3"",
""actions"": [
{
""name"": ""Move"",
""type"": ""Value"",
""id"": ""67bfec04-e227-486b-b9a6-76c7dd885dcf"",
""expectedControlType"": ""Vector2"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
},
{
""name"": ""ShipBoost"",
""type"": ""Button"",
""id"": ""9e3ca776-4180-4ed4-9b93-912ce0040a12"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""HandleCannonLaunch"",
""type"": ""Button"",
""id"": ""2da9d549-9cb5-4226-9997-663a2b260f3b"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""ToggleLaunchMode"",
""type"": ""Button"",
""id"": ""94cfe30f-142f-421e-ac6c-5c7c67e412ad"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""CancelHold"",
""type"": ""Button"",
""id"": ""09a3f5df-e920-42fd-b7ff-6270ba8d2a5a"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": ""Hold(duration=1)"",
""initialStateCheck"": false
},
{
""name"": ""OpenItemInventory"",
""type"": ""Button"",
""id"": ""7599a756-4403-4fc2-954a-c177dde6cfd0"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
}
],
""bindings"": [
{
""name"": ""WASD"",
""id"": ""b77a8019-1df5-4ed5-9e9f-32cad21c709a"",
""path"": ""2DVector"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": true,
""isPartOfComposite"": false
},
{
""name"": ""up"",
""id"": ""4e96c00b-3a97-4ebe-bb91-e359f9cbb258"",
""path"": ""<Keyboard>/w"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""down"",
""id"": ""f80c2f4a-6807-43e6-87bd-81b6c8f5b1ef"",
""path"": ""<Keyboard>/s"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""left"",
""id"": ""0918dbc6-5f09-425f-8159-5758d23f2d38"",
""path"": ""<Keyboard>/a"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""right"",
""id"": ""f1945a0c-a660-431e-93ae-bd8dad361fc7"",
""path"": ""<Keyboard>/d"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": """",
""id"": ""66e86ba2-d9d2-4d0b-8060-96ad0d191de7"",
""path"": ""<Mouse>/leftButton"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""HandleCannonLaunch"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""5d84ecd2-06d2-4632-9fd8-5c02c7d7d8ce"",
""path"": ""<Mouse>/rightButton"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""ToggleLaunchMode"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""07cc8c59-38df-4c23-a43a-1e105479fb4b"",
""path"": ""<Keyboard>/f"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""CancelHold"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""a1aa7408-f7ca-439a-8fec-8acfe5b0e9cb"",
""path"": ""<Keyboard>/i"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""OpenItemInventory"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""f22421e8-4fe1-4c7d-9a10-c4caccf8cac2"",
""path"": ""<Keyboard>/shift"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""ShipBoost"",
""isComposite"": false,
""isPartOfComposite"": false
}
]
},
{
""name"": ""OceanUi"",
""id"": ""363ea7eb-2dd1-4e1a-8636-0c0045e59355"",
""actions"": [
{
""name"": ""Cancel"",
""type"": ""Button"",
""id"": ""0bd83ae0-d0f0-4908-816f-d546a142bd45"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""CloseItemInventory"",
""type"": ""Button"",
""id"": ""093627e8-52f3-4c7e-ab67-077d16b7e665"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
}
],
""bindings"": [
{
""name"": """",
""id"": ""ead9149b-b55d-4a91-a23d-fca10e8d925a"",
""path"": ""<Keyboard>/escape"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""Cancel"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""bbdb2092-10d3-4ae3-8075-3c4c51c58809"",
""path"": ""<Keyboard>/i"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""CloseItemInventory"",
""isComposite"": false,
""isPartOfComposite"": false
}
]
},
{ {
""name"": ""Combat"", ""name"": ""Combat"",
""id"": ""fcad259b-ca44-46e3-b008-1297fa7be828"", ""id"": ""fcad259b-ca44-46e3-b008-1297fa7be828"",
@ -778,20 +898,27 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
m_Player_Cancel = m_Player.FindAction("Cancel", throwIfNotFound: true); m_Player_Cancel = m_Player.FindAction("Cancel", throwIfNotFound: true);
m_Player_Targeting = m_Player.FindAction("Targeting", throwIfNotFound: true); m_Player_Targeting = m_Player.FindAction("Targeting", throwIfNotFound: true);
m_Player_TargetingHold = m_Player.FindAction("TargetingHold", throwIfNotFound: true); m_Player_TargetingHold = m_Player.FindAction("TargetingHold", throwIfNotFound: true);
m_Player_SpawnInIsladnPlayer = m_Player.FindAction("SpawnInIsladnPlayer", throwIfNotFound: true);
m_Player_CancelHold = m_Player.FindAction("CancelHold", throwIfNotFound: true); m_Player_CancelHold = m_Player.FindAction("CancelHold", throwIfNotFound: true);
m_Player_Attack = m_Player.FindAction("Attack", throwIfNotFound: true); m_Player_Attack = m_Player.FindAction("Attack", throwIfNotFound: true);
m_Player_ActivateMainSkill = m_Player.FindAction("ActivateMainSkill", throwIfNotFound: true);
m_Player_ToggleLaunchMode = m_Player.FindAction("ToggleLaunchMode", throwIfNotFound: true);
m_Player_LaunchCannon = m_Player.FindAction("LaunchCannon", throwIfNotFound: true);
m_Player_ShiftKey = m_Player.FindAction("ShiftKey", throwIfNotFound: true); m_Player_ShiftKey = m_Player.FindAction("ShiftKey", throwIfNotFound: true);
m_Player_BuildMode = m_Player.FindAction("BuildMode", throwIfNotFound: true); m_Player_BuildMode = m_Player.FindAction("BuildMode", throwIfNotFound: true);
m_Player_ItemInventory = m_Player.FindAction("ItemInventory", throwIfNotFound: true);
m_Player_Esc = m_Player.FindAction("Esc", throwIfNotFound: true); m_Player_Esc = m_Player.FindAction("Esc", throwIfNotFound: true);
// Camera // Camera
m_Camera = asset.FindActionMap("Camera", throwIfNotFound: true); m_Camera = asset.FindActionMap("Camera", throwIfNotFound: true);
m_Camera_Zoom = m_Camera.FindAction("Zoom", throwIfNotFound: true); m_Camera_Zoom = m_Camera.FindAction("Zoom", throwIfNotFound: true);
m_Camera_Rotate = m_Camera.FindAction("Rotate", throwIfNotFound: true); m_Camera_Rotate = m_Camera.FindAction("Rotate", throwIfNotFound: true);
// Ocean
m_Ocean = asset.FindActionMap("Ocean", throwIfNotFound: true);
m_Ocean_Move = m_Ocean.FindAction("Move", throwIfNotFound: true);
m_Ocean_ShipBoost = m_Ocean.FindAction("ShipBoost", throwIfNotFound: true);
m_Ocean_HandleCannonLaunch = m_Ocean.FindAction("HandleCannonLaunch", throwIfNotFound: true);
m_Ocean_ToggleLaunchMode = m_Ocean.FindAction("ToggleLaunchMode", throwIfNotFound: true);
m_Ocean_CancelHold = m_Ocean.FindAction("CancelHold", throwIfNotFound: true);
m_Ocean_OpenItemInventory = m_Ocean.FindAction("OpenItemInventory", throwIfNotFound: true);
// OceanUi
m_OceanUi = asset.FindActionMap("OceanUi", throwIfNotFound: true);
m_OceanUi_Cancel = m_OceanUi.FindAction("Cancel", throwIfNotFound: true);
m_OceanUi_CloseItemInventory = m_OceanUi.FindAction("CloseItemInventory", throwIfNotFound: true);
// Combat // Combat
m_Combat = asset.FindActionMap("Combat", throwIfNotFound: true); m_Combat = asset.FindActionMap("Combat", throwIfNotFound: true);
m_Combat_Move = m_Combat.FindAction("Move", throwIfNotFound: true); m_Combat_Move = m_Combat.FindAction("Move", throwIfNotFound: true);
@ -873,15 +1000,10 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
private readonly InputAction m_Player_Cancel; private readonly InputAction m_Player_Cancel;
private readonly InputAction m_Player_Targeting; private readonly InputAction m_Player_Targeting;
private readonly InputAction m_Player_TargetingHold; private readonly InputAction m_Player_TargetingHold;
private readonly InputAction m_Player_SpawnInIsladnPlayer;
private readonly InputAction m_Player_CancelHold; private readonly InputAction m_Player_CancelHold;
private readonly InputAction m_Player_Attack; private readonly InputAction m_Player_Attack;
private readonly InputAction m_Player_ActivateMainSkill;
private readonly InputAction m_Player_ToggleLaunchMode;
private readonly InputAction m_Player_LaunchCannon;
private readonly InputAction m_Player_ShiftKey; private readonly InputAction m_Player_ShiftKey;
private readonly InputAction m_Player_BuildMode; private readonly InputAction m_Player_BuildMode;
private readonly InputAction m_Player_ItemInventory;
private readonly InputAction m_Player_Esc; private readonly InputAction m_Player_Esc;
public struct PlayerActions public struct PlayerActions
{ {
@ -896,15 +1018,10 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
public InputAction @Cancel => m_Wrapper.m_Player_Cancel; public InputAction @Cancel => m_Wrapper.m_Player_Cancel;
public InputAction @Targeting => m_Wrapper.m_Player_Targeting; public InputAction @Targeting => m_Wrapper.m_Player_Targeting;
public InputAction @TargetingHold => m_Wrapper.m_Player_TargetingHold; public InputAction @TargetingHold => m_Wrapper.m_Player_TargetingHold;
public InputAction @SpawnInIsladnPlayer => m_Wrapper.m_Player_SpawnInIsladnPlayer;
public InputAction @CancelHold => m_Wrapper.m_Player_CancelHold; public InputAction @CancelHold => m_Wrapper.m_Player_CancelHold;
public InputAction @Attack => m_Wrapper.m_Player_Attack; public InputAction @Attack => m_Wrapper.m_Player_Attack;
public InputAction @ActivateMainSkill => m_Wrapper.m_Player_ActivateMainSkill;
public InputAction @ToggleLaunchMode => m_Wrapper.m_Player_ToggleLaunchMode;
public InputAction @LaunchCannon => m_Wrapper.m_Player_LaunchCannon;
public InputAction @ShiftKey => m_Wrapper.m_Player_ShiftKey; public InputAction @ShiftKey => m_Wrapper.m_Player_ShiftKey;
public InputAction @BuildMode => m_Wrapper.m_Player_BuildMode; public InputAction @BuildMode => m_Wrapper.m_Player_BuildMode;
public InputAction @ItemInventory => m_Wrapper.m_Player_ItemInventory;
public InputAction @Esc => m_Wrapper.m_Player_Esc; public InputAction @Esc => m_Wrapper.m_Player_Esc;
public InputActionMap Get() { return m_Wrapper.m_Player; } public InputActionMap Get() { return m_Wrapper.m_Player; }
public void Enable() { Get().Enable(); } public void Enable() { Get().Enable(); }
@ -942,33 +1059,18 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@TargetingHold.started += instance.OnTargetingHold; @TargetingHold.started += instance.OnTargetingHold;
@TargetingHold.performed += instance.OnTargetingHold; @TargetingHold.performed += instance.OnTargetingHold;
@TargetingHold.canceled += instance.OnTargetingHold; @TargetingHold.canceled += instance.OnTargetingHold;
@SpawnInIsladnPlayer.started += instance.OnSpawnInIsladnPlayer;
@SpawnInIsladnPlayer.performed += instance.OnSpawnInIsladnPlayer;
@SpawnInIsladnPlayer.canceled += instance.OnSpawnInIsladnPlayer;
@CancelHold.started += instance.OnCancelHold; @CancelHold.started += instance.OnCancelHold;
@CancelHold.performed += instance.OnCancelHold; @CancelHold.performed += instance.OnCancelHold;
@CancelHold.canceled += instance.OnCancelHold; @CancelHold.canceled += instance.OnCancelHold;
@Attack.started += instance.OnAttack; @Attack.started += instance.OnAttack;
@Attack.performed += instance.OnAttack; @Attack.performed += instance.OnAttack;
@Attack.canceled += instance.OnAttack; @Attack.canceled += instance.OnAttack;
@ActivateMainSkill.started += instance.OnActivateMainSkill;
@ActivateMainSkill.performed += instance.OnActivateMainSkill;
@ActivateMainSkill.canceled += instance.OnActivateMainSkill;
@ToggleLaunchMode.started += instance.OnToggleLaunchMode;
@ToggleLaunchMode.performed += instance.OnToggleLaunchMode;
@ToggleLaunchMode.canceled += instance.OnToggleLaunchMode;
@LaunchCannon.started += instance.OnLaunchCannon;
@LaunchCannon.performed += instance.OnLaunchCannon;
@LaunchCannon.canceled += instance.OnLaunchCannon;
@ShiftKey.started += instance.OnShiftKey; @ShiftKey.started += instance.OnShiftKey;
@ShiftKey.performed += instance.OnShiftKey; @ShiftKey.performed += instance.OnShiftKey;
@ShiftKey.canceled += instance.OnShiftKey; @ShiftKey.canceled += instance.OnShiftKey;
@BuildMode.started += instance.OnBuildMode; @BuildMode.started += instance.OnBuildMode;
@BuildMode.performed += instance.OnBuildMode; @BuildMode.performed += instance.OnBuildMode;
@BuildMode.canceled += instance.OnBuildMode; @BuildMode.canceled += instance.OnBuildMode;
@ItemInventory.started += instance.OnItemInventory;
@ItemInventory.performed += instance.OnItemInventory;
@ItemInventory.canceled += instance.OnItemInventory;
@Esc.started += instance.OnEsc; @Esc.started += instance.OnEsc;
@Esc.performed += instance.OnEsc; @Esc.performed += instance.OnEsc;
@Esc.canceled += instance.OnEsc; @Esc.canceled += instance.OnEsc;
@ -1003,33 +1105,18 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@TargetingHold.started -= instance.OnTargetingHold; @TargetingHold.started -= instance.OnTargetingHold;
@TargetingHold.performed -= instance.OnTargetingHold; @TargetingHold.performed -= instance.OnTargetingHold;
@TargetingHold.canceled -= instance.OnTargetingHold; @TargetingHold.canceled -= instance.OnTargetingHold;
@SpawnInIsladnPlayer.started -= instance.OnSpawnInIsladnPlayer;
@SpawnInIsladnPlayer.performed -= instance.OnSpawnInIsladnPlayer;
@SpawnInIsladnPlayer.canceled -= instance.OnSpawnInIsladnPlayer;
@CancelHold.started -= instance.OnCancelHold; @CancelHold.started -= instance.OnCancelHold;
@CancelHold.performed -= instance.OnCancelHold; @CancelHold.performed -= instance.OnCancelHold;
@CancelHold.canceled -= instance.OnCancelHold; @CancelHold.canceled -= instance.OnCancelHold;
@Attack.started -= instance.OnAttack; @Attack.started -= instance.OnAttack;
@Attack.performed -= instance.OnAttack; @Attack.performed -= instance.OnAttack;
@Attack.canceled -= instance.OnAttack; @Attack.canceled -= instance.OnAttack;
@ActivateMainSkill.started -= instance.OnActivateMainSkill;
@ActivateMainSkill.performed -= instance.OnActivateMainSkill;
@ActivateMainSkill.canceled -= instance.OnActivateMainSkill;
@ToggleLaunchMode.started -= instance.OnToggleLaunchMode;
@ToggleLaunchMode.performed -= instance.OnToggleLaunchMode;
@ToggleLaunchMode.canceled -= instance.OnToggleLaunchMode;
@LaunchCannon.started -= instance.OnLaunchCannon;
@LaunchCannon.performed -= instance.OnLaunchCannon;
@LaunchCannon.canceled -= instance.OnLaunchCannon;
@ShiftKey.started -= instance.OnShiftKey; @ShiftKey.started -= instance.OnShiftKey;
@ShiftKey.performed -= instance.OnShiftKey; @ShiftKey.performed -= instance.OnShiftKey;
@ShiftKey.canceled -= instance.OnShiftKey; @ShiftKey.canceled -= instance.OnShiftKey;
@BuildMode.started -= instance.OnBuildMode; @BuildMode.started -= instance.OnBuildMode;
@BuildMode.performed -= instance.OnBuildMode; @BuildMode.performed -= instance.OnBuildMode;
@BuildMode.canceled -= instance.OnBuildMode; @BuildMode.canceled -= instance.OnBuildMode;
@ItemInventory.started -= instance.OnItemInventory;
@ItemInventory.performed -= instance.OnItemInventory;
@ItemInventory.canceled -= instance.OnItemInventory;
@Esc.started -= instance.OnEsc; @Esc.started -= instance.OnEsc;
@Esc.performed -= instance.OnEsc; @Esc.performed -= instance.OnEsc;
@Esc.canceled -= instance.OnEsc; @Esc.canceled -= instance.OnEsc;
@ -1105,6 +1192,146 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
} }
public CameraActions @Camera => new CameraActions(this); public CameraActions @Camera => new CameraActions(this);
// Ocean
private readonly InputActionMap m_Ocean;
private List<IOceanActions> m_OceanActionsCallbackInterfaces = new List<IOceanActions>();
private readonly InputAction m_Ocean_Move;
private readonly InputAction m_Ocean_ShipBoost;
private readonly InputAction m_Ocean_HandleCannonLaunch;
private readonly InputAction m_Ocean_ToggleLaunchMode;
private readonly InputAction m_Ocean_CancelHold;
private readonly InputAction m_Ocean_OpenItemInventory;
public struct OceanActions
{
private @BlueWater m_Wrapper;
public OceanActions(@BlueWater wrapper) { m_Wrapper = wrapper; }
public InputAction @Move => m_Wrapper.m_Ocean_Move;
public InputAction @ShipBoost => m_Wrapper.m_Ocean_ShipBoost;
public InputAction @HandleCannonLaunch => m_Wrapper.m_Ocean_HandleCannonLaunch;
public InputAction @ToggleLaunchMode => m_Wrapper.m_Ocean_ToggleLaunchMode;
public InputAction @CancelHold => m_Wrapper.m_Ocean_CancelHold;
public InputAction @OpenItemInventory => m_Wrapper.m_Ocean_OpenItemInventory;
public InputActionMap Get() { return m_Wrapper.m_Ocean; }
public void Enable() { Get().Enable(); }
public void Disable() { Get().Disable(); }
public bool enabled => Get().enabled;
public static implicit operator InputActionMap(OceanActions set) { return set.Get(); }
public void AddCallbacks(IOceanActions instance)
{
if (instance == null || m_Wrapper.m_OceanActionsCallbackInterfaces.Contains(instance)) return;
m_Wrapper.m_OceanActionsCallbackInterfaces.Add(instance);
@Move.started += instance.OnMove;
@Move.performed += instance.OnMove;
@Move.canceled += instance.OnMove;
@ShipBoost.started += instance.OnShipBoost;
@ShipBoost.performed += instance.OnShipBoost;
@ShipBoost.canceled += instance.OnShipBoost;
@HandleCannonLaunch.started += instance.OnHandleCannonLaunch;
@HandleCannonLaunch.performed += instance.OnHandleCannonLaunch;
@HandleCannonLaunch.canceled += instance.OnHandleCannonLaunch;
@ToggleLaunchMode.started += instance.OnToggleLaunchMode;
@ToggleLaunchMode.performed += instance.OnToggleLaunchMode;
@ToggleLaunchMode.canceled += instance.OnToggleLaunchMode;
@CancelHold.started += instance.OnCancelHold;
@CancelHold.performed += instance.OnCancelHold;
@CancelHold.canceled += instance.OnCancelHold;
@OpenItemInventory.started += instance.OnOpenItemInventory;
@OpenItemInventory.performed += instance.OnOpenItemInventory;
@OpenItemInventory.canceled += instance.OnOpenItemInventory;
}
private void UnregisterCallbacks(IOceanActions instance)
{
@Move.started -= instance.OnMove;
@Move.performed -= instance.OnMove;
@Move.canceled -= instance.OnMove;
@ShipBoost.started -= instance.OnShipBoost;
@ShipBoost.performed -= instance.OnShipBoost;
@ShipBoost.canceled -= instance.OnShipBoost;
@HandleCannonLaunch.started -= instance.OnHandleCannonLaunch;
@HandleCannonLaunch.performed -= instance.OnHandleCannonLaunch;
@HandleCannonLaunch.canceled -= instance.OnHandleCannonLaunch;
@ToggleLaunchMode.started -= instance.OnToggleLaunchMode;
@ToggleLaunchMode.performed -= instance.OnToggleLaunchMode;
@ToggleLaunchMode.canceled -= instance.OnToggleLaunchMode;
@CancelHold.started -= instance.OnCancelHold;
@CancelHold.performed -= instance.OnCancelHold;
@CancelHold.canceled -= instance.OnCancelHold;
@OpenItemInventory.started -= instance.OnOpenItemInventory;
@OpenItemInventory.performed -= instance.OnOpenItemInventory;
@OpenItemInventory.canceled -= instance.OnOpenItemInventory;
}
public void RemoveCallbacks(IOceanActions instance)
{
if (m_Wrapper.m_OceanActionsCallbackInterfaces.Remove(instance))
UnregisterCallbacks(instance);
}
public void SetCallbacks(IOceanActions instance)
{
foreach (var item in m_Wrapper.m_OceanActionsCallbackInterfaces)
UnregisterCallbacks(item);
m_Wrapper.m_OceanActionsCallbackInterfaces.Clear();
AddCallbacks(instance);
}
}
public OceanActions @Ocean => new OceanActions(this);
// OceanUi
private readonly InputActionMap m_OceanUi;
private List<IOceanUiActions> m_OceanUiActionsCallbackInterfaces = new List<IOceanUiActions>();
private readonly InputAction m_OceanUi_Cancel;
private readonly InputAction m_OceanUi_CloseItemInventory;
public struct OceanUiActions
{
private @BlueWater m_Wrapper;
public OceanUiActions(@BlueWater wrapper) { m_Wrapper = wrapper; }
public InputAction @Cancel => m_Wrapper.m_OceanUi_Cancel;
public InputAction @CloseItemInventory => m_Wrapper.m_OceanUi_CloseItemInventory;
public InputActionMap Get() { return m_Wrapper.m_OceanUi; }
public void Enable() { Get().Enable(); }
public void Disable() { Get().Disable(); }
public bool enabled => Get().enabled;
public static implicit operator InputActionMap(OceanUiActions set) { return set.Get(); }
public void AddCallbacks(IOceanUiActions instance)
{
if (instance == null || m_Wrapper.m_OceanUiActionsCallbackInterfaces.Contains(instance)) return;
m_Wrapper.m_OceanUiActionsCallbackInterfaces.Add(instance);
@Cancel.started += instance.OnCancel;
@Cancel.performed += instance.OnCancel;
@Cancel.canceled += instance.OnCancel;
@CloseItemInventory.started += instance.OnCloseItemInventory;
@CloseItemInventory.performed += instance.OnCloseItemInventory;
@CloseItemInventory.canceled += instance.OnCloseItemInventory;
}
private void UnregisterCallbacks(IOceanUiActions instance)
{
@Cancel.started -= instance.OnCancel;
@Cancel.performed -= instance.OnCancel;
@Cancel.canceled -= instance.OnCancel;
@CloseItemInventory.started -= instance.OnCloseItemInventory;
@CloseItemInventory.performed -= instance.OnCloseItemInventory;
@CloseItemInventory.canceled -= instance.OnCloseItemInventory;
}
public void RemoveCallbacks(IOceanUiActions instance)
{
if (m_Wrapper.m_OceanUiActionsCallbackInterfaces.Remove(instance))
UnregisterCallbacks(instance);
}
public void SetCallbacks(IOceanUiActions instance)
{
foreach (var item in m_Wrapper.m_OceanUiActionsCallbackInterfaces)
UnregisterCallbacks(item);
m_Wrapper.m_OceanUiActionsCallbackInterfaces.Clear();
AddCallbacks(instance);
}
}
public OceanUiActions @OceanUi => new OceanUiActions(this);
// Combat // Combat
private readonly InputActionMap m_Combat; private readonly InputActionMap m_Combat;
private List<ICombatActions> m_CombatActionsCallbackInterfaces = new List<ICombatActions>(); private List<ICombatActions> m_CombatActionsCallbackInterfaces = new List<ICombatActions>();
@ -1265,15 +1492,10 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
void OnCancel(InputAction.CallbackContext context); void OnCancel(InputAction.CallbackContext context);
void OnTargeting(InputAction.CallbackContext context); void OnTargeting(InputAction.CallbackContext context);
void OnTargetingHold(InputAction.CallbackContext context); void OnTargetingHold(InputAction.CallbackContext context);
void OnSpawnInIsladnPlayer(InputAction.CallbackContext context);
void OnCancelHold(InputAction.CallbackContext context); void OnCancelHold(InputAction.CallbackContext context);
void OnAttack(InputAction.CallbackContext context); void OnAttack(InputAction.CallbackContext context);
void OnActivateMainSkill(InputAction.CallbackContext context);
void OnToggleLaunchMode(InputAction.CallbackContext context);
void OnLaunchCannon(InputAction.CallbackContext context);
void OnShiftKey(InputAction.CallbackContext context); void OnShiftKey(InputAction.CallbackContext context);
void OnBuildMode(InputAction.CallbackContext context); void OnBuildMode(InputAction.CallbackContext context);
void OnItemInventory(InputAction.CallbackContext context);
void OnEsc(InputAction.CallbackContext context); void OnEsc(InputAction.CallbackContext context);
} }
public interface ICameraActions public interface ICameraActions
@ -1281,6 +1503,20 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
void OnZoom(InputAction.CallbackContext context); void OnZoom(InputAction.CallbackContext context);
void OnRotate(InputAction.CallbackContext context); void OnRotate(InputAction.CallbackContext context);
} }
public interface IOceanActions
{
void OnMove(InputAction.CallbackContext context);
void OnShipBoost(InputAction.CallbackContext context);
void OnHandleCannonLaunch(InputAction.CallbackContext context);
void OnToggleLaunchMode(InputAction.CallbackContext context);
void OnCancelHold(InputAction.CallbackContext context);
void OnOpenItemInventory(InputAction.CallbackContext context);
}
public interface IOceanUiActions
{
void OnCancel(InputAction.CallbackContext context);
void OnCloseItemInventory(InputAction.CallbackContext context);
}
public interface ICombatActions public interface ICombatActions
{ {
void OnMove(InputAction.CallbackContext context); void OnMove(InputAction.CallbackContext context);

View File

@ -86,15 +86,6 @@
"interactions": "Hold(duration=1)", "interactions": "Hold(duration=1)",
"initialStateCheck": false "initialStateCheck": false
}, },
{
"name": "SpawnInIsladnPlayer",
"type": "Button",
"id": "1558b861-5937-46f7-8887-3f322044049b",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{ {
"name": "CancelHold", "name": "CancelHold",
"type": "Button", "type": "Button",
@ -113,33 +104,6 @@
"interactions": "", "interactions": "",
"initialStateCheck": false "initialStateCheck": false
}, },
{
"name": "ActivateMainSkill",
"type": "Button",
"id": "bde6ac11-b3da-4cdd-a8a9-b11db01d47e3",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "ToggleLaunchMode",
"type": "Button",
"id": "2d9a2349-b5a2-4926-a6e8-41abf2e24a3a",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "LaunchCannon",
"type": "Button",
"id": "36407aa9-c5a9-4654-8452-ac5c52abf32f",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{ {
"name": "ShiftKey", "name": "ShiftKey",
"type": "Button", "type": "Button",
@ -158,15 +122,6 @@
"interactions": "", "interactions": "",
"initialStateCheck": false "initialStateCheck": false
}, },
{
"name": "ItemInventory",
"type": "Button",
"id": "1a1c112e-8c2b-47b5-b6ff-e7c113db0b1f",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{ {
"name": "Esc", "name": "Esc",
"type": "Button", "type": "Button",
@ -321,17 +276,6 @@
"isComposite": false, "isComposite": false,
"isPartOfComposite": false "isPartOfComposite": false
}, },
{
"name": "",
"id": "95f474a1-8d98-4b85-8fd9-fa128951f69f",
"path": "<Keyboard>/t",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "SpawnInIsladnPlayer",
"isComposite": false,
"isPartOfComposite": false
},
{ {
"name": "", "name": "",
"id": "3e2f42b7-0dd3-4c8b-bdd5-9be3254465c0", "id": "3e2f42b7-0dd3-4c8b-bdd5-9be3254465c0",
@ -365,28 +309,6 @@
"isComposite": false, "isComposite": false,
"isPartOfComposite": false "isPartOfComposite": false
}, },
{
"name": "",
"id": "f1364876-ede7-4831-b23e-532d6995031e",
"path": "<Mouse>/rightButton",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "ActivateMainSkill",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "5b299ee0-2df8-4980-b81e-af5faccd0a8e",
"path": "<Mouse>/leftButton",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "LaunchCannon",
"isComposite": false,
"isPartOfComposite": false
},
{ {
"name": "", "name": "",
"id": "8d33ba7e-c3f4-4c6d-bd6a-11a48f13fdb6", "id": "8d33ba7e-c3f4-4c6d-bd6a-11a48f13fdb6",
@ -409,28 +331,6 @@
"isComposite": false, "isComposite": false,
"isPartOfComposite": false "isPartOfComposite": false
}, },
{
"name": "",
"id": "9a454696-c796-4188-88db-0c0b82e77c98",
"path": "<Mouse>/rightButton",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "ToggleLaunchMode",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "ba74fb0a-93f0-42ef-abb7-4086df2a23fe",
"path": "<Keyboard>/i",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "ItemInventory",
"isComposite": false,
"isPartOfComposite": false
},
{ {
"name": "", "name": "",
"id": "9eacb0a0-9492-4531-9579-743e48d41b7e", "id": "9eacb0a0-9492-4531-9579-743e48d41b7e",
@ -503,6 +403,226 @@
} }
] ]
}, },
{
"name": "Ocean",
"id": "b1d3abc9-6ca4-4c0f-a9c3-db8fd683f7c3",
"actions": [
{
"name": "Move",
"type": "Value",
"id": "67bfec04-e227-486b-b9a6-76c7dd885dcf",
"expectedControlType": "Vector2",
"processors": "",
"interactions": "",
"initialStateCheck": true
},
{
"name": "ShipBoost",
"type": "Button",
"id": "9e3ca776-4180-4ed4-9b93-912ce0040a12",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "HandleCannonLaunch",
"type": "Button",
"id": "2da9d549-9cb5-4226-9997-663a2b260f3b",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "ToggleLaunchMode",
"type": "Button",
"id": "94cfe30f-142f-421e-ac6c-5c7c67e412ad",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "CancelHold",
"type": "Button",
"id": "09a3f5df-e920-42fd-b7ff-6270ba8d2a5a",
"expectedControlType": "Button",
"processors": "",
"interactions": "Hold(duration=1)",
"initialStateCheck": false
},
{
"name": "OpenItemInventory",
"type": "Button",
"id": "7599a756-4403-4fc2-954a-c177dde6cfd0",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
}
],
"bindings": [
{
"name": "WASD",
"id": "b77a8019-1df5-4ed5-9e9f-32cad21c709a",
"path": "2DVector",
"interactions": "",
"processors": "",
"groups": "",
"action": "Move",
"isComposite": true,
"isPartOfComposite": false
},
{
"name": "up",
"id": "4e96c00b-3a97-4ebe-bb91-e359f9cbb258",
"path": "<Keyboard>/w",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Move",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "down",
"id": "f80c2f4a-6807-43e6-87bd-81b6c8f5b1ef",
"path": "<Keyboard>/s",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Move",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "left",
"id": "0918dbc6-5f09-425f-8159-5758d23f2d38",
"path": "<Keyboard>/a",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Move",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "right",
"id": "f1945a0c-a660-431e-93ae-bd8dad361fc7",
"path": "<Keyboard>/d",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Move",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "",
"id": "66e86ba2-d9d2-4d0b-8060-96ad0d191de7",
"path": "<Mouse>/leftButton",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "HandleCannonLaunch",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "5d84ecd2-06d2-4632-9fd8-5c02c7d7d8ce",
"path": "<Mouse>/rightButton",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "ToggleLaunchMode",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "07cc8c59-38df-4c23-a43a-1e105479fb4b",
"path": "<Keyboard>/f",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "CancelHold",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "a1aa7408-f7ca-439a-8fec-8acfe5b0e9cb",
"path": "<Keyboard>/i",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "OpenItemInventory",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "f22421e8-4fe1-4c7d-9a10-c4caccf8cac2",
"path": "<Keyboard>/shift",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "ShipBoost",
"isComposite": false,
"isPartOfComposite": false
}
]
},
{
"name": "OceanUi",
"id": "363ea7eb-2dd1-4e1a-8636-0c0045e59355",
"actions": [
{
"name": "Cancel",
"type": "Button",
"id": "0bd83ae0-d0f0-4908-816f-d546a142bd45",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "CloseItemInventory",
"type": "Button",
"id": "093627e8-52f3-4c7e-ab67-077d16b7e665",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
}
],
"bindings": [
{
"name": "",
"id": "ead9149b-b55d-4a91-a23d-fca10e8d925a",
"path": "<Keyboard>/escape",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Cancel",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "bbdb2092-10d3-4ae3-8075-3c4c51c58809",
"path": "<Keyboard>/i",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "CloseItemInventory",
"isComposite": false,
"isPartOfComposite": false
}
]
},
{ {
"name": "Combat", "name": "Combat",
"id": "fcad259b-ca44-46e3-b008-1297fa7be828", "id": "fcad259b-ca44-46e3-b008-1297fa7be828",

View File

@ -219,7 +219,7 @@ namespace BlueWaterProject
if (showWaterEffect) if (showWaterEffect)
{ {
var screenPos = CameraManager.Inst.MainCam.WorldToScreenPoint(fishSpot.position); var screenPos = CameraManager.Inst.MainCam.WorldToScreenPoint(fishSpot.position);
itemsLoot = UiManager.Inst.OceanUi.MainCanvas.transform.Find("ItemsLoot"); itemsLoot = OceanUiManager.Inst.MainCanvas.transform.Find("ItemsLoot");
contentUi = Instantiate(contentUiPrefab, screenPos, Quaternion.identity, itemsLoot).GetComponent<ItemUiController>(); contentUi = Instantiate(contentUiPrefab, screenPos, Quaternion.identity, itemsLoot).GetComponent<ItemUiController>();
contentUi.Init(fishSpot); contentUi.Init(fishSpot);
} }

View File

@ -1,66 +0,0 @@
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class BossController : MonoBehaviour
{
[field: SerializeField] public FieldBoss FieldBossPrefab { get; set; }
[field: SerializeField] public Transform BossSpawnTransform { get; set; }
[field: SerializeField] public Transform PlayerSpawnTransform { get; set; }
[SerializeField] private Transform bossInstantiateLocation;
private FieldBoss instantiatedBoss;
private void Start()
{
InitStart();
}
private void InitStart()
{
if (!instantiatedBoss)
{
instantiatedBoss = Instantiate(FieldBossPrefab, BossSpawnTransform.position, Quaternion.identity, bossInstantiateLocation);
}
instantiatedBoss.gameObject.SetActive(false);
}
public void ResetBoss()
{
if (instantiatedBoss)
{
if (instantiatedBoss.gameObject.activeSelf)
{
Destroy(instantiatedBoss.gameObject);
}
}
UiManager.Inst.CombatUi.FieldBossHpSlider.SetActiveHpSlider(false);
}
public void Respawn()
{
if (instantiatedBoss)
{
if (instantiatedBoss.gameObject.activeSelf)
{
Destroy(instantiatedBoss.gameObject);
}
else
{
instantiatedBoss.transform.position = BossSpawnTransform.position;
instantiatedBoss.gameObject.SetActive(true);
UiManager.Inst.CombatUi.FieldBossHpSlider.SetHpSlider(instantiatedBoss.MaxHp, instantiatedBoss.Name);
instantiatedBoss.FieldBossHpSlider = UiManager.Inst.CombatUi.FieldBossHpSlider;
return;
}
}
instantiatedBoss = Instantiate(FieldBossPrefab, BossSpawnTransform.position, Quaternion.identity, bossInstantiateLocation);
UiManager.Inst.CombatUi.FieldBossHpSlider.SetHpSlider(instantiatedBoss.MaxHp, instantiatedBoss.Name);
instantiatedBoss.FieldBossHpSlider = UiManager.Inst.CombatUi.FieldBossHpSlider;
}
}
}

View File

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

View File

@ -1,47 +0,0 @@
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class BossPortal : MonoBehaviour
{
[SerializeField] private GameObject playerSpawnPosObj;
[SerializeField] private BossController bossController;
[SerializeField] private Collider[] bossEntranceObstacles;
private bool isIn;
private void Start()
{
BossEntranceSetActive(false);
}
private void OnTriggerEnter(Collider other)
{
if (isIn || !other.CompareTag("CombatPlayer")) return;
isIn = true;
if (playerSpawnPosObj)
{
other.transform.position = playerSpawnPosObj.transform.position;
}
BossEntranceSetActive(true);
bossController.Respawn();
}
private void BossEntranceSetActive(bool value)
{
foreach (var entrance in bossEntranceObstacles)
{
entrance.gameObject.SetActive(value);
}
}
public void ResetPortal()
{
isIn = false;
BossEntranceSetActive(false);
bossController.ResetBoss();
}
}
}

View File

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

View File

@ -178,7 +178,7 @@ namespace BlueWaterProject
var myVisualLook = MyComponents.visualLook; var myVisualLook = MyComponents.visualLook;
var myAnimator = MyComponents.animator; var myAnimator = MyComponents.animator;
var targetLayer = MyCharacterOption.targetLayer; var targetLayer = MyCharacterOption.targetLayer;
var ui = UiManager.Inst.CombatUi.MainSkillUi; var ui = CombatUiManager.Inst.MainSkillUi;
ui.gameObject.SetActive(true); ui.gameObject.SetActive(true);
mainSkill.SkillInputData.InitInputData(transform, myCollider, myRb, null, myVisualLook, myAnimator, null, targetLayer, ui); mainSkill.SkillInputData.InitInputData(transform, myCollider, myRb, null, myVisualLook, myAnimator, null, targetLayer, ui);
@ -190,7 +190,7 @@ namespace BlueWaterProject
{ {
MyCurrentValue.hitColliders = new Collider[MyCharacterOption.maxHitNum]; MyCurrentValue.hitColliders = new Collider[MyCharacterOption.maxHitNum];
MyComponents.hpSlider = Instantiate(MyComponents.hpSlider, Vector3.zero, Quaternion.identity, MyComponents.hpSlider = Instantiate(MyComponents.hpSlider, Vector3.zero, Quaternion.identity,
UiManager.Inst.CombatUi.WorldSpaceCanvas.transform); CombatUiManager.Inst.WorldSpaceCanvas.transform);
MyComponents.hpSlider.SetHpSlider(transform, MyCharacterOption.maxHp); MyComponents.hpSlider.SetHpSlider(transform, MyCharacterOption.maxHp);
SetCurrentHp(MyCharacterOption.maxHp); SetCurrentHp(MyCharacterOption.maxHp);
} }

View File

@ -168,6 +168,7 @@ namespace BlueWaterProject
private IEnumerator SecondComboAttackCoroutine() private IEnumerator SecondComboAttackCoroutine()
{ {
iAnimationStateController.ResetAnimationSpeed();
IsComboAttackPossible = false; IsComboAttackPossible = false;
CurrentComboAttackCount = 2; CurrentComboAttackCount = 2;

View File

@ -7,18 +7,16 @@ namespace BlueWaterProject
public class CombatHealth : MonoBehaviour, IDamageable public class CombatHealth : MonoBehaviour, IDamageable
{ {
// Components // Components
private SpriteRenderer spriteRenderer; private SpriteRenderer flashWhiteSpriteRenderer;
private HeartHpUi heartHpUi;
// Health // Health
[SerializeField] private int maxHp; [SerializeField] private int maxHp;
[SerializeField] private int currentHp; [SerializeField] private int currentHp;
[SerializeField] private float takeDamageCoolDown = 0.5f;
// Interfaces
private IDashable iDashable;
// Variables // Variables
private WaitForSeconds flashWhiteWaitTime; private WaitForSeconds flashWhiteWaitTime;
private bool enableTakeDamage = true;
// Hashes // Hashes
private static readonly int IsHitHash = Shader.PropertyToID("_IsHit"); private static readonly int IsHitHash = Shader.PropertyToID("_IsHit");
@ -30,31 +28,38 @@ namespace BlueWaterProject
// Unity events // Unity events
private void Start() private void Start()
{ {
heartHpUi = UiManager.Inst.CombatUi.HeartHpUi; OnChangedCurrentHp += CombatUiManager.Inst.HeartHpUi.SetCurrentHp;
iDashable = GetComponent<IDashable>(); CombatUiManager.Inst.GameOverPopupUi.OnRestartEvent += SetMaxHp;
OnChangedCurrentHp += heartHpUi.SetCurrentHp; flashWhiteWaitTime = new WaitForSeconds(takeDamageCoolDown * 0.1f);
flashWhiteWaitTime = new WaitForSeconds(0.05f);
SetCurrentHp(maxHp); SetCurrentHp(maxHp);
} }
private void OnDestroy() private void OnDestroy()
{ {
OnChangedCurrentHp -= heartHpUi.SetCurrentHp; if (CombatUiManager.Inst)
{
OnChangedCurrentHp -= CombatUiManager.Inst.HeartHpUi.SetCurrentHp;
CombatUiManager.Inst.GameOverPopupUi.OnRestartEvent -= SetMaxHp;
}
} }
// Init // Init
public void InitComponent(SpriteRenderer spriteRenderer) public void InitComponent(SpriteRenderer spriteRenderer)
{ {
this.spriteRenderer = spriteRenderer; flashWhiteSpriteRenderer = spriteRenderer;
} }
// Events methods
public void HandleEnableTakeDamage() => enableTakeDamage = true;
public void HandleDisableTakeDamage() => enableTakeDamage = false;
// Methods // Methods
public void TakeDamage(float attackerPower, Vector3? attackPos = null) public void TakeDamage(float attackerPower, Vector3? attackPos = null)
{ {
if (iDashable?.IsDashing == true) return; if (!enableTakeDamage) return;
enableTakeDamage = false;
var changeHp = Mathf.Max(currentHp - (int)attackerPower, 0); var changeHp = Mathf.Max(currentHp - (int)attackerPower, 0);
SetCurrentHp(changeHp); SetCurrentHp(changeHp);
@ -75,11 +80,12 @@ namespace BlueWaterProject
} }
StartCoroutine(nameof(FlashWhiteCoroutine)); StartCoroutine(nameof(FlashWhiteCoroutine));
StartCoroutine(Utils.CoolDown(takeDamageCoolDown, HandleEnableTakeDamage));
} }
public void Die() public void Die()
{ {
throw new System.NotImplementedException(); CombatUiManager.Inst.GameOverPopupUi.Open();
} }
public float GetCurrentHp() public float GetCurrentHp()
@ -92,14 +98,19 @@ namespace BlueWaterProject
currentHp = value; currentHp = value;
OnChangedCurrentHp?.Invoke(value); OnChangedCurrentHp?.Invoke(value);
} }
private void SetMaxHp()
{
SetCurrentHp(maxHp);
}
private IEnumerator FlashWhiteCoroutine() private IEnumerator FlashWhiteCoroutine()
{ {
for (var i = 0; i < 5; i++) for (var i = 0; i < 5; i++)
{ {
spriteRenderer.material.SetInt(IsHitHash, 1); flashWhiteSpriteRenderer.material.SetInt(IsHitHash, 1);
yield return flashWhiteWaitTime; yield return flashWhiteWaitTime;
spriteRenderer.material.SetInt(IsHitHash, 0); flashWhiteSpriteRenderer.material.SetInt(IsHitHash, 0);
yield return flashWhiteWaitTime; yield return flashWhiteWaitTime;
} }
} }

View File

@ -83,7 +83,7 @@ namespace BlueWaterProject
if (context.started) if (context.started)
{ {
SwitchCurrentActionMap(COMBAT_UI); SwitchCurrentActionMap(COMBAT_UI);
UiManager.Inst.CombatUi.CombatItemInventoryUi.SetActiveInventoryUi(true); CombatUiManager.Inst.CombatItemInventoryUi.Open();
} }
} }
@ -91,9 +91,8 @@ namespace BlueWaterProject
{ {
if (context.started) if (context.started)
{ {
UiManager.Inst.CombatUi.CombatItemInventoryUi.SetActiveInventoryUi(false); CombatUiManager.Inst.CombatItemInventoryUi.Close();
// Todo : 또 다른 UI 체크?
SwitchCurrentActionMap(COMBAT); SwitchCurrentActionMap(COMBAT);
} }
} }
@ -102,11 +101,11 @@ namespace BlueWaterProject
{ {
if (context.started) if (context.started)
{ {
if (UiManager.Inst.CombatUi.CombatItemInventoryUi.gameObject.activeSelf) CombatUiManager.Inst.CloseLastPopup();
{
UiManager.Inst.CombatUi.CombatItemInventoryUi.SetActiveInventoryUi(false); if (!CombatUiManager.Inst.IsPopupListEmpty()) return;
SwitchCurrentActionMap(COMBAT);
} SwitchCurrentActionMap(COMBAT);
} }
} }

View File

@ -9,6 +9,7 @@ namespace BlueWaterProject
// Components // Components
public Rigidbody Rb { get; set; } public Rigidbody Rb { get; set; }
private Transform visualLook; private Transform visualLook;
private CombatStatus combatStatus;
// Move // Move
[Range(1f, 10f), Tooltip("이동 속도")] [Range(1f, 10f), Tooltip("이동 속도")]
@ -83,6 +84,7 @@ namespace BlueWaterProject
// Unity events // Unity events
private void Start() private void Start()
{ {
combatStatus = GetComponent<CombatStatus>();
iAnimationStateController = GetComponent<IAnimationStateController>(); iAnimationStateController = GetComponent<IAnimationStateController>();
iMeleeComboAttackable = GetComponent<IMeleeComboAttackable>(); iMeleeComboAttackable = GetComponent<IMeleeComboAttackable>();
} }
@ -94,7 +96,7 @@ namespace BlueWaterProject
private void FixedUpdate() private void FixedUpdate()
{ {
if (!EnableMove || IsDashing) return; if (!EnableMove || IsDashing || combatStatus.IsStunned) return;
ApplyMovement(); ApplyMovement();
} }
@ -167,8 +169,8 @@ namespace BlueWaterProject
PreviousMoveDirection = currentMoveDirection; PreviousMoveDirection = currentMoveDirection;
} }
IsMoving = currentMoveDirection != Vector3.zero; IsMoving = currentMoveDirection != Vector3.zero;
var slowCoefficient = combatStatus.IsSlowedMoveSpeed ? combatStatus.MoveSpeedCoefficient : 1f;
var finalVelocity = currentMoveDirection * moveSpeed; var finalVelocity = currentMoveDirection * (moveSpeed * slowCoefficient);
Rb.velocity = finalVelocity; Rb.velocity = finalVelocity;
} }

View File

@ -1,6 +1,7 @@
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
using UnityEngine.InputSystem; using UnityEngine.InputSystem;
using UnityEngine.Serialization;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace BlueWaterProject namespace BlueWaterProject
@ -13,7 +14,7 @@ namespace BlueWaterProject
[SerializeField] private PlayerInput playerInput; [SerializeField] private PlayerInput playerInput;
[SerializeField] private Transform visualLook; [SerializeField] private Transform visualLook;
[SerializeField] private Animator anim; [SerializeField] private Animator anim;
[SerializeField] private SpriteRenderer spriteRenderer; [SerializeField] private SpriteRenderer flashWhiteSpriteRenderer;
[SerializeField] private CombatInput input; [SerializeField] private CombatInput input;
[SerializeField] private CombatMovement movement; [SerializeField] private CombatMovement movement;
@ -21,6 +22,7 @@ namespace BlueWaterProject
[SerializeField] private CombatAttacker attacker; [SerializeField] private CombatAttacker attacker;
[SerializeField] private CombatHealth health; [SerializeField] private CombatHealth health;
[SerializeField] private CombatSkillController skillController; [SerializeField] private CombatSkillController skillController;
[SerializeField] private CombatStatus combatStatus;
// Unity events // Unity events
private void Awake() private void Awake()
@ -38,7 +40,9 @@ namespace BlueWaterProject
// Movement // Movement
movement.OnStartDash += skillController.HandleDisableSkill; movement.OnStartDash += skillController.HandleDisableSkill;
movement.OnStartDash += health.HandleDisableTakeDamage;
movement.OnEndDash += skillController.HandleEnableSkill; movement.OnEndDash += skillController.HandleEnableSkill;
movement.OnEndDash += health.HandleEnableTakeDamage;
// Attacker // Attacker
attacker.OnAttackInDashing += movement.HandleAttackInDash; attacker.OnAttackInDashing += movement.HandleAttackInDash;
@ -52,9 +56,11 @@ namespace BlueWaterProject
// SkillController // SkillController
skillController.OnStartSkill += movement.HandleDisableMoveAndDash; skillController.OnStartSkill += movement.HandleDisableMoveAndDash;
skillController.OnStartSkill += attacker.HandleDisableAttack; skillController.OnStartSkill += attacker.HandleDisableAttack;
skillController.OnStartSkill += health.HandleDisableTakeDamage;
skillController.OnEndSkill += movement.HandleEnableMoveAndDash; skillController.OnEndSkill += movement.HandleEnableMoveAndDash;
skillController.OnEndSkill += attacker.HandleEnableAttack; skillController.OnEndSkill += attacker.HandleEnableAttack;
skillController.OnEndSkill += health.HandleEnableTakeDamage;
} }
private void OnDestroy() private void OnDestroy()
@ -67,7 +73,9 @@ namespace BlueWaterProject
// Movement // Movement
movement.OnStartDash -= skillController.HandleDisableSkill; movement.OnStartDash -= skillController.HandleDisableSkill;
movement.OnStartDash -= health.HandleDisableTakeDamage;
movement.OnEndDash -= skillController.HandleEnableSkill; movement.OnEndDash -= skillController.HandleEnableSkill;
movement.OnEndDash -= health.HandleEnableTakeDamage;
// Attacker // Attacker
attacker.OnAttackInDashing -= movement.HandleAttackInDash; attacker.OnAttackInDashing -= movement.HandleAttackInDash;
@ -81,9 +89,11 @@ namespace BlueWaterProject
// SkillController // SkillController
skillController.OnStartSkill -= movement.HandleDisableMoveAndDash; skillController.OnStartSkill -= movement.HandleDisableMoveAndDash;
skillController.OnStartSkill -= attacker.HandleEnableAttack; skillController.OnStartSkill -= attacker.HandleEnableAttack;
skillController.OnStartSkill -= health.HandleDisableTakeDamage;
skillController.OnEndSkill -= movement.HandleEnableMoveAndDash; skillController.OnEndSkill -= movement.HandleEnableMoveAndDash;
skillController.OnEndSkill -= attacker.HandleDisableAttack; skillController.OnEndSkill -= attacker.HandleDisableAttack;
skillController.OnEndSkill -= health.HandleEnableTakeDamage;
} }
// Init // Init
@ -95,7 +105,7 @@ namespace BlueWaterProject
playerInput = GetComponent<PlayerInput>(); playerInput = GetComponent<PlayerInput>();
visualLook = transform.Find("VisualLook"); visualLook = transform.Find("VisualLook");
anim = visualLook.GetComponent<Animator>(); anim = visualLook.GetComponent<Animator>();
spriteRenderer = visualLook.GetComponent<SpriteRenderer>(); flashWhiteSpriteRenderer = visualLook.GetComponent<SpriteRenderer>();
input = GetComponent<CombatInput>(); input = GetComponent<CombatInput>();
movement = GetComponent<CombatMovement>(); movement = GetComponent<CombatMovement>();
@ -103,12 +113,13 @@ namespace BlueWaterProject
attacker = GetComponent<CombatAttacker>(); attacker = GetComponent<CombatAttacker>();
health = GetComponent<CombatHealth>(); health = GetComponent<CombatHealth>();
skillController = GetComponent<CombatSkillController>(); skillController = GetComponent<CombatSkillController>();
combatStatus = GetComponent<CombatStatus>();
input.InitComponent(playerInput); input.InitComponent(playerInput);
movement.InitComponent(rb, visualLook); movement.InitComponent(rb, visualLook);
animator.InitComponent(anim); animator.InitComponent(anim);
attacker.InitComponent(rb); attacker.InitComponent(rb);
health.InitComponent(spriteRenderer); health.InitComponent(flashWhiteSpriteRenderer);
skillController.InitComponent(col, rb, visualLook, anim); skillController.InitComponent(col, rb, visualLook, anim);
} }
} }

View File

@ -50,7 +50,7 @@ namespace BlueWaterProject
if (instantiateMainSkill == null) return; if (instantiateMainSkill == null) return;
var targetLayer = iMeleeComboAttackable.TargetLayer; var targetLayer = iMeleeComboAttackable.TargetLayer;
var ui = UiManager.Inst.CombatUi.MainSkillUi; var ui = CombatUiManager.Inst.MainSkillUi;
ui.gameObject.SetActive(true); ui.gameObject.SetActive(true);
instantiateMainSkill.SkillInputData.InitInputData(transform, col, rb, null, visualLook, anim, null, targetLayer, ui); instantiateMainSkill.SkillInputData.InitInputData(transform, col, rb, null, visualLook, anim, null, targetLayer, ui);

View File

@ -0,0 +1,50 @@
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class CombatStatus : MonoBehaviour
{
[field: SerializeField] public bool IsStunned { get; private set; }
[field: SerializeField] public bool IsSlowedMoveSpeed { get; private set; }
[field: SerializeField] public float MoveSpeedCoefficient { get; private set; }
private Coroutine stunCoolDownCoroutine;
private Coroutine slowMoveSpeedCoolDownCoroutine;
public void Stun(float duration)
{
IsStunned = true;
if (stunCoolDownCoroutine != null)
{
StopCoroutine(stunCoolDownCoroutine);
}
stunCoolDownCoroutine = StartCoroutine(Utils.CoolDown(duration, EndStun));
}
private void EndStun()
{
IsStunned = false;
stunCoolDownCoroutine = null;
}
public void SlowMoveSpeed(float duration, float moveSpeedCoefficient)
{
IsSlowedMoveSpeed = true;
MoveSpeedCoefficient = moveSpeedCoefficient;
if (slowMoveSpeedCoolDownCoroutine != null)
{
StopCoroutine(slowMoveSpeedCoolDownCoroutine);
}
slowMoveSpeedCoolDownCoroutine = StartCoroutine(Utils.CoolDown(duration, EndSlowMoveSpeed));
}
private void EndSlowMoveSpeed()
{
IsSlowedMoveSpeed = false;
slowMoveSpeedCoolDownCoroutine = null;
}
}
}

View File

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

View File

@ -0,0 +1,59 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class SlimeHitParticle : MonoBehaviour
{
[SerializeField] private ParticleSystem particle;
[SerializeField] private Vector2 randomDestroy = new Vector2(1f, 3f);
[SerializeField] private GameObject[] stainPrefabs;
private Transform instantiateLocation;
private List<ParticleCollisionEvent> collisionEvents;
private void Start()
{
instantiateLocation = FindAnyObjectByType<SlimeBossMapController>().ParticleInstantiateLocation;
collisionEvents = new List<ParticleCollisionEvent>();
}
private void OnParticleCollision(GameObject other)
{
if (other.layer != LayerMask.NameToLayer("Ground")) return;
var numCollisionEvents = particle.GetCollisionEvents(other, collisionEvents);
for (var i = 0; i < numCollisionEvents; i++)
{
InstantiateStain(collisionEvents[i].intersection);
}
}
private void InstantiateStain(Vector3 position)
{
position.y += 0.01f;
var stain = Instantiate(stainPrefabs[Random.Range(0, stainPrefabs.Length)], position, Quaternion.Euler(90, 0, 0), instantiateLocation);
var randomDestroyTime = Random.Range(randomDestroy.x, randomDestroy.y);
StartCoroutine(DestroyStainCoroutine(stain, randomDestroyTime));
}
private IEnumerator DestroyStainCoroutine(GameObject stain, float destroyTime)
{
var elapsedTime = 0f;
while (elapsedTime < destroyTime)
{
elapsedTime += Time.deltaTime;
var remainingTime = destroyTime - elapsedTime;
if (remainingTime < 0.5f)
{
stain.transform.localScale = Vector3.one * (remainingTime / 0.5f);
}
yield return null;
}
Destroy(stain);
}
}
}

View File

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

View File

@ -1,10 +1,10 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using BehaviorDesigner.Runtime;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEditor.Animations; using UnityEditor.Animations;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization;
using Random = UnityEngine.Random; using Random = UnityEngine.Random;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
@ -32,10 +32,11 @@ namespace BlueWaterProject
[Title("컴포넌트")] [Title("컴포넌트")]
[SerializeField] private Rigidbody rb; [SerializeField] private Rigidbody rb;
[SerializeField] private Collider col; [SerializeField] private Collider col;
[SerializeField] private BehaviorTree behaviorTree;
[SerializeField] private Transform visualLook; [SerializeField] private Transform visualLook;
[field: SerializeField] public Animator Anim { get; set; } [field: SerializeField] public Animator Anim { get; set; }
[SerializeField] private SpriteRenderer spriteRenderer; [SerializeField] private SpriteRenderer flashWhiteSpriteRenderer;
[SerializeField] private SpriteRenderer rabbit;
[SerializeField] private Transform shadow;
[SerializeField] private AnimatorController slimeController; [SerializeField] private AnimatorController slimeController;
[SerializeField] private AnimatorController slimeRabbitController; [SerializeField] private AnimatorController slimeRabbitController;
@ -46,16 +47,26 @@ namespace BlueWaterProject
[field: Title("스탯")] [field: Title("스탯")]
[field: SerializeField] public string BossName { get; private set; } = "거대 슬라임"; [field: SerializeField] public string BossName { get; private set; } = "거대 슬라임";
[SerializeField] private SlimeState slimeState; [SerializeField] private SlimeState slimeState;
[SerializeField] private int attackDamage = 1;
[SerializeField] private float currentHp; [SerializeField] private float currentHp;
[SerializeField] private LayerMask targetLayer; [SerializeField] private LayerMask targetLayer;
[SerializeField] private LayerMask groundLayer; [SerializeField] private LayerMask groundLayer;
[SerializeField] private bool isRabbitShrinking = true;
public float MaxHp => slimeState.MaxHp; public float MaxHp => slimeState.MaxHp;
// 스킬 // 점프
[Title("스킬")] [Title("점프")]
[SerializeField] private List<BaseSkill> skillList; [SerializeField] private int attackDamage = 1;
private List<BaseSkill> instanceSkillList; [SerializeField] private float slowDuration = 3f;
[SerializeField] private float slowCoefficient = 0.5f;
[SerializeField] private float maxJumpHeight = 2f;
[SerializeField] private float maxShadowScale = 0.5f;
// 효과
[Title("효과")]
[SerializeField] private ParticleSystem slimeHitParticle;
[SerializeField] private ParticleSystem slimeDieParticle;
[SerializeField] private float cameraShakePower = 0.5f;
[SerializeField] private float cameraShakeDuration = 0.1f;
// Variables // Variables
private Dictionary<TitanSlimeAnimationParameter, int> animationParameterHashDictionary = new(); private Dictionary<TitanSlimeAnimationParameter, int> animationParameterHashDictionary = new();
@ -104,14 +115,24 @@ namespace BlueWaterProject
flashWhiteWaitTime = new WaitForSeconds(0.1f); flashWhiteWaitTime = new WaitForSeconds(0.1f);
targetedColliders = new Collider[1]; targetedColliders = new Collider[1];
hitColliders = new Collider[1]; hitColliders = new Collider[1];
StartMove(); Invoke(nameof(JumpSlam), slimeState.RandomCooldown.y);
} }
private void OnDestroy() private void OnDestroy()
{ {
OnChangedCurrentHp -= UiManager.Inst.CombatUi.FieldBossHpSlider.UpdateHpSlider; if (CombatUiManager.Inst)
OnDieRabbitEvent -= mapController.AllDestroyInstantiateObject; {
OnChangedCurrentHp -= CombatUiManager.Inst.FieldBossHpSlider.UpdateHpSlider;
}
if (slimeState.Level != 5) return;
OnDieRabbitEvent -= mapController.AllDestroyBoss;
if (CombatUiManager.Inst)
{
OnDieRabbitEvent -= CombatUiManager.Inst.FadeInOut;
}
} }
#endregion #endregion
@ -125,10 +146,11 @@ namespace BlueWaterProject
{ {
rb = GetComponent<Rigidbody>(); rb = GetComponent<Rigidbody>();
col = GetComponent<Collider>(); col = GetComponent<Collider>();
behaviorTree = GetComponent<BehaviorTree>();
visualLook = transform.Find("VisualLook"); visualLook = transform.Find("VisualLook");
Anim = visualLook.GetComponent<Animator>(); Anim = visualLook.GetComponent<Animator>();
spriteRenderer = visualLook.GetComponent<SpriteRenderer>(); flashWhiteSpriteRenderer = visualLook.GetComponent<SpriteRenderer>();
rabbit = transform.Find("Rabbit").GetComponent<SpriteRenderer>();
shadow = transform.Find("Shadow");
iAnimationStateController = GetComponent<IAnimationStateController>(); iAnimationStateController = GetComponent<IAnimationStateController>();
} }
@ -152,18 +174,28 @@ namespace BlueWaterProject
slimeState = new SlimeState(state, hasRabbit); slimeState = new SlimeState(state, hasRabbit);
SetCurrentHp(slimeState.MaxHp); SetCurrentHp(slimeState.MaxHp);
transform.localScale = Vector3.one * slimeState.Size; transform.localScale = Vector3.one * slimeState.Size;
if (!isRabbitShrinking)
{
var rabbitScale = 0.4f / transform.localScale.x;
rabbit.transform.localScale = Vector3.one * rabbitScale;
}
if (slimeState.HasRabbit) if (slimeState.HasRabbit)
{ {
rabbit.enabled = true;
Anim.runtimeAnimatorController = slimeRabbitController; Anim.runtimeAnimatorController = slimeRabbitController;
OnChangedCurrentHp += UiManager.Inst.CombatUi.FieldBossHpSlider.UpdateHpSlider; OnChangedCurrentHp += CombatUiManager.Inst.FieldBossHpSlider.UpdateHpSlider;
if (slimeState.Level != 5) return; if (slimeState.Level != 5) return;
mapController ??= FindAnyObjectByType<SlimeBossMapController>(); mapController ??= FindAnyObjectByType<SlimeBossMapController>();
OnDieRabbitEvent += mapController.AllDestroyInstantiateObject; OnDieRabbitEvent += mapController.AllDestroyBoss;
OnDieRabbitEvent += CombatUiManager.Inst.FadeInOut;
} }
else else
{ {
rabbit.enabled = false;
Anim.runtimeAnimatorController = slimeController; Anim.runtimeAnimatorController = slimeController;
} }
} }
@ -182,6 +214,7 @@ namespace BlueWaterProject
var changeHp = Mathf.Max(currentHp - attackerPower, 0); var changeHp = Mathf.Max(currentHp - attackerPower, 0);
SetCurrentHp(changeHp); SetCurrentHp(changeHp);
slimeHitParticle.Play();
// 죽었는지 체크 // 죽었는지 체크
if (changeHp == 0f) if (changeHp == 0f)
@ -191,14 +224,17 @@ namespace BlueWaterProject
} }
// 공격 당함 // 공격 당함
if (spriteRenderer) if (flashWhiteSpriteRenderer)
{ {
flashWhiteCoroutine = StartCoroutine(nameof(FlashWhiteCoroutine)); flashWhiteCoroutine = StartCoroutine(nameof(FlashWhiteCoroutine));
} }
} }
[Button("Die Test")]
public void Die() public void Die()
{ {
var instantiateDieParticle = Instantiate(slimeDieParticle, transform.position, slimeDieParticle.transform.rotation, mapController.ParticleInstantiateLocation);
instantiateDieParticle.Play();
if (slimeState.Level == 5) if (slimeState.Level == 5)
{ {
OnDieRabbitEvent?.Invoke(); OnDieRabbitEvent?.Invoke();
@ -322,31 +358,9 @@ namespace BlueWaterProject
private IEnumerator FlashWhiteCoroutine() private IEnumerator FlashWhiteCoroutine()
{ {
spriteRenderer.material.SetInt(IsHitHash, 1); flashWhiteSpriteRenderer.material.SetInt(IsHitHash, 1);
yield return flashWhiteWaitTime; yield return flashWhiteWaitTime;
spriteRenderer.material.SetInt(IsHitHash, 0); flashWhiteSpriteRenderer.material.SetInt(IsHitHash, 0);
}
private void StartMove()
{
StartCoroutine(nameof(StartMoveCoroutine));
}
private IEnumerator StartMoveCoroutine()
{
var startPosition = transform.position;
var endPosition = CalculateRandomPosition(startPosition, 2f);
var elapsedTime = 0f;
while (elapsedTime <= slimeState.AnimationLength)
{
elapsedTime += Time.deltaTime;
transform.position = Vector3.Lerp(startPosition, endPosition,
iAnimationStateController.GetCurrentAnimationNormalizedTime());
yield return null;
}
JumpSlam();
} }
private void JumpSlam() private void JumpSlam()
@ -382,14 +396,26 @@ namespace BlueWaterProject
{ {
endPosition = CalculateRandomPosition(startPosition, 3f); endPosition = CalculateRandomPosition(startPosition, 3f);
} }
rb.useGravity = false;
while (iAnimationStateController.IsComparingCurrentAnimation(TitanSlimeAnimationName.JUMP_SLAM) && while (iAnimationStateController.IsComparingCurrentAnimation(TitanSlimeAnimationName.JUMP_SLAM) &&
iAnimationStateController.GetCurrentAnimationNormalizedTime() < 1f) iAnimationStateController.GetCurrentAnimationNormalizedTime() < 1f)
{ {
transform.position = Vector3.Lerp(startPosition, endPosition, var normalizedTime = iAnimationStateController.GetCurrentAnimationNormalizedTime();
iAnimationStateController.GetCurrentAnimationNormalizedTime()); var horizontalPosition = Vector3.Lerp(startPosition, endPosition, normalizedTime);
var heightFactor = Mathf.Sin(Mathf.PI * normalizedTime);
transform.position = new Vector3(horizontalPosition.x, startPosition.y + heightFactor * maxJumpHeight, horizontalPosition.z);
if (Physics.Raycast(transform.position, Vector3.down, out var hit, Mathf.Infinity, groundLayer))
{
shadow.position = hit.point + Vector3.up * 0.01f;
shadow.localScale = Vector3.one * (1f - heightFactor) * maxShadowScale;
}
yield return null; yield return null;
} }
transform.position = new Vector3(endPosition.x, startPosition.y, endPosition.z);
shadow.position = new Vector3(endPosition.x, startPosition.y + 0.01f, endPosition.z);
shadow.localScale = Vector3.zero;
DoAttack(); DoAttack();
@ -401,6 +427,7 @@ namespace BlueWaterProject
{ {
iAnimationStateController.ResetAnimationSpeed(); iAnimationStateController.ResetAnimationSpeed();
iAnimationStateController.SetAnimationParameter(TitanSlimeAnimationParameter.IS_JUMP_SLAM, false); iAnimationStateController.SetAnimationParameter(TitanSlimeAnimationParameter.IS_JUMP_SLAM, false);
rb.useGravity = true;
StartCoroutine(Utils.CoolDown(cooldown, JumpSlam)); StartCoroutine(Utils.CoolDown(cooldown, JumpSlam));
} }
@ -432,6 +459,11 @@ namespace BlueWaterProject
private void DoAttack() private void DoAttack()
{ {
if (slimeState.Level == 1)
{
VisualFeedbackManager.Inst.CameraShake(CameraManager.Inst.CombatCamera.BaseCombatCamera, cameraShakePower, cameraShakeDuration);
}
var attackPosition = transform.position; var attackPosition = transform.position;
var hitCount = Physics.OverlapSphereNonAlloc(attackPosition, ColliderRadius, hitColliders, targetLayer); var hitCount = Physics.OverlapSphereNonAlloc(attackPosition, ColliderRadius, hitColliders, targetLayer);
if (hitCount < 1) return; if (hitCount < 1) return;
@ -443,6 +475,17 @@ namespace BlueWaterProject
var iDamageable = hitColliders[0].transform.GetComponent<IDamageable>(); var iDamageable = hitColliders[0].transform.GetComponent<IDamageable>();
iDamageable?.TakeDamage(attackDamage); iDamageable?.TakeDamage(attackDamage);
hitColliders[0].GetComponent<Rigidbody>().AddForce(targetDirection * 3f, ForceMode.Impulse); hitColliders[0].GetComponent<Rigidbody>().AddForce(targetDirection * 3f, ForceMode.Impulse);
var combatStatus = hitColliders[0].transform.GetComponent<CombatStatus>();
if (combatStatus)
{
combatStatus.SlowMoveSpeed(slowDuration, slowCoefficient);
}
}
public void AddForce(Vector3 direction, float power, ForceMode forceMode)
{
rb.AddForce(direction * power, forceMode);
} }
#endregion #endregion

View File

@ -143,6 +143,10 @@ namespace BlueWaterProject
private Vector2 movementInput; private Vector2 movementInput;
private Vector3 inputMoveDirection = Vector3.forward; private Vector3 inputMoveDirection = Vector3.forward;
// Const
private const string OCEAN = "Ocean";
private const string OCEAN_UI = "OceanUi";
#endregion #endregion
/*********************************************************************** /***********************************************************************
@ -150,18 +154,6 @@ namespace BlueWaterProject
***************************************************************m********/ ***************************************************************m********/
#region Unity Events #region Unity Events
private void OnEnable()
{
playerInput.actions.FindAction("ShiftKey").started += _ => ShipBoost();
playerInput.actions.FindAction("ShiftKey").canceled += _ => ShipStopBoost();
}
private void OnDisable()
{
playerInput.actions.FindAction("ShiftKey").started -= _ => ShipBoost();
playerInput.actions.FindAction("ShiftKey").canceled -= _ => ShipStopBoost();
}
private void Start() private void Start()
{ {
InitStart(); InitStart();
@ -206,57 +198,39 @@ namespace BlueWaterProject
***********************************************************************/ ***********************************************************************/
#region Input System #region Input System
public virtual void OnMove(InputValue value) // WASD public void OnMove(InputAction.CallbackContext context)
{ {
movementInput = value.Get<Vector2>(); movementInput = context.ReadValue<Vector2>();
}
private void OnTargeting(InputValue value) //Q
{
}
private void OnTargetingHold(InputValue value) //Q Hold
{
}
private void OnCancel(InputValue value) //F
{
}
private void OnInteraction(InputValue value) //E
{
}
private void OnInteractionHold(InputValue value) //E Hold
{
} }
private void OnAssaultMode(InputValue value) // V public void OnOpenItemInventory(InputAction.CallbackContext context)
{ {
if (context.started)
}
private void OnZkey(InputValue value) // Z
{
}
private void OnItemInventory()
{
var activeSelf = UiManager.Inst.OceanUi.OceanItemInventoryUi.gameObject.activeSelf;
UiManager.Inst.OceanUi.OceanItemInventoryUi.SetActiveInventoryUi(!activeSelf);
}
private void OnEsc()
{
if (UiManager.Inst.OceanUi.OceanItemInventoryUi.gameObject.activeSelf)
{ {
UiManager.Inst.OceanUi.OceanItemInventoryUi.SetActiveInventoryUi(false); SwitchCurrentActionMap(OCEAN_UI);
OceanUiManager.Inst.OceanItemInventoryUi.Open();
}
}
public void OnCloseItemInventory(InputAction.CallbackContext context)
{
if (context.started)
{
OceanUiManager.Inst.OceanItemInventoryUi.Close();
SwitchCurrentActionMap(OCEAN);
}
}
public void OnCancel(InputAction.CallbackContext context)
{
if (context.started)
{
OceanUiManager.Inst.CloseAndRemoveLastPopup();
if (!OceanUiManager.Inst.IsPopupListEmpty()) return;
SwitchCurrentActionMap(OCEAN);
} }
} }
@ -372,21 +346,21 @@ namespace BlueWaterProject
HandleBoostRecharge(); HandleBoostRecharge();
} }
if (useBoostVignetteEffect && UiManager.Inst.OceanUi.ShipBoostSlider.value > 0f) if (useBoostVignetteEffect && OceanUiManager.Inst.ShipBoostSlider.value > 0f)
{ {
CameraManager.Inst.OceanCamera.BoostVignette(UiManager.Inst.OceanUi.ShipBoostSlider.value); CameraManager.Inst.OceanCamera.BoostVignette(OceanUiManager.Inst.ShipBoostSlider.value);
} }
} }
private void HandleBoostUsage() private void HandleBoostUsage()
{ {
UiManager.Inst.OceanUi.ShipBoostSlider.value += Time.deltaTime * (1f / boostMaxTime); OceanUiManager.Inst.ShipBoostSlider.value += Time.deltaTime * (1f / boostMaxTime);
if (useBoostCameraShaking) if (useBoostCameraShaking)
{ {
var shakeValue = UiManager.Inst.OceanUi.ShipBoostSlider.value * shakingForceCoefficient; var shakeValue = OceanUiManager.Inst.ShipBoostSlider.value * shakingForceCoefficient;
VisualFeedbackManager.Inst.CameraShake(CameraManager.Inst.OceanCamera.BaseShipCam, shakeValue); VisualFeedbackManager.Inst.CameraShake(CameraManager.Inst.OceanCamera.BaseShipCam, shakeValue);
} }
if (UiManager.Inst.OceanUi.ShipBoostSlider.value >= 1f && currentAdditionalBoostTime <= 0) if (OceanUiManager.Inst.ShipBoostSlider.value >= 1f && currentAdditionalBoostTime <= 0)
{ {
currentAdditionalBoostTime = additionalBoostTime; currentAdditionalBoostTime = additionalBoostTime;
} }
@ -408,11 +382,11 @@ namespace BlueWaterProject
if (currentBoostCooldownTime > 0) if (currentBoostCooldownTime > 0)
{ {
currentBoostCooldownTime -= Time.deltaTime; currentBoostCooldownTime -= Time.deltaTime;
UiManager.Inst.OceanUi.ShipBoostSlider.value = 1f; OceanUiManager.Inst.ShipBoostSlider.value = 1f;
} }
else else
{ {
UiManager.Inst.OceanUi.ShipBoostSlider.value -= Time.deltaTime * (1f / boostRecoveryTime); OceanUiManager.Inst.ShipBoostSlider.value -= Time.deltaTime * (1f / boostRecoveryTime);
if (!Mathf.Approximately(defaultMaxSpeed, maxSpeed)) if (!Mathf.Approximately(defaultMaxSpeed, maxSpeed))
{ {
maxSpeed = defaultMaxSpeed; maxSpeed = defaultMaxSpeed;
@ -424,28 +398,35 @@ namespace BlueWaterProject
} }
} }
private void ShipBoost() public void OnShipBoost(InputAction.CallbackContext context)
{ {
if (currentBoostCooldownTime > 0) return; if (context.performed)
{
if (currentBoostCooldownTime > 0) return;
isBoosting = true; isBoosting = true;
if (useBoostSpeedLines) if (useBoostSpeedLines)
{ {
UiManager.Inst.OceanUi.SetActiveSpeedLine(true); OceanUiManager.Inst.SetActiveSpeedLine(true);
}
if (useBoostChangeDistance)
{
CameraManager.Inst.OceanCamera.ChangeDistance(shrinkDistance, shrinkTime);
}
} }
if (useBoostChangeDistance) else if (context.canceled)
{ {
CameraManager.Inst.OceanCamera.ChangeDistance(shrinkDistance, shrinkTime); ShipStopBoost();
} }
} }
private void ShipStopBoost() private void ShipStopBoost()
{ {
isBoosting = false; isBoosting = false;
if (useBoostSpeedLines) if (useBoostSpeedLines)
{ {
UiManager.Inst.OceanUi.SetActiveSpeedLine(false); OceanUiManager.Inst.SetActiveSpeedLine(false);
} }
if (useBoostChangeDistance) if (useBoostChangeDistance)
{ {
@ -454,6 +435,11 @@ namespace BlueWaterProject
} }
public void SetCurrentHp(float value) => CurrentHp = value; public void SetCurrentHp(float value) => CurrentHp = value;
private void SwitchCurrentActionMap(string actionMapName)
{
playerInput.SwitchCurrentActionMap(actionMapName);
}
#endregion #endregion
} }

View File

@ -1,144 +1,144 @@
using System; // using System;
using Sirenix.OdinInspector; // using Sirenix.OdinInspector;
using UnityEngine; // using UnityEngine;
//
// ReSharper disable once CheckNamespace // // ReSharper disable once CheckNamespace
namespace BlueWaterProject // namespace BlueWaterProject
{ // {
public class CombatOnGui : MonoBehaviour // public class CombatOnGui : MonoBehaviour
{ // {
[Title("컴포넌트")] // [Title("컴포넌트")]
[SerializeField] private PhysicsMovement combatPlayerMovement; // [SerializeField] private PhysicsMovement combatPlayerMovement;
[SerializeField] private CombatLight combatLight; // [SerializeField] private CombatLight combatLight;
[SerializeField] private BossPortal[] bossPortal; // [SerializeField] private BossPortal[] bossPortal;
//
[Title("GUI 옵션")] // [Title("GUI 옵션")]
[SerializeField] private bool showGUI = true; // [SerializeField] private bool showGUI = true;
[SerializeField] private int guiTextSize = 28; // [SerializeField] private int guiTextSize = 28;
//
private float prevForwardSlopeAngle; // private float prevForwardSlopeAngle;
private bool toggle = true; // private bool toggle = true;
//
private void OnGUI() // private void OnGUI()
{ // {
if (Application.isPlaying == false) return; // if (Application.isPlaying == false) return;
//
var yPos = 5f; // var yPos = 5f;
var newToggleState = GUI.Toggle(new Rect(Screen.width - 100f, yPos, 150f, 30f), toggle, "Developer"); // var newToggleState = GUI.Toggle(new Rect(Screen.width - 100f, yPos, 150f, 30f), toggle, "Developer");
if (newToggleState != toggle) // if (newToggleState != toggle)
{ // {
toggle = newToggleState; // toggle = newToggleState;
showGUI = !showGUI; // showGUI = !showGUI;
} // }
//
if (!showGUI) return; // if (!showGUI) return;
if (!enabled) return; // if (!enabled) return;
//
GUIStyle labelStyle = GUI.skin.label; // GUIStyle labelStyle = GUI.skin.label;
labelStyle.normal.textColor = Color.yellow; // labelStyle.normal.textColor = Color.yellow;
labelStyle.fontSize = Math.Max(guiTextSize, 20); // labelStyle.fontSize = Math.Max(guiTextSize, 20);
//
prevForwardSlopeAngle = combatPlayerMovement.MyCurrentValue.forwardSlopeAngle == -90f // prevForwardSlopeAngle = combatPlayerMovement.MyCurrentValue.forwardSlopeAngle == -90f
? prevForwardSlopeAngle // ? prevForwardSlopeAngle
: combatPlayerMovement.MyCurrentValue.forwardSlopeAngle; // : combatPlayerMovement.MyCurrentValue.forwardSlopeAngle;
//
var oldColor = GUI.color; // var oldColor = GUI.color;
GUI.color = new Color(0f, 0f, 0f, 0.5f); // GUI.color = new Color(0f, 0f, 0f, 0.5f);
GUI.Box(new Rect(40, 40, 420, 240), ""); // GUI.Box(new Rect(40, 40, 420, 240), "");
GUI.color = oldColor; // GUI.color = oldColor;
//
GUILayout.BeginArea(new Rect(50, 50, 1000, 500)); // GUILayout.BeginArea(new Rect(50, 50, 1000, 500));
GUILayout.Label($"Ground Height : {Mathf.Min(combatPlayerMovement.MyCurrentValue.groundDistance, 99.99f): 00.00}", // GUILayout.Label($"Ground Height : {Mathf.Min(combatPlayerMovement.MyCurrentValue.groundDistance, 99.99f): 00.00}",
labelStyle); // labelStyle);
GUILayout.Label($"Slope Angle(Ground) : {combatPlayerMovement.MyCurrentValue.groundSlopeAngle: 00.00}", labelStyle); // GUILayout.Label($"Slope Angle(Ground) : {combatPlayerMovement.MyCurrentValue.groundSlopeAngle: 00.00}", labelStyle);
GUILayout.Label($"Slope Angle(Forward) : {prevForwardSlopeAngle: 00.00}", labelStyle); // GUILayout.Label($"Slope Angle(Forward) : {prevForwardSlopeAngle: 00.00}", labelStyle);
GUILayout.Label($"Allowed Slope Angle : {combatPlayerMovement.MyMovementOption.maxSlopeAngle: 00.00}", labelStyle); // GUILayout.Label($"Allowed Slope Angle : {combatPlayerMovement.MyMovementOption.maxSlopeAngle: 00.00}", labelStyle);
GUILayout.Label($"Current Speed Mag : {combatPlayerMovement.MyCurrentValue.horizontalVelocity.magnitude: 00.00}", // GUILayout.Label($"Current Speed Mag : {combatPlayerMovement.MyCurrentValue.horizontalVelocity.magnitude: 00.00}",
labelStyle); // labelStyle);
GUILayout.EndArea(); // GUILayout.EndArea();
//
float sWidth = Screen.width; // float sWidth = Screen.width;
float sHeight = Screen.height; // float sHeight = Screen.height;
//
GUIStyle RTLabelStyle = GUI.skin.label; // GUIStyle RTLabelStyle = GUI.skin.label;
RTLabelStyle.fontSize = 20; // RTLabelStyle.fontSize = 20;
RTLabelStyle.normal.textColor = Color.green; // RTLabelStyle.normal.textColor = Color.green;
//
oldColor = GUI.color; // oldColor = GUI.color;
GUI.color = new Color(1f, 1f, 1f, 0.5f); // GUI.color = new Color(1f, 1f, 1f, 0.5f);
GUI.Box(new Rect(sWidth - 355f, 25f, 340f, 80f), ""); // GUI.Box(new Rect(sWidth - 355f, 25f, 340f, 80f), "");
GUI.color = oldColor; // GUI.color = oldColor;
//
yPos = 30f; // yPos = 30f;
GUI.Label(new Rect(sWidth - 350f, yPos, 150f, 30f), $"Speed : {combatPlayerMovement.MyMovementOption.moveSpeed: 00.00}", // GUI.Label(new Rect(sWidth - 350f, yPos, 150f, 30f), $"Speed : {combatPlayerMovement.MyMovementOption.moveSpeed: 00.00}",
RTLabelStyle); // RTLabelStyle);
combatPlayerMovement.MyMovementOption.moveSpeed = GUI.HorizontalSlider(new Rect(sWidth - 180f, yPos + 10f, 160f, 20f), // combatPlayerMovement.MyMovementOption.moveSpeed = GUI.HorizontalSlider(new Rect(sWidth - 180f, yPos + 10f, 160f, 20f),
combatPlayerMovement.MyMovementOption.moveSpeed, 1f, 10f); // combatPlayerMovement.MyMovementOption.moveSpeed, 1f, 10f);
//
yPos += 20f; // yPos += 20f;
GUI.Label(new Rect(sWidth - 350f, yPos, 150f, 30f), $"Max Slope : {combatPlayerMovement.MyMovementOption.maxSlopeAngle: 00}", // GUI.Label(new Rect(sWidth - 350f, yPos, 150f, 30f), $"Max Slope : {combatPlayerMovement.MyMovementOption.maxSlopeAngle: 00}",
RTLabelStyle); // RTLabelStyle);
combatPlayerMovement.MyMovementOption.maxSlopeAngle = (int)GUI.HorizontalSlider( // combatPlayerMovement.MyMovementOption.maxSlopeAngle = (int)GUI.HorizontalSlider(
new Rect(sWidth - 180f, yPos + 10f, 160f, 20f), combatPlayerMovement.MyMovementOption.maxSlopeAngle, 1f, 75f); // new Rect(sWidth - 180f, yPos + 10f, 160f, 20f), combatPlayerMovement.MyMovementOption.maxSlopeAngle, 1f, 75f);
//
yPos += 20f; // yPos += 20f;
GUI.Label(new Rect(sWidth - 350f, yPos, 180f, 30f), $"TimeScale : {Time.timeScale: 0.00}", // GUI.Label(new Rect(sWidth - 350f, yPos, 180f, 30f), $"TimeScale : {Time.timeScale: 0.00}",
RTLabelStyle); // RTLabelStyle);
Time.timeScale = GUI.HorizontalSlider( // Time.timeScale = GUI.HorizontalSlider(
new Rect(sWidth - 180f, yPos + 10f, 160f, 20f), Time.timeScale, 0f, 1f); // new Rect(sWidth - 180f, yPos + 10f, 160f, 20f), Time.timeScale, 0f, 1f);
Time.fixedDeltaTime = 0.02f * Time.timeScale; // Time.fixedDeltaTime = 0.02f * Time.timeScale;
//
yPos = 130f; // yPos = 130f;
var buttonWidth = 200f; // var buttonWidth = 200f;
var buttonHeight = 30f; // var buttonHeight = 30f;
var buttonSpacing = 35f; // var buttonSpacing = 35f;
//
var buttonStyle = GUI.skin.button; // var buttonStyle = GUI.skin.button;
buttonStyle.fontSize = 15; // buttonStyle.fontSize = 15;
//
var spawnPosition = combatPlayerMovement.MyComponents.spawnPosition; // var spawnPosition = combatPlayerMovement.MyComponents.spawnPosition;
for (var i = 0; i < spawnPosition.Length; i++) // for (var i = 0; i < spawnPosition.Length; i++)
{ // {
if (GUI.Button(new Rect(sWidth - 350f, yPos, buttonWidth, buttonHeight), spawnPosition[i].name, buttonStyle)) // if (GUI.Button(new Rect(sWidth - 350f, yPos, buttonWidth, buttonHeight), spawnPosition[i].name, buttonStyle))
{ // {
SpawnPlayer(spawnPosition[i].position); // SpawnPlayer(spawnPosition[i].position);
} // }
yPos += buttonSpacing; // yPos += buttonSpacing;
} // }
//
buttonWidth = 80f; // buttonWidth = 80f;
buttonHeight = 30f; // buttonHeight = 30f;
yPos = 10f; // yPos = 10f;
if (GUI.Button(new Rect(sWidth - 550f, yPos, buttonWidth, buttonHeight), "Base", buttonStyle)) // if (GUI.Button(new Rect(sWidth - 550f, yPos, buttonWidth, buttonHeight), "Base", buttonStyle))
{ // {
combatLight.CurrentTimeOfDay = CombatLight.TimeOfDay.BASE; // combatLight.CurrentTimeOfDay = CombatLight.TimeOfDay.BASE;
} // }
if (GUI.Button(new Rect(sWidth - 450f, yPos, buttonWidth, buttonHeight), "Afternoon", buttonStyle)) // if (GUI.Button(new Rect(sWidth - 450f, yPos, buttonWidth, buttonHeight), "Afternoon", buttonStyle))
{ // {
combatLight.CurrentTimeOfDay = CombatLight.TimeOfDay.AFTERNOON; // combatLight.CurrentTimeOfDay = CombatLight.TimeOfDay.AFTERNOON;
} // }
//
yPos += 40f; // yPos += 40f;
if (GUI.Button(new Rect(sWidth - 550f, yPos, buttonWidth, buttonHeight), "Sunset", buttonStyle)) // if (GUI.Button(new Rect(sWidth - 550f, yPos, buttonWidth, buttonHeight), "Sunset", buttonStyle))
{ // {
combatLight.CurrentTimeOfDay = CombatLight.TimeOfDay.SUNSET; // combatLight.CurrentTimeOfDay = CombatLight.TimeOfDay.SUNSET;
} // }
if (GUI.Button(new Rect(sWidth - 450f, yPos, buttonWidth, buttonHeight), "Night", buttonStyle)) // if (GUI.Button(new Rect(sWidth - 450f, yPos, buttonWidth, buttonHeight), "Night", buttonStyle))
{ // {
combatLight.CurrentTimeOfDay = CombatLight.TimeOfDay.NIGHT; // combatLight.CurrentTimeOfDay = CombatLight.TimeOfDay.NIGHT;
} // }
//
labelStyle.fontSize = Math.Max(guiTextSize, 20); // labelStyle.fontSize = Math.Max(guiTextSize, 20);
} // }
//
private void SpawnPlayer(Vector3 position) // private void SpawnPlayer(Vector3 position)
{ // {
combatPlayerMovement.Move(position); // combatPlayerMovement.Move(position);
//
foreach (var element in bossPortal) // foreach (var element in bossPortal)
{ // {
element.ResetPortal(); // element.ResetPortal();
} // }
} // }
} // }
} // }

View File

@ -1,54 +0,0 @@
using Sirenix.OdinInspector;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class CombatUi : MonoBehaviour
{
[Title("초기화 방식")]
[SerializeField] private bool autoInit = true;
[field: Title("UI")]
[field: SerializeField] public Canvas MainCanvas { get; private set; }
[field: SerializeField] public Canvas WorldSpaceCanvas { get; private set; }
[field: SerializeField] public SkillUi MainSkillUi { get; private set; }
[field: SerializeField] public FieldBossHpSlider FieldBossHpSlider { get; private set; }
[field: SerializeField] public HeartHpUi HeartHpUi { get; set; }
[field: SerializeField] public DropItemGroupController DropItemGroupController { get; set; }
[field: SerializeField] public ItemInventoryUi OceanItemInventoryUi { get; set; }
[field: SerializeField] public ItemInventoryUi CombatItemInventoryUi { get; set; }
[field: SerializeField] public DiscardPopupUi DiscardPopupUi { get; set; }
[Button("셋팅 초기화")]
private void Init()
{
MainCanvas = GetComponent<Canvas>();
if (!MainCanvas)
{
Debug.LogError("canvas is null error");
return;
}
WorldSpaceCanvas = GameObject.Find("WorldSpaceCanvas").GetComponent<Canvas>();
MainSkillUi = MainCanvas.transform.Find("MainSkillUi").GetComponent<SkillUi>();
FieldBossHpSlider = MainCanvas.transform.Find("FieldBossHpSlider").GetComponent<FieldBossHpSlider>();
HeartHpUi = MainCanvas.transform.Find("HeartHpUi").GetComponent<HeartHpUi>();
DropItemGroupController = MainCanvas.transform.Find("DropItemGroup").GetComponent<DropItemGroupController>();
OceanItemInventoryUi = MainCanvas.transform.Find("OceanItemInventoryUi").GetComponent<ItemInventoryUi>();
CombatItemInventoryUi = MainCanvas.transform.Find("CombatItemInventoryUi").GetComponent<ItemInventoryUi>();
DiscardPopupUi = MainCanvas.transform.Find("DiscardPopupUi").GetComponent<DiscardPopupUi>();
}
private void Awake()
{
if (autoInit)
{
Init();
}
UiManager.Inst.CombatUi = this;
}
}
}

View File

@ -0,0 +1,140 @@
using System.Collections;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.UI;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class CombatUiManager : Singleton<CombatUiManager>
{
[field: Title("UI")]
[field: SerializeField] public Canvas MainCanvas { get; private set; }
[field: SerializeField] public Canvas WorldSpaceCanvas { get; private set; }
[field: SerializeField] public SkillUi MainSkillUi { get; private set; }
[field: SerializeField] public FieldBossHpSlider FieldBossHpSlider { get; private set; }
[field: SerializeField] public HeartHpUi HeartHpUi { get; private set; }
[field: SerializeField] public DropItemGroupController DropItemGroupController { get; private set; }
[field: SerializeField] public ItemInventoryUi OceanItemInventoryUi { get; private set; }
[field: SerializeField] public ItemInventoryUi CombatItemInventoryUi { get; private set; }
[field: SerializeField] public GameOverPopupUi GameOverPopupUi { get; private set; }
[Title("효과")]
[SerializeField] private Image fadeUi;
[SerializeField] private Vector2 fadeDuration = new(0.2f, 0.3f);
private List<PopupUi> popupUiList;
protected override void OnAwake()
{
Init();
}
private void OnEnable()
{
PopupUi.OnPopupUiOpenEvent += RegisterPopup;
PopupUi.OnPopupUiCloseEvent += UnregisterPopup;
}
private void OnDisable()
{
PopupUi.OnPopupUiOpenEvent -= RegisterPopup;
PopupUi.OnPopupUiCloseEvent -= UnregisterPopup;
}
[Button("셋팅 초기화")]
private void Init()
{
MainCanvas = GetComponent<Canvas>();
if (!MainCanvas)
{
Debug.LogError("canvas is null error");
return;
}
WorldSpaceCanvas = GameObject.Find("WorldSpaceCanvas").GetComponent<Canvas>();
MainSkillUi = MainCanvas.transform.Find("MainSkillUi").GetComponent<SkillUi>();
FieldBossHpSlider = MainCanvas.transform.Find("FieldBossHpSlider").GetComponent<FieldBossHpSlider>();
HeartHpUi = MainCanvas.transform.Find("HeartHpUi").GetComponent<HeartHpUi>();
DropItemGroupController = MainCanvas.transform.Find("DropItemGroup").GetComponent<DropItemGroupController>();
OceanItemInventoryUi = MainCanvas.transform.Find("OceanItemInventoryUi").GetComponent<ItemInventoryUi>();
CombatItemInventoryUi = MainCanvas.transform.Find("CombatItemInventoryUi").GetComponent<ItemInventoryUi>();
GameOverPopupUi = MainCanvas.transform.Find("GameOverPopupUi").GetComponent<GameOverPopupUi>();
fadeUi = MainCanvas.transform.Find("FadeUi").GetComponent<Image>();
popupUiList = new List<PopupUi>(8);
}
private void RegisterPopup(PopupUi popup)
{
if (!popupUiList.Contains(popup))
{
popupUiList.Add(popup);
}
}
private void UnregisterPopup(PopupUi popup)
{
if (popupUiList.Contains(popup))
{
popupUiList.Remove(popup);
}
}
public void CloseLastPopup()
{
if (popupUiList.Count <= 0) return;
popupUiList[^1].Close();
}
public void CloseAllPopup()
{
var tempList = new List<PopupUi>(popupUiList);
foreach (var popup in tempList)
{
popup.Close();
}
popupUiList.Clear();
}
public bool IsPopupListEmpty() => popupUiList.Count == 0;
public void FadeInOut()
{
StartCoroutine(nameof(FadeInOutCoroutine));
}
private IEnumerator FadeInOutCoroutine()
{
fadeUi.enabled = true;
// 페이드 인
var elapsedTime = 0f;
while (elapsedTime < fadeDuration.x)
{
elapsedTime += Time.deltaTime;
var alpha = Mathf.Lerp(0f, 1f, elapsedTime / fadeDuration.x);
fadeUi.color = new Color(fadeUi.color.r, fadeUi.color.g, fadeUi.color.b, alpha);
yield return null;
}
fadeUi.color = new Color(fadeUi.color.r, fadeUi.color.g, fadeUi.color.b, 1f);
// 페이드 아웃
elapsedTime = 0f;
while (elapsedTime < fadeDuration.y)
{
elapsedTime += Time.deltaTime;
var alpha = Mathf.Lerp(1f, 0f, elapsedTime / fadeDuration.y);
fadeUi.color = new Color(fadeUi.color.r, fadeUi.color.g, fadeUi.color.b, alpha);
yield return null;
}
fadeUi.color = new Color(fadeUi.color.r, fadeUi.color.g, fadeUi.color.b, 0f);
fadeUi.enabled = false;
}
}
}

View File

@ -11,8 +11,17 @@ using UnityEngine.SceneManagement;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace BlueWaterProject namespace BlueWaterProject
{ {
public enum SaveStage
{
TUTORIAL = 0,
SLIME,
RHINOCEROS
}
public class DataManager : Singleton<DataManager> public class DataManager : Singleton<DataManager>
{ {
public SaveStage CurrentSaveStage { get; set; }
[field: Title("Inventory")] [field: Title("Inventory")]
[field: SerializeField] public PlayerInventory OceanInventory { get; private set; } = new(); [field: SerializeField] public PlayerInventory OceanInventory { get; private set; } = new();
[field: SerializeField] public PlayerInventory CombatInventory { get; private set; } = new(); [field: SerializeField] public PlayerInventory CombatInventory { get; private set; } = new();

View File

@ -57,12 +57,12 @@ namespace BlueWaterProject
if (itemUiPrefab) if (itemUiPrefab)
{ {
itemLootUi = Instantiate(itemUiPrefab, screenPos, Quaternion.identity, UiManager.Inst.OceanUi.ItemsLoot).GetComponent<ItemUiController>(); itemLootUi = Instantiate(itemUiPrefab, screenPos, Quaternion.identity, OceanUiManager.Inst.ItemsLoot).GetComponent<ItemUiController>();
itemLootUi.Init(transform); itemLootUi.Init(transform);
} }
if (pointingArrowUiPrefab) if (pointingArrowUiPrefab)
{ {
pointingArrowUi = Instantiate(pointingArrowUiPrefab, screenPos, Quaternion.identity, UiManager.Inst.OceanUi.InstantiateUi).transform; pointingArrowUi = Instantiate(pointingArrowUiPrefab, screenPos, Quaternion.identity, OceanUiManager.Inst.InstantiateUi).transform;
pointingArrowUi.gameObject.SetActive(false); pointingArrowUi.gameObject.SetActive(false);
} }
} }
@ -136,15 +136,8 @@ namespace BlueWaterProject
} }
DropItemGroupController dropItemGroupController = null; DropItemGroupController dropItemGroupController = null;
if (UiManager.Inst.OceanUi) dropItemGroupController = FindAnyObjectByType<DropItemGroupController>();
{ dropItemGroupController.ShowDropItemInfoUi(ItemManager.Inst.ItemDictionary[itemSlot.Idx], itemSlot.Count);
dropItemGroupController = UiManager.Inst.OceanUi.DropItemGroupController;
}
else if (UiManager.Inst.CombatUi)
{
dropItemGroupController = UiManager.Inst.CombatUi.DropItemGroupController;
}
dropItemGroupController?.ShowDropItemInfoUi(ItemManager.Inst.ItemDictionary[itemSlot.Idx], itemSlot.Count);
if (audioSource && audioSource.resource) if (audioSource && audioSource.resource)
{ {

View File

@ -7,7 +7,7 @@ using UnityEngine;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace BlueWaterProject namespace BlueWaterProject
{ {
public class ItemInventoryUi : MonoBehaviour public class ItemInventoryUi : PopupUi
{ {
private enum InventoryType private enum InventoryType
{ {
@ -22,6 +22,7 @@ namespace BlueWaterProject
[SerializeField, Required] private TMP_Text currentWeight; [SerializeField, Required] private TMP_Text currentWeight;
[SerializeField, Required] private GameObject itemSlotUiPrefab; [SerializeField, Required] private GameObject itemSlotUiPrefab;
[SerializeField, Required] private Transform instantiateLocation; [SerializeField, Required] private Transform instantiateLocation;
[SerializeField, Required] private DiscardPopupUi discardPopupUi;
[field: SerializeField] public List<ItemSlotUi> ItemSlotUiList { get; set; } = new(); [field: SerializeField] public List<ItemSlotUi> ItemSlotUiList { get; set; } = new();
@ -30,6 +31,7 @@ namespace BlueWaterProject
private void OnEnable() private void OnEnable()
{ {
discardPopupUi.Close();
InitAndUpdateInventory(); InitAndUpdateInventory();
inventory.OnChangeItemSlot += ChangedData; inventory.OnChangeItemSlot += ChangedData;
} }
@ -43,6 +45,16 @@ namespace BlueWaterProject
{ {
inventory.OnChangeItemSlot -= ChangedData; inventory.OnChangeItemSlot -= ChangedData;
} }
public override void Close()
{
if (discardPopupUi.gameObject.activeSelf)
{
discardPopupUi.Close();
}
base.Close();
}
public void InitAndUpdateInventory() public void InitAndUpdateInventory()
{ {
@ -173,11 +185,11 @@ namespace BlueWaterProject
if (selectedList.Count == 1) if (selectedList.Count == 1)
{ {
UiManager.Inst.CurrentDiscardPopupUi.DiscardMessage(selectedList[0]); discardPopupUi.DiscardMessage(selectedList[0]);
} }
else if (selectedList.Count > 1) else if (selectedList.Count > 1)
{ {
UiManager.Inst.CurrentDiscardPopupUi.DiscardAllMessage(selectedList); discardPopupUi.DiscardAllMessage(selectedList);
} }
} }
@ -218,7 +230,5 @@ namespace BlueWaterProject
ItemSlotUiList[i].transform.SetSiblingIndex(i); ItemSlotUiList[i].transform.SetSiblingIndex(i);
} }
} }
public void SetActiveInventoryUi(bool value) => gameObject.SetActive(value);
} }
} }

View File

@ -1,3 +1,4 @@
using System.Collections.Generic;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
@ -5,11 +6,8 @@ using UnityEngine.UI;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace BlueWaterProject namespace BlueWaterProject
{ {
public class OceanUi : MonoBehaviour public class OceanUiManager : Singleton<OceanUiManager>
{ {
[Title("초기화 방식")]
[SerializeField] private bool autoInit = true;
[field: Title("UI")] [field: Title("UI")]
[field: SerializeField] public ProcessBar ProcessBar { get; set; } [field: SerializeField] public ProcessBar ProcessBar { get; set; }
[SerializeField] private Vector3 processBarOffset = Vector3.zero; [SerializeField] private Vector3 processBarOffset = Vector3.zero;
@ -21,7 +19,6 @@ namespace BlueWaterProject
[field: SerializeField] public DropItemGroupController DropItemGroupController { get; set; } [field: SerializeField] public DropItemGroupController DropItemGroupController { get; set; }
[field: SerializeField] public WeatherUi WeatherUi { get; private set; } [field: SerializeField] public WeatherUi WeatherUi { get; private set; }
[field: SerializeField] public ItemInventoryUi OceanItemInventoryUi { get; set; } [field: SerializeField] public ItemInventoryUi OceanItemInventoryUi { get; set; }
[field: SerializeField] public DiscardPopupUi DiscardPopupUi { get; set; }
public Canvas MainCanvas { get; private set; } public Canvas MainCanvas { get; private set; }
@ -29,6 +26,26 @@ namespace BlueWaterProject
public Transform ItemsLoot { get; private set; } public Transform ItemsLoot { get; private set; }
[SerializeField] private List<PopupUi> popupUiList = new();
protected override void OnAwake()
{
Init();
ProcessBar.SetActive(false);
}
private void Update()
{
if (ProcessBar.Obj.activeSelf)
{
var mousePos = Input.mousePosition;
var result = mousePos + processBarOffset;
ProcessBar.SetPosition(result);
}
}
[Button("셋팅 초기화")] [Button("셋팅 초기화")]
private void Init() private void Init()
{ {
@ -55,7 +72,6 @@ namespace BlueWaterProject
DropItemGroupController = MainCanvas.transform.Find("DropItemGroup").GetComponent<DropItemGroupController>(); DropItemGroupController = MainCanvas.transform.Find("DropItemGroup").GetComponent<DropItemGroupController>();
WeatherUi = MainCanvas.transform.Find("WeatherUi").GetComponent<WeatherUi>(); WeatherUi = MainCanvas.transform.Find("WeatherUi").GetComponent<WeatherUi>();
OceanItemInventoryUi = MainCanvas.transform.Find("OceanItemInventoryUi").GetComponent<ItemInventoryUi>(); OceanItemInventoryUi = MainCanvas.transform.Find("OceanItemInventoryUi").GetComponent<ItemInventoryUi>();
DiscardPopupUi = MainCanvas.transform.Find("DiscardPopupUi").GetComponent<DiscardPopupUi>();
InstantiateUi = MainCanvas.transform.Find("InstantiateUi"); InstantiateUi = MainCanvas.transform.Find("InstantiateUi");
if (!InstantiateUi) if (!InstantiateUi)
@ -70,29 +86,37 @@ namespace BlueWaterProject
ItemsLoot = new GameObject("ItemsLoot").transform; ItemsLoot = new GameObject("ItemsLoot").transform;
ItemsLoot.parent = InstantiateUi.transform; ItemsLoot.parent = InstantiateUi.transform;
} }
popupUiList = new List<PopupUi>(8);
} }
private void Awake() private void RegisterPopup(PopupUi popup)
{ {
if (autoInit) if (!popupUiList.Contains(popup))
{ {
Init(); popupUiList.Add(popup);
} }
UiManager.Inst.OceanUi = this;
ProcessBar.SetActive(false);
} }
private void Update() private void UnregisterPopup(PopupUi popup)
{ {
if (ProcessBar.Obj.activeSelf) if (popupUiList.Contains(popup))
{ {
var mousePos = Input.mousePosition; popupUiList.Remove(popup);
var result = mousePos + processBarOffset;
ProcessBar.SetPosition(result);
} }
} }
public void CloseAndRemoveLastPopup()
{
if (popupUiList.Count <= 0) return;
var lastIndex = popupUiList.Count - 1;
popupUiList[lastIndex].Close();
popupUiList.RemoveAt(lastIndex);
}
public bool IsPopupListEmpty() => popupUiList.Count == 0;
public void SetActiveSpeedLine(bool value) => SpeedLines.SetActive(value); public void SetActiveSpeedLine(bool value) => SpeedLines.SetActive(value);
} }
} }

View File

@ -78,24 +78,10 @@ namespace BlueWaterProject
private void Start() private void Start()
{ {
launchProcessBar = UiManager.Inst.OceanUi.ProcessBar; launchProcessBar = OceanUiManager.Inst.ProcessBar;
hitColliders = new Collider[MAX_HIT_SIZE]; hitColliders = new Collider[MAX_HIT_SIZE];
} }
private void OnEnable()
{
playerInput.actions.FindAction("ToggleLaunchMode").started += _ => ToggleLaunchMode();
playerInput.actions.FindAction("LaunchCannon").started += _ => ChargeCannon();
playerInput.actions.FindAction("LaunchCannon").canceled += _ => LaunchCannon();
}
private void OnDisable()
{
playerInput.actions.FindAction("ToggleLaunchMode").started -= _ => ToggleLaunchMode();
playerInput.actions.FindAction("LaunchCannon").started -= _ => ChargeCannon();
playerInput.actions.FindAction("LaunchCannon").canceled -= _ => LaunchCannon();
}
private void Update() private void Update()
{ {
HandleLaunchCannon(); HandleLaunchCannon();
@ -122,54 +108,59 @@ namespace BlueWaterProject
***********************************************************************/ ***********************************************************************/
#region PlayerInput #region PlayerInput
private void ToggleLaunchMode() public void OnToggleLaunchMode(InputAction.CallbackContext context)
{ {
isLaunchMode = !isLaunchMode; if (context.started)
launchProcessBar.SetActive(isLaunchMode);
if (!isLaunchMode)
{ {
isLaunchMode = !isLaunchMode;
launchProcessBar.SetActive(isLaunchMode);
if (!isLaunchMode)
{
isCharging = false;
chargingGauge = 0f;
previousGauge = chargingGauge;
launchProcessBar.SetFillAmount(0f);
launchProcessBar.SetRotateZ(previousGauge * -360f);
launchProcessBar.SetRotateZ(0f);
launchProcessBar.SetSliderValue(0f);
cannon.ExitLaunchMode();
}
}
}
public void OnHandleCannonLaunch(InputAction.CallbackContext context)
{
if (context.performed)
{
if (!isLaunchMode) return;
if (cannon.IsReloading)
{
StartCoroutine(OceanUiManager.Inst.ProcessBar.ShakeProcessBarCoroutine());
}
else
{
isCharging = true;
chargingGauge = 0f;
cannon.StartChargeCannon();
}
}
else if (context.canceled)
{
if (!isLaunchMode || !isCharging) return;
isCharging = false; isCharging = false;
chargingGauge = 0f;
previousGauge = chargingGauge; previousGauge = chargingGauge;
chargingGauge = 0f;
launchProcessBar.SetFillAmount(0f); launchProcessBar.SetFillAmount(0f);
launchProcessBar.SetRotateZ(previousGauge * -360f); launchProcessBar.SetRotateZ(previousGauge * -360f);
launchProcessBar.SetRotateZ(0f); cannon.SetActivePredictLine(false);
launchProcessBar.SetSliderValue(0f);
cannon.ExitLaunchMode();
}
}
private void ChargeCannon()
{
if (!isLaunchMode) return;
if (cannon.IsReloading)
{
StartCoroutine(UiManager.Inst.OceanUi.ProcessBar.ShakeProcessBarCoroutine());
}
else
{
isCharging = true;
chargingGauge = 0f;
cannon.StartChargeCannon();
}
}
private void LaunchCannon()
{
if (!isLaunchMode || !isCharging) return;
isCharging = false; cannon.Launch();
previousGauge = chargingGauge; StartCoroutine(LaunchCoolDown(cannon.LaunchCooldown));
chargingGauge = 0f; VisualFeedbackManager.Inst.CameraShake(CameraManager.Inst.OceanCamera.BaseShipCam, cameraShakePower, cameraShakeDuration);
launchProcessBar.SetFillAmount(0f); }
launchProcessBar.SetRotateZ(previousGauge * -360f);
cannon.SetActivePredictLine(false);
cannon.Launch();
StartCoroutine(LaunchCoolDown(cannon.LaunchCooldown));
VisualFeedbackManager.Inst.CameraShake(CameraManager.Inst.OceanCamera.BaseShipCam, cameraShakePower, cameraShakeDuration);
} }
#endregion #endregion

View File

@ -13,12 +13,20 @@ public class SlimeBossMapController : MonoBehaviour
[SerializeField] private Transform bossInstantiateTransform; [SerializeField] private Transform bossInstantiateTransform;
[SerializeField] private TitanSlime bossPrefab; [SerializeField] private TitanSlime bossPrefab;
[SerializeField] private List<SlimeState> slimeStateList = new(5); [SerializeField] private List<SlimeState> slimeStateList = new(5);
[field: SerializeField] public Transform ParticleInstantiateLocation { get; private set; }
// 추가 설정
[Title("추가 설정")]
[SerializeField] private float splitPower = 500f;
[SerializeField] private Vector3 leftSplitDirection = new(-1, 1, 0);
[SerializeField] private Vector3 rightSplitDirection = new(1, 1, 0);
private List<GameObject> bossInstanceList = new(10); private List<GameObject> bossInstanceList = new(10);
public void InitBossMap() public void InitBossMap()
{ {
AllDestroyInstantiateObject(); DataManager.Inst.CurrentSaveStage = SaveStage.SLIME;
AllDestroyObjects();
bossInstanceList = new List<GameObject>(10); bossInstanceList = new List<GameObject>(10);
var player = GameObject.FindWithTag("CombatPlayer"); var player = GameObject.FindWithTag("CombatPlayer");
@ -30,28 +38,46 @@ public class SlimeBossMapController : MonoBehaviour
InstantiateSlime(bossSpawnTransform.position, 1, true); InstantiateSlime(bossSpawnTransform.position, 1, true);
} }
private void InstantiateSlime(Vector3 instantiatePosition, int level, bool hasRabbit) private TitanSlime InstantiateSlime(Vector3 instantiatePosition, int level, bool hasRabbit)
{ {
var instantiateBoss = Instantiate(bossPrefab, instantiatePosition, Quaternion.identity, bossInstantiateTransform); var instantiateBoss = Instantiate(bossPrefab, instantiatePosition, Quaternion.identity, bossInstantiateTransform);
var slimeState = slimeStateList.Find((list) => list.Level == level); var slimeState = slimeStateList.Find((list) => list.Level == level);
instantiateBoss.Init(slimeState, hasRabbit); instantiateBoss.Init(slimeState, hasRabbit);
UiManager.Inst.CombatUi.FieldBossHpSlider.SetHpSlider(instantiateBoss.MaxHp, instantiateBoss.BossName); CombatUiManager.Inst.FieldBossHpSlider.SetHpSlider(instantiateBoss.MaxHp, instantiateBoss.BossName);
bossInstanceList.Add(instantiateBoss.gameObject); bossInstanceList.Add(instantiateBoss.gameObject);
return instantiateBoss;
} }
public void SpawnSplitSlimes(Vector3 deathPosition, int nextLevel, bool hasRabbit) public void SpawnSplitSlimes(Vector3 deathPosition, int nextLevel, bool hasRabbit)
{ {
InstantiateSlime(deathPosition, nextLevel, hasRabbit); var instantiateBossLeft = InstantiateSlime(deathPosition, nextLevel, hasRabbit);
InstantiateSlime(deathPosition, nextLevel, false); var instantiateBossRight = InstantiateSlime(deathPosition, nextLevel, false);
instantiateBossLeft.AddForce(leftSplitDirection, splitPower, ForceMode.Impulse);
instantiateBossRight.AddForce(rightSplitDirection, splitPower, ForceMode.Impulse);
} }
public void AllDestroyInstantiateObject() public void AllDestroyBoss()
{ {
foreach (var element in bossInstanceList) foreach (var element in bossInstanceList)
{ {
Destroy(element); Destroy(element);
} }
} }
public void AllDestroyObjects()
{
foreach (var element in bossInstanceList)
{
Destroy(element);
}
foreach (Transform element in ParticleInstantiateLocation)
{
Destroy(element.gameObject);
}
}
} }

View File

@ -6,7 +6,7 @@ using UnityEngine;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace BlueWaterProject namespace BlueWaterProject
{ {
public class DiscardPopupUi : MonoBehaviour public class DiscardPopupUi : PopupUi
{ {
private enum RemoveType private enum RemoveType
{ {
@ -23,6 +23,15 @@ namespace BlueWaterProject
private int currentCount = 1; private int currentCount = 1;
private RemoveType removeType; private RemoveType removeType;
public override void Close()
{
removeType = RemoveType.NONE;
selectedList.Clear();
countSelectUi.SetActive(false);
base.Close();
}
public void DiscardMessage(ItemSlotUi selectedSlot) public void DiscardMessage(ItemSlotUi selectedSlot)
{ {
removeType = RemoveType.SINGLE; removeType = RemoveType.SINGLE;
@ -33,7 +42,7 @@ namespace BlueWaterProject
countText.text = currentCount.ToString(); countText.text = currentCount.ToString();
countSelectUi.SetActive(true); countSelectUi.SetActive(true);
gameObject.SetActive(true); Open();
} }
public void DiscardAllMessage(List<ItemSlotUi> selectedSlotList) public void DiscardAllMessage(List<ItemSlotUi> selectedSlotList)
@ -43,7 +52,7 @@ namespace BlueWaterProject
contentText.text = "선택한 물품을 모두 버리시겠습니까?"; contentText.text = "선택한 물품을 모두 버리시겠습니까?";
countSelectUi.SetActive(false); countSelectUi.SetActive(false);
gameObject.SetActive(true); Open();
} }
public void CountDownButton() public void CountDownButton()
@ -74,15 +83,7 @@ namespace BlueWaterProject
} }
} }
CancelButton(); Close();
}
public void CancelButton()
{
removeType = RemoveType.NONE;
selectedList.Clear();
countSelectUi.SetActive(false);
gameObject.SetActive(false);
} }
} }
} }

View File

@ -0,0 +1,55 @@
using System;
using UnityEngine;
using UnityEngine.InputSystem;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class GameOverPopupUi : PopupUi
{
public event Action OnRestartEvent;
public override void Open()
{
Time.timeScale = 0f;
FindAnyObjectByType<PlayerInput>().enabled = false;
base.Open();
}
public override void Close()
{
Time.timeScale = 1f;
FindAnyObjectByType<PlayerInput>().enabled = true;
base.Close();
}
public void RestartCurrentStage()
{
OnRestartEvent?.Invoke();
switch (DataManager.Inst.CurrentSaveStage)
{
case SaveStage.TUTORIAL:
break;
case SaveStage.SLIME:
FindAnyObjectByType<SlimeBossMapController>().InitBossMap();
break;
case SaveStage.RHINOCEROS:
break;
default:
throw new ArgumentOutOfRangeException();
}
CombatUiManager.Inst.CloseAllPopup();
}
public void QuitGame()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
}
}

View File

@ -0,0 +1,26 @@
using System;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class PopupUi : MonoBehaviour
{
public static event Action<PopupUi> OnPopupUiOpenEvent;
public static event Action<PopupUi> OnPopupUiCloseEvent;
public virtual void Open()
{
gameObject.SetActive(true);
// 화면의 가장 앞으로 가져오기
transform.SetAsLastSibling();
OnPopupUiOpenEvent?.Invoke(this);
}
public virtual void Close()
{
gameObject.SetActive(false);
OnPopupUiCloseEvent?.Invoke(this);
}
}
}

View File

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

View File

@ -1,46 +0,0 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class RestartPopupUi : MonoBehaviour
{
private List<Crewmate> currentCrewmateList;
private void OnEnable()
{
// 씬이 로드될 때마다 OnSceneLoaded 메서드를 호출합니다.
SceneManager.sceneLoaded += OnSceneLoaded;
}
private void OnDisable()
{
// 이 오브젝트가 비활성화될 때 이벤트 핸들러를 제거합니다.
SceneManager.sceneLoaded -= OnSceneLoaded;
}
private void OnInteraction(InputValue value)
{
currentCrewmateList = GameManager.Inst.CurrentCrewmateList;
var currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex);
}
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
// 로딩 이후에 실행되어야 하는 코드를 여기에 작성합니다.
var spawnController = FindAnyObjectByType<SpawnController>();
foreach (var crewmate in currentCrewmateList)
{
spawnController.SetCrewmatePrefabIndex(crewmate.CrewmatePrefabIndex);
spawnController.AddCrewmate();
}
}
}
}

View File

@ -1,7 +1,5 @@
using Doozy.Runtime.UIManager.Containers;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
using UnityEngine.SceneManagement;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
@ -11,35 +9,15 @@ namespace BlueWaterProject
{ {
[Title("Mouse")] [Title("Mouse")]
private Texture2D cursorTexture; private Texture2D cursorTexture;
[Title("Ocean")]
public OceanUi OceanUi { get; set; }
[Title("Tycoon")] [Title("Tycoon")]
public TycoonUi TycoonUi { get; set; } public TycoonUi TycoonUi { get; set; }
[Title("Combat")]
public CombatUi CombatUi { get; set; }
public ItemInventoryUi CurrentItemInventoryUi { get; set; }
public DiscardPopupUi CurrentDiscardPopupUi { get; set; }
private void Start() private void Start()
{ {
CursorTextureChange(); CursorTextureChange();
//RadarTargetInit(); //RadarTargetInit();
if (SceneManager.GetActiveScene().name == "02.Ocean")
{
CurrentItemInventoryUi = OceanUi.OceanItemInventoryUi;
CurrentDiscardPopupUi = OceanUi.DiscardPopupUi;
}
else if (SceneManager.GetActiveScene().name == "02.Combat_2D")
{
CurrentItemInventoryUi = CombatUi.CombatItemInventoryUi;
CurrentDiscardPopupUi = CombatUi.DiscardPopupUi;
}
} }
private void CursorTextureChange() private void CursorTextureChange()

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: b890e4c4e81b8f344b3e8f8be20f39a4
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.4}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: d634d6475cdf06341b77ce50983ca869
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.4}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: 9b437ab351fdad149adb0f6490d8b2d8
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.4}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: 694a6d3d96adf14478cf520e385effb2
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.4}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: a93fbce65c22b5f4096c0e2d8fc46920
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.27}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: 97d3b05e5126762448268ad5753daa3d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.25}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: 1348250698c1e934cb94d2328a7e4ec9
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.27}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: c0c82c30a10644e4d9bf174af55e9b9a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.27}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: 65d82031f8771ed4eb10113f885836ec
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.27}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: 24f55810478c3e64f8833fd8216ed997
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 9
spritePivot: {x: 0.5, y: 0.33}
spritePixelsToUnits: 2048
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: 3
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: 3
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: 3
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
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

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