浏览代码

Add Icons placeholders - Set Game Scene UI - Add Aggro System

/main
uChema 3 年前
当前提交
f29c7129
共有 37 个文件被更改,包括 2969 次插入1766 次删除
  1. 999
      UOP1_Project/Assets/Art/UI/PlaceHolders/HeartBorder.png
  2. 1
      UOP1_Project/Assets/Prefabs/Characters/NPCs_Unique/BardHare.prefab
  3. 68
      UOP1_Project/Assets/Prefabs/UI/GameplayScene/GameScreen.prefab
  4. 657
      UOP1_Project/Assets/Scenes/Managers/Gameplay.unity
  5. 1
      UOP1_Project/Assets/ScriptableObjects/Gameplay/GameState.asset
  6. 1
      UOP1_Project/Assets/Scripts/Characters/StateMachine/Actions/ChangeGameStateActionSO.cs
  7. 26
      UOP1_Project/Assets/Scripts/Gameplay/GameStateSO.cs
  8. 1
      UOP1_Project/Assets/Scripts/Input/InputReader.cs
  9. 1
      UOP1_Project/Assets/Scripts/Interaction/InteractionManager.cs
  10. 2
      UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsAudioComponent.cs
  11. 18
      UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsLanguageComponent.cs
  12. 8
      UOP1_Project/Assets/Scripts/UI/Settings/UISettingsController.cs
  13. 29
      UOP1_Project/Assets/Scripts/UI/UIHeartDisplay.cs
  14. 1
      UOP1_Project/Assets/Scripts/UI/UIManager.cs
  15. 2
      UOP1_Project/ProjectSettings/QualitySettings.asset
  16. 446
      UOP1_Project/Assets/Art/UI/PlaceHolders/HeartAggro.png
  17. 120
      UOP1_Project/Assets/Art/UI/PlaceHolders/HeartAggro.png.meta
  18. 322
      UOP1_Project/Assets/Prefabs/UI/GameplayScene/Health System/Heart.prefab
  19. 14
      UOP1_Project/Assets/ScriptableObjects/Events/UI/AggroEvent.asset
  20. 8
      UOP1_Project/Assets/ScriptableObjects/Events/UI/AggroEvent.asset.meta
  21. 309
      UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsGraphicsComponent.cs
  22. 76
      UOP1_Project/Assets/Scripts/UI/Settings/UISetButtonNavigation.cs
  23. 1001
      UOP1_Project/Assets/Shaders/AggroEffect.shadergraph
  24. 10
      UOP1_Project/Assets/Shaders/AggroEffect.shadergraph.meta
  25. 167
      UOP1_Project/Assets/Prefabs/UI/GameplayScene/Health System/Heart (5).prefab
  26. 373
      UOP1_Project/Assets/Scripts/Systems/Settings/SettingsGraphicsComponent.cs
  27. 74
      UOP1_Project/Assets/Scripts/SetButtonNavigation.cs
  28. 0
      /UOP1_Project/Assets/Prefabs/UI/GameplayScene/Health System/Heart.prefab.meta
  29. 0
      /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsAudioComponent.cs.meta
  30. 0
      /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsGraphicsComponent.cs.meta
  31. 0
      /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsLanguageComponent.cs.meta
  32. 0
      /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsAudioComponent.cs
  33. 0
      /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsLanguageComponent.cs
  34. 0
      /UOP1_Project/Assets/Scripts/UI/Settings/UISetButtonNavigation.cs.meta
  35. 0
      /UOP1_Project/Assets/Scripts/CutsceneAudioConfigSetter.cs
  36. 0
      /UOP1_Project/Assets/Scripts/CutsceneAudioConfigSetter.cs.meta

999
UOP1_Project/Assets/Art/UI/PlaceHolders/HeartBorder.png
文件差异内容过多而无法显示
查看文件

1
UOP1_Project/Assets/Prefabs/Characters/NPCs_Unique/BardHare.prefab


_actor: {fileID: 11400000, guid: 027d026cf519df04eb8b7bf251472e13, type: 2}
_defaultDialogue: {fileID: 11400000, guid: f7ead55387bac6d4a9ba9bf10c5c3ee5, type: 2}
_questData: {fileID: 11400000, guid: dacb138678b7c2344b59c68de5dc18db, type: 2}
_gameStateManager: {fileID: 11400000, guid: 159f9c22d98e249ceb08f2c5de2311a4, type: 2}
_interactionEvent: {fileID: 11400000, guid: 5f20ccd3e97527a44a6bf34644f85011, type: 2}
_winDialogueEvent: {fileID: 11400000, guid: dc2da1754c28ab9499cb6c7d72465e69, type: 2}
_loseDialogueEvent: {fileID: 11400000, guid: fcc99784052e5cc469b8c22c0674b051, type: 2}

68
UOP1_Project/Assets/Prefabs/UI/GameplayScene/GameScreen.prefab


