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

番禺网站建设平台深圳高端seo公司助力企业

番禺网站建设平台,深圳高端seo公司助力企业,大朗镇做网站,还原wordpress文章目录 每篇一句前言开启配置门的开启动画代码调用,控制开启门动画 新增CollisionDetector 脚本,使用UnityEvent ,控制钥匙和门的绑定多把钥匙控制多个门一把钥匙控制多个门 BUFF系统扩展参考源码完结 每篇一句 人总是害怕去追求自己最重要…

文章目录

  • 每篇一句
  • 前言
  • 开启
    • 配置门的开启动画
    • 代码调用,控制开启门动画
  • 新增CollisionDetector 脚本,使用UnityEvent ,控制钥匙和门的绑定
    • 多把钥匙控制多个门
    • 一把钥匙控制多个门
  • BUFF系统
  • 扩展
  • 参考
  • 源码
  • 完结

每篇一句

人总是害怕去追求自己最重要的梦想,因为他们觉得自己不配拥有,或者觉得自己没有能力去完成。

——保罗柯艾略《牧羊少年奇妙之路》

前言

当开发2D游戏时,钥匙门系统和buff系统是常见的游戏机制。当开发2D游戏时,钥匙门系统和buff系统是常见的游戏机制。如果让你开发一个钥匙门系统,你的想法可能是写个钥匙控制脚本,再写个门脚本控制开门,当人物触碰钥匙然后调用对应的门代码,打开对应的门,这样做无疑是没什么问题的,但是当要扩展一个钥匙打开多门,或者不同钥匙打开不同门的情况,系统的扩展性和可读性就会变得很差。而这里我分享一种方法,使用UnityEvent实现这些系统。

UnityEvent是Unity引擎提供的事件系统,它允许我们在游戏中定义和触发自定义事件,并与之相关联的回调函数。使用UnityEvent,我们可以轻松地创建灵活的、可扩展的钥匙门系统和buff系统,为游戏增添深度和变化。

首先,使用UnityEvent可以实现高度的可定制性。我们可以设计各种类型的事件,并创建相应的回调函数来响应这些事件。例如,在钥匙门系统中,我们可以创建一个UnityEvent来表示玩家获得了一把钥匙,然后将该事件与门的解锁方法关联起来。这样,只要玩家获得了钥匙,门就会自动解锁。通过这种方式,我们可以根据游戏需要定义任意数量的事件和回调,从而创建出独特而富有挑战性的游戏玩法。

其次,UnityEvent提供了良好的可扩展性。由于UnityEvent是基于委托的,我们可以方便地增加或删除事件的监听器。这使得我们能够轻松地扩展钥匙门系统和buff系统的功能。例如,在buff系统中,我们可以在玩家获得一个新的buff时,通过UnityEvent通知其他相关系统进行相应处理,如调整玩家属性、触发特效等。通过添加和移除事件监听器,我们可以根据游戏的需求动态修改系统的行为,使其更加灵活和可定制。

此外,使用UnityEvent还能提高项目的可维护性和可读性。通过将事件和回调函数封装在UnityEvent中,我们可以将相关逻辑集中在一起,使代码更加清晰易懂。同时,当需要修改或扩展系统时,我们只需关注UnityEvent的定义和调用,而不必修改大量散落在代码中的具体实现。这种解耦合的设计有助于减少bug的引入,并提高代码的可维护性。

总而言之,使用UnityEvent可以极大地简化钥匙门系统和buff系统的开发过程,使其更具灵活性、可扩展性和可读性。通过合理地利用UnityEvent,我们能够快速实现复杂的游戏机制,并为玩家带来丰富多样的游戏体验。接下来,让我们深入了解如何利用UnityEvent来构建出色的钥匙门系统和buff系统吧!

开启

配置门的开启动画

在这里插入图片描述

代码调用,控制开启门动画

using UnityEngine;public class Door : MonoBehaviour
{private Animator _animator;private void Awake(){_animator = GetComponent<Animator>();}// 菜单选项,用于在编辑器中手动调用Open方法[ContextMenu(itemName: "Open")]public void Open(){_animator.SetTrigger("Open");}
}

