zoukankan      html  css  js  c++  java
  • 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;  } }

  • 相关阅读:
    Handler消息传递机制
    Calendar 类的应用
    English--分词短语
    English--定语从句
    English--状语从句
    English--名词从句
    English--并列句
    English--不完全及物动词与授予动词
    爬虫--selenium之 chromedriver与chrome版本映射表(最新至v2.46版本chromedriver)
    English--动词语态
  • 原文地址:https://www.cnblogs.com/weiqiangwaideshijie/p/7026314.html
Copyright © 2011-2022 走看看