独立游戏开发(十四)-- 游戏UI及事件管理系统接入

上篇我们游戏的整体流程已经ok了,今天我们先把UI给放置进去。
其实我们就一个场景,所以与其说需要2个界面,还是可以1个界面搞定。
但为了适用性,还是用2个界面,一个开始,一个结算界面。
首先我们还是定义一个UIWindow基类,所有的界面都继承自此类。
然后通过UI管理类来开关界面。
UI框架网上有许多,我这里不再赘述了。
我们先来看看第一个界面,游戏开始界面:
在这里插入图片描述
就一个标题,一个开始按钮,标题做了一个动画,让它从上面落下来,直接用itween实现的。

_aniTween = _topObj.DOLocalMoveY(-210, 1.0f);
_aniTween.SetEase(Ease.OutBounce);

在这里插入图片描述
游戏结束也很简单,当病毒碰到我们的player的时候就游戏结束,右上角是我们的游戏分数。
这里重点说一下分数吧,因为要计算分数,所以引入了事件管理器。

public class EventManager : Singleton<EventManager>
{
    private EventDispatcher<int, object> mEventDispatcher;

    private EventDispatcher<int, object> GetDispatcher()
    {
        return mEventDispatcher ?? (mEventDispatcher = new EventDispatcher<int, object>());
    }

    public void AddEventListener(int eventId, Action<object> callback)
    {
        GetDispatcher().AddListener(eventId, callback);
    }

    public void RemoveEventListener(int eventId, Action<object> callback)
    {
        GetDispatcher().RemoveListener(eventId, callback);
    }

    public void DispatchEvent(int eventId, object obj = null)
    {
        GetDispatcher().DispatchEvent(eventId, obj);
    }
}
public virtual bool DispatchEvent(S _eventCode, T _param = default(T))
{
    if (eventDict.ContainsKey(_eventCode))
    {
        Action<T> callback = eventDict[_eventCode];
        if (callback != null)
        {
            callback(_param);
            return true;
        }
    }

    return false;
}

其实就是action方法。
然后在相应的地方添加事件:

private void AddListener()
{
    EventManager.Instance.AddEventListener(EventDefine.VirusDeadNtf, OnVirusDeadNtf);
    EventManager.Instance.AddEventListener(EventDefine.GameOverNtf, OnGameOverNtf);
}

UI其实也是串联我们游戏整体的一个环节,有个界面后,游戏的整个流程就更加明朗了。

传送门:独立游戏开发–索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值