add basic UI to player

This commit is contained in:
2026-05-05 22:13:38 +02:00
parent c845ef3b9c
commit 68c82eeee1
4 changed files with 299 additions and 5 deletions
+268
View File
@@ -1218,6 +1218,143 @@ Transform:
m_CorrespondingSourceObject: {fileID: 4603155083716662, guid: 985369c38b6cde34c9edcb82fcb80fcd, type: 3}
m_PrefabInstance: {fileID: 76859624}
m_PrefabAsset: {fileID: 0}
--- !u!1 &76936385
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 76936386}
- component: {fileID: 76936388}
- component: {fileID: 76936387}
m_Layer: 5
m_Name: PlayerStatsDisplay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &76936386
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 76936385}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1635556983}
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: 70, y: 60}
m_SizeDelta: {x: 150, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &76936387
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 76936385}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
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: 'Time: N/A | Kills: N/A'
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: 12
m_fontSizeBase: 12
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 1
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &76936388
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 76936385}
m_CullTransparentMesh: 1
--- !u!1001 &86535589
PrefabInstance:
m_ObjectHideFlags: 0
@@ -10314,6 +10451,19 @@ AudioSource:
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!114 &816325342
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 816325328}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6f30135307ff0ec4cb878cac80d60090, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::PlayerController
statsDispaly: {fileID: 76936387}
--- !u!1001 &816396565
PrefabInstance:
m_ObjectHideFlags: 0
@@ -16821,6 +16971,16 @@ Transform:
m_CorrespondingSourceObject: {fileID: 478950, guid: 07e80b0ee9f6e1a47a595818270057eb, type: 3}
m_PrefabInstance: {fileID: 1227380758}
m_PrefabAsset: {fileID: 0}
--- !u!4 &1229559986 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1767192434, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 1461267492}
m_PrefabAsset: {fileID: 0}
--- !u!20 &1229559990 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 1767192439, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 1461267492}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1230262171
PrefabInstance:
m_ObjectHideFlags: 0
@@ -20098,6 +20258,9 @@ PrefabInstance:
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 1767192434, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
insertIndex: -1
addedObject: {fileID: 1635556983}
- targetCorrespondingSourceObject: {fileID: 1670256625, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
insertIndex: -1
addedObject: {fileID: 253752627}
@@ -20105,6 +20268,9 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: 1717954561962503725, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
insertIndex: -1
addedObject: {fileID: 816325335}
- targetCorrespondingSourceObject: {fileID: 1717954561962503725, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
insertIndex: -1
addedObject: {fileID: 816325342}
m_SourcePrefab: {fileID: 100100000, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
--- !u!4 &1461267493 stripped
Transform:
@@ -23865,6 +24031,108 @@ Transform:
m_CorrespondingSourceObject: {fileID: 460738, guid: a0775b8f0a4df084ba6e1ee04ad55a13, type: 3}
m_PrefabInstance: {fileID: 1634813604}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1635556982
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1635556983}
- component: {fileID: 1635556986}
- component: {fileID: 1635556985}
- component: {fileID: 1635556984}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1635556983
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1635556982}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 76936386}
m_Father: {fileID: 1229559986}
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, y: 0}
--- !u!114 &1635556984
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1635556982}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &1635556985
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1635556982}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!223 &1635556986
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1635556982}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 1
m_Camera: {fileID: 1229559990}
m_PlaneDistance: 1
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!4 &1641518471 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 400000, guid: 1a5f2b92e3d507a438173f443b67a160, type: 3}
+21
View File
@@ -0,0 +1,21 @@
using TMPro;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
[SerializeField] private TMP_Text statsDispaly;
private float time;
private int kills;
public void IncrementKills()
{
kills++;
}
void FixedUpdate()
{
time += Time.fixedDeltaTime;
statsDispaly.SetText($"Time: {time:F0}s | Kills: {kills}");
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6f30135307ff0ec4cb878cac80d60090
+8 -5
View File
@@ -29,7 +29,7 @@ public class ZombieController : MonoBehaviour
[SerializeField] private AudioClip[] sfx;
[SerializeField] private int sfxDelay = 5; // seconds
private Transform player;
private PlayerController player;
private Animator animator;
private AudioSource audioSource;
private float lastSfxPlay;
@@ -40,7 +40,7 @@ public class ZombieController : MonoBehaviour
{
currentHealth = maxHealth;
animator = GetComponent<Animator>();
player = GameObject.FindGameObjectWithTag("Player").transform;
player = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>();
audioSource = GetComponent<AudioSource>();
}
@@ -50,7 +50,7 @@ public class ZombieController : MonoBehaviour
PlaySfx();
float distance = Vector3.Distance(transform.position, player.position);
float distance = Vector3.Distance(transform.position, player.transform.position);
if (distance <= attackDistance)
{
@@ -92,9 +92,9 @@ public class ZombieController : MonoBehaviour
private void MoveToPlayer(float speed)
{
Vector3 direction = (player.position - transform.position).normalized;
Vector3 direction = (player.transform.position - transform.position).normalized;
transform.position += speed * Time.deltaTime * direction;
transform.LookAt(new Vector3(player.position.x, transform.position.y, player.position.z));
transform.LookAt(new Vector3(player.transform.position.x, transform.position.y, player.transform.position.z));
}
private void StopMoving()
@@ -129,7 +129,10 @@ public class ZombieController : MonoBehaviour
private void Die()
{
Debug.Log($"{gameObject.name} is dead");
animator.SetTrigger(DieHash);
player.IncrementKills();
Destroy(gameObject, 2f);
}
}