diff --git a/Assets/GameObjects/Prefabs/UI/StatRow.prefab b/Assets/GameObjects/Prefabs/UI/StatRow.prefab new file mode 100644 index 0000000..9829cc0 --- /dev/null +++ b/Assets/GameObjects/Prefabs/UI/StatRow.prefab @@ -0,0 +1,347 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5156071862843448369 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2529582914226630944} + - component: {fileID: 832710096039509886} + - component: {fileID: 8330516596261808022} + m_Layer: 0 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2529582914226630944 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5156071862843448369} + 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: 2783260985018780936} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -30, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &832710096039509886 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5156071862843448369} + m_CullTransparentMesh: 0 +--- !u!114 &8330516596261808022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5156071862843448369} + 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: Name + 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: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + 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: 1 + 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!1 &5900974317034213573 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6728115578868763891} + - component: {fileID: 1790233341519156250} + - component: {fileID: 3713700490059430972} + m_Layer: 0 + m_Name: Ping + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6728115578868763891 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5900974317034213573} + 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: 2783260985018780936} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -30, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1790233341519156250 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5900974317034213573} + m_CullTransparentMesh: 0 +--- !u!114 &3713700490059430972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5900974317034213573} + 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: 325ms + 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: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + 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: 1 + 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!1 &6592059455020087165 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2783260985018780936} + - component: {fileID: 4281804494587797006} + - component: {fileID: 8839169563776830771} + m_Layer: 5 + m_Name: StatRow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2783260985018780936 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6592059455020087165} + 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: 2529582914226630944} + - {fileID: 6728115578868763891} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4281804494587797006 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6592059455020087165} + m_CullTransparentMesh: 0 +--- !u!114 &8839169563776830771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6592059455020087165} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.6117647, g: 0.6117647, b: 0.6117647, a: 0.13333334} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/GameObjects/Prefabs/UI/StatRow.prefab.meta b/Assets/GameObjects/Prefabs/UI/StatRow.prefab.meta new file mode 100644 index 0000000..7daff73 --- /dev/null +++ b/Assets/GameObjects/Prefabs/UI/StatRow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 02259c41b4c68c246afbf2fd4b4c1624 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameObjects/Prefabs/UI/StatScreenRoot.prefab b/Assets/GameObjects/Prefabs/UI/StatScreenRoot.prefab index ba5c0ff..41e57ed 100644 --- a/Assets/GameObjects/Prefabs/UI/StatScreenRoot.prefab +++ b/Assets/GameObjects/Prefabs/UI/StatScreenRoot.prefab @@ -1,40 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &2609531472064681412 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2609531472064681413} - m_Layer: 5 - m_Name: GameObject - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2609531472064681413 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2609531472064681412} - 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: 2609531472936249903} - 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!1 &2609531472936249902 GameObject: m_ObjectHideFlags: 0 @@ -44,6 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2609531472936249903} + - component: {fileID: 2485693633501989437} m_Layer: 5 m_Name: StatScreenRoot m_TagString: Untagged @@ -62,8 +28,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 2609531472064681413} - - {fileID: 7550352768254404835} + - {fileID: 2512848922102124251} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -72,7 +37,22 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &4634946584865394689 +--- !u!114 &2485693633501989437 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2609531472936249902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1da126e178ac7c14b8b7be077858e78c, type: 3} + m_Name: + m_EditorClassIdentifier: + RowColor: {r: 0.6117647, g: 0.6117647, b: 0.6117647, a: 0.13333334} + BackroundPanel: {fileID: 2512848922102124251} + RowPrefab: {fileID: 6592059455020087165, guid: 02259c41b4c68c246afbf2fd4b4c1624, type: 3} +--- !u!1 &9081539380605237274 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -80,129 +60,70 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7550352768254404835} - - component: {fileID: 985717578783227526} - - component: {fileID: 9022081531750701039} + - component: {fileID: 2512848922102124251} + - component: {fileID: 5690162511384283012} + - component: {fileID: 6647023590045687286} m_Layer: 5 - m_Name: Hello! + m_Name: BackgroundPanel m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &7550352768254404835 +--- !u!224 &2512848922102124251 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4634946584865394689} + m_GameObject: {fileID: 9081539380605237274} 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: 2609531472936249903} - m_RootOrder: 1 + 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_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 200, y: 50} + m_SizeDelta: {x: -600, y: -200} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &985717578783227526 +--- !u!222 &5690162511384283012 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4634946584865394689} + m_GameObject: {fileID: 9081539380605237274} m_CullTransparentMesh: 0 ---- !u!114 &9022081531750701039 +--- !u!114 &6647023590045687286 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4634946584865394689} + m_GameObject: {fileID: 9081539380605237274} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + 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_Color: {r: 0, g: 0, b: 0, a: 0.7529412} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Yee - 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: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - 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: 1 - 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} + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Scripts/Interface/StatScreen.cs b/Assets/Scripts/Interface/StatScreen.cs new file mode 100644 index 0000000..777096a --- /dev/null +++ b/Assets/Scripts/Interface/StatScreen.cs @@ -0,0 +1,108 @@ + +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.InputSystem; +using TMPro; +using NeonTea.Quakeball.Networking; +using System.Collections.Generic; + +namespace NeonTea.Quakeball.Interface { + public class StatScreen : MonoBehaviour { + + public Color RowColor; + public RectTransform BackroundPanel; + public GameObject RowPrefab; + public bool ForceOpen; + + private bool Open; + + private InputAction OpenStatScreenAction; + + private List Rows = new List(); + private bool LastRowIsDark = true; + private Color DarkColor; + + private int LastRowAmount = 0; + private float LastUpdate; + + public void Start() { + OpenStatScreenAction = new InputAction("Open stats", binding: "/tab"); + OpenStatScreenAction.Enable(); + + DarkColor = new Color(0, 0, 0, 0); + DarkColor.a = RowColor.a; + BackroundPanel.gameObject.SetActive(false); + } + + public void Update() { + if (OpenStatScreenAction.ReadValue() > 0 || ForceOpen) { + Open = true; + } else { + Open = false; + } + BackroundPanel.gameObject.SetActive(Open); + if (Open && (Time.time - LastUpdate) > 0.5f && Net.Singleton.Instance != null) { + UpdateRows(); + } + } + + public void UpdateRows() { + int rowAmount = Net.Singleton.Instance.PlayerList.Count; + if (rowAmount != LastRowAmount) { + UpdateRowAmount(); + LastRowAmount = rowAmount; + } + for (int i = 0; i < rowAmount; i++) { + NetPlayer player = Net.Singleton.Instance.PlayerList[i]; + Rows[i].GetChild(0).GetComponent().text = player.Nick; + int ping = (int)(player.Ping * 1000); + Rows[i].GetChild(1).GetComponent().text = $"{ping} ms"; + } + } + + public void UpdateRowAmount() { + int rowAmount = Net.Singleton.Instance.PlayerList.Count; + while (Rows.Count < rowAmount) { + AddRow(); + } + while (Rows.Count > rowAmount) { + RemoveRow(); + } + } + + public void AddRow() { + GameObject rowobj = GameObject.Instantiate(RowPrefab); + rowobj.transform.parent = BackroundPanel; + + RectTransform row = rowobj.GetComponent(); + Rows.Add(row); + Vector2 offsetMin = row.offsetMin; + offsetMin.x = 0; + row.offsetMin = offsetMin; + + Vector2 offsetMax = row.offsetMax; + offsetMax.x = 0; + row.offsetMax = offsetMax; + + Vector2 pos = row.anchoredPosition; + pos.y = 20 - (row.rect.height * Rows.Count); + row.anchoredPosition = pos; + + Image rowImage = row.GetComponent(); + if (LastRowIsDark) { + rowImage.color = RowColor; + } else { + rowImage.color = DarkColor; + } + LastRowIsDark = !LastRowIsDark; + } + + public void RemoveRow() { + if (Rows.Count > 0) { + GameObject.Destroy(Rows[Rows.Count - 1].gameObject); + Rows.RemoveAt(Rows.Count - 1); + LastRowIsDark = !LastRowIsDark; + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Interface/StatScreen.cs.meta b/Assets/Scripts/Interface/StatScreen.cs.meta new file mode 100644 index 0000000..b4915d9 --- /dev/null +++ b/Assets/Scripts/Interface/StatScreen.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1da126e178ac7c14b8b7be077858e78c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Networking/Instances/Client.cs b/Assets/Scripts/Networking/Instances/Client.cs index 1847bc2..2002f73 100644 --- a/Assets/Scripts/Networking/Instances/Client.cs +++ b/Assets/Scripts/Networking/Instances/Client.cs @@ -14,7 +14,6 @@ namespace NeonTea.Quakeball.Networking.Instances { private Connection Server; - public Dictionary Players { get; private set; } = new Dictionary(); private bool SelfIdentified = false; public float Ping { get; private set; } @@ -32,6 +31,7 @@ namespace NeonTea.Quakeball.Networking.Instances { if (Peer.Running) { return; } + Players.Clear(); Peer = new Peer(Fingerprint); Peer.MessageListener = listener; Peer.Start(0); @@ -73,6 +73,7 @@ namespace NeonTea.Quakeball.Networking.Instances { } } Players.Clear(); + PlayerList.Clear(); Peer.Stop(); Ping = 0; } @@ -83,7 +84,7 @@ namespace NeonTea.Quakeball.Networking.Instances { SelfIdentPckt ident = (SelfIdentPckt)packet; LocalPlayer.Id = ident.PlayerId; LocalPlayer.Controlled.NetId = LocalPlayer.Id; - Players.Add(LocalPlayer.Id, LocalPlayer); + AddPlayer(LocalPlayer); SelfIdentified = true; NicknamePckt nickpckt = new NicknamePckt(LocalPlayer.Nick); @@ -95,7 +96,8 @@ namespace NeonTea.Quakeball.Networking.Instances { NicknamePckt nick = (NicknamePckt)packet; if (nick.PlayerId != LocalPlayer.Id) { if (!Players.ContainsKey(nick.PlayerId)) { - Players.Add(nick.PlayerId, new NetPlayer(nick.PlayerId)); + NetPlayer player = new NetPlayer(nick.PlayerId); + AddPlayer(player); } Players[nick.PlayerId].Nick = nick.Nick; } diff --git a/Assets/Scripts/Networking/Instances/NetInstance.cs b/Assets/Scripts/Networking/Instances/NetInstance.cs index 2b038bb..8973618 100644 --- a/Assets/Scripts/Networking/Instances/NetInstance.cs +++ b/Assets/Scripts/Networking/Instances/NetInstance.cs @@ -13,6 +13,8 @@ namespace NeonTea.Quakeball.Networking.Instances { public Peer Peer; public List Connections = new List(); + public Dictionary Players { get; private set; } = new Dictionary(); + public List PlayerList { get; private set; } = new List(); public NetPlayer LocalPlayer; public NetInstance() { @@ -31,6 +33,16 @@ namespace NeonTea.Quakeball.Networking.Instances { public virtual void Update() { } + protected void AddPlayer(NetPlayer player) { + Players.Add(player.Id, player); + PlayerList.Add(player); + } + + protected void RemovePlayer(NetPlayer player) { + Players.Remove(player.Id); + PlayerList.Remove(player); + } + public void Stop() { if (Peer.Running) { OnStop(); diff --git a/Assets/Scripts/Networking/Instances/Server.cs b/Assets/Scripts/Networking/Instances/Server.cs index 30ad72a..de28fad 100644 --- a/Assets/Scripts/Networking/Instances/Server.cs +++ b/Assets/Scripts/Networking/Instances/Server.cs @@ -12,8 +12,6 @@ namespace NeonTea.Quakeball.Networking.Instances { private NetChaperone Net; - public Dictionary Players { get; private set; } = new Dictionary(); - public List PlayerList { get; private set; } = new List(); private ulong PlayerIdCounter; private byte LastPingIdent; @@ -28,6 +26,7 @@ namespace NeonTea.Quakeball.Networking.Instances { if (Peer.Running) { return; } + Players.Clear(); Peer = new Peer(Fingerprint); Peer.MessageListener = listener; Peer.Start(port); @@ -137,16 +136,6 @@ namespace NeonTea.Quakeball.Networking.Instances { } } - private void AddPlayer(NetPlayer player) { - Players.Add(player.Id, player); - PlayerList.Add(player); - } - - private void RemovePlayer(NetPlayer player) { - Players.Remove(player.Id); - PlayerList.Remove(player); - } - private void HandleUpdatePckt(ulong uid, PlayerUpdatePckt pckt) { if (Players[uid].Controlled != null && !Players[uid].Controlled.IsDead) { pckt.PlayerId = uid; diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 0b2298b..a77d016 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -95,7 +95,7 @@ PlayerSettings: xboxEnableFitness: 0 visibleInBackground: 1 allowFullscreenSwitch: 1 - fullscreenMode: 1 + fullscreenMode: 3 xboxSpeechDB: 0 xboxEnableHeadOrientation: 0 xboxEnableGuest: 0