CapersProject/Assets/Plugins/Pixel Crushers/Common/Scripts/Message System/MessageSystemLogger.cs

49 lines
1.5 KiB
C#

// Copyright (c) Pixel Crushers. All rights reserved.
using UnityEngine;
namespace PixelCrushers
{
[AddComponentMenu("")] // Use wrapper.
public class MessageSystemLogger : MonoBehaviour
{
[Tooltip("Log a message when this GameObject sends a message to the Message System.")]
public bool logWhenSendingMessages;
[Tooltip("Log a message when this GameObject receives a message from the Message System.")]
public bool logWhenReceivingMessages;
private void OnEnable()
{
if (logWhenSendingMessages)
{
MessageSystem.LogWhenSendingMessages(gameObject);
}
if (logWhenReceivingMessages)
{
if (GetComponent(typeof(IMessageHandler)) == null)
{
if (Debug.isDebugBuild) Debug.LogWarning("MessageSystem: " + name + " doesn't have any IMessageHandler components. Can't log when receiving messages.", this);
}
else
{
MessageSystem.LogWhenReceivingMessages(gameObject);
}
}
}
private void OnDisable()
{
if (logWhenSendingMessages)
{
MessageSystem.StopLoggingWhenSendingMessages(gameObject);
}
if (logWhenReceivingMessages)
{
MessageSystem.StopLoggingWhenReceivingMessages(gameObject);
}
}
}
}