// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2021-03-10 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using System.Collections; using System.Collections.Generic; using UnityEngine; namespace G { /// /// 类功能描述 /// public class RedPointNode { public string nodeName; public RedPointNode parentNode; public int pointNum = 0; public readonly Dictionary childs = new Dictionary(); public RedPointProxy.OnRedpointBroadcast numChangeFunc; // 发生变化的回调函数 public void SetRedPointNum(int num) { if (childs.Count > 0) { return; //throw new Exception("红点数量只能设置最后一个子节点"); } pointNum = num; //广播 numChangeFunc?.Invoke(num); if (parentNode != null) { parentNode.ChangeRedPointNum(); } } public void ChangeRedPointNum() { int num = 0; foreach (var node in childs.Values) { num += node.pointNum; } pointNum = num; //广播 numChangeFunc?.Invoke(num); if (parentNode != null) parentNode.ChangeRedPointNum(); } public void SyncRedPoint() { //广播 numChangeFunc?.Invoke(pointNum); } } }