美文网首页Unity
Unity3D 无限循环视差背景

Unity3D 无限循环视差背景

作者: UnityAsk | 来源:发表于2019-08-09 21:10 被阅读0次

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

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

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

    将5张背景图片拖入到场景中。为了能无缝循环 ,我们复制两份出来,一份设置x坐标为-20,一份设置x坐标为20,一份设置x坐标设置为0。用20做间距是由我们的背景图片尺寸决定的,可以根据自己的实际情况调整。

    将同一层的三张图打组,并将脚本挂到组上。并以此设置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;
            }
        }
    
    }
    

    相关文章

      网友评论

        本文标题:Unity3D 无限循环视差背景

        本文链接:https://www.haomeiwen.com/subject/rspvdctx.html