하트 시스템, 2d 버튼 에셋 추가
This commit is contained in:
9
Gameton-06/Assets/HealthHeartSystem/Fonts.meta
Normal file
9
Gameton-06/Assets/HealthHeartSystem/Fonts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7364898a6d32dc749b5c01380ed27b12
|
||||
folderAsset: yes
|
||||
timeCreated: 1528808478
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Gameton-06/Assets/HealthHeartSystem/Fonts/TinyUnicode.ttf
LFS
Normal file
BIN
Gameton-06/Assets/HealthHeartSystem/Fonts/TinyUnicode.ttf
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f385d0af027fa3b4c88d921455a73928
|
||||
timeCreated: 1528808496
|
||||
licenseType: Store
|
||||
TrueTypeFontImporter:
|
||||
serializedVersion: 4
|
||||
fontSize: 16
|
||||
forceTextureCase: -2
|
||||
characterSpacing: 0
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontNames:
|
||||
- TinyUnicode
|
||||
fallbackFontReferences: []
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
ascentCalculationMode: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
9
Gameton-06/Assets/HealthHeartSystem/Graphics.meta
Normal file
9
Gameton-06/Assets/HealthHeartSystem/Graphics.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e0066cc1b03bd9646814a7e9c46a4ac6
|
||||
folderAsset: yes
|
||||
timeCreated: 1528773156
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Gameton-06/Assets/HealthHeartSystem/Graphics/mini-heart.png
LFS
Normal file
BIN
Gameton-06/Assets/HealthHeartSystem/Graphics/mini-heart.png
LFS
Normal file
Binary file not shown.
177
Gameton-06/Assets/HealthHeartSystem/Graphics/mini-heart.png.meta
Normal file
177
Gameton-06/Assets/HealthHeartSystem/Graphics/mini-heart.png.meta
Normal file
@@ -0,0 +1,177 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fed24bd82cefc0c4a8ef64dab6231b53
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 21300000
|
||||
second: mini-heart_0
|
||||
- first:
|
||||
213: 21300002
|
||||
second: mini-heart_1
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 16
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 1
|
||||
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: 1
|
||||
swizzle: 50462976
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 1
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: mini-heart_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
y: 5
|
||||
width: 8
|
||||
height: 7
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 02305410000000000800000000000000
|
||||
internalID: 21300000
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: mini-heart_1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 5
|
||||
width: 8
|
||||
height: 7
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 22305410000000000800000000000000
|
||||
internalID: 21300002
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable:
|
||||
mini-heart_0: 21300000
|
||||
mini-heart_1: 21300002
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
9
Gameton-06/Assets/HealthHeartSystem/Prefabs.meta
Normal file
9
Gameton-06/Assets/HealthHeartSystem/Prefabs.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 27764678eb252ed46870bc3416c6a52e
|
||||
folderAsset: yes
|
||||
timeCreated: 1528777717
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,153 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1000012404040654
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 224000013362947360}
|
||||
- component: {fileID: 222000010951976848}
|
||||
- component: {fileID: 114000013271162368}
|
||||
m_Layer: 5
|
||||
m_Name: HeartFill
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &224000013362947360
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1000012404040654}
|
||||
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: 224000013332938072}
|
||||
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 &222000010951976848
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1000012404040654}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &114000013271162368
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1000012404040654}
|
||||
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: fed24bd82cefc0c4a8ef64dab6231b53, type: 3}
|
||||
m_Type: 3
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 0
|
||||
m_FillOrigin: 2
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &1000013667988280
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 224000013332938072}
|
||||
- component: {fileID: 222000010212943332}
|
||||
- component: {fileID: 114000013152205012}
|
||||
m_Layer: 5
|
||||
m_Name: HeartContainer
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &224000013332938072
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1000013667988280}
|
||||
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:
|
||||
- {fileID: 224000013362947360}
|
||||
m_Father: {fileID: 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 &222000010212943332
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1000013667988280}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &114000013152205012
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1000013667988280}
|
||||
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: 21300002, guid: fed24bd82cefc0c4a8ef64dab6231b53, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 1
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 0
|
||||
m_FillOrigin: 2
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 677e3f20f0ab76a45bd59d5b73b0b446
|
||||
timeCreated: 1528777723
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
9
Gameton-06/Assets/HealthHeartSystem/Scenes.meta
Normal file
9
Gameton-06/Assets/HealthHeartSystem/Scenes.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ba54bdb728a0c14aaa935bfaf25a8ff
|
||||
folderAsset: yes
|
||||
timeCreated: 1528774928
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1241
Gameton-06/Assets/HealthHeartSystem/Scenes/ExampleScene.unity
Normal file
1241
Gameton-06/Assets/HealthHeartSystem/Scenes/ExampleScene.unity
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7b7e0bf5b7cf5c94485b6ef8618c24ba
|
||||
timeCreated: 1528774928
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,66 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!850595691 &4890085278179872738
|
||||
LightingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ExampleSceneSettings
|
||||
serializedVersion: 6
|
||||
m_GIWorkflowMode: 1
|
||||
m_EnableBakedLightmaps: 0
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_RealtimeEnvironmentLighting: 1
|
||||
m_BounceScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_UsingShadowmask: 0
|
||||
m_BakeBackend: 0
|
||||
m_LightmapMaxSize: 1024
|
||||
m_BakeResolution: 40
|
||||
m_Padding: 2
|
||||
m_LightmapCompression: 3
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAO: 0
|
||||
m_MixedBakeMode: 1
|
||||
m_LightmapsBakeMode: 1
|
||||
m_FilterMode: 1
|
||||
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_RealtimeResolution: 2
|
||||
m_ForceWhiteAlbedo: 0
|
||||
m_ForceUpdates: 0
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherRayCount: 256
|
||||
m_FinalGatherFiltering: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVREnvironmentSampleCount: 512
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_PVRBounces: 2
|
||||
m_PVRMinBounces: 2
|
||||
m_PVREnvironmentImportanceSampling: 0
|
||||
m_PVRFilteringMode: 0
|
||||
m_PVRDenoiserTypeDirect: 0
|
||||
m_PVRDenoiserTypeIndirect: 0
|
||||
m_PVRDenoiserTypeAO: 0
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_PVRTiledBaking: 0
|
||||
m_NumRaysToShootPerTexel: -1
|
||||
m_RespectSceneVisibilityWhenBakingGI: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d35184a8ab3da994298c23d7e8eb8346
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 4890085278179872738
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
9
Gameton-06/Assets/HealthHeartSystem/Scripts.meta
Normal file
9
Gameton-06/Assets/HealthHeartSystem/Scripts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 05fab8bcb2bc0d141b51be88e3d32009
|
||||
folderAsset: yes
|
||||
timeCreated: 1528773163
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Author: ariel oliveira [o.arielg@gmail.com]
|
||||
*/
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class HealthBarController : MonoBehaviour
|
||||
{
|
||||
private GameObject[] heartContainers;
|
||||
private Image[] heartFills;
|
||||
|
||||
public Transform heartsParent;
|
||||
public GameObject heartContainerPrefab;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
// Should I use lists? Maybe :)
|
||||
heartContainers = new GameObject[(int)PlayerStats.Instance.MaxTotalHealth];
|
||||
heartFills = new Image[(int)PlayerStats.Instance.MaxTotalHealth];
|
||||
|
||||
PlayerStats.Instance.onHealthChangedCallback += UpdateHeartsHUD;
|
||||
InstantiateHeartContainers();
|
||||
UpdateHeartsHUD();
|
||||
}
|
||||
|
||||
public void UpdateHeartsHUD()
|
||||
{
|
||||
SetHeartContainers();
|
||||
SetFilledHearts();
|
||||
}
|
||||
|
||||
void SetHeartContainers()
|
||||
{
|
||||
for (int i = 0; i < heartContainers.Length; i++)
|
||||
{
|
||||
if (i < PlayerStats.Instance.MaxHealth)
|
||||
{
|
||||
heartContainers[i].SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
heartContainers[i].SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetFilledHearts()
|
||||
{
|
||||
for (int i = 0; i < heartFills.Length; i++)
|
||||
{
|
||||
if (i < PlayerStats.Instance.Health)
|
||||
{
|
||||
heartFills[i].fillAmount = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
heartFills[i].fillAmount = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (PlayerStats.Instance.Health % 1 != 0)
|
||||
{
|
||||
int lastPos = Mathf.FloorToInt(PlayerStats.Instance.Health);
|
||||
heartFills[lastPos].fillAmount = PlayerStats.Instance.Health % 1;
|
||||
}
|
||||
}
|
||||
|
||||
void InstantiateHeartContainers()
|
||||
{
|
||||
for (int i = 0; i < PlayerStats.Instance.MaxTotalHealth; i++)
|
||||
{
|
||||
GameObject temp = Instantiate(heartContainerPrefab);
|
||||
temp.transform.SetParent(heartsParent, false);
|
||||
heartContainers[i] = temp;
|
||||
heartFills[i] = temp.transform.Find("HeartFill").GetComponent<Image>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c0f78e4acfe21a4594760304164796e
|
||||
timeCreated: 1528773206
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Author: ariel oliveira [o.arielg@gmail.com]
|
||||
*/
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
public class HealthBarHUDTester : MonoBehaviour
|
||||
{
|
||||
public void AddHealth()
|
||||
{
|
||||
PlayerStats.Instance.AddHealth();
|
||||
}
|
||||
|
||||
public void Heal(float health)
|
||||
{
|
||||
PlayerStats.Instance.Heal(health);
|
||||
}
|
||||
|
||||
public void Hurt(float dmg)
|
||||
{
|
||||
PlayerStats.Instance.TakeDamage(dmg);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dcf2586f5b209a045af9dff869aa39f4
|
||||
timeCreated: 1528773206
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
67
Gameton-06/Assets/HealthHeartSystem/Scripts/PlayerStats.cs
Normal file
67
Gameton-06/Assets/HealthHeartSystem/Scripts/PlayerStats.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Author: ariel oliveira [o.arielg@gmail.com]
|
||||
*/
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerStats : MonoBehaviour
|
||||
{
|
||||
public delegate void OnHealthChangedDelegate();
|
||||
public OnHealthChangedDelegate onHealthChangedCallback;
|
||||
|
||||
#region Sigleton
|
||||
private static PlayerStats instance;
|
||||
public static PlayerStats Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (instance == null)
|
||||
instance = FindObjectOfType<PlayerStats>();
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
[SerializeField]
|
||||
private float health;
|
||||
[SerializeField]
|
||||
private float maxHealth;
|
||||
[SerializeField]
|
||||
private float maxTotalHealth;
|
||||
|
||||
public float Health { get { return health; } }
|
||||
public float MaxHealth { get { return maxHealth; } }
|
||||
public float MaxTotalHealth { get { return maxTotalHealth; } }
|
||||
|
||||
public void Heal(float health)
|
||||
{
|
||||
this.health += health;
|
||||
ClampHealth();
|
||||
}
|
||||
|
||||
public void TakeDamage(float dmg)
|
||||
{
|
||||
health -= dmg;
|
||||
ClampHealth();
|
||||
}
|
||||
|
||||
public void AddHealth()
|
||||
{
|
||||
if (maxHealth < maxTotalHealth)
|
||||
{
|
||||
maxHealth += 1;
|
||||
health = maxHealth;
|
||||
|
||||
if (onHealthChangedCallback != null)
|
||||
onHealthChangedCallback.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
void ClampHealth()
|
||||
{
|
||||
health = Mathf.Clamp(health, 0, maxHealth);
|
||||
|
||||
if (onHealthChangedCallback != null)
|
||||
onHealthChangedCallback.Invoke();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ec0b64c0b1dccc64d91eee52d85267bd
|
||||
timeCreated: 1528773206
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Gameton-06/Assets/HealthHeartSystem/readme.txt
Normal file
8
Gameton-06/Assets/HealthHeartSystem/readme.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
How it works?
|
||||
All heart containers are instantiated at start, and unused heart containers are disabled until being used.
|
||||
The property fillAMount of UI Images are used to fill the hearts. 1 heart equals to 1 health.
|
||||
|
||||
Why using floats?
|
||||
Well, this assets was originally part of a game of mine, where the player would have a health between 3 and 20. Monsters
|
||||
would deal about 1 damage, and later in the game the player could get armors (reducing damage by 25% or 50%, multiplying
|
||||
the damage by 0.75f or 0.5f, respectively).
|
||||
8
Gameton-06/Assets/HealthHeartSystem/readme.txt.meta
Normal file
8
Gameton-06/Assets/HealthHeartSystem/readme.txt.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 780e5d2cf97f26e4596b2505309867ff
|
||||
timeCreated: 1528808420
|
||||
licenseType: Store
|
||||
TextScriptImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user