Unity游戏积分/计分UI系统制作方法
本篇博客将讲解游戏开发中常见的积分/计分系统的制作,看过论坛有很多这种帖子,但基本都是从一个大型系统里进行讲解,今天我把这个方法独立挖出来做个小案例,来分析这个系统的实现原理,为游戏开发提供更多开发思路。
如果有朋友还想学习如何在【游戏进行时】,【游戏结束时】等不同游戏状态来显示不同的积分/计分UI效果可以参考我之前写的UI控制方法,在不同的游戏状态下调用切换UI的方法就能实现:
Unity控制多组UI的显示与隐藏
(一)先搭建一个UI用来显示积分,这里以0为初值,显示得分数字的Text命名为ScoreTable。可以换一下字体来加强显示效果,默认字体太丑了 。
(二)搭建一个简单的场景,设置得分逻辑:蓝色方块为玩家Player,红色方块为得分物体ScoreObj,把ScoreObj拉大一点,使Player穿过ScoreObj一次,游戏分数就+1,没错,要用到触发器Trigger的碰撞检测。
(三)给Player添加碰撞体和Rigidbody,给ScoreObj添加碰撞体,有些版本的unity会自动添加碰撞体,碰撞体大小可以适当修改(记得在ScoreObj碰撞体组件处勾选Is Trigger)。
(四)创建脚本PlayerControl,开始编写玩家代码,我们可以直接套用传统的WASD移动代码来控制Player,注意,这里会定义一个Player得分的事件,并将这个事件发送给控制UI的脚本的接收器,这就是积分/计分系统的实现核心(接收器和处理器的定义详细见下一步的UI脚本),如果你不理解C#的事件是什么,可以论坛搜索或去我的博客主页查询。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControl : MonoBehaviour
{
public delegate void PlayerScore(int temp);//定义委托
public event <