Design and Implementation of a Waste Sorting Game Based on Unity3D
With the advent of the 5G era, the development of emerging technologies has driven reforms in the field of education. The science popularization industry has actively explored the integration of “games + science popularization”. This paper aims to attract and educate users on waste classification in a gamified way through the design and implementation of an interactive standalone waste classification game based on Unity3D. Firstly, the current situation of waste treatment and the necessity of gamified education are analyzed. Then, the design concept, development process, and implementation methods of the game are elaborated in detail. Through user demands research, the game mechanisms, including waste classification education, entertainment, and challenge elements, are determined. The effectiveness of the game is tested by the research team, demonstrating its ability to effectively improve players’ understanding of waste classification, participation, and practical classification skills. Additionally, innovative designs within the game, such as “turning waste into treasure”, are explored to further enhance educational significance and player interactive experiences. The development and testing of this game not only demonstrate the potential application of gamified education in the field of environmental protection, but also provide valuable experience and insights for future research and development in related areas.
Waste Sorting Education
随着群众对环境保护意识的提高,垃圾分类已成为全球性的重要议题。特别是2019年中国实行史上最为严格的生活垃圾分类政策后,此话题更是成为社会广泛讨论的焦点
过去,垃圾分类教育主要通过视频、广播和印刷材料等形式进行。这些传统方法虽然在传播知识方面有效,但缺乏足够的互动性和吸引力,难以激发公众长期的学习兴趣和参与
本文旨在探索一种新的垃圾分类教育模式,即通过基于Unity3D引擎开发的交互式单机小游戏,提升公众的垃圾分类知识、参与度及实际操作技能。本研究首先分析了垃圾处理的现状和采用游戏化教育的必要性,并通过文献综述系统梳理了游戏化教育在其他领域的应用情况,指出在垃圾分类教育领域中游戏化教育仍有较大的开发空间。本文将通过对游戏的用户需求进行深入分析,来创新游戏设计思路,并通过综合评估游戏效果来探讨这一新型教育模式的可行性和有效性。
介入“垃圾分类”产品设计,将环保理念游戏化,能够有效激发用户的兴趣和参与度。当前垃圾分类小游戏的常规功能设计包括以下几个方面:游戏目标、垃圾分类种类、计分系统、反馈机制、奖励机制、游戏界面、音效与动画等。具体设计可能会根据游戏的主题、目标玩家群体等因素而有所差异。但目前市面上的垃圾分类小游戏设计仅仅在游戏中让玩家学会了垃圾分类知识,不足以加深贯彻玩家们的环保理念
为了深入了解玩家对垃圾分类游戏的期望和需求,包括游戏玩法、教育性质、难度设置等方面,通过在微信小程序问卷星发起了用户需求调研的方式为游戏设计提供关键信息。针对用户需求调研,通过以下步骤进行调研:
1) 研究目的和方法:本研究旨在探究用户对基于Unity3D的垃圾分类小游戏的需求,采用问卷调查的方式进行调研,调研结果如
2) 样本描述:共有227名游戏爱好者参与调研,年龄跨度在15~40岁之间,男女比例大致相等。
3) 调研结果展示:用户最关注的是垃圾分类知识教育、游戏趣味性、挑战性和社交互动性。
4) 用户反馈总结:用户普遍对垃圾分类小游戏表示支持,提出改善的建议主要集中在游戏难度调整、奖励机制设计和社交功能完善等方面,如
根据我国住房和城乡建设部在2019年发布新版生活垃圾分类标准,将垃圾可分为可回收垃圾、厨余垃圾、有害垃圾和其他垃圾
玩家通过键盘和鼠标这两个输入设备来操纵角色进行游戏,其中通过鼠标来控制角色视角。具体键盘按键功能:W-前进、S-后退、A-向左、D-向右、Esc-游戏暂停。其中,Esc键可调节游戏音量和查看游戏排名。
Unity3D是一款广泛用于游戏开发的跨平台游戏引擎,它提供了丰富的工具和资源,使开发者能够创建高质量、交互性强的游戏和应用程序。Unity3D支持多种平台,包括PC、Web、VR/AR等平台,开发者可以使用同一套代码和资源来构建跨平台的游戏和应用程序,大大减少了开发工作量。同时,提供了直观的编辑器界面和易用的工具,支持所见即所得的编辑方式,开发者可以通过拖拽、组合和调整组件来快速构建游戏场景和交互元素。
在Unity中,主要使用C#编程语言来编写游戏逻辑和控制代码。Visual Studio Code作为一款免费、轻量级且功能丰富的代码编辑器,在Unity中作为脚本编程工具具有很好的适用性。结合其强大的代码提示、插件功能和调试等功能,开发者可更高效地编写和管理Unity项目中的C#脚本,提高开发效率和质量。
本游戏基于Unity3D游戏引擎,将游戏场景设置为三维画面。桌子与垃圾桶围成一个矩形空间,游戏角色被设计在此固定空间以方便玩家操作。该项目使用Unity2022.2.2f1c1的3D模板进行创建,创建游戏地板,在Global Volume下创建3D Object->Plane,设置属性Transform->Scaie的x、y、z值,将地板材质改为floor。导入资源,将制作好的3D模型,按照设计图放置在地板上,使用自动创建好的SampleScene作为最终游戏场景,所以将其重命名为GameScene。添加地面、人物和一些游戏物品,调整相机位置,进入Game窗口,在Global Volume上添加override,依次添加Tone Mapping、Color Adjustments、Bloom、Vignette,调整后的配置保存在Global Volume Profile中。
在创建角色时,为避免直接创建一个胶囊体然后修改缩放、偏移等属性,三轴不相等的缩放或一些位置的偏移可能会让原本的代码逻辑出现问题。选择创建多个项目包,将视觉效果与逻辑分开,如
首先创建Idle.anim,拖入Animator面板,右击Entry->Make Transition指向Idle;打开Animation面板,做出角色的头部上下移动的动画,然后创建Walk.anim,同样拖入Animator面板,右击Idle->Make Transition指向Walk,取消勾选Has Exit Time,Parameters中添加IsWalking参数,同时Conditions中将IsWalking设为True,同样地,右击Walk->Make Transition指向Ilde,取消Has Exit Time,oCnditions中设置IsWalking为False,Walk动画在Idle的基础上添加身体的上下移动,同时加快速度。
设置角色进行碰撞检测,在场景中放置一个Cube,确保这个Cube带有Box Collider组件。在控制角色位置发生变化的脚本Player.cs中,从角色的原点出发,向移动方向发出一条射线,射线长度大于角色的大小时才可以移动,并在后续完善碰撞检测脚本。
根据不同类别的垃圾特性设计了对应的道具,如纸张、塑料瓶、易拉罐、果皮等。通过介绍道具在游戏中的应用方式,如加分形式、减分形式等,以增加游戏的趣味性和挑战性。
在场景中创建一个空物体,命名为ClearCounter,在ClearCounter上添加一个Box Collider组件,调整到合适大小,这样角色就可以和柜台发生碰撞了。利用Raycast处理角色与柜台的交互,在Player.cs中开始写角色与柜台交互的代码,同时需给柜台添加脚本。
添加Interact Action,添加一个Action,命名为Interact,绑定E键,在GameInput.cs中委托Interact Action添加一个调用的函数Interact_performed(),启动游戏,按下E键,可以看到控制台输出了对应按键的相关信息。最后在Interact Action调用的函数Interact_performed()中添加EventHandler委托,在Player.cs中为该委托添加具体的交互行为,运行游戏按E进行交互,可以得到显示Interact。
基于Unity开发的垃圾分类小游戏,其UI界面设计简洁直观(见
1) 垃圾桶图像以及四个分类标签(可回收垃圾、有害垃圾、厨余垃圾和其他垃圾);
2) 桌子(用于放不同类型的垃圾);
3) 屏幕提示(告诉玩家如何变废为宝);
4) 绿色勾号和红色叉号(用于表示玩家选择的正确或错误);
5) 分数显示(用于显示玩家的得分)。
整个UI界面色彩搭配和谐,图标和文字清晰可读,确保玩家能够快速上手并享受游戏的乐趣。
当玩家将垃圾拖拽到正确的垃圾桶时,屏幕中央显示一个绿色的勾号表示分类成功,并加一分;如果分类错误,则显示红色的叉号并扣一分,如
在Unity垃圾分类小游戏中实现“变废为宝”功能不仅有教育意义,还可以增加游戏的趣味、培养玩家的责任感和促进可持续发展意识,如
为了增加了游戏的紧张感和挑战性,游戏界面右上角有一个计时器,其作用是显示游戏剩余时间。在屏幕顶部放置一个积分器,显示玩家当前得分。当倒计时结束时,代表游戏结束。游戏结束页面显示成功变废为宝的数量和垃圾分类的得分,左边显示玩家排行榜,如
网络时代,人类行为痕迹被书写、留存、记录、上载、传播、读取、观看、回溯的可能性大为增加。网络空间因“网络游戏”而进一步拓展,人类“个人–社会”关系的基本格局随之而变,“游戏”越来越多地介入其中,形成“个人–游戏–社会”的关系链条,充实乃至部分替代传统的“个人–组织–社会”关系格局
江苏省高校大学生创新创业训练计划项目“垃圾分类交互式单机小游戏设计”(项目编号:202313993023Y)。