Unity UI的功能解锁,红点Tips,特效触发的做法思考

首先解锁比较特殊,有明确的行为,80%都是判断角色等级,然后进行按钮灰显或者隐藏的操作。

而特效和Tips没有明确的行为。

 

主要需要取舍的2点是主动调用还是回调被动调用,被动调用意味着代码会很乱。没有一个统一的入口,但是主动调用需要传Object参数,也很麻烦。

首先我否决了在层级面板绑定的做法,还是传入路径,但是会初始化一下:

public abstract class CBWidget : MonoBehaviour
{
    public abstract void Init(object host);
}

 

然后所有功能解锁,Tips,特效都是通过这个基类载入进来。然后通过面板的回调来实现各自的触发。

好处:

1.能通过统一的入口找到他们

2.虽然功能解锁有明确行为,比如"需要某某灵魂球才能开启某功能",这样的需求依然是不稳定的

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。