当前位置: 首页 > news >正文

网站建设与管理的实训福泉市自己的网站

网站建设与管理的实训,福泉市自己的网站,网站建设自查报告,广西建设厅网站绿色建筑标识主要学习内容TypeEventSystemActionKitTimer类1、TypeEventSystem-适用于一个条件触发#xff0c;多个组件响应的情况例如#xff1a;动物园系统中#xff0c;点击肉食动物按钮#xff0c;动物园中有肉食属性的动物都进行显示。步骤#xff1a;1、动物自身脚本上进行判断是…主要学习内容TypeEventSystemActionKitTimer类1、TypeEventSystem-适用于一个条件触发多个组件响应的情况例如动物园系统中点击肉食动物按钮动物园中有肉食属性的动物都进行显示。步骤1、动物自身脚本上进行判断是否有肉食属性有则注册事件2、事件发送方按钮点击发送通知事件3、事件接收方动物执行处理事件的操作①单事件触发代码学习using System; using System.Collections; using System.Collections.Generic; using QFramework; using UnityEngine;// namespace QFramework.Example//在类的外面嵌套上命名空间 // {public class TypeEventSystemController : MonoBehaviour{//用结构体定义一个事件,适合一对多的情况一触发多响应public struct EventA{//参数public int Count;}//在start中监听事件void Start(){//注册并回调,简单写法TypeEventSystem.Global.RegisterEventA(e //输入e点击Tab{Debug.Log(e.Count);}).UnRegisterWhenGameObjectDestroyed(gameObject);//注销与当前的gameobject进行关联//传统事件机制的用法①②③//①TypeEventSystem.Global.RegisterEventA(onEventA);}//②//void onEventA(Event e)//{//}//③销毁//private void OnDestroy()//{// TypeEventSystem.Global.UnRegisterEventA(onEventA);// }// Update is called once per framevoid Update(){//发送事件if (Input.GetMouseButtonDown(0)){//第一种写法自动new一个A但是无法传参//TypeEventSystem.Global.SendEventA();//第二种写法TypeEventSystem.Global.Send(new EventA(){Count 10});}}} // }②多事件触发using System.Collections; using System.Collections.Generic; using QFramework; using SnakeGame; using Unity.VisualScripting; using UnityEngine;public class MutiEvent : MonoBehaviour//添加// IOnEventMutiEvent.IEventA, // IOnEventMutiEvent.EventB//报错可进行点击自动生成代码 {public interface IEventA//接口形式{public abstract void Function();}public struct EventB: IEventA{public void Function(){print(从管道B中流出);}}public struct EventC: IEventA{public void Function(){print(从管道C中流出);}}void Start(){TypeEventSystem.Global.RegisterIEventA(a {Debug.Log(a.GetType().Name);}).UnRegisterWhenGameObjectDestroyed(gameObject); //输出名字}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)){TypeEventSystem.Global.SendIEventA(new EventB());}if (Input.GetMouseButtonDown(1)){TypeEventSystem.Global.SendIEventA(new EventC());}}}2、ActionKit①单独使用时1延时功能using System.Collections; using System.Collections.Generic; using DG.Tweening; using UnityEngine; using QFramework;public class ActionKitExample : MonoBehaviour {void Start(){//调用延时功能DelayTime();}/// summary/// 实现延时功能/// /summaryvoid DelayTime(){print(开始时间 Time.time);ActionKit.Delay(1.0f, () {print(延迟时间: Time.time);}).Start(this);//底层使用的是MonoBehaviour中的东西所以需要关联一下gameObject}}运行结果大约延迟1s /// summary/// 序列和完成回调/// /summaryvoid SequenceAndCallBack(){print(序列开始:Time.time);ActionKit.Sequence().Callback(() print(DelayStart延时开始:Time.time))//回调函数.Delay(1.0f)//延时一秒.Callback(()Debug.Log(Delay Finish延时结束:Time.time)).Start(this,_{print(Sequence Finish序列结束:Time.time);});} 运行结果sequence从上到下执行 /// summary/// 帧延时/// /summaryvoid DelayFrameExample(){//延时一帧后回调print(帧延时开始帧率数Time.frameCount);ActionKit.DelayFrame(1, () {print(帧延时结束帧率数 Time.frameCount);}).Start(this);//序列延时10帧后回调ActionKit.Sequence().DelayFrame(10).Callback(() print(序列延时帧率数 Time.frameCount)).Start(this);//下一帧做什么ActionKit.NextFrame(() { }).Start(this);}运行结果 /// summary/// 支持协程的方式/// /summaryvoid CoroutineExample(){//第一种普通//ActionKit.Coroutine(() SomeCoroutine()).Start(this);//ActionKit.Coroutine(SomeCoroutine).Start(this);//第二种将协程转换为动作//SomeCoroutine().ToAction().Start(this);//第三种序列的方式执行ActionKit.Sequence().Coroutine(()SomeCoroutine()).Callback(()print(结束))//如果是多个:使用delegte.Start(this);}IEnumerator SomeCoroutine(){yield return new WaitForSeconds(1.0f);print(你好Time.time);} 运行结果我感觉跟上面序列完成回调的Delay(1.0f)方法是一样的且不如上面的简单这个方法可以弃用了2条件执行 /// summary/// 条件执行仅执行一次/// /summaryvoid ConditionExample(){ActionKit.Sequence().Callback(() print(条件发生之前)).Condition(() Input.GetMouseButtonDown(0))//每帧调用后面的委托直到委托返回为true执行下一步.Callback(() print(鼠标点击)).Start(this);} 运行结果一直在等待条件的执行 /// summary/// 重复执行/// /summaryvoid RepeatExample(){print(点击五次鼠标右键输出信息);ActionKit.Repeat(5)//改为关键字repeat.Condition(() Input.GetMouseButtonDown(1))//每帧调用后面的委托直到委托返回为true执行下一步.Callback(() print(鼠标点击)).Start(this, () {print(5次右键点击完成);});}运行结果条件重复5次后输出 /// summary/// 并行执行同时执行动作动作全部完成执行最后finish函数/// /summaryvoid ParallelExample(){print(并行开始);ActionKit.Parallel().Delay(1.0f, () { print(Time.time); }).Delay(2.0f, () { print(Time.time); }).Delay(3.0f, () { print(Time.time); }).Start(this, () {print(并行结束 Time.time);});} 运行结果3自定义动作执行 /// summary///自定义动作/// /summaryvoid CutomExample(){ActionKit.Custom(a {a.OnStart(() { print(OnStart); }).OnExecute(dt {print(OnExecute);if (Time.frameCount 5){a.Finish();//注意这里是Finish}}).OnFinish(() { print(OnFinish); });}).Start(this);}运行结果事件开始执行结束 //传数据的自定义事件public class ActionData{public int FrameCount;//公有其他函数可以访问}/// summary///自定义动作,含参数/// /summaryvoid CutomExampleWithParameter(){ActionKit.CustomActionData(a //传一个自定义的数据类型{a.OnStart(() {a.Data new ActionData(){FrameCount0};print(OnStart);}).OnExecute(dt {print(OnExecute);a.Data.FrameCount;if (a.Data.FrameCount 5){a.Finish();//注意这里是Finish}}).OnFinish(() { print(OnFinish); });}).Start(this);} 运行结果开始的时候定义参数值执行时进行判断符合条件结束②与DoTween插件集成集成步骤查找-双击-导入代码 /// summary/// DoTween的集成,Dotween和ActionKit组合使用/// /summaryvoid DotweenExample(){ActionKit.Sequence().DOTween(() transform.DOMoveX(5, 1)).Start(this);}运行结果挂在脚本的物体在一秒钟x变为53、Timer计时器using System; using System.Collections; using System.Collections.Generic; using System.Linq; using QFramework; using QFramework.TimeExtend; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; using Timer QFramework.TimeExtend.Timer;public class Test : MonoBehaviour {private Timer timer1;private Timer timer2;public Text timeText;void Start(){ActionKit.Sequence().Callback(() print(按下F1新建一个计时器)).Condition(() Input.GetKey(KeyCode.F1)) .Callback(() timer1 Timer.AddTimer(10, Timer1, false, true).OnUpdated(a {timeText.text ((1 - a) * 10).ToString();}).OnCompleted(() //十秒完成后{print(Timer1计时10秒结束);})).Condition(() Input.GetKey(KeyCode.D)).Callback(delegate{Timer.DelTimer(Timer1);print(删除-计时器1);}).Condition(() Input.GetKey(KeyCode.A)).Callback(delegate{if (!Timer.Exist(timer2)){timer2 Timer.AddTimer(10, Timer2, false, true).OnUpdated(a {timeText.text (a*10).ToString();}).OnCompleted(()//十秒完成后{print(Timer2计时10秒结束);});print(新建-计时器2);}}) .Condition(() Input.GetKey(KeyCode.S)) .Callback(delegate{if (Timer.Exist(timer2)){Timer.Pause(timer2);print(暂停-计时器2);}}) .Condition(() Input.GetKey(KeyCode.F)) .Callback(delegate{if (Timer.Exist(timer2)){Timer.Resum(timer2);print(计时器恢复);}}) .Start(this);}} }
http://www.hkea.cn/news/14363344/

