From 7123c54b1e6f1f4971b60bddf732d9232078f3d1 Mon Sep 17 00:00:00 2001 From: Antoine H Date: Wed, 6 Jan 2021 16:43:08 +0100 Subject: [PATCH] First UI Timer --- Assets/Arts/Temporaires/UI.meta | 8 + Assets/Arts/Temporaires/UI/black_circle 1.png | Bin 0 -> 4401 bytes .../Temporaires/UI/black_circle 1.png.meta | 94 +++++ Assets/Arts/Temporaires/UI/white_circle.png | Bin 0 -> 3864 bytes .../Arts/Temporaires/UI/white_circle.png.meta | 94 +++++ Assets/Prefabs/CircleTimer.prefab | 167 +++++++++ Assets/Prefabs/CircleTimer.prefab.meta | 7 + Assets/Scenes/Tests/SampleScene.unity | 336 +++++++++++++++++- Assets/Scripts/GameSystems/GameSystem.cs | 19 + Assets/Scripts/UI/UITimer.cs | 36 ++ Assets/Scripts/UI/UITimer.cs.meta | 11 + 11 files changed, 765 insertions(+), 7 deletions(-) create mode 100644 Assets/Arts/Temporaires/UI.meta create mode 100644 Assets/Arts/Temporaires/UI/black_circle 1.png create mode 100644 Assets/Arts/Temporaires/UI/black_circle 1.png.meta create mode 100644 Assets/Arts/Temporaires/UI/white_circle.png create mode 100644 Assets/Arts/Temporaires/UI/white_circle.png.meta create mode 100644 Assets/Prefabs/CircleTimer.prefab create mode 100644 Assets/Prefabs/CircleTimer.prefab.meta create mode 100644 Assets/Scripts/UI/UITimer.cs create mode 100644 Assets/Scripts/UI/UITimer.cs.meta diff --git a/Assets/Arts/Temporaires/UI.meta b/Assets/Arts/Temporaires/UI.meta new file mode 100644 index 0000000..eef6bbd --- /dev/null +++ b/Assets/Arts/Temporaires/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1473711d038f4c348a85c93df3536929 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Arts/Temporaires/UI/black_circle 1.png b/Assets/Arts/Temporaires/UI/black_circle 1.png new file mode 100644 index 0000000000000000000000000000000000000000..8dba1d07e620fb2d9399e7aa1b612637e7b01aea GIT binary patch literal 4401 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 PPyunqxS}iVNtFKs7n)sH literal 0 HcmV?d00001 diff --git a/Assets/Arts/Temporaires/UI/black_circle 1.png.meta b/Assets/Arts/Temporaires/UI/black_circle 1.png.meta new file mode 100644 index 0000000..9387343 --- /dev/null +++ b/Assets/Arts/Temporaires/UI/black_circle 1.png.meta @@ -0,0 +1,94 @@ +fileFormatVersion: 2 +guid: 6922cb13d3792074e96c7f2499785fb1 +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: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + 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 + 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 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Arts/Temporaires/UI/white_circle.png b/Assets/Arts/Temporaires/UI/white_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..34f3ecf26bdd755d4e39cafbd7d6c43882066df0 GIT binary patch literal 3864 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 TSGkztHZ`Z6TpdeLlpFsC(); + } } // Start is called before the first frame update @@ -67,12 +78,17 @@ public sealed class GameSystem : MonoBehaviour { if(serviceOpen) { + //Update service timer serviceTimer-= Time.deltaTime; + if(UIServiceTimer != null) + UIServiceTimer.SetValue(serviceTimer/serviceTime); if (serviceTimer < 0) { serviceOpen = false; Debug.Log("Service closed"); } + + //Request new clients ClientManager.Instance.clientRequest(); } @@ -85,6 +101,9 @@ public sealed class GameSystem : MonoBehaviour // Debug.Log("Service timer : "+(int)serviceTimer); } + // simple Singleton implementation + //public static GameSystem instance { get; private set; } //Give public access to the instance. But only set from this class + //// Singleton Implementation (https://jlambert.developpez.com/tutoriels/dotnet/implementation-pattern-singleton-csharp/#LIII) //// private GameSystem() { diff --git a/Assets/Scripts/UI/UITimer.cs b/Assets/Scripts/UI/UITimer.cs new file mode 100644 index 0000000..e3c51fa --- /dev/null +++ b/Assets/Scripts/UI/UITimer.cs @@ -0,0 +1,36 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class UITimer : MonoBehaviour +{ + // public Image mask; + public Image time; + // float originalSize; + + void Start() + { + // originalSize = mask.rectTransform.rect.height; + time.color = Color.green; + } + + //Value : [0,1] + public void SetValue(float value) + { + if(value>1||value<0) + Debug.LogWarning(gameObject.name+" - Timer value out of range [0,1]: "+value); + //Change time color + if(value>0.66) + time.color = Color.green; + else if(value>0.33) + time.color = Color.yellow; + else + time.color = Color.red; + + time.fillAmount = value; + + //Change mask size + // mask.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, originalSize * value); + } +} diff --git a/Assets/Scripts/UI/UITimer.cs.meta b/Assets/Scripts/UI/UITimer.cs.meta new file mode 100644 index 0000000..35f5197 --- /dev/null +++ b/Assets/Scripts/UI/UITimer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da748f5c6c44f274786e0947a0c6bbf8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: