Unity3D 无限循环视差背景

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

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

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

Unity3D 无限循环视差背景_第1张图片

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

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

Unity3D 无限循环视差背景_第2张图片

Unity3D 无限循环视差背景_第3张图片

脚本如下:

using UnityEngine;

public class Parallax : MonoBehaviour {

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

	void Start () 
	{
		startPos = transform.position.x;
		
		length = GetComponent().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

你可能感兴趣的:(Unity3D开发)