From 4b5689a283f60e29abcd08f1d3116aeea0501888 Mon Sep 17 00:00:00 2001 From: Geri Date: Fri, 26 Jan 2024 20:44:43 +0100 Subject: [PATCH] feature: Message behaviour separation --- Assets/Prefabs/Message.prefab | 13 ++++++++++++ Assets/Scenes/Main.unity | 18 ++++++++++++++-- Assets/Scripts/Messaging/Message.cs | 12 +++++++++++ Assets/Scripts/Messaging/Message.cs.meta | 3 +++ Assets/Scripts/Messaging/MessageManager.cs | 14 +++++++++++++ .../Scripts/Messaging/MessageManager.cs.meta | 3 +++ .../Messaging/MessageStructureGenerator.cs | 21 ++++++++++--------- 7 files changed, 72 insertions(+), 12 deletions(-) create mode 100644 Assets/Scripts/Messaging/Message.cs create mode 100644 Assets/Scripts/Messaging/Message.cs.meta create mode 100644 Assets/Scripts/Messaging/MessageManager.cs create mode 100644 Assets/Scripts/Messaging/MessageManager.cs.meta diff --git a/Assets/Prefabs/Message.prefab b/Assets/Prefabs/Message.prefab index bf76853..335d510 100644 --- a/Assets/Prefabs/Message.prefab +++ b/Assets/Prefabs/Message.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 5034134452723103632} - component: {fileID: 5443779664744389533} - component: {fileID: 7160386019866200041} + - component: {fileID: -6056302822753658535} m_Layer: 5 m_Name: Message m_TagString: Untagged @@ -75,3 +76,15 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &-6056302822753658535 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3730343923350390943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d8cc3fce6c7f415fa982510d4778f914, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index d14533d..a264e1b 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -173,7 +173,7 @@ MonoBehaviour: m_EditorClassIdentifier: maxVisibleMessages: 3 messageHeight: 16 - messagePrefab: {fileID: 3730343923350390943, guid: 6bf006df27e33a24088a28c9d46dbb43, type: 3} + messagePrefab: {fileID: -6056302822753658535, guid: 6bf006df27e33a24088a28c9d46dbb43, type: 3} --- !u!1 &1284257431 GameObject: m_ObjectHideFlags: 0 @@ -367,8 +367,9 @@ GameObject: - component: {fileID: 1759599503} - component: {fileID: 1759599502} - component: {fileID: 1759599501} + - component: {fileID: 1759599505} m_Layer: 5 - m_Name: Mobile + m_Name: TextCanvas m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -457,6 +458,19 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!114 &1759599505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1759599500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7f1284442a5c4154b8d794493ae14b5e, type: 3} + m_Name: + m_EditorClassIdentifier: + messageStructureGenerator: {fileID: 1079303793} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Messaging/Message.cs b/Assets/Scripts/Messaging/Message.cs new file mode 100644 index 0000000..4204fa8 --- /dev/null +++ b/Assets/Scripts/Messaging/Message.cs @@ -0,0 +1,12 @@ +using System; +using UnityEngine; + +namespace Messaging { + public class Message : MonoBehaviour{ + public RectTransform RectTransform { private set; get; } + + private void Awake() { + RectTransform = GetComponent(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Messaging/Message.cs.meta b/Assets/Scripts/Messaging/Message.cs.meta new file mode 100644 index 0000000..4f30449 --- /dev/null +++ b/Assets/Scripts/Messaging/Message.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d8cc3fce6c7f415fa982510d4778f914 +timeCreated: 1706297952 \ No newline at end of file diff --git a/Assets/Scripts/Messaging/MessageManager.cs b/Assets/Scripts/Messaging/MessageManager.cs new file mode 100644 index 0000000..67401a0 --- /dev/null +++ b/Assets/Scripts/Messaging/MessageManager.cs @@ -0,0 +1,14 @@ +using System; +using UnityEngine; + +namespace Messaging { + public class MessageManager : MonoBehaviour{ + [SerializeField] private MessageStructureGenerator messageStructureGenerator; + + private Message[] _messages; + + private void Awake() { + _messages = messageStructureGenerator.GenerateMessages(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Messaging/MessageManager.cs.meta b/Assets/Scripts/Messaging/MessageManager.cs.meta new file mode 100644 index 0000000..b4f71ba --- /dev/null +++ b/Assets/Scripts/Messaging/MessageManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7f1284442a5c4154b8d794493ae14b5e +timeCreated: 1706297692 \ No newline at end of file diff --git a/Assets/Scripts/Messaging/MessageStructureGenerator.cs b/Assets/Scripts/Messaging/MessageStructureGenerator.cs index 8209e32..d858b2a 100644 --- a/Assets/Scripts/Messaging/MessageStructureGenerator.cs +++ b/Assets/Scripts/Messaging/MessageStructureGenerator.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using UnityEngine; namespace Messaging { @@ -6,21 +7,21 @@ namespace Messaging { [SerializeField, Min(0)] private int maxVisibleMessages = 3; [SerializeField, Min(0)] private int messageHeight = 16; - [SerializeField] private RectTransform messagePrefab; - - private void Awake() { - GenerateMessages(); - } + [SerializeField] private Message messagePrefab; - private void GenerateMessages() { + public Message[] GenerateMessages() { + List messages = new(); for (int i = 0; i < maxVisibleMessages; i++) { - GenerateMessage(i * messageHeight); + Message message = GenerateMessage(i * messageHeight); + messages.Add(message); } + return messages.ToArray(); } - private void GenerateMessage(int offsetY) { - RectTransform message = Instantiate(messagePrefab, Vector2.zero, Quaternion.identity, transform); - message.anchoredPosition = new Vector2(0, -offsetY); + private Message GenerateMessage(int offsetY) { + Message message = Instantiate(messagePrefab, Vector2.zero, Quaternion.identity, transform); + message.RectTransform.anchoredPosition = new Vector2(0, -offsetY); + return message; } } } \ No newline at end of file