Unity制作 最强大脑.华容道游戏

本文介绍了使用Unity制作数字华容道游戏的过程,通过Shader的Tilling和offset参数实现图片切分,详细讲解了GameManager和Block脚本的主要逻辑,包括交换方块的方法,以及如何保证游戏可还原的算法思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近看最强大脑第五季,其中是数字华容道和我在高中手机游戏还不多的时候玩的拼图游戏,那时候与同学相互比较,最后都可以在1~2秒内完成游戏,然后就渐渐对这种游戏失去兴趣.现在我对他又突然产生了新的兴趣,就是自己动手把他做出来,前前后后不过两三个小时就完成了.当然时间短促,游戏也不完善,只能算是个Demo,今天拿出来跟大家分享下.

先来看看效果
这里写图片描述

下面正式开始

1.图片的制作

首先我们需要九张分割好的图片的,我们可以提前准备好九张切好的图,但是这样不但浪费资源,而且不易扩展,所以我的做法是导入一张整图,然后制作九个材质球,利用shader的Tilling和offset实现图片的切分.后面如果提供切换图片的功能,就只用替换材质球里面的图片就好了.

先看下面板
这里写图片描述

这里简单介绍下在shader里面Tilling和offset参数

offset:指明使用贴图的起始位置,取值范围为0-1,假如位置超过了1,就会对1取余。

这里写图片描述

如图中,左上角的图片起始位置就是图中橙色的点,以整张图片为左下角为(0,0)点,所以橙色点的offset为(0,0.66666)。

其余的分别为(0.333,0.666)(0.666,0.666)(0,0.333)(0.333,0.333)(0.666,0.333)
最底下的一排大家很容易就可以推出来了,这里留给大家自己填充

tiling:指明从offset位置处的大小区域,区域的取值范围一般为(-1,1),超过的话部分会按比例生成新的区域拼接上原先的

因为每一个小图都占大图1/3,所以tiling都是(0.333,0.333)。

主要代码

因为游戏并

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值