using System.Collections; using UnityEngine; namespace RR.Common.Behaviour { public class MessageController : Sequencer { [SerializeField] private GameObject messagePlaceholderPrefab; [SerializeField] private GameObject messageBubblePrefab; private void OnTriggerEnter2D(Collider2D other) { if (!IsExecuting && other.CompareTag("Player")) { StartCoroutine(ExecuteSequence(other.gameObject)); } } public void Add(GameObject targetObject, string text) { // Ищем объект "Message Placeholder" среди дочерних объектов Transform placeholder = targetObject.transform.Find("Message Placeholder"); // Если placeholder не найден, создаем его if (!placeholder) { GameObject placeholderInstance = Instantiate(messagePlaceholderPrefab, targetObject.transform); if (targetObject.transform.localScale != Vector3.one) { placeholderInstance.transform.localScale = Vector3.one / targetObject.transform.localScale.x; } placeholderInstance.name = "Message Placeholder"; placeholder = placeholderInstance.transform; } // Создаем Message и добавляем его в placeholder GameObject messageInstance = Instantiate(messageBubblePrefab, placeholder); Message message = messageInstance.GetComponent(); if (message) { message.Initialize(text); } } } }