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

设计专业考研平面素材网站北京专业建网站的公司

设计专业考研平面素材网站,北京专业建网站的公司,WordPress站点地图代码,房屋在线设计网站文章目录 每篇一句前言开启配置门的开启动画代码调用#xff0c;控制开启门动画 新增CollisionDetector 脚本#xff0c;使用UnityEvent #xff0c;控制钥匙和门的绑定多把钥匙控制多个门一把钥匙控制多个门 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 GetComponentAnimator();}// 菜单选项用于在编辑器中手动调用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 ListSpriteRenderer _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?appdesktopv1IJmenD1HOk 源码 为了防止大家变懒源码就不提供了大家直接可以照着文章思路进行学习 完结 赠人玫瑰手有余香如果文章内容对你有所帮助请不要吝啬你的点赞评论和关注以便我第一时间收到反馈你的每一次支持都是我不断创作的最大动力。点赞越多更新越快哦当然如果你发现了文章中存在错误或者有更好的解决方法也欢迎评论私信告诉我哦 好了我是向宇https://xiangyu.blog.csdn.net 一位在小公司默默奋斗的开发者出于兴趣爱好于是最近才开始自习unity。如果你遇到任何问题也欢迎你评论私信找我 虽然有些问题我可能也不一定会但是我会查阅各方资料争取给出最好的建议希望可以帮助更多想学编程的人共勉~
http://www.dnsts.com.cn/news/50753.html

相关文章:

  • html5手机网站分辩率品质好的女装品牌
  • 网站制作商业模式无锡免费做网站
  • 专做品牌的网站学校网站建立
  • 网上做调查问卷赚钱的网站黄页88网站关键词怎么做
  • 绵阳做seo网站公司聊城优化seo
  • 常用的小企业网站建设推广营销大的公司
  • 传奇怎么做充值网站做网站域名需哪些
  • 做国外购物的网站怎么发货设计类专业笔记本电脑推荐排行
  • 亦庄建站推广国内正规的p2p平台有哪些
  • 征婚网站咋做清溪网站建设
  • 描述一下网站建设的基本流程广东企业网站建设公司价格
  • 网站主页 优帮云oneinstack. WordPress
  • 海拉尔网站建设sjteamwordpress自定义函数在哪里
  • 合肥网站建设网站建设河北建设工程信息网正规网站
  • 制作旅游网站的步骤泰安招聘信息58同城
  • wordpress怎样建站自助建站免费自助建站网站
  • 网站建设手机青海旭云网络做网站需要多少钱
  • 山东淄博网站建设网站每年维护费用
  • 网站网站弹出窗口去掉大美南京网站
  • 美容行业网站建设那个网站做logo兼职
  • 附近网站建设公司哪家好小程序开发用什么语言
  • 农业企业网站模板没有服务器怎样做网站
  • 广州网站托管wordpress 小公举
  • 电子商城网站建设费用企业网站建设 总结
  • 摄影网站制作教程哈尔滨哪里有制作网页的
  • google网站管理员工具 下载开个网站卖机器怎么做
  • 自己网站首页如何设置网站建设课程内容
  • 中山网站建设策划公司需要做网站
  • 海外留学网站建设方案专业的微网站公司
  • 网站开发招标任务书网页设计师英文