|
@@ -25,6 +25,7 @@ namespace KairoEngine.UI.ActivityMessages
|
|
|
[BoxGroup("Settings")] public bool startVisible = false;
|
|
|
[BoxGroup("Settings")] public int defaultGroupIndex = 0;
|
|
|
[BoxGroup("Settings")] public int defaultPrefabIndex = 0;
|
|
|
+ [BoxGroup("Settings")] public bool removeOldMessages = true;
|
|
|
|
|
|
[PropertySpace(4,4)]
|
|
|
public List<ActivityMessageGroup> groups = new List<ActivityMessageGroup>();
|
|
@@ -155,6 +156,7 @@ namespace KairoEngine.UI.ActivityMessages
|
|
|
GameObject obj = Instantiate(prefabs[prefabIndex].prefab, groups[groupIndex].container);
|
|
|
ActivityMessageUi msgUi = obj.GetComponent<ActivityMessageUi>();
|
|
|
activeMessages.Add(msgUi);
|
|
|
+ if(removeOldMessages) RemoveOldMessages(groupIndex);
|
|
|
return msgUi;
|
|
|
}
|
|
|
|
|
@@ -193,5 +195,22 @@ namespace KairoEngine.UI.ActivityMessages
|
|
|
}
|
|
|
return defaultPrefabIndex;
|
|
|
}
|
|
|
+
|
|
|
+ public void RemoveOldMessages(int groupIndex)
|
|
|
+ {
|
|
|
+ if(groups[groupIndex].container.childCount > groups[groupIndex].maxVisibleMessages)
|
|
|
+ {
|
|
|
+ int n = groups[groupIndex].container.childCount - groups[groupIndex].maxVisibleMessages;
|
|
|
+ for (int i = 0; i < n; i++)
|
|
|
+ {
|
|
|
+ Destroy(groups[groupIndex].container.GetChild(0).gameObject);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(groups[groupIndex].messages.Count > groups[groupIndex].maxHistoryMessages)
|
|
|
+ {
|
|
|
+ int n = groups[groupIndex].messages.Count - groups[groupIndex].maxHistoryMessages;
|
|
|
+ groups[groupIndex].messages.RemoveRange(0, n);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|