泰斗破环神学习笔记——主界面开发

本文探讨游戏主界面设计,包括角色状态、信息面板及金币显示。深入解析委托与事件在Unity UI元素交互中的应用,如Button、Image、Text。通过自定义委托和事件实现角色面板更新,以及经验值增长的处理。
摘要由CSDN通过智能技术生成

泰斗破环神学习笔记——主界面开发

主界面主要就是,角色状态面板、角色信息面板、金币与钻石数额面板



前言

三大面板在 Sence面板中 的开发,其实没有太大的难度,说白了也不过是,Button、Image、Text,三种UI元素拼凑而成。至于代码部分唯一算有知识点的就是,委托与事件


一、委托(delegate)

委托就是把方法当参数,也可以是方法的参数!

  • 委托的简单使用(C#自带的两种委托)
    • Func委托
    • Action委托

这里对以上两种委托不进行,过多的诉述,因为主界面开发用到的是 自定义委托
委托是一种类,类是数据类型,所以委托也是一种数据类型

自定义委托的声明:
public delegate 数据类型 委托名 有无参数都可;
示例:
public delegate void Name;
public delegate Double Student;


二、事件(Event)

  • 事件 就是使对象或类具备 通知能力 的成员
  • 事件 是一种使对象或类能够提供通知的成员
  • “ 对象 O 拥有一个 事件E ”,想表达的思想是:当 事件E 发生的时候,对象 O 有能力通知别的对象
  • 使用: 用于对象或类间的动作协调与信息传递(信息推送)

1.事件的五大组成模型

  • 事件的拥有者
  • 事件
  • 事件的响应者
  • 事件处理器
  • 事件处理器跟事件订阅

代码如下(示例):
在这里插入图片描述
以上代码:
事件拥有者:Form
事件:this.From.Click
事件的响应者:Controller conotroller = new Controller(Form)
事件处理器:This.FormClicked
事件处理器跟事件的订阅:this.Form.Click += this.FormClicked


2.事件的声明

事件声明分两种:完整声明、简略声明。
代码如下(完整声明示例):
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


代码如下(简略声明示例):

在这里插入图片描述

在这里插入图片描述
可以看出 简略声明不用自己声明委托字段,但是委托字段已经被声明了(在事件被触发时),只是被隐藏起来。


总结

事件 是基于委托的(有两层意思):委托是事件的底层基础,事件是委托的上层建筑
第一:(事件)需要一个委托类型来作为约束,这个约束规定了 (事件) 可以发送什么消息给 (事件的响应者) ,也规定 (事件的响应者) 能收到什么样的 (事件消息) ,这就决定了 (事件响应者)(事件处理器) 必须跟这个约束匹配上,它才能订阅这个 (事件)
第二:当 (事件的响应者)(事件的拥有者) 提供了,能匹配这个事件的 (事件处理器) 之后,这个 (事件处理器) 来进行保存,那能够记录和引用方法的任务,只有委托类型的实例能做到

总结: 事件这种成员无论从表层还是底层,都是依赖于委托类型的

重点: (声明委托类型)(使用委托类型的一个类) 声明 (一个委托类型的字段)


在教程视频中,用到的是简略事件声明:在这里插入图片描述


以下是完整声明,在 PlayerInfo 类外声明 委托类型,然后在类中声明委托字段以及事件。
在这里插入图片描述
之后的就是事件处理器订阅事件,就能触发事件。
而游戏中的事件处理器就是 角色状态面板、角色信息面板。
最后就是经验值的增长处理:
在这里插入图片描述

 public static int GetRequierExpByLevel(int level)
    {
        //等差数列
        return (int)((level - 1) * (100f + (100f + 10f * (level - 2f))) / 2);
        //但是调用的时候,实参要为 level + 1 
        //不然等级为1时,就变成 0/0;
        //加一 ,能确保 return 100,而不是零
    }

收尾

接下来就是《背包模块》、《技能模块》、《商城、系统模块》、《任务模块》。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值