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_AddedComponents: []
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
GameObject:
m_CorrespondingSourceObject: {fileID: 1563627856476138492, guid: a9b42b99a195f5d4bb8584e402ba48c1,
@ -100981,12 +100705,12 @@ MonoBehaviour:
m_EditorClassIdentifier:
_persistent: 1
<OceanInventory>k__BackingField:
<InventoryItemList>k__BackingField: []
<ItemSlotList>k__BackingField: []
<WeightLimit>k__BackingField: 150
<CurrentTotalWeight>k__BackingField: 0
<IsOverWeight>k__BackingField: 0
<CombatInventory>k__BackingField:
<InventoryItemList>k__BackingField: []
<ItemSlotList>k__BackingField: []
<WeightLimit>k__BackingField: Infinity
<CurrentTotalWeight>k__BackingField: 0
<IsOverWeight>k__BackingField: 0
@ -124991,7 +124715,6 @@ RectTransform:
- {fileID: 805316000}
- {fileID: 2140726697619417834}
- {fileID: 834995726}
- {fileID: 47534570}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@ -125024,7 +124747,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1e9bae7b916e44f429c86bbd698f0145, type: 3}
m_Name:
m_EditorClassIdentifier:
autoInit: 1
_persistent: 0
<ProcessBar>k__BackingField:
<Obj>k__BackingField: {fileID: 868726319}
<Fill>k__BackingField: {fileID: 271798700}
@ -125038,7 +124761,7 @@ MonoBehaviour:
<DropItemGroupController>k__BackingField: {fileID: 805316001}
<WeatherUi>k__BackingField: {fileID: 2977125648263133580}
<OceanItemInventoryUi>k__BackingField: {fileID: 834995725}
<DiscardPopupUi>k__BackingField: {fileID: 47534569}
popupUiList: []
--- !u!1001 &2105322227
PrefabInstance:
m_ObjectHideFlags: 0
@ -128766,12 +128489,12 @@ PrefabInstance:
- target: {fileID: 5290961994918313947, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.9898618
value: 0.9516782
objectReference: {fileID: 0}
- target: {fileID: 5290961994918313947, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
propertyPath: m_LocalRotation.y
value: 0.14203401
value: 0.307097
objectReference: {fileID: 0}
- target: {fileID: 5465818858273453228, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
@ -128821,17 +128544,17 @@ PrefabInstance:
- target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
propertyPath: m_LocalPosition.x
value: 966.08264
value: -37.29999
objectReference: {fileID: 0}
- target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
propertyPath: m_LocalPosition.y
value: 559.97156
value: 27.144754
objectReference: {fileID: 0}
- target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
propertyPath: m_LocalPosition.z
value: -317.23975
value: -42.87467
objectReference: {fileID: 0}
- target: {fileID: 6474911501201492956, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
@ -128896,17 +128619,17 @@ PrefabInstance:
- target: {fileID: 7878254740279761662, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
propertyPath: m_LocalScale.x
value: 1.7320508
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7878254740279761662, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
propertyPath: m_LocalScale.y
value: 1.7320508
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7878254740279761662, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}
propertyPath: m_LocalScale.z
value: 1.7320508
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8211506079654505266, guid: be1d50d0f9a83864698b17f9e155db2d,
type: 3}

View File

@ -108,15 +108,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""interactions"": ""Hold(duration=1)"",
""initialStateCheck"": false
},
{
""name"": ""SpawnInIsladnPlayer"",
""type"": ""Button"",
""id"": ""1558b861-5937-46f7-8887-3f322044049b"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""CancelHold"",
""type"": ""Button"",
@ -135,33 +126,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""interactions"": """",
""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"",
""type"": ""Button"",
@ -180,15 +144,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""ItemInventory"",
""type"": ""Button"",
""id"": ""1a1c112e-8c2b-47b5-b6ff-e7c113db0b1f"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""Esc"",
""type"": ""Button"",
@ -343,17 +298,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""isComposite"": 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"": """",
""id"": ""3e2f42b7-0dd3-4c8b-bdd5-9be3254465c0"",
@ -387,28 +331,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""isComposite"": 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"": """",
""id"": ""8d33ba7e-c3f4-4c6d-bd6a-11a48f13fdb6"",
@ -431,28 +353,6 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""isComposite"": 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"": """",
""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"",
""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_Targeting = m_Player.FindAction("Targeting", 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_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_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);
// Camera
m_Camera = asset.FindActionMap("Camera", throwIfNotFound: true);
m_Camera_Zoom = m_Camera.FindAction("Zoom", 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
m_Combat = asset.FindActionMap("Combat", 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_Targeting;
private readonly InputAction m_Player_TargetingHold;
private readonly InputAction m_Player_SpawnInIsladnPlayer;
private readonly InputAction m_Player_CancelHold;
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_BuildMode;
private readonly InputAction m_Player_ItemInventory;
private readonly InputAction m_Player_Esc;
public struct PlayerActions
{
@ -896,15 +1018,10 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
public InputAction @Cancel => m_Wrapper.m_Player_Cancel;
public InputAction @Targeting => m_Wrapper.m_Player_Targeting;
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 @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 @BuildMode => m_Wrapper.m_Player_BuildMode;
public InputAction @ItemInventory => m_Wrapper.m_Player_ItemInventory;
public InputAction @Esc => m_Wrapper.m_Player_Esc;
public InputActionMap Get() { return m_Wrapper.m_Player; }
public void Enable() { Get().Enable(); }
@ -942,33 +1059,18 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@TargetingHold.started += instance.OnTargetingHold;
@TargetingHold.performed += instance.OnTargetingHold;
@TargetingHold.canceled += instance.OnTargetingHold;
@SpawnInIsladnPlayer.started += instance.OnSpawnInIsladnPlayer;
@SpawnInIsladnPlayer.performed += instance.OnSpawnInIsladnPlayer;
@SpawnInIsladnPlayer.canceled += instance.OnSpawnInIsladnPlayer;
@CancelHold.started += instance.OnCancelHold;
@CancelHold.performed += instance.OnCancelHold;
@CancelHold.canceled += instance.OnCancelHold;
@Attack.started += instance.OnAttack;
@Attack.performed += 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.performed += instance.OnShiftKey;
@ShiftKey.canceled += instance.OnShiftKey;
@BuildMode.started += instance.OnBuildMode;
@BuildMode.performed += instance.OnBuildMode;
@BuildMode.canceled += instance.OnBuildMode;
@ItemInventory.started += instance.OnItemInventory;
@ItemInventory.performed += instance.OnItemInventory;
@ItemInventory.canceled += instance.OnItemInventory;
@Esc.started += instance.OnEsc;
@Esc.performed += instance.OnEsc;
@Esc.canceled += instance.OnEsc;
@ -1003,33 +1105,18 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@TargetingHold.started -= instance.OnTargetingHold;
@TargetingHold.performed -= instance.OnTargetingHold;
@TargetingHold.canceled -= instance.OnTargetingHold;
@SpawnInIsladnPlayer.started -= instance.OnSpawnInIsladnPlayer;
@SpawnInIsladnPlayer.performed -= instance.OnSpawnInIsladnPlayer;
@SpawnInIsladnPlayer.canceled -= instance.OnSpawnInIsladnPlayer;
@CancelHold.started -= instance.OnCancelHold;
@CancelHold.performed -= instance.OnCancelHold;
@CancelHold.canceled -= instance.OnCancelHold;
@Attack.started -= instance.OnAttack;
@Attack.performed -= 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.performed -= instance.OnShiftKey;
@ShiftKey.canceled -= instance.OnShiftKey;
@BuildMode.started -= instance.OnBuildMode;
@BuildMode.performed -= instance.OnBuildMode;
@BuildMode.canceled -= instance.OnBuildMode;
@ItemInventory.started -= instance.OnItemInventory;
@ItemInventory.performed -= instance.OnItemInventory;
@ItemInventory.canceled -= instance.OnItemInventory;
@Esc.started -= instance.OnEsc;
@Esc.performed -= instance.OnEsc;
@Esc.canceled -= instance.OnEsc;
@ -1105,6 +1192,146 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
}
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
private readonly InputActionMap m_Combat;
private List<ICombatActions> m_CombatActionsCallbackInterfaces = new List<ICombatActions>();
@ -1265,15 +1492,10 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
void OnCancel(InputAction.CallbackContext context);
void OnTargeting(InputAction.CallbackContext context);
void OnTargetingHold(InputAction.CallbackContext context);
void OnSpawnInIsladnPlayer(InputAction.CallbackContext context);
void OnCancelHold(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 OnBuildMode(InputAction.CallbackContext context);
void OnItemInventory(InputAction.CallbackContext context);
void OnEsc(InputAction.CallbackContext context);
}
public interface ICameraActions
@ -1281,6 +1503,20 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
void OnZoom(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
{
void OnMove(InputAction.CallbackContext context);

View File

@ -86,15 +86,6 @@
"interactions": "Hold(duration=1)",
"initialStateCheck": false
},
{
"name": "SpawnInIsladnPlayer",
"type": "Button",
"id": "1558b861-5937-46f7-8887-3f322044049b",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "CancelHold",
"type": "Button",
@ -113,33 +104,6 @@
"interactions": "",
"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",
"type": "Button",
@ -158,15 +122,6 @@
"interactions": "",
"initialStateCheck": false
},
{
"name": "ItemInventory",
"type": "Button",
"id": "1a1c112e-8c2b-47b5-b6ff-e7c113db0b1f",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "Esc",
"type": "Button",
@ -321,17 +276,6 @@
"isComposite": 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": "",
"id": "3e2f42b7-0dd3-4c8b-bdd5-9be3254465c0",
@ -365,28 +309,6 @@
"isComposite": 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": "",
"id": "8d33ba7e-c3f4-4c6d-bd6a-11a48f13fdb6",
@ -409,28 +331,6 @@
"isComposite": 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": "",
"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",
"id": "fcad259b-ca44-46e3-b008-1297fa7be828",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -143,6 +143,10 @@ namespace BlueWaterProject
private Vector2 movementInput;
private Vector3 inputMoveDirection = Vector3.forward;
// Const
private const string OCEAN = "Ocean";
private const string OCEAN_UI = "OceanUi";
#endregion
/***********************************************************************
@ -150,18 +154,6 @@ namespace BlueWaterProject
***************************************************************m********/
#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()
{
InitStart();
@ -206,57 +198,39 @@ namespace BlueWaterProject
***********************************************************************/
#region Input System
public virtual void OnMove(InputValue value) // WASD
public void OnMove(InputAction.CallbackContext context)
{
movementInput = value.Get<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
{
movementInput = context.ReadValue<Vector2>();
}
private void OnAssaultMode(InputValue value) // V
public void OnOpenItemInventory(InputAction.CallbackContext context)
{
}
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)
if (context.started)
{
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();
}
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()
{
UiManager.Inst.OceanUi.ShipBoostSlider.value += Time.deltaTime * (1f / boostMaxTime);
OceanUiManager.Inst.ShipBoostSlider.value += Time.deltaTime * (1f / boostMaxTime);
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);
}
if (UiManager.Inst.OceanUi.ShipBoostSlider.value >= 1f && currentAdditionalBoostTime <= 0)
if (OceanUiManager.Inst.ShipBoostSlider.value >= 1f && currentAdditionalBoostTime <= 0)
{
currentAdditionalBoostTime = additionalBoostTime;
}
@ -408,11 +382,11 @@ namespace BlueWaterProject
if (currentBoostCooldownTime > 0)
{
currentBoostCooldownTime -= Time.deltaTime;
UiManager.Inst.OceanUi.ShipBoostSlider.value = 1f;
OceanUiManager.Inst.ShipBoostSlider.value = 1f;
}
else
{
UiManager.Inst.OceanUi.ShipBoostSlider.value -= Time.deltaTime * (1f / boostRecoveryTime);
OceanUiManager.Inst.ShipBoostSlider.value -= Time.deltaTime * (1f / boostRecoveryTime);
if (!Mathf.Approximately(defaultMaxSpeed, maxSpeed))
{
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;
if (useBoostSpeedLines)
{
UiManager.Inst.OceanUi.SetActiveSpeedLine(true);
isBoosting = true;
if (useBoostSpeedLines)
{
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()
{
isBoosting = false;
if (useBoostSpeedLines)
{
UiManager.Inst.OceanUi.SetActiveSpeedLine(false);
OceanUiManager.Inst.SetActiveSpeedLine(false);
}
if (useBoostChangeDistance)
{
@ -454,6 +435,11 @@ namespace BlueWaterProject
}
public void SetCurrentHp(float value) => CurrentHp = value;
private void SwitchCurrentActionMap(string actionMapName)
{
playerInput.SwitchCurrentActionMap(actionMapName);
}
#endregion
}

View File

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

View File

@ -57,12 +57,12 @@ namespace BlueWaterProject
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);
}
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);
}
}
@ -136,15 +136,8 @@ namespace BlueWaterProject
}
DropItemGroupController dropItemGroupController = null;
if (UiManager.Inst.OceanUi)
{
dropItemGroupController = UiManager.Inst.OceanUi.DropItemGroupController;
}
else if (UiManager.Inst.CombatUi)
{
dropItemGroupController = UiManager.Inst.CombatUi.DropItemGroupController;
}
dropItemGroupController?.ShowDropItemInfoUi(ItemManager.Inst.ItemDictionary[itemSlot.Idx], itemSlot.Count);
dropItemGroupController = FindAnyObjectByType<DropItemGroupController>();
dropItemGroupController.ShowDropItemInfoUi(ItemManager.Inst.ItemDictionary[itemSlot.Idx], itemSlot.Count);
if (audioSource && audioSource.resource)
{

View File

@ -7,7 +7,7 @@ using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class ItemInventoryUi : MonoBehaviour
public class ItemInventoryUi : PopupUi
{
private enum InventoryType
{
@ -22,6 +22,7 @@ namespace BlueWaterProject
[SerializeField, Required] private TMP_Text currentWeight;
[SerializeField, Required] private GameObject itemSlotUiPrefab;
[SerializeField, Required] private Transform instantiateLocation;
[SerializeField, Required] private DiscardPopupUi discardPopupUi;
[field: SerializeField] public List<ItemSlotUi> ItemSlotUiList { get; set; } = new();
@ -30,6 +31,7 @@ namespace BlueWaterProject
private void OnEnable()
{
discardPopupUi.Close();
InitAndUpdateInventory();
inventory.OnChangeItemSlot += ChangedData;
}
@ -43,6 +45,16 @@ namespace BlueWaterProject
{
inventory.OnChangeItemSlot -= ChangedData;
}
public override void Close()
{
if (discardPopupUi.gameObject.activeSelf)
{
discardPopupUi.Close();
}
base.Close();
}
public void InitAndUpdateInventory()
{
@ -173,11 +185,11 @@ namespace BlueWaterProject
if (selectedList.Count == 1)
{
UiManager.Inst.CurrentDiscardPopupUi.DiscardMessage(selectedList[0]);
discardPopupUi.DiscardMessage(selectedList[0]);
}
else if (selectedList.Count > 1)
{
UiManager.Inst.CurrentDiscardPopupUi.DiscardAllMessage(selectedList);
discardPopupUi.DiscardAllMessage(selectedList);
}
}
@ -218,7 +230,5 @@ namespace BlueWaterProject
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 UnityEngine;
using UnityEngine.UI;
@ -5,11 +6,8 @@ using UnityEngine.UI;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class OceanUi : MonoBehaviour
public class OceanUiManager : Singleton<OceanUiManager>
{
[Title("초기화 방식")]
[SerializeField] private bool autoInit = true;
[field: Title("UI")]
[field: SerializeField] public ProcessBar ProcessBar { get; set; }
[SerializeField] private Vector3 processBarOffset = Vector3.zero;
@ -21,7 +19,6 @@ namespace BlueWaterProject
[field: SerializeField] public DropItemGroupController DropItemGroupController { get; set; }
[field: SerializeField] public WeatherUi WeatherUi { get; private set; }
[field: SerializeField] public ItemInventoryUi OceanItemInventoryUi { get; set; }
[field: SerializeField] public DiscardPopupUi DiscardPopupUi { get; set; }
public Canvas MainCanvas { get; private set; }
@ -29,6 +26,26 @@ namespace BlueWaterProject
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("셋팅 초기화")]
private void Init()
{
@ -55,7 +72,6 @@ namespace BlueWaterProject
DropItemGroupController = MainCanvas.transform.Find("DropItemGroup").GetComponent<DropItemGroupController>();
WeatherUi = MainCanvas.transform.Find("WeatherUi").GetComponent<WeatherUi>();
OceanItemInventoryUi = MainCanvas.transform.Find("OceanItemInventoryUi").GetComponent<ItemInventoryUi>();
DiscardPopupUi = MainCanvas.transform.Find("DiscardPopupUi").GetComponent<DiscardPopupUi>();
InstantiateUi = MainCanvas.transform.Find("InstantiateUi");
if (!InstantiateUi)
@ -70,29 +86,37 @@ namespace BlueWaterProject
ItemsLoot = new GameObject("ItemsLoot").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;
var result = mousePos + processBarOffset;
ProcessBar.SetPosition(result);
popupUiList.Remove(popup);
}
}
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);
}
}

View File

@ -78,24 +78,10 @@ namespace BlueWaterProject
private void Start()
{
launchProcessBar = UiManager.Inst.OceanUi.ProcessBar;
launchProcessBar = OceanUiManager.Inst.ProcessBar;
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()
{
HandleLaunchCannon();
@ -122,54 +108,59 @@ namespace BlueWaterProject
***********************************************************************/
#region PlayerInput
private void ToggleLaunchMode()
public void OnToggleLaunchMode(InputAction.CallbackContext context)
{
isLaunchMode = !isLaunchMode;
launchProcessBar.SetActive(isLaunchMode);
if (!isLaunchMode)
if (context.started)
{
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;
chargingGauge = 0f;
previousGauge = chargingGauge;
chargingGauge = 0f;
launchProcessBar.SetFillAmount(0f);
launchProcessBar.SetRotateZ(previousGauge * -360f);
launchProcessBar.SetRotateZ(0f);
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;
cannon.SetActivePredictLine(false);
isCharging = false;
previousGauge = chargingGauge;
chargingGauge = 0f;
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);
cannon.Launch();
StartCoroutine(LaunchCoolDown(cannon.LaunchCooldown));
VisualFeedbackManager.Inst.CameraShake(CameraManager.Inst.OceanCamera.BaseShipCam, cameraShakePower, cameraShakeDuration);
}
}
#endregion

View File

@ -13,12 +13,20 @@ public class SlimeBossMapController : MonoBehaviour
[SerializeField] private Transform bossInstantiateTransform;
[SerializeField] private TitanSlime bossPrefab;
[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);
public void InitBossMap()
{
AllDestroyInstantiateObject();
DataManager.Inst.CurrentSaveStage = SaveStage.SLIME;
AllDestroyObjects();
bossInstanceList = new List<GameObject>(10);
var player = GameObject.FindWithTag("CombatPlayer");
@ -30,28 +38,46 @@ public class SlimeBossMapController : MonoBehaviour
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 slimeState = slimeStateList.Find((list) => list.Level == level);
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);
return instantiateBoss;
}
public void SpawnSplitSlimes(Vector3 deathPosition, int nextLevel, bool hasRabbit)
{
InstantiateSlime(deathPosition, nextLevel, hasRabbit);
InstantiateSlime(deathPosition, nextLevel, false);
var instantiateBossLeft = InstantiateSlime(deathPosition, nextLevel, hasRabbit);
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)
{
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
namespace BlueWaterProject
{
public class DiscardPopupUi : MonoBehaviour
public class DiscardPopupUi : PopupUi
{
private enum RemoveType
{
@ -23,6 +23,15 @@ namespace BlueWaterProject
private int currentCount = 1;
private RemoveType removeType;
public override void Close()
{
removeType = RemoveType.NONE;
selectedList.Clear();
countSelectUi.SetActive(false);
base.Close();
}
public void DiscardMessage(ItemSlotUi selectedSlot)
{
removeType = RemoveType.SINGLE;
@ -33,7 +42,7 @@ namespace BlueWaterProject
countText.text = currentCount.ToString();
countSelectUi.SetActive(true);
gameObject.SetActive(true);
Open();
}
public void DiscardAllMessage(List<ItemSlotUi> selectedSlotList)
@ -43,7 +52,7 @@ namespace BlueWaterProject
contentText.text = "선택한 물품을 모두 버리시겠습니까?";
countSelectUi.SetActive(false);
gameObject.SetActive(true);
Open();
}
public void CountDownButton()
@ -74,15 +83,7 @@ namespace BlueWaterProject
}
}
CancelButton();
}
public void CancelButton()
{
removeType = RemoveType.NONE;
selectedList.Clear();
countSelectUi.SetActive(false);
gameObject.SetActive(false);
Close();
}
}
}

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 UnityEngine;
using UnityEngine.SceneManagement;
// ReSharper disable once CheckNamespace
@ -11,35 +9,15 @@ namespace BlueWaterProject
{
[Title("Mouse")]
private Texture2D cursorTexture;
[Title("Ocean")]
public OceanUi OceanUi { get; set; }
[Title("Tycoon")]
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()
{
CursorTextureChange();
//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()

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