From c7e6219b9ed2605aed8ae98f5c3efb3b2e5bcc1f Mon Sep 17 00:00:00 2001 From: Antoine H Date: Thu, 7 Jan 2021 11:29:20 +0100 Subject: [PATCH] Client order display --- Assets/Prefabs/Characters/Client.prefab | 270 +++++++++++++++++++++++- Assets/Prefabs/CircleTimer.prefab | 77 +++++++ Assets/Scenes/Tests/SampleScene.unity | 10 + Assets/Scripts/Client_controller.cs | 17 ++ Assets/Scripts/UI/UITimer.cs | 7 + 5 files changed, 380 insertions(+), 1 deletion(-) diff --git a/Assets/Prefabs/Characters/Client.prefab b/Assets/Prefabs/Characters/Client.prefab index f4adcbf..deb9b2f 100644 --- a/Assets/Prefabs/Characters/Client.prefab +++ b/Assets/Prefabs/Characters/Client.prefab @@ -32,7 +32,8 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -1.584, y: -1.731, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] + m_Children: + - {fileID: 4584259575647136563} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -147,6 +148,7 @@ MonoBehaviour: m_EditorClassIdentifier: consumeTime: 3 waitingTime: 10 + UIWaitingTimer: {fileID: 5593226198051915290} --- !u!195 &8842024822361446808 NavMeshAgent: m_ObjectHideFlags: 0 @@ -185,3 +187,269 @@ NavMeshObstacle: m_CarveOnlyStationary: 1 m_Center: {x: 0, y: 0.2, z: 0} m_TimeToStationary: 0.1 +--- !u!1 &5453982149135371002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4584259575647136563} + - component: {fileID: 7252818391645497170} + - component: {fileID: 2690933212980904683} + - component: {fileID: 6882280139376046151} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4584259575647136563 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5453982149135371002} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.01, y: 0.01, z: 1} + m_Children: + - {fileID: 5593226198051915291} + m_Father: {fileID: 5304524770463492235} + 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.036, y: 0.639} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &7252818391645497170 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5453982149135371002} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 10 + m_TargetDisplay: 0 +--- !u!114 &2690933212980904683 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5453982149135371002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + 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 +--- !u!114 &6882280139376046151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5453982149135371002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1001 &400957463947064984 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4584259575647136563} + m_Modifications: + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909068, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_Name + value: CircleTimer + objectReference: {fileID: 0} + - target: {fileID: 5192471320214909068, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5192471320581481922, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_SizeDelta.x + value: -2.3754864 + objectReference: {fileID: 0} + - target: {fileID: 5192471320581481922, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_SizeDelta.y + value: -2.3232555 + objectReference: {fileID: 0} + - target: {fileID: 5192471320581481922, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -0.13000011 + objectReference: {fileID: 0} + - target: {fileID: 5192471320581481922, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.10999966 + objectReference: {fileID: 0} + - target: {fileID: 7859106207142621937, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 887fdd182800875449ec5ddf381bcf87, type: 3} +--- !u!224 &5593226198051915291 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5192471320214909059, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + m_PrefabInstance: {fileID: 400957463947064984} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5593226198051915290 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5192471320214909058, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + m_PrefabInstance: {fileID: 400957463947064984} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da748f5c6c44f274786e0947a0c6bbf8, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/CircleTimer.prefab b/Assets/Prefabs/CircleTimer.prefab index 0e64a6d..f314492 100644 --- a/Assets/Prefabs/CircleTimer.prefab +++ b/Assets/Prefabs/CircleTimer.prefab @@ -31,6 +31,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 5192471320581481922} + - {fileID: 7027467526786473816} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -90,6 +91,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: time: {fileID: 5192471320581481921} + icon: {fileID: 1800030824761736103} --- !u!1 &5192471320581481923 GameObject: m_ObjectHideFlags: 0 @@ -165,3 +167,78 @@ MonoBehaviour: m_FillOrigin: 2 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7859106207142621937 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7027467526786473816} + - component: {fileID: 6952962154799206137} + - component: {fileID: 1800030824761736103} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7027467526786473816 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7859106207142621937} + 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: 5192471320214909059} + 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.38095093, y: 0.019145966} + m_SizeDelta: {x: -4.5514526, y: -6.2510986} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6952962154799206137 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7859106207142621937} + m_CullTransparentMesh: 0 +--- !u!114 &1800030824761736103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7859106207142621937} + 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: 17d59b2d4d882c04480a40119a442279, type: 3} + m_Type: 0 + 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/Scenes/Tests/SampleScene.unity b/Assets/Scenes/Tests/SampleScene.unity index 03747e0..d4e9d5f 100644 --- a/Assets/Scenes/Tests/SampleScene.unity +++ b/Assets/Scenes/Tests/SampleScene.unity @@ -34492,6 +34492,16 @@ PrefabInstance: propertyPath: m_Name value: ServiceTimer objectReference: {fileID: 0} + - target: {fileID: 7027467526786473816, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0.019145966 + objectReference: {fileID: 0} + - target: {fileID: 7859106207142621937, guid: 887fdd182800875449ec5ddf381bcf87, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 887fdd182800875449ec5ddf381bcf87, type: 3} --- !u!1001 &5841415791122168402 diff --git a/Assets/Scripts/Client_controller.cs b/Assets/Scripts/Client_controller.cs index 583cedd..c0f614e 100644 --- a/Assets/Scripts/Client_controller.cs +++ b/Assets/Scripts/Client_controller.cs @@ -11,6 +11,7 @@ public class Client_controller : MonoBehaviour, IUsable { public float consumeTime = 3.0f; //Time to consume currentMug public float waitingTime = 10.0f; //Patience after reaching seat + public UITimer UIWaitingTimer = null; string _status; HashSet _availStatus = new HashSet(){"entering", "waiting", "consuming", "leaving"}; @@ -93,6 +94,11 @@ public class Client_controller : MonoBehaviour, IUsable if(gameObject.tag != "Usable") Debug.LogWarning(gameObject.name+" tag should be set to 'Usable' to work properly"); + if(UIWaitingTimer is null) + Debug.LogWarning(gameObject.name+" doesn't have a UIWaitingTimer set"); + else + UIWaitingTimer.gameObject.SetActive(false); + // Navigation // agent = GetComponent(); navObstacle = GetComponent(); @@ -118,6 +124,12 @@ public class Client_controller : MonoBehaviour, IUsable { status="waiting"; waitTimer=waitingTime; + if(UIWaitingTimer != null) + { + UIWaitingTimer.DisplayIcon(true); + UIWaitingTimer.SetValue(1.0f); + UIWaitingTimer.gameObject.SetActive(true); + } } if(status=="waiting") @@ -125,10 +137,15 @@ public class Client_controller : MonoBehaviour, IUsable waitTimer -= Time.deltaTime; if (waitTimer < 0) //Waited too long { + //Disable UI Waiting timer + if(UIWaitingTimer != null) + UIWaitingTimer.gameObject.SetActive(false); //Leave tavern status = "leaving"; agent.SetDestination(ClientManager.Instance.assignTarget(agent.destination)); //Request next target } + else if(UIWaitingTimer != null) //Update UI Waiting timer + UIWaitingTimer.SetValue(waitTimer/waitingTime); } //Consume Timer diff --git a/Assets/Scripts/UI/UITimer.cs b/Assets/Scripts/UI/UITimer.cs index e3c51fa..1f9a20d 100644 --- a/Assets/Scripts/UI/UITimer.cs +++ b/Assets/Scripts/UI/UITimer.cs @@ -7,6 +7,7 @@ public class UITimer : MonoBehaviour { // public Image mask; public Image time; + public Image icon; // float originalSize; void Start() @@ -15,6 +16,12 @@ public class UITimer : MonoBehaviour time.color = Color.green; } + //TODO: Override DisplayIcon to set Icon + public void DisplayIcon(bool value) + { + icon.gameObject.SetActive(value); + } + //Value : [0,1] public void SetValue(float value) {