- target: {fileID: 4915692451598217997, guid: 2e4947ea4180464408ff7fe04be6a671,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
value: 1
value: 0
value: 1
value: 0
value: 62
value: 0
value: 149.5632
value: 0
value: -34.8091
value: 0
value: 1
value: 0
value: 1
value: 0
value: 69.6182
value: 0
value: -34.8091
objectReference: {fileID: 0}
- target: {fileID: 4915692452906622209, guid: 2e4947ea4180464408ff7fe04be6a671,
type: 3}

propertyPath: m_Name
value: InteractionDisplay
objectReference: {fileID: 0}
- target: {fileID: 4915692452906622210, guid: 2e4947ea4180464408ff7fe04be6a671,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
value: 0
value: 1
value: 0
value: 1
value: 0
value: 40.22
value: 0
value: 139.5632
value: 0
value: -34.8091
value: 0
value: 1
value: 0
value: 1
value: 0
value: 67
value: 0
value: 88.704
value: 0
value: -34.8091
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2e4947ea4180464408ff7fe04be6a671, type: 3}

propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2564300315847848979, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2743678380493192373, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_AnchorMax.y

propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2953649455187504046, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3024197192044976688, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_AnchorMax.y

propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5740383256594478017, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6087809287161891054, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_AnchorMax.y

- target: {fileID: 6087809287161891054, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6292411167976899670, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6352810064952983069, guid: 8f80078235ba241aaa576eba63c44a25,

- target: {fileID: 7686382842736750647, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_PresetInfoIsWorld
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9088227919566831089, guid: 8f80078235ba241aaa576eba63c44a25,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []

657
UOP1_Project/Assets/Scenes/Managers/Gameplay.unity


m_Script: {fileID: 11500000, guid: e1faa963712171c468c0ea8746754bf6, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &868441785
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 868441786}
- component: {fileID: 868441788}
- component: {fileID: 868441787}
m_Layer: 5
m_Name: ButtonController
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &868441786
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 868441785}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1640411318}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 29.4792, y: 0}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &868441787
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 868441785}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 336092fde9e834474aebef075ebf9b16, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &868441788
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 868441785}
m_CullTransparentMesh: 1
--- !u!1 &904363655
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 904363656}
- component: {fileID: 904363658}
- component: {fileID: 904363657}
m_Layer: 5
m_Name: Icon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &904363656
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 904363655}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1640411318}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 83.704, y: 0}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &904363657
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 904363655}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: d552e419d27c42042968f995aff396c9, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &904363658
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 904363655}
m_CullTransparentMesh: 1
--- !u!1001 &978261884
PrefabInstance:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: eaa1d1bcaa3ee4cf0af311e19f20e9ed, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1099223994
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1099223995}
- component: {fileID: 1099223997}
- component: {fileID: 1099223996}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1099223995
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1099223994}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1122245513}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 14.8381, y: 15.4294}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1099223996
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1099223994}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: E
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: fe129390af88b40faa85c89db6820ea6, type: 2}
m_sharedMaterial: {fileID: -5592514773993622969, guid: fe129390af88b40faa85c89db6820ea6,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4280301646
m_fontColor: {r: 0.30588236, g: 0.21960786, b: 0.1254902, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24.05
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &1099223997
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1099223994}
m_CullTransparentMesh: 1
--- !u!1 &1122245512
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1122245513}
- component: {fileID: 1122245515}
- component: {fileID: 1122245514}
m_Layer: 5
m_Name: ButtonKeyboard
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1122245513
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122245512}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1099223995}
m_Father: {fileID: 1640411318}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 40.8592, y: 0}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1122245514
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122245512}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 90d21c5e366e84dfca8fa91810fcb031, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1122245515
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122245512}
m_CullTransparentMesh: 1
--- !u!224 &1172743537 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 9125883718042355530, guid: 42ed5ae1f90714c4488cfabda2298591,

m_Script: {fileID: 11500000, guid: 24b948a9bd4284c4ab2089bf06c7f20c, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1376860263
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1376860264}
- component: {fileID: 1376860266}
- component: {fileID: 1376860265}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1376860264
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1376860263}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1640411318}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1376860265
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1376860263}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: /
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4280301646
m_fontColor: {r: 0.30588236, g: 0.21960786, b: 0.1254902, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &1376860266
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1376860263}
m_CullTransparentMesh: 1
--- !u!1001 &1479900141
PrefabInstance:
m_ObjectHideFlags: 0

type: 3}
m_PrefabInstance: {fileID: 6822594372875662426}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1640411317
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1640411318}
- component: {fileID: 1640411320}
- component: {fileID: 1640411319}
m_Layer: 5
m_Name: InteractionDisplay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1640411318
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1640411317}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 904363656}
- {fileID: 1122245513}
- {fileID: 1376860264}
- {fileID: 868441786}
m_Father: {fileID: 1598614622}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 30, y: -186}
m_SizeDelta: {x: 205.3418, y: 69.6182}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1640411319
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1640411317}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 3
m_Spacing: 5
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!222 &1640411320
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1640411317}
m_CullTransparentMesh: 1
--- !u!1 &1869732377
GameObject:
m_ObjectHideFlags: 0

- target: {fileID: 508816027883578973, guid: 0ac9fcac72b964a9181545df5e543b03,
type: 3}
propertyPath: m_AnchoredPosition.x
value: -29.999939
value: -29.999878
objectReference: {fileID: 0}
- target: {fileID: 2538584498491903614, guid: 0ac9fcac72b964a9181545df5e543b03,
type: 3}

- target: {fileID: 9174077455468900772, guid: 0ac9fcac72b964a9181545df5e543b03,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 29.999939
value: 29.999878
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 0ac9fcac72b964a9181545df5e543b03, type: 3}

m_Modification:
m_TransformParent: {fileID: 1869732381}
m_Modifications:
- target: {fileID: 868441786, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 868441786, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 868441786, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 868441786, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 868441786, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 904363656, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 904363656, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 904363656, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 904363656, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1122245513, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1122245513, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1122245513, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1122245513, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1122245513, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1376860264, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1376860264, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1376860264, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1376860264, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1376860264, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1153531261356032253, guid: 1d09c349511c34e2d8b16f139aadb731,
type: 3}
propertyPath: m_AnchorMax.y

type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5040661310512128791, guid: 1d09c349511c34e2d8b16f139aadb731,
type: 3}
propertyPath: m_SizeDelta.x
value: 50.802
objectReference: {fileID: 0}
- target: {fileID: 5040661310512128791, guid: 1d09c349511c34e2d8b16f139aadb731,
type: 3}

m_SourcePrefab: {fileID: 100100000, guid: 1d09c349511c34e2d8b16f139aadb731, type: 3}
--- !u!114 &6822594372875662427 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4351352784699630511, guid: 1d09c349511c34e2d8b16f139aadb731,
m_CorrespondingSourceObject: {fileID: 7066827173045493578, guid: 1d09c349511c34e2d8b16f139aadb731,
type: 3}
m_PrefabInstance: {fileID: 6822594372875662426}
m_PrefabAsset: {fileID: 0}

1
UOP1_Project/Assets/ScriptableObjects/Gameplay/GameState.asset


m_Script: {fileID: 11500000, guid: c332d1eba5f3e4a13955c85824ab978f, type: 3}
m_Name: GameState
m_EditorClassIdentifier:
_setAggroEvent: {fileID: 11400000, guid: 3c3f87199559eb0418616aedad568b71, type: 2}

1
UOP1_Project/Assets/Scripts/Characters/StateMachine/Actions/ChangeGameStateActionSO.cs


}
void ChangeState()
{
Debug.Log("Change state " + _newGameState + " Transform " + _transform.name);
switch (_newGameState)
{
case GameState.Combat:

26
UOP1_Project/Assets/Scripts/Gameplay/GameStateSO.cs


{
private GameState _currentGameState = default;
private GameState _previousGameState = default;
[SerializeField] BoolEventChannelSO _setAggroEvent = default;
public GameState CurrentGameState => _currentGameState;
List<Transform> _enemiesInCombat = new List<Transform>();
private void OnEnable()

if (newGameState != CurrentGameState)
{
//Debug.Log("UpdateGameState " + newGameState);
if (newGameState == GameState.Combat) // if new game state is combat : switch to aggro
{
_setAggroEvent.RaiseEvent(true);
}
else
{
_setAggroEvent.RaiseEvent(false);
}
_previousGameState = _currentGameState;
_currentGameState = newGameState;
}

//Debug.Log("ResetToPreviousGameState " + _currentGameState);
_currentGameState = _previousGameState;
if (_previousGameState != CurrentGameState)
{
if (_previousGameState == GameState.Combat) // if new game state is combat : switch to aggro
{
_setAggroEvent.RaiseEvent(true);
}
else if (CurrentGameState == GameState.Combat) // if current game state is combat then switch out of aggro
{
_setAggroEvent.RaiseEvent(false);
}
_currentGameState = _previousGameState;
}
}
}

1
UOP1_Project/Assets/Scripts/Input/InputReader.cs


public void OnAdvanceDialogue(InputAction.CallbackContext context)
{
Debug.Log("AdvanceDialogue");
if (context.phase == InputActionPhase.Performed)
advanceDialogueEvent.Invoke();
}

1
UOP1_Project/Assets/Scripts/Interaction/InteractionManager.cs


case InteractionType.Talk:
if (_startTalking != null)
{
Debug.Log("_startTalking");
_potentialInteractions.First.Value.interactableObject.GetComponent<StepController>().InteractWithCharacter();
_inputReader.EnableDialogueInput();
}

2
UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsAudioComponent.cs


using UnityEngine;
using UnityEngine.Events;
public class SettingsAudioComponent : MonoBehaviour
public class UISettingsAudioComponent : MonoBehaviour
{
[SerializeField] UISettingItemFiller _masterVolumeField;
[SerializeField] UISettingItemFiller _musicVolumeField;

18
UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsLanguageComponent.cs


using UnityEngine.Localization;
using UnityEngine.Localization.Settings;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.Serialization;
public class SettingsLanguageComponent : MonoBehaviour
public class UISettingsLanguageComponent : MonoBehaviour
[SerializeField] UISettingItemFiller languageDropdown;
[FormerlySerializedAs("languageDropdown")]
[SerializeField] UISettingItemFiller _languageField = default;
AsyncOperationHandle m_InitializeOperation;
List<string> languageList = new List<string>();

}
_saveButton.Clicked += SaveSettings;
_resetButton.Clicked += ResetSettings;
languageDropdown._nextOption += NextOption;
languageDropdown._previousOption += PreviousOption;
_languageField._nextOption += NextOption;
_languageField._previousOption += PreviousOption;
}
private void OnDisable()
{

_resetButton.Clicked -= ResetSettings;
languageDropdown._nextOption -= NextOption;
languageDropdown._previousOption -= PreviousOption;
_languageField._nextOption -= NextOption;
_languageField._previousOption -= PreviousOption;
LocalizationSettings.SelectedLocaleChanged -= LocalizationSettings_SelectedLocaleChanged;
}

var displayName = locales[i].Identifier.CultureInfo != null ? locales[i].Identifier.CultureInfo.NativeName : locales[i].ToString();
languageList.Add(displayName);
}
languageDropdown.FillSettingField(languageList.Count, _currentSelectedOption, languageList[_currentSelectedOption]);
_languageField.FillSettingField(languageList.Count, _currentSelectedOption, languageList[_currentSelectedOption]);
_savedSelectedOption = _currentSelectedOption;
LocalizationSettings.SelectedLocaleChanged += LocalizationSettings_SelectedLocaleChanged;
}

{
// We need to update the dropdown selection to match.
var selectedIndex = LocalizationSettings.AvailableLocales.Locales.IndexOf(locale);
languageDropdown.FillSettingField(languageList.Count, selectedIndex, languageList[selectedIndex]);
_languageField.FillSettingField(languageList.Count, selectedIndex, languageList[selectedIndex]);
}
public void SaveSettings()

8
UOP1_Project/Assets/Scripts/UI/Settings/UISettingsController.cs


}
public class UISettingsController : MonoBehaviour
{
[SerializeField] private SettingsLanguageComponent _languageComponent;
[SerializeField] private SettingsGraphicsComponent _graphicsComponent;
[SerializeField] private SettingsAudioComponent _audioComponent;
[SerializeField] private UISettingsLanguageComponent _languageComponent;
[SerializeField] private UISettingsGraphicsComponent _graphicsComponent;
[SerializeField] private UISettingsAudioComponent _audioComponent;
[SerializeField] private SettingsSO _currentSettings;
[SerializeField] private SettingsSO _currentSettings = default;
[SerializeField] private List<SettingsType> _settingTabsList = new List<SettingsType>();
private SettingsType _selectedTab = SettingsType.Audio;
[SerializeField] private InputReader _inputReader = default;

29
UOP1_Project/Assets/Scripts/UI/UIHeartDisplay.cs


public class UIHeartDisplay : MonoBehaviour
{
[SerializeField] Image SlidingImage;
[SerializeField]
BoolEventChannelSO _setAggroEvent = default;
[SerializeField] Image _slidingImage = default;
[SerializeField] Image _aggroImage = default;
[SerializeField] Image _bgImage = default;
private void OnEnable()
{
_setAggroEvent.OnEventRaised += SetAggro;
}
private void OnDisable()
{
_setAggroEvent.OnEventRaised -= SetAggro;
}
SlidingImage.fillAmount = percent;
_slidingImage.fillAmount = percent;
if (percent < 1)
{
_bgImage.color = new Color(_bgImage.color.r, _bgImage.color.g, _bgImage.color.b, 0.5f);
}
if (percent == 1)
{
_bgImage.color = new Color(_bgImage.color.r, _bgImage.color.g, _bgImage.color.b, 1);
}
}
public void SetAggro(bool isAggro)
{
_aggroImage.gameObject.SetActive(isAggro);
}
}

1
UOP1_Project/Assets/Scripts/UI/UIManager.cs