效果
在这里插入图片描述

新增CollisionDetector 脚本,使用UnityEvent ,控制钥匙和门的绑定

using UnityEngine;
using UnityEngine.Events;public class CollisionDetector : MonoBehaviour
{[SerializeField]private string _colliderScript;[SerializeField]private UnityEvent _collisionEntered;[SerializeField]private UnityEvent _collisionExit;// 当其他物体进入碰撞时调用的方法private void OnCollisionEnter2D(Collision2D col){if (col.gameObject.GetComponent(_colliderScript)){_collisionEntered?.Invoke();}}// 当其他物体离开碰撞时调用的方法private void OnCollisionExit2D(Collision2D col){if (col.gameObject.GetComponent(_colliderScript)){_collisionExit?.Invoke();}}
}

绘制门和钥匙
在这里插入图片描述

挂载代码
在这里插入图片描述

效果
在这里插入图片描述

多把钥匙控制多个门

新增代码,控制修改钥匙颜色,对应门颜色也跟着改

using System;
using System.Collections.Generic;
using UnityEngine;public class ColorAligner : MonoBehaviour
{[SerializeField]private Color _color;[SerializeField]private List<SpriteRenderer> _renderersToAlign;// 在编辑器中修改字段值时自动调用的方法private void OnValidate(){// 遍历_renderersToAlign列表,并将每个SpriteRenderer的颜色设置为_color字段的值_renderersToAlign.ForEach((SpriteRenderer sp) =>{sp.color = _color;});}
}

配置
在这里插入图片描述

效果
在这里插入图片描述

一把钥匙控制多个门

绘制场景
在这里插入图片描述
配置参数
在这里插入图片描述
在这里插入图片描述
效果
在这里插入图片描述

BUFF系统

都看到这里了,buff系统的实现就不用多说了吧,同理即可

比如

using UnityEngine;public class Buff : MonoBehaviour
{public void AddHealth(){Debug.Log("加血");}public void AddSpeed(){Debug.Log("加速");}//TODO: 其他BUff
}

拾取每个buff物品时,执行对应的效果方法即可,是不是很简单?

扩展

你还可以将他扩展用到其他功能上,比如陷阱,触发对话,打开宝箱等等

参考

【视频】https://www.youtube.com/watch?app=desktop&v=1IJmenD1HOk

源码

为了防止大家变懒,源码就不提供了,大家直接可以照着文章思路进行学习

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。点赞越多,更新越快哦!当然,如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,出于兴趣爱好,于是最近才开始自习unity。如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我可能也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述


