Exemple #1
0
 private void ReplaceBg(BackgroundCom com, Transform layerTrans, Rect bgCheck, float playerX)
 {
     for (int i = 1; i <= 3; i++)
     {
         Transform trans    = layerTrans.Find("0" + i);
         Vector2   checkPos = new Vector3(trans.localPosition.x, 0);
         if (bgCheck.Contains(checkPos) == false)
         {
             //ECSLocate.ECSLog.Log("替换>>>>>",trans.name,trans.position,playerPos);
             //左边
             if (playerX > trans.position.x)
             {
                 trans.gameObject.SetActive(false);
                 trans.position = new Vector3(trans.position.x + 90, 0);
                 trans.gameObject.SetActive(true);
             }
             else
             {
                 trans.gameObject.SetActive(false);
                 trans.position = new Vector3(trans.position.x - 90, 0);
                 trans.gameObject.SetActive(true);
             }
         }
     }
 }
Exemple #2
0
        protected override void HandleComs(List <BaseCom> comList)
        {
            BackgroundCom com = GetCom <BackgroundCom>(comList[0]);

            //背景滚动
            for (int i = 0; i < com.BGBoxs.Count; i++)
            {
                MoveBg(com, com.BGBoxs[i], 0.1f + i * 0.1f);
            }

            //背景复用
            PlayerInfoData playerInfo = ECSLayerLocate.Info.GetWorldInfo <PlayerInfoData>(WorldInfoKey.PlayerInfo);
            Vector3        playerPos  = playerInfo.Pos;

            Vector3 pos     = new Vector3(playerPos.x - 45, -10);
            Vector3 size    = new Vector3(90, 20);
            Rect    bgCheck = new Rect(pos, size);

            for (int i = 0; i < com.BGBoxs.Count; i++)
            {
                ReplaceBg(com, com.BGBoxs[i], bgCheck, playerPos.x);
            }

            com.LastCameraPosition = com.CameraTran.position;
        }
Exemple #3
0
        private void MoveBg(BackgroundCom com, Transform layerTrans, float scale)
        {
            for (int i = 1; i <= 3; i++)
            {
                Transform trans = layerTrans.Find("0" + i);

                Vector3 parallax = (com.LastCameraPosition - com.CameraTran.position) * scale;
                parallax.z = 0f;
                parallax.y = 0f;
                Vector3 target = trans.position + parallax;

                trans.position = Vector3.SmoothDamp(trans.position, target, ref com.Velocity, com.SmoothTime);
            }
        }