void OpenUIDialogue(LocalizedString dialogueLine, ActorSO actor)
{
Debug.Log("OpenUIDialogue");
bool isProtagonistTalking = (actor == _mainProtagonist);
_dialogueController.SetDialogue(dialogueLine, actor, isProtagonistTalking);
_dialogueController.gameObject.SetActive(true);

2
UOP1_Project/ProjectSettings/QualitySettings.asset


skinWeights: 4
textureQuality: 0
anisotropicTextures: 1
antiAliasing: 0
antiAliasing: 2
softParticles: 0
softVegetation: 1
realtimeReflectionProbes: 1

446
UOP1_Project/Assets/Art/UI/PlaceHolders/HeartAggro.png

之前 之后
宽度: 1546  |  高度: 1428  |  大小: 117 KiB

120
UOP1_Project/Assets/Art/UI/PlaceHolders/HeartAggro.png.meta


fileFormatVersion: 2
guid: 73a55dcac24b3ac40bce84252a70e839
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
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
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 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
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

322
UOP1_Project/Assets/Prefabs/UI/GameplayScene/Health System/Heart.prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2452212168606274213
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 197942095025170210}
- component: {fileID: 502051922560774161}
- component: {fileID: 4366080178884650253}
m_Layer: 9
m_Name: HeartBG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &197942095025170210
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2452212168606274213}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 6160154980344531226}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &502051922560774161
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2452212168606274213}
m_CullTransparentMesh: 1
--- !u!114 &4366080178884650253
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2452212168606274213}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: f7832212859f3334bb51bc203948aeb0, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2722643623908019210
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3687514796907880683}
- component: {fileID: 5094783884241698675}
- component: {fileID: 6710324811543529516}
m_Layer: 9
m_Name: AggroBg
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &3687514796907880683
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2722643623908019210}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 3, y: 3, z: 0}
m_Children: []
m_Father: {fileID: 6160154980344531226}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.00000011920929, y: 0}
m_SizeDelta: {x: -0.00000023841858, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5094783884241698675
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2722643623908019210}
m_CullTransparentMesh: 1
--- !u!114 &6710324811543529516
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2722643623908019210}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 0, b: 0, a: 0.33333334}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 73a55dcac24b3ac40bce84252a70e839, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3252307297337961723
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6160154980344531226}
- component: {fileID: 5838050402550013783}
- component: {fileID: 3154276167561949981}
- component: {fileID: 7512214850402593519}
m_Layer: 9
m_Name: Heart
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6160154980344531226
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3252307297337961723}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 3687514796907880683}
- {fileID: 197942095025170210}
- {fileID: 7302444323654689616}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5838050402550013783
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3252307297337961723}
m_CullTransparentMesh: 1
--- !u!114 &3154276167561949981
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3252307297337961723}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: f7832212859f3334bb51bc203948aeb0, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7512214850402593519
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3252307297337961723}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a540d4fc4c843414499eef42aa822b81, type: 3}
m_Name:
m_EditorClassIdentifier:
_setAggroEvent: {fileID: 11400000, guid: 3c3f87199559eb0418616aedad568b71, type: 2}
_slidingImage: {fileID: 6606407167209840454}
_aggroImage: {fileID: 6710324811543529516}
_bgImage: {fileID: 6710324811543529516}
--- !u!1 &5861475152475693651
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7302444323654689616}
- component: {fileID: 8330133716670309808}
- component: {fileID: 6606407167209840454}
m_Layer: 9
m_Name: Heart
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7302444323654689616
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5861475152475693651}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 6160154980344531226}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8330133716670309808
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5861475152475693651}
m_CullTransparentMesh: 1
--- !u!114 &6606407167209840454
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5861475152475693651}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 3fd36e940da953743b7164a5d8298a60, type: 3}
m_Type: 3
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

14
UOP1_Project/Assets/ScriptableObjects/Events/UI/AggroEvent.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3177d113f09ae42448cde1e1a5067d4f, type: 3}
m_Name: AggroEvent
m_EditorClassIdentifier:

8
UOP1_Project/Assets/ScriptableObjects/Events/UI/AggroEvent.asset.meta


fileFormatVersion: 2
guid: 3c3f87199559eb0418616aedad568b71
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

309
UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsGraphicsComponent.cs