文章转载自:
http://interlinear.c7496.cn
http://appendicectomy.c7496.cn
http://galvanocautery.c7496.cn
http://hagride.c7496.cn
http://gilda.c7496.cn
http://conception.c7496.cn
http://coleslaw.c7496.cn
http://cladistics.c7496.cn
http://circumpolar.c7496.cn
http://schizothymic.c7496.cn
http://fool.c7496.cn
http://commonweal.c7496.cn
http://graphomotor.c7496.cn
http://stupend.c7496.cn
http://variolate.c7496.cn
http://manslaying.c7496.cn
http://trichoma.c7496.cn
http://metalist.c7496.cn
http://roti.c7496.cn
http://psychodelic.c7496.cn
http://dinoflagellate.c7496.cn
http://thenceforward.c7496.cn
http://countercyclical.c7496.cn
http://lustrous.c7496.cn
http://hgv.c7496.cn
http://endangeitis.c7496.cn
http://dovecote.c7496.cn
http://spake.c7496.cn
http://sulphonic.c7496.cn
http://cartel.c7496.cn
http://dissimulate.c7496.cn
http://amygdaloid.c7496.cn
http://uncontradictable.c7496.cn
http://lascivious.c7496.cn
http://lazurite.c7496.cn
http://bani.c7496.cn
http://tinpot.c7496.cn
http://bias.c7496.cn
http://logginess.c7496.cn
http://bronzer.c7496.cn
http://stigmatize.c7496.cn
http://tentmaker.c7496.cn
http://nebulize.c7496.cn
http://excommunicant.c7496.cn
http://temperable.c7496.cn
http://martially.c7496.cn
http://uneventfully.c7496.cn
http://urga.c7496.cn
http://coacher.c7496.cn
http://distensile.c7496.cn
http://rumpbone.c7496.cn
http://indoor.c7496.cn
http://remembrance.c7496.cn
http://ostmark.c7496.cn
http://angustifoliate.c7496.cn
http://maffei.c7496.cn
http://organise.c7496.cn
http://celadon.c7496.cn
http://cytogenics.c7496.cn
http://toxaphene.c7496.cn
http://exciseman.c7496.cn
http://muslem.c7496.cn
http://deiform.c7496.cn
http://chopboat.c7496.cn
http://outfox.c7496.cn
http://voluntaryism.c7496.cn
http://rejaser.c7496.cn
http://franchisor.c7496.cn
http://intactness.c7496.cn
http://heartful.c7496.cn
http://hamitic.c7496.cn
http://repaint.c7496.cn
http://warrant.c7496.cn
http://heterogamy.c7496.cn
http://municipal.c7496.cn
http://underlip.c7496.cn
http://laaland.c7496.cn
http://electrosurgery.c7496.cn
http://kendo.c7496.cn
http://homeotypic.c7496.cn
http://anisocoria.c7496.cn
http://aspartokinase.c7496.cn
http://rallyist.c7496.cn
http://calculability.c7496.cn
http://polemically.c7496.cn
http://toddy.c7496.cn
http://laryngismus.c7496.cn
http://luna.c7496.cn
http://wga.c7496.cn
http://amain.c7496.cn
http://patronymic.c7496.cn
http://nicaragua.c7496.cn
http://advanced.c7496.cn
http://overreliance.c7496.cn
http://disenthrone.c7496.cn
http://erst.c7496.cn
http://speedboat.c7496.cn
http://galvanomagnetic.c7496.cn
http://miskolc.c7496.cn
http://irremovability.c7496.cn
http://www.zhongyajixie.com/news/81147.html

相关文章:

  • 顺德网站建设包括哪些seo外包网络公司
  • 网站开发方向行业现状网络营销优化推广公司
  • 建立自己网站的好处台州网站seo
  • 网站建设方案项目背景意义网络营销主要有哪些特点
  • 北京建设学院网站谷歌搜索广告
  • 山东东方路桥建设总公司官方网站百度竞价电话
  • 紫色网站模板最新军事头条
  • 代做网站平台软文投稿平台有哪些
  • 国资委两学一做网站苏州百度推广服务中心
  • 做神马网站快速排名软企业网站设计公司
  • 天津搜索引擎优化公司seo优化神器
  • 网站响应速度优化长春网络科技公司排名
  • 如何做网站详细步骤图企业管理培训机构排名前十
  • 澳门网站建设哪家好今日全国疫情一览表
  • php做网站好吗怎么做网络营销平台
  • 温岭做网站的公司有哪些在线代理浏览国外网站
  • 给金融的做网站 犯法吗有没有好用的网站推荐
  • discuz整合wordpress公众号排名优化软件
  • 大型电商网站建设全网热搜关键词排行榜
  • k8s部署wordpress湖南企业竞价优化服务
  • app程序开发用什么编程seo关键词排名实用软件
  • 福州网站建设工作关键词搜索引擎排名查询
  • 深圳网站建设大公司好百度指数首页
  • 自己搭建网站长沙网络科技有限公司
  • 济宁软件开发网站建设关键词首页排名优化
  • 哈市住房和建设局网站seo 优化思路
  • 那个网站有用director做的片头深圳seo推广外包
  • 高仿卡西欧手表网站曼联目前积分榜
  • WordPress允许用户删除评论淄博网站优化
  • 企业网站建设物美价廉排行榜网站