找回密码
 立即注册
查看: 4458|回复: 20

[简易教程] Unity中制作无限循环滚动的背景

[复制链接]
发表于 2018-8-30 15:01 | 显示全部楼层 |阅读模式
在游戏中,经常会用到需要无限循环滚动的背景,例如打飞机游戏、跑酷游戏等。
本篇文章向你介绍两种简单的制作方法。

方法一:使用Material方式来制作。
优点:简单省内存。
图片导入到Unity中之后,Texture Type使用Texture。如果图片是透明的话,那么勾选Alpha Is Transparency,Wrap Mode更改为Repeat。
之后创建一个Material,如果图片是透明的,则Shader选为Unlit/Transparent,如果不是的话,使用Mobile/Diffuse即可。
接下来,创建一个Quad,将材质球拖上去,然后再挂个脚本,脚本里的Update里加一句话即可:
MR.material.mainTextureOffset += new Vector2(Time.deltaTime * moveSpeed * 0.02f, 0);
方法二:两个Sprite进行无限循环。
优点:如果你在做2D游戏,而且需要使其他Sprite与背景保持同等速度会很方便。例如一个无限循环的陆地,上面会随机生成树、石头等,而树和石头需要与陆地保持同样的速度移动。
创建两个Sprite,一个默认position为0,另一个则是0加上图片的宽度,一般Pixel Per Unit为100,图片宽度为2048像素,则第二章图片的x为20.48。
两个Sprite都挂上一个Move脚本,脚本里的Update加几行代码即可:
transform.Translate(Vector3.left * Time.deltaTime * speed);
if (transform.position.x < -20.48f){   
    transform.position += new Vector3(20.48f * 2, 0, 0);
}
两个方式各有优势,方式一只需要创建一张图片,而方式二需要两张,但是方式二在很常用,至于选择哪个,就看项目的具体需求了。
希望本分享对你有所帮助!

发表于 2018-9-17 11:08 | 显示全部楼层
很不错
发表于 2018-9-17 11:57 | 显示全部楼层
楼主是超人
发表于 2018-9-17 11:42 | 显示全部楼层
难得一见的好帖
发表于 2018-9-17 11:25 | 显示全部楼层
说的非常好
发表于 2018-9-17 11:26 | 显示全部楼层
很好哦
发表于 2018-12-21 08:19 | 显示全部楼层
很不错
发表于 2018-12-21 08:05 | 显示全部楼层
难得一见的好帖
发表于 2018-12-21 08:05 | 显示全部楼层
说的非常好
发表于 2018-12-21 08:01 | 显示全部楼层
很好哦
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-18 16:13 , Processed in 0.098996 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表