using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.Events;
using UnityEngine.Rendering.Universal;
[System.Serializable]
public class ShadowDistanceTier
{
public float Distance;
public string TierDescription;
}
public class UISettingsGraphicsComponent : MonoBehaviour
{
[FormerlySerializedAs("ShadowDistanceTierList")]
[SerializeField] private List<ShadowDistanceTier> _shadowDistanceTierList = new List<ShadowDistanceTier>(); // filled from inspector
[FormerlySerializedAs("URPAsset")]
[SerializeField] private UniversalRenderPipelineAsset _uRPAsset = default;
private int _savedResolutionIndex = default;
private int _savedAntiAliasingIndex = default;
private int _savedShadowDistanceTier = default;
private bool _savedFullscreenState = default;
private int _currentResolutionIndex = default;
private List<Resolution> _resolutionsList = default;
[SerializeField] UISettingItemFiller _resolutionsField = default;
/* private int _currentShadowQualityIndex = default;
private List<string> _shadowQualityList = default;
[SerializeField] private UISettingItemFiller _shadowQualityField = default;*/
private int _currentAntiAliasingIndex = default;
private List<string> _currentAntiAliasingList = default;
[SerializeField] private UISettingItemFiller _antiAliasingField = default;
private int _currentShadowDistanceTier = default;
[SerializeField] private UISettingItemFiller _shadowDistanceField = default;
private bool _isFullscreen = default;
[SerializeField] private UISettingItemFiller _fullscreenField = default;
public event UnityAction<int, int, float, bool> _save = delegate { };
private Resolution _currentResolution;
[SerializeField] private UIGenericButton _saveButton;
[SerializeField] private UIGenericButton _resetButton;
void OnEnable()
{
_resolutionsField._nextOption += NextResolution;
_resolutionsField._previousOption += PreviousResolution;
_shadowDistanceField._nextOption += NextShadowDistanceTier;
_shadowDistanceField._previousOption += PreviousShadowDistanceTier;
_fullscreenField._nextOption += NextFullscreenState;
_fullscreenField._previousOption += PreviousFullscreenState;
_antiAliasingField._nextOption += NextAntiAliasingTier;
_antiAliasingField._previousOption += PreviousAntiAliasingTier;
_saveButton.Clicked += SaveSettings;
_resetButton.Clicked += ResetSettings;
}
private void OnDisable()
{
ResetSettings();
_resolutionsField._nextOption -= NextResolution;
_resolutionsField._previousOption -= PreviousResolution;
_shadowDistanceField._nextOption -= NextShadowDistanceTier;
_shadowDistanceField._previousOption -= PreviousShadowDistanceTier;
_fullscreenField._nextOption -= NextFullscreenState;
_fullscreenField._previousOption -= PreviousFullscreenState;
_antiAliasingField._nextOption -= NextAntiAliasingTier;
_antiAliasingField._previousOption -= PreviousAntiAliasingTier;
_saveButton.Clicked -= SaveSettings;
_resetButton.Clicked -= ResetSettings;
}
public void Init()
{
_resolutionsList = GetResolutionsList();
_currentShadowDistanceTier = GetCurrentShadowDistanceTier();
_currentAntiAliasingList = GetDropdownData(Enum.GetNames(typeof(MsaaQuality)));
_currentResolution = Screen.currentResolution;
_currentResolutionIndex = GetCurrentResolutionIndex();
_isFullscreen = GetCurrentFullscreenState();
_currentAntiAliasingIndex = GetCurrentAntialiasing();
_savedResolutionIndex = _currentResolutionIndex;
_savedAntiAliasingIndex = _currentAntiAliasingIndex;
_savedShadowDistanceTier = _currentShadowDistanceTier;
_savedFullscreenState = _isFullscreen;
}
public void Setup()
{
Init();
SetResolutionField();
SetShadowDistance();
SetFullscreen();
SetAntiAliasingField();
}
#region Resolution
void SetResolutionField()
{
string displayText = _resolutionsList[_currentResolutionIndex].ToString();
displayText = displayText.Substring(0, displayText.IndexOf("@"));
_resolutionsField.FillSettingField(_resolutionsList.Count, _currentResolutionIndex, displayText);
}
List<Resolution> GetResolutionsList()
{
List<Resolution> options = new List<Resolution>();
for (int i = 0; i < Screen.resolutions.Length; i++)
{
options.Add(Screen.resolutions[i]);
}
return options;
}
int GetCurrentResolutionIndex()
{
if (_resolutionsList == null)
{ _resolutionsList = GetResolutionsList(); }
int index = _resolutionsList.FindIndex(o => o.width == _currentResolution.width && o.height == _currentResolution.height);
return index;
}
void NextResolution()
{
_currentResolutionIndex++;
_currentResolutionIndex = Mathf.Clamp(_currentResolutionIndex, 0, _resolutionsList.Count - 1);
OnResolutionChange();
}
void PreviousResolution()
{
_currentResolutionIndex--;
_currentResolutionIndex = Mathf.Clamp(_currentResolutionIndex, 0, _resolutionsList.Count - 1);
OnResolutionChange();
}
void OnResolutionChange()
{
_currentResolution = _resolutionsList[_currentResolutionIndex];
Screen.SetResolution(_currentResolution.width, _currentResolution.height, _isFullscreen);
SetResolutionField();
}
#endregion
#region ShadowDistance
void SetShadowDistance()
{
_shadowDistanceField.FillSettingField_Localized(_shadowDistanceTierList.Count, _currentShadowDistanceTier, _shadowDistanceTierList[_currentShadowDistanceTier].TierDescription);
}
int GetCurrentShadowDistanceTier()
{
int tierIndex = -1;
if (_shadowDistanceTierList.Exists(o => o.Distance == _uRPAsset.shadowDistance))
tierIndex = _shadowDistanceTierList.FindIndex(o => o.Distance == _uRPAsset.shadowDistance);
else
{
Debug.LogError("Current shadow distance is not in the tier List " + _uRPAsset.shadowDistance);
}
return tierIndex;
}
void NextShadowDistanceTier()
{
_currentShadowDistanceTier++;
_currentShadowDistanceTier = Mathf.Clamp(_currentShadowDistanceTier, 0, _shadowDistanceTierList.Count);
OnShadowDistanceChange();
}
void PreviousShadowDistanceTier()
{
_currentShadowDistanceTier--;
_currentShadowDistanceTier = Mathf.Clamp(_currentShadowDistanceTier, 0, _shadowDistanceTierList.Count);
OnShadowDistanceChange();
}
void OnShadowDistanceChange()
{
_uRPAsset.shadowDistance = _shadowDistanceTierList[_currentShadowDistanceTier].Distance;
SetShadowDistance();
}
#endregion
#region fullscreen
void SetFullscreen()
{
if (_isFullscreen)
{
_fullscreenField.FillSettingField_Localized(2, 1, "On");
}
else
{
_fullscreenField.FillSettingField_Localized(2, 0, "Off");
}
}
bool GetCurrentFullscreenState()
{
return Screen.fullScreen;
}
void NextFullscreenState()
{
_isFullscreen = true;
OnFullscreenChange();
}
void PreviousFullscreenState()
{
_isFullscreen = false;
OnFullscreenChange();
}
void OnFullscreenChange()
{
Screen.fullScreen = _isFullscreen;
SetFullscreen();
}
#endregion
#region Anti Aliasing
void SetAntiAliasingField()
{
string optionDisplay = _currentAntiAliasingList[_currentAntiAliasingIndex].Replace("_", "");
_antiAliasingField.FillSettingField(_currentAntiAliasingList.Count, _currentAntiAliasingIndex, optionDisplay);
}
int GetCurrentAntialiasing()
{
return _uRPAsset.msaaSampleCount;
}
void NextAntiAliasingTier()
{
_currentAntiAliasingIndex++;
_currentAntiAliasingIndex = Mathf.Clamp(_currentAntiAliasingIndex, 0, _currentAntiAliasingList.Count - 1);
OnAntiAliasingChange();
}
void PreviousAntiAliasingTier()
{
_currentAntiAliasingIndex--;
_currentAntiAliasingIndex = Mathf.Clamp(_currentAntiAliasingIndex, 0, _currentAntiAliasingList.Count - 1);
OnAntiAliasingChange();
}
void OnAntiAliasingChange()
{
_uRPAsset.msaaSampleCount = _currentAntiAliasingIndex;
SetAntiAliasingField();
}
#endregion
private List<string> GetDropdownData(string[] optionNames, params string[] customOptions)
{
List<string> options = new List<string>();
foreach (string option in optionNames)
{
options.Add(option);
}
foreach (string option in customOptions)
{
options.Add(option);
}
return options;
}
public void SaveSettings()
{
_savedResolutionIndex = _currentResolutionIndex;
_savedAntiAliasingIndex = _currentAntiAliasingIndex;
_savedShadowDistanceTier = _currentShadowDistanceTier;
_savedFullscreenState = _isFullscreen;
float shadowDistance = _shadowDistanceTierList[_currentShadowDistanceTier].Distance;
_save.Invoke(_currentResolutionIndex, _currentAntiAliasingIndex, shadowDistance, _isFullscreen);
}
public void ResetSettings()
{
_currentResolutionIndex = _savedResolutionIndex;
OnResolutionChange();
_currentAntiAliasingIndex = _savedAntiAliasingIndex;
OnAntiAliasingChange();
_currentShadowDistanceTier = _savedShadowDistanceTier;
OnShadowDistanceChange();
_isFullscreen = _savedFullscreenState;
OnFullscreenChange();
}
}