相关文章:

  • 郴州网站seo外包凌晨网站建设公司
  • 怎么建设物流网站怎样重装电脑wordpress
  • 企业cms建站佛山 详情公布
  • 官方网站建设要点中国流量最大的网站排行
  • 网站建设联雅详情页设计思路遵循哪五个营销环节
  • 漳州 做网站wordpress主题一键生成
  • 网站建设开发报价明细电子营销主要做什么
  • 做网站需要什么服务器配置专业网站制作需要多少钱
  • 温州网站建设推广专家百度广州分公司是外包吗
  • 购物网站开发教学视频嘉定网站设计制作公司
  • 做期货网站违法的吗wordpress食谱
  • 电子商务网站建设项目的阶段的划分网址做
  • 玩具公司网站设计论文做网站要准备什么
  • 网站临时会话防网站黑客
  • 网站做美食视频挣钱吗微信下单小程序怎么弄
  • 江门有什么网站推广荆州建设网站
  • 微信公众号做推送的网站网站建设费用明细表
  • 化妆培训网站模板佛山市云时代网站建设公司
  • 做移动互联网站点wordpress title背景
  • dedecms学校网站模板免费下载漳平网络建站公司
  • 重庆网站seo建设哪家好龙华网站制作要多少钱
  • 甘肃金恒大建设有限公司网站Wordpress plan
  • 彩票网站开发多少钱怎么创建网站快捷方式到桌面
  • 广州富邦物流网站建设电商运营基本常识
  • 可以发描文本的网站景观设计案例网站
  • 新乡网站优化公司推荐产品推广怎么写
  • 什么类型的网站容易被百度抓取专业的深圳网页设计公司
  • 上海建网站手机app自动化 东莞网站建设
  • 长沙市网站制作多少钱手机版网站快照如何做
  • 创建国际网站网络营销顾问工作内容