• Unity3D之2D游戏的背景补偿效果


    public class BackgroundParallax : MonoBehaviour

    {    

         public Transform[] backgrounds; //背景物体

         public float parallaxScale;  //摄像机移动偏移值的缩放系数

         public float parallaxReductionFactor;//背景每一层补偿的系数

         public float smoothing; //背景物体移动的平滑量

          private Transform cam;//摄像机

         private Vector3 previousCamPos;//摄像机上一针的位置   

        void Awake ()

         {

            cam = Camera.main.transform;

         }

         void Start ()

       {  

            previousCamPos = cam.position;

        }

       void Update ()

      {   

         //得到摄像机和上一帧的偏移值

      float parallax = (previousCamPos.x - cam.position.x) * parallaxScale;

         for(int i = 0; i < backgrounds.Length; i++)

      {      

        //每一层的背景补偿运动的速度有不一样,I越大,补偿的速度也就越大

       float backgroundTargetPosX = backgrounds[i].position.x + parallax * (i * parallaxReductionFactor + 1);

       //Y轴方向不动

       Vector3 backgroundTargetPos = new Vector3(backgroundTargetPosX, backgrounds[i].position.y, backgrounds[i].position.z);

       //平滑的移动

       backgrounds[i].position = Vector3.Lerp(backgrounds[i].position, backgroundTargetPos, smoothing * Time.deltaTime);

      }

      //更新上一帧摄像机的位置   previousCamPos = cam.position;  } }

  • 相关阅读:
    圣诞树
    删除临时表并且插入数据
    sql语句中查询用in的时候,按in的顺序来输出
    xmlhelper and excelhelper
    几个小知识点。
    根据页面上记录数和页面大小获取总页数
    SQL语句的疑问
    katie melua the closest thing to crazy
    something about table
    little things
  • 原文地址:https://www.cnblogs.com/weiqiangwaideshijie/p/7026314.html
Copyright © 2020-2023  润新知