当前分数和最高分数对象的基础对象是一个数字,本节我们先制作该对象。
一个分数由6个数字组成,所以我们先创建基本对象的类:数字类。
设计思路:
一个数字类维护7个显示对象,并提供一个公有方法:设置数字,数字区间是0~9,根据不同的数字显示/隐藏不同的显示对象:
下面开始制作“数字”
01.添加类
在脚本文件夹中添加类:Number;打开后删除默认方法,就像这样:
public class Number : MonoBehaviour
{
}
02.添加显示对象
在Number类中添加7个显示对象和一个表示当前值的成员变量:
public class Number : MonoBehaviour
{
public GameObject LeftTop;
public GameObject LeftBottom;
public GameObject Top;
public GameObject Middle;
public GameObject Bottom;
public GameObject RightTop;
public GameObject RightBottom;
int _number = 0;
}
03.添加设置数字方法
// 设置数字
public void SetNumber(int num)
{
_number = num <= 9 ? num : 0;
}
04.添加私有刷新方法
// 刷新数字
void RefreshNumber()
{
// 熄灭所有对象
LeftTop.SetActive(false);
LeftBottom.SetActive(false);
Top.SetActive(false);
Middle.SetActive(false);
Bottom.SetActive(false);
RightTop.SetActive(false);
RightBottom.SetActive(false);
// 根据数字点亮不同的对象
switch (_number)
{
case 0:
LeftTop.SetActive(true);
LeftBottom.SetActive(true);
Top.SetActive(true);
Bottom.SetActive(true);
RightTop.SetActive(true);
RightBottom.SetActive(true);
break;
case 1:
RightTop.SetActive(true);
RightBottom.SetActive(true);
break;
case 2:
LeftBottom.SetActive(true);
Top.SetActive(true);
Middle.SetActive(true);
Bottom.SetActive(true);
RightTop.SetActive(true);
break;
}
}
上面代码只演示了显示1、2、3的代码,具体代码请参考附件。
05.调用刷新数字方法
// 设置数字
public void SetNumber(int num)
{
_number = num <= 9 ? _number : 0;
RefreshNumber();
}
06.在场景中创建对象
类创建好之后,在场景中添加空物体,重命名为“Number”,坐标归零。
07.导入资源
将制作数字的图片导入Resources文件夹,然后设置参数:
Pixels Per Unit:1
Pivot:Bottom Left
然后点应用
08.组装“数字”
先将导入的图片添加到空物体“Number”下,然后复制Left与Right,并按以下顺序排列:
重命名图片:
调整坐标(x, y):
LeftTop - (0, 12)
LeftBottom - (0, 1)
Top - (1, 20)
Middle - (1, 10)
Bottom - (1, 0)
RightTop - (6, 12)
RightBottom - (6, 1)
组装后的“数字”如图所示:
09.添加脚本
将之前创建好的Number类拖到场景中的Number对象上,然后将Number下的子对象拖动至Number对象脚本组件对应的公有成员上:
10.制作成预制体
“数字”制作完成了,为方便今后使用,将场景中的Number对象其拖动至Prefabs下以生成预制体:
然后,场景中的Number对象就可以删除了。
“数字”制作完成。
代码链接:https://pan.baidu.com/s/1EeWBJIlUFyKYQ3bQ9ksqTA
提取码:0ham
网友评论