常用核心类(补充)

一、自定义按钮

GetButton   根据按钮名称返回true当对应的虚拟按钮被按住时。

GetButtonDown  在给定名称的虚拟按钮被按下的那一帧返回true。

GetButtonUp    在用户释放指定名称的虚拟按钮时返回true。

二、协程

协同程序,即将主程程序运行时同时开启另一段逻辑处理来协同当前程序的执行。换句话说,开启协同程序就是开启一个线程。   

使用StartCoroutine(string methodName)可以开启一个线程。

Yield语句是一种特殊类型的Return(返回)语句,它可以确保函数在下一次被执行时,不是从头开始,而是从Yield语句处开始。

协程其实就是一个IEnumerator(迭代器)。迭代器方法运行到 yield return 语句时,会返回一个表达式并保留当前在代码中的位置。 当下次调用迭代器函数时执行从该位置重新启动。

三、消息推送

为了方便Unity物体之间的通信,Unity推出了SendMessge方法,脚本调用SendMessge方法可以进行发送消息,可以使自身所有脚本或者父物体、子物体身上的所有脚本进行接收,其接收的类型为Object。

1、概述

1、同级推送 SendMessage

原型:public void SendMessage(string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);

作用:调用一个对象的methodName函数,这个函数可以是公有的也可以是私有的,后面跟一个可选参数(此参数作为传入参数),最后面跟一个可选的设置参数。

 SendMessage("GetMessage", this.gameObject, SendMessageOptions.RequireReceiver);

GetMessage为接收方法

this.gameObject为传递的消息 类型为GameObject

SendMessageOptions.RequireReceiver为必须有接收

2、向父级推送 SendMessageUpwards

原型:public void SendMessageUpwards(string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);

作用:它的作用和SendMessage类似,只不过它不仅会向当前对象推送一个消息,也会向这个对象的父对象推送这个消息(记住,是会遍历所有父对象)。

 SendMessageUpwards("GetMessage", "father", SendMessageOptions.RequireReceiver);

GetMessage为接收方法

"father"为传递的消息 类型为string

SendMessageOptions.RequireReceiver为必须有接收

3.向子级推送 BroadcastMessage

原型:public void BroadcastMessage(string methodName, object parameter = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);

作用:这个函数的作用和SendMessageUpwards的作用正好相反,它不是推送消息给父对象,而是推送消息给所有的子对象,当然,也是会遍历所有的子对象。

  BroadcastMessage("GetMessage", "son", SendMessageOptions.RequireReceiver);

"son"为传递的消息 类型为string

SendMessageOptions.RequireReceiver为必须有接收

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值