Unity3D 无限循环视差背景

今天我们来实现下 游戏中常用的循环视差背景效果,效果如上图。

首先准备5张背景图,用来做远中近景。

将背景图片的属性设置为Sprite

为了能无缝循环 ,将5背景图片拖入到场景中。然后复制两份出来,一份设置x坐标为-20,一份设置x坐标为20,一份设置x坐标设置为0。

将同一层的三张图打组,并将脚本挂到组上。并以此设置Sprite的“Order in Layer” 值,越远的设置的值为越小。

1565010861832.jpg

1565010904045.jpg

脚本如下:

using UnityEngine;

public class Parallax : MonoBehaviour {

	private float length, startPos;
	
	public float parallexEffect;
	
	public GameObject cam;

	void Start () 
	{
		startPos = transform.position.x;
		
		length = GetComponent<SpriteRenderer>().bounds.size.x;
	}
	
	void FixedUpdate () 
	{
		
		float temp = (cam.transform.position.x * (1 - parallexEffect));
		
		float dist = (cam.transform.position.x * parallexEffect);

		transform.position = new Vector3(startPos + dist, transform.position.y, transform.position.z);

		if (temp > startPos + length)
		{
			startPos += length;
		}
		else if (temp < startPos - length)
		{
			startPos -= length;
		}
	}

}

工程源文件 请关注微信公众号UnityAsk,或者加QQ群 891920228
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值