Unity卡牌游戏教程(一)简单框架
前言
项目的初衷是以项目形式串起unity各种零散知识,语言风格较详细(啰嗦)
需求
先来看需要实现什么东西
构建卡牌对象
简单的UI系统
UI和场景的简单交互
前期准备
打开unity,新建2D项目
左键点击Main Camera,在Inspector面板中点击Background修改背景颜色,同时将size修改为屏幕像素高度/100f/2),比如你的屏幕像素是1920x1080,那么size*就应该设置为5.4,这样屏幕上一个像素对应图像中一个像素(所谓Pixel-Perfect)
导入资源。在Project新建文件夹存放我们需要的资源,然后直接把文件(这个项目用到的全是图片)拖进Project面板里。我们新建的是2D项目,所以可以看到在Inspector面板里纹理类型是Sprite。需要注意的是Pixels Per Unit这一项,该数值为屏幕上的一个单元对应原图片的多少像素点,简单理解,该值越大,图片就显示得越小
(PS:导入图片时最好确保所有同一用途的图片大小以及Pixels Per Unit都保持一致,图片大小可以在点击图片后在Inspector面板右下角查看,如果大小不一建议在导入前用PhotoShop的裁剪工具处理,尤其是你素材是自己随便截下来的时候)
构建卡牌对象
在Hierarchy窗口右键:2D Object->Sprite 新建一个空白物体,顺手在Inspector面板将他的Position改成(0,0,1)
(PS:由于Unity使用左手坐标系,xyz轴的正方向分别是右、上、前,离我们越远的物体Z值越大,因此个人习惯将摄像机的Z值设置为0,将其他物体Z值设置为1)
将图片拖拽到Sprite Renderer下Sprite处(下文简称为“槽”),完成“图片赋值”
但还没完!一张卡牌应该有卡背。在刚刚创建的对象下用同样的步骤新建一个子物体,将卡背图片拖拽,但这次将Position设置为(0,0,-0.1)此时的位置是与父物体的相对位置,为了保持神秘感,我们先将卡牌翻面,因此将Z值设为-0.1(理由见同上
是时候敲点代码了!在Project中Create一个脚本(希望你已经建好了一个用于存放脚本的文件夹),并将它拖给你的卡牌
// BasicCard.cs
public class BasicCard : MonoBehaviour
{
private GameObject Card_Back;
public void OnMouseDown()
{
if (Card_Back.activeSelf)
Card_Back.SetActive(false);
else
Card_Back.SetActive(true);
}
void