76
UOP1_Project/Assets/Scripts/UI/Settings/UISetButtonNavigation.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Serialization;
public class UISetButtonNavigation : MonoBehaviour
{
[FormerlySerializedAs("genericButtons")]
UIGenericButton[] _genericButtons = default;
[FormerlySerializedAs("listSettingItems")]
UISettingItemFiller[] _listSettingItems = default;
private void OnEnable()
{
if (_listSettingItems == null)
{
_listSettingItems = GetComponentsInChildren<UISettingItemFiller>();
}
if (_listSettingItems.Length > 0)
if (_listSettingItems[0].GetComponent<MultiInputButton>() != null)
//select first item
_listSettingItems[0].GetComponent<MultiInputButton>().Select();
}
private void Start()
{
_listSettingItems = GetComponentsInChildren<UISettingItemFiller>();
_genericButtons = GetComponentsInChildren<UIGenericButton>();
MultiInputButton buttonToSelectOnDown = default;
MultiInputButton buttonToSelectOnUp = default;
for (int i = 0; i < _listSettingItems.Length; i++)
{
Navigation newNavigation = new Navigation();
newNavigation.mode = Navigation.Mode.Explicit;
newNavigation.selectOnLeft = _listSettingItems[i].gameObject.GetComponent<MultiInputButton>().navigation.selectOnLeft;
newNavigation.selectOnRight = _listSettingItems[i].gameObject.GetComponent<MultiInputButton>().navigation.selectOnRight;
if (i + 1 < _listSettingItems.Length)
{
buttonToSelectOnDown = _listSettingItems[i + 1].gameObject.GetComponent<MultiInputButton>();
}
else if (_genericButtons.Length > 0)
{
buttonToSelectOnDown = _genericButtons[0].gameObject.GetComponent<MultiInputButton>();
SetGenericButtonsNavigations(_listSettingItems[i].gameObject.GetComponent<MultiInputButton>());
}
if (i - 1 >= 0)
buttonToSelectOnUp = _listSettingItems[i - 1].gameObject.GetComponent<MultiInputButton>();
newNavigation.selectOnDown = buttonToSelectOnDown;
newNavigation.selectOnUp = buttonToSelectOnUp;
_listSettingItems[i].gameObject.GetComponent<MultiInputButton>().navigation = newNavigation;
_listSettingItems[i].SetNavigation(buttonToSelectOnDown, buttonToSelectOnUp);
}
}
void SetGenericButtonsNavigations(MultiInputButton itemUp)
{
for (int i = 0; i < _genericButtons.Length; i++)
{
Navigation newNavigation = new Navigation();
newNavigation.mode = Navigation.Mode.Explicit;
if (i + 1 < _genericButtons.Length)
newNavigation.selectOnRight = _genericButtons[i + 1].gameObject.GetComponent<MultiInputButton>();
if (i - 1 > 0)
newNavigation.selectOnLeft = _genericButtons[i - 1].gameObject.GetComponent<MultiInputButton>();
newNavigation.selectOnUp = itemUp;
}
}
}

1001
UOP1_Project/Assets/Shaders/AggroEffect.shadergraph
文件差异内容过多而无法显示
查看文件

10
UOP1_Project/Assets/Shaders/AggroEffect.shadergraph.meta


fileFormatVersion: 2
guid: e0d01c7bcc3c25b49ad2154d0f695ef5
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}

167
UOP1_Project/Assets/Prefabs/UI/GameplayScene/Health System/Heart (5).prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3252307297337961723
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6160154980344531226}
- component: {fileID: 5838050402550013783}
- component: {fileID: 3154276167561949981}
- component: {fileID: 7512214850402593519}
m_Layer: 9
m_Name: Heart (5)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6160154980344531226
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3252307297337961723}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 7302444323654689616}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5838050402550013783
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3252307297337961723}
m_CullTransparentMesh: 1
--- !u!114 &3154276167561949981
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3252307297337961723}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: f7832212859f3334bb51bc203948aeb0, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7512214850402593519
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3252307297337961723}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a540d4fc4c843414499eef42aa822b81, type: 3}
m_Name:
m_EditorClassIdentifier:
SlidingImage: {fileID: 6606407167209840454}
--- !u!1 &5861475152475693651
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7302444323654689616}
- component: {fileID: 8330133716670309808}
- component: {fileID: 6606407167209840454}
m_Layer: 9
m_Name: Heart (5)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7302444323654689616
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5861475152475693651}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 6160154980344531226}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8330133716670309808
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5861475152475693651}
m_CullTransparentMesh: 1
--- !u!114 &6606407167209840454
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5861475152475693651}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 3fd36e940da953743b7164a5d8298a60, type: 3}
m_Type: 3
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

373
UOP1_Project/Assets/Scripts/Systems/Settings/SettingsGraphicsComponent.cs


