【unity基础_Day08】 C#拓展方法、事件、UGUI

一、C#的扩展方法

1.在不修改代码的情况下,为其增加新的功能,但是还不会改变微软的数组类,为他增加新的方法

2.三要素:

(1)拓展方法所在的类必须是静态类

(2)在第一个参数上,使用this关键字来进行修饰

(3)在另一个命名空间下

3.作用

让调用者方便调用该方法,就好像在调用自身类型的方法一样

二、事件

1.当某一对象达到某种条件或者发生某种改变时,将消息及时的通知到其他对象。

事件源——注册——>响应者   (注册的本质就是将方法的地址放在委托链上)

2.使用

(1)定义事件参数类 xxxEventArgs:封装引发事件时需要由事件源传递给响应者的信息

(2)定义委托:public delegate void xxxEventHandler(xxxEventArgs);

(3)定义事件源类:

         ——基于委托声明事件 public event xxxEventHandler xxx;

         ——在某个方法内部引发事件

(4)响应者

         ——实例化事件源对象

         ——注册方法:对象名.事件名+=方法名

注意:第一注册 即用到了 += 或者 -= ; 事件不可以在外部调用        

(委托的第一次注册则需要=,之后才可以用+=,-=的操作)

3.作用:

   仅允许类的外部注册、注销事件,防止例如清空委托链、直接引发事件等不正当操作,体现了封装思想

4.委托和事件的区别

委托的缺点:

(1)绑定多个方法,但运算符不一致,=    +=,当你绑定多个方法时,第一个用=,后面用+=

(2)对外界提供了太多东西,违背了封装的思想,其他类可以直接调用委托,其他类也可以直接清空委托链

事件的优点

(1)运算符一直,都是用+= -=

(2)只能在其他类进行绑定和解除事件,其他类不能直接调用事件,其他类不能直接清空委托链

5.事件标注写法

public delegate void EventHandler(Object sender, EventArgs e);
//sender  事件的发起者   e 事件参数

(1)回顾 :向上转型

as 如果不能转换则返回null;is 能转换则为true,不能则返回false

二、UGUI

1.canvas  画布

同一画布下,按照Hierarchy层级的顺序进行渲染

不同画不下,通过调整 SortOder 来决定渲染顺序

2.Canvas 画布

Render Mode :

ScreenSpace-Overlay  覆盖模式

ScreenSpace-Camera  相机模式

WorldSpace   世界模式

3.image

pivot  轴心点

Anchors 锚点

4. 当画布为OverLay时,世界坐标系(单位:米)等同于屏幕坐标系(单位:像素)

此时 可以使用 this.transform.position 来表示所挂载脚本的位置

当前的轴心点相对于父UI轴心点的位置  transform.localposition

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值