using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Rendering.Universal;
[System.Serializable]
public class ShadowDistanceTier
{
public float Distance;
public string TierDescription;
}
public class SettingsGraphicsComponent : MonoBehaviour
{
[SerializeField] private List<ShadowDistanceTier> ShadowDistanceTierList = new List<ShadowDistanceTier>(); // filled from inspector
[SerializeField] private UniversalRenderPipelineAsset URPAsset = default;
private int _savedResolutionIndex = default;
private int _savedAntiAliasingIndex = default;
private int _savedShadowDistanceTier = default;
private bool _savedFullscreenState = default;
private int _currentResolutionIndex = default;
private List<Resolution> _resolutionsList = default;
[SerializeField] UISettingItemFiller _resolutionsField = default;
/* private int _currentShadowQualityIndex = default;
private List<string> _shadowQualityList = default;
[SerializeField] private UISettingItemFiller _shadowQualityField = default;*/
private int _currentAntiAliasingIndex = default;
private List<string> _currentAntiAliasingList = default;
[SerializeField] private UISettingItemFiller _antiAliasingField = default;
private int _currentShadowDistanceTier = default;
[SerializeField] private UISettingItemFiller _shadowDistanceField = default;
private bool _isFullscreen = default;
[SerializeField] private UISettingItemFiller _fullscreenField = default;
public event UnityAction<int, int, float, bool> _save = delegate { };
private Resolution _currentResolution;
[SerializeField] private UIGenericButton _saveButton;
[SerializeField] private UIGenericButton _resetButton;
void OnEnable()
{
_resolutionsField._nextOption += NextResolution;
_resolutionsField._previousOption += PreviousResolution;
_shadowDistanceField._nextOption += NextShadowDistanceTier;
_shadowDistanceField._previousOption += PreviousShadowDistanceTier;
_fullscreenField._nextOption += NextFullscreenState;
_fullscreenField._previousOption += PreviousFullscreenState;
_antiAliasingField._nextOption += NextAntiAliasingTier;
_antiAliasingField._previousOption += PreviousAntiAliasingTier;
_saveButton.Clicked += SaveSettings;
_resetButton.Clicked += ResetSettings;
}
private void OnDisable()
{
ResetSettings();
_resolutionsField._nextOption -= NextResolution;
_resolutionsField._previousOption -= PreviousResolution;
_shadowDistanceField._nextOption -= NextShadowDistanceTier;
_shadowDistanceField._previousOption -= PreviousShadowDistanceTier;
_fullscreenField._nextOption -= NextFullscreenState;
_fullscreenField._previousOption -= PreviousFullscreenState;
_antiAliasingField._nextOption -= NextAntiAliasingTier;
_antiAliasingField._previousOption -= PreviousAntiAliasingTier;
_saveButton.Clicked -= SaveSettings;
_resetButton.Clicked -= ResetSettings;
}
public void Init()
{
_resolutionsList = GetResolutionsList();
_currentShadowDistanceTier = GetCurrentShadowDistanceTier();
_currentAntiAliasingList = GetDropdownData(Enum.GetNames(typeof(MsaaQuality)));
_currentResolution = Screen.currentResolution;
_currentResolutionIndex = GetCurrentResolutionIndex();
_isFullscreen = GetCurrentFullscreenState();
_currentAntiAliasingIndex = GetCurrentAntialiasing();
_savedResolutionIndex = _currentResolutionIndex;
_savedAntiAliasingIndex = _currentAntiAliasingIndex;
_savedShadowDistanceTier = _currentShadowDistanceTier;
_savedFullscreenState = _isFullscreen;
}
public void Setup()
{
Init();
SetResolutionField();
SetShadowDistance();
SetFullscreen();
SetAntiAliasingField();
}
#region Resolution
void SetResolutionField()
{
string displayText = _resolutionsList[_currentResolutionIndex].ToString();
displayText = displayText.Substring(0, displayText.IndexOf("@"));
_resolutionsField.FillSettingField(_resolutionsList.Count, _currentResolutionIndex, displayText);
}
List<Resolution> GetResolutionsList()
{
List<Resolution> options = new List<Resolution>();
for (int i = 0; i < Screen.resolutions.Length; i++)
{
options.Add(Screen.resolutions[i]);
}
return options;
}
int GetCurrentResolutionIndex()
{
if (_resolutionsList == null)
{ _resolutionsList = GetResolutionsList(); }
int index = _resolutionsList.FindIndex(o => o.width == _currentResolution.width && o.height == _currentResolution.height);
return index;
}
void NextResolution()
{
_currentResolutionIndex++;
_currentResolutionIndex = Mathf.Clamp(_currentResolutionIndex, 0, _resolutionsList.Count - 1);
OnResolutionChange();
}
void PreviousResolution()
{
_currentResolutionIndex--;
_currentResolutionIndex = Mathf.Clamp(_currentResolutionIndex, 0, _resolutionsList.Count - 1);
OnResolutionChange();
}
void OnResolutionChange()
{
_currentResolution = _resolutionsList[_currentResolutionIndex];
Screen.SetResolution(_currentResolution.width, _currentResolution.height, _isFullscreen);
SetResolutionField();
}
#endregion
#region ShadowDistance
void SetShadowDistance()
{
_shadowDistanceField.FillSettingField_Localized(ShadowDistanceTierList.Count, _currentShadowDistanceTier, ShadowDistanceTierList[_currentShadowDistanceTier].TierDescription);
}
int GetCurrentShadowDistanceTier()
{
int tierIndex = -1;
if (ShadowDistanceTierList.Exists(o => o.Distance == URPAsset.shadowDistance))
tierIndex = ShadowDistanceTierList.FindIndex(o => o.Distance == URPAsset.shadowDistance);
else
{
Debug.LogError("Current shadow distance is not in the tier List " + URPAsset.shadowDistance);
}
return tierIndex;
}
void NextShadowDistanceTier()
{
_currentShadowDistanceTier++;
_currentShadowDistanceTier = Mathf.Clamp(_currentShadowDistanceTier, 0, ShadowDistanceTierList.Count);
OnShadowDistanceChange();
}
void PreviousShadowDistanceTier()
{
_currentShadowDistanceTier--;
_currentShadowDistanceTier = Mathf.Clamp(_currentShadowDistanceTier, 0, ShadowDistanceTierList.Count);
OnShadowDistanceChange();
}
void OnShadowDistanceChange()
{
URPAsset.shadowDistance = ShadowDistanceTierList[_currentShadowDistanceTier].Distance;
SetShadowDistance();
}
#endregion
#region fullscreen
void SetFullscreen()
{
if (_isFullscreen)
{
_fullscreenField.FillSettingField_Localized(2, 1, "On");
}
else
{
_fullscreenField.FillSettingField_Localized(2, 0, "Off");
}
}
bool GetCurrentFullscreenState()
{
return Screen.fullScreen;
}
void NextFullscreenState()
{
_isFullscreen = true;
OnFullscreenChange();
}
void PreviousFullscreenState()
{
_isFullscreen = false;
OnFullscreenChange();
}
void OnFullscreenChange()
{
Screen.fullScreen = _isFullscreen;
SetFullscreen();
}
#endregion
#region Anti Aliasing
void SetAntiAliasingField()
{
string optionDisplay = _currentAntiAliasingList[_currentAntiAliasingIndex].Replace("_", "");
_antiAliasingField.FillSettingField(_currentAntiAliasingList.Count, _currentAntiAliasingIndex, optionDisplay);
}
int GetCurrentAntialiasing()
{
return URPAsset.msaaSampleCount;
}
void NextAntiAliasingTier()
{
_currentAntiAliasingIndex++;
_currentAntiAliasingIndex = Mathf.Clamp(_currentAntiAliasingIndex, 0, _currentAntiAliasingList.Count - 1);
OnAntiAliasingChange();
}
void PreviousAntiAliasingTier()
{
_currentAntiAliasingIndex--;
_currentAntiAliasingIndex = Mathf.Clamp(_currentAntiAliasingIndex, 0, _currentAntiAliasingList.Count - 1);
OnAntiAliasingChange();
}
void OnAntiAliasingChange()
{
URPAsset.msaaSampleCount = _currentAntiAliasingIndex;
SetAntiAliasingField();
}
#endregion
private List<string> GetDropdownData(string[] optionNames, params string[] customOptions)
{
List<string> options = new List<string>();
foreach (string option in optionNames)
{
options.Add(option);
}
foreach (string option in customOptions)
{
options.Add(option);
}
return options;
}
public void SaveSettings()
{
_savedResolutionIndex = _currentResolutionIndex;
_savedAntiAliasingIndex = _currentAntiAliasingIndex;
_savedShadowDistanceTier = _currentShadowDistanceTier;
_savedFullscreenState = _isFullscreen;
float shadowDistance = ShadowDistanceTierList[_currentShadowDistanceTier].Distance;
_save.Invoke(_currentResolutionIndex, _currentAntiAliasingIndex, shadowDistance, _isFullscreen);
}
public void ResetSettings()
{
_currentResolutionIndex = _savedResolutionIndex;
OnResolutionChange();
_currentAntiAliasingIndex = _savedAntiAliasingIndex;
OnAntiAliasingChange();
_currentShadowDistanceTier = _savedShadowDistanceTier;
OnShadowDistanceChange();
_isFullscreen = _savedFullscreenState;
OnFullscreenChange();
}
/*
#region ShadowQuality
void SetShadowQualityField()
{
_currentShadowQualityIndex = GetCurrentShadowQualityIndex();
_shadowQualityList = GetDropdownData(Enum.GetNames(typeof(UnityEngine.Rendering.Universal.ShadowQuality)));
_shadowQualityField.FillSettingField_Localized(_shadowQualityList.Count, _currentShadowQualityIndex, _shadowQualityList[_currentShadowQualityIndex]);
}
int GetCurrentShadowQualityIndex()
{
UnityEngine.Rendering.Universal.ShadowQuality shadowQuality = UnityEngine.Rendering.Universal.ShadowQuality.Disabled;
if (URPAsset.supportsMainLightShadows && URPAsset.supportsSoftShadows)
{
shadowQuality = UnityEngine.Rendering.Universal.ShadowQuality.SoftShadows;
}
else if (URPAsset.supportsMainLightShadows)
{
shadowQuality = UnityEngine.Rendering.Universal.ShadowQuality.HardShadows;
}
else
{
shadowQuality = UnityEngine.Rendering.Universal.ShadowQuality.Disabled;
}
return (int)shadowQuality;
}
void SetNextShadowQuality()
{
_currentShadowQualityIndex++;
_currentShadowQualityIndex = Mathf.Clamp(_currentShadowQualityIndex, 0, _shadowQualityList.Count - 1);
OnShadowQualityChange();
}
void SetPreviousShadowQuality()
{
_currentShadowQualityIndex--;
_currentShadowQualityIndex = Mathf.Clamp(_currentShadowQualityIndex, 0, _shadowQualityList.Count - 1);
OnShadowQualityChange();
}
void OnShadowQualityChange()
{
UnityEngine.Rendering.Universal.ShadowQuality shadowQuality = (UnityEngine.Rendering.Universal.ShadowQuality)_currentShadowQualityIndex;
switch (shadowQuality)
{
case UnityEngine.Rendering.Universal.ShadowQuality.SoftShadows:
URPAsset.shadow = true;
URPAsset.supportsSoftShadows = true;
break;
case UnityEngine.Rendering.Universal.ShadowQuality.HardShadows:
URPAsset.supportsMainLightShadows = true;
URPAsset.supportsSoftShadows = false;
break;
case UnityEngine.Rendering.Universal.ShadowQuality.Disabled:
URPAsset.supportsMainLightShadows = false;
URPAsset.supportsSoftShadows = false;
break;
}
SetShadowQualityField();
}
#endregion
*/
}

74
UOP1_Project/Assets/Scripts/SetButtonNavigation.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SetButtonNavigation : MonoBehaviour
{
UIGenericButton[] genericButtons;
UISettingItemFiller[] listSettingItems;
private void Start()
{
listSettingItems = GetComponentsInChildren<UISettingItemFiller>();
genericButtons = GetComponentsInChildren<UIGenericButton>();
MultiInputButton buttonToSelectOnDown = default;
MultiInputButton buttonToSelectOnUp = default;
for (int i = 0; i < listSettingItems.Length; i++)
{
Navigation newNavigation = new Navigation();
newNavigation.mode = Navigation.Mode.Explicit;
newNavigation.selectOnLeft = listSettingItems[i].gameObject.GetComponent<MultiInputButton>().navigation.selectOnLeft;
newNavigation.selectOnRight = listSettingItems[i].gameObject.GetComponent<MultiInputButton>().navigation.selectOnRight;
if (i + 1 < listSettingItems.Length)
{
buttonToSelectOnDown = listSettingItems[i + 1].gameObject.GetComponent<MultiInputButton>();
}
else if (genericButtons.Length > 0)
{
buttonToSelectOnDown = genericButtons[0].gameObject.GetComponent<MultiInputButton>();
SetGenericButtonsNavigations(listSettingItems[i].gameObject.GetComponent<MultiInputButton>());
}
if (i - 1 >= 0)
buttonToSelectOnUp = listSettingItems[i - 1].gameObject.GetComponent<MultiInputButton>();
newNavigation.selectOnDown = buttonToSelectOnDown;
newNavigation.selectOnUp = buttonToSelectOnUp;
listSettingItems[i].gameObject.GetComponent<MultiInputButton>().navigation = newNavigation;
listSettingItems[i].SetNavigation(buttonToSelectOnDown, buttonToSelectOnUp);
}
}
private void OnEnable()
{
if (listSettingItems == null)
{
listSettingItems = GetComponentsInChildren<UISettingItemFiller>();
}
if (listSettingItems.Length > 0)
if (listSettingItems[0].GetComponent<MultiInputButton>() != null)
//select first item
listSettingItems[0].GetComponent<MultiInputButton>().Select();
}
void SetGenericButtonsNavigations(MultiInputButton itemUp)
{
for (int i = 0; i < genericButtons.Length; i++)
{
Navigation newNavigation = new Navigation();
newNavigation.mode = Navigation.Mode.Explicit;
if (i + 1 < genericButtons.Length)
newNavigation.selectOnRight = genericButtons[i + 1].gameObject.GetComponent<MultiInputButton>();
if (i - 1 > 0)
newNavigation.selectOnLeft = genericButtons[i - 1].gameObject.GetComponent<MultiInputButton>();
newNavigation.selectOnUp = itemUp;
}
}
}

/UOP1_Project/Assets/Prefabs/UI/GameplayScene/Health System/Heart (5).prefab.meta → /UOP1_Project/Assets/Prefabs/UI/GameplayScene/Health System/Heart.prefab.meta

/UOP1_Project/Assets/Scripts/Systems/Settings/SettingsAudioComponent.cs.meta → /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsAudioComponent.cs.meta

/UOP1_Project/Assets/Scripts/Systems/Settings/SettingsGraphicsComponent.cs.meta → /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsGraphicsComponent.cs.meta

/UOP1_Project/Assets/Scripts/Systems/Settings/SettingsLanguageComponent.cs.meta → /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsLanguageComponent.cs.meta

/UOP1_Project/Assets/Scripts/Systems/Settings/SettingsAudioComponent.cs → /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsAudioComponent.cs

/UOP1_Project/Assets/Scripts/Systems/Settings/SettingsLanguageComponent.cs → /UOP1_Project/Assets/Scripts/Systems/Settings/UISettingsLanguageComponent.cs

/UOP1_Project/Assets/Scripts/SetButtonNavigation.cs.meta → /UOP1_Project/Assets/Scripts/UI/Settings/UISetButtonNavigation.cs.meta

/UOP1_Project/Assets/CutsceneAudioConfigSetter.cs → /UOP1_Project/Assets/Scripts/CutsceneAudioConfigSetter.cs

/UOP1_Project/Assets/CutsceneAudioConfigSetter.cs.meta → /UOP1_Project/Assets/Scripts/CutsceneAudioConfigSetter.cs.meta

部分文件因为文件数量过多而无法显示

正在加载...
取消
保存