Преглед на файлове

恢复单人屏幕偏移逻辑

LAPTOP-OM1V99U2\永远de小亡灵 преди 11 месеца
родител
ревизия
a9cad679b6

+ 1 - 16
ActionTowerDefense/Assets/Scenes/SampleScene.unity

@@ -829,7 +829,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!4 &467647573
 Transform:
   m_ObjectHideFlags: 0
@@ -17062,29 +17062,14 @@ MonoBehaviour:
   offsetY: 2
   offsetZ: -17
   totalOffsetYDown: -10
-  splitOffsetZ: -20
   lerpValue: 3.5
-  offsetYDown: -10
   targetPos: {x: 0, y: 0, z: 0}
-  player0TargetPos: {x: 0, y: 0, z: 0}
-  player1TargetPos: {x: 0, y: 0, z: 0}
   cameraPos: {x: 0, y: 0, z: 0}
   mainCamera: {fileID: 519420031}
-  player0Camera: {fileID: 815407867}
-  player1Camera: {fileID: 850878590}
-  maxView: 8
   view: 0
-  splitDistance: 30
-  mergeDistanceX: 16
-  mergeDistanceY: 8
   distanceX: 0
   distanceY: 0
-  ratio: 0
   ratioY: 1
-  lineMaxScale: 0.5
-  lineInCamera: {fileID: 3490440115155743560}
-  isSplit: 0
-  minDis: 2
 --- !u!4 &1055802830
 Transform:
   m_ObjectHideFlags: 0

+ 249 - 229
ActionTowerDefense/Assets/Scripts/CameraController.cs

@@ -14,46 +14,46 @@ using UnityEngine;
 public class CameraController : MonoBehaviour
 {
     public float offsetX = 2, offsetY = 2, offsetZ = -17,totalOffsetYDown = -10;
-    public float splitOffsetZ = -20;
+    //public float splitOffsetZ = -20;
     public float lerpValue = 3.5f;
 
-    [HideInInspector]
-    public float offsetYDown;
+    //[HideInInspector]
+    //public float offsetYDown;
     [HideInInspector]
     public Vector3 targetPos;
-    [HideInInspector]
-    public Vector3 player0TargetPos;
-    [HideInInspector]
-    public Vector3 player1TargetPos;
+    //[HideInInspector]
+    //public Vector3 player0TargetPos;
+    //[HideInInspector]
+    //public Vector3 player1TargetPos;
     [HideInInspector]
     public Vector3 cameraPos;
 
     public Camera mainCamera;
-    public Camera player0Camera;
-    public Camera player1Camera;
+    //public Camera player0Camera;
+    //public Camera player1Camera;
 
-    [HideInInspector]
-    public float maxView = 20;
-    [HideInInspector]
-    public float view;
-    public float splitDistance = 30;
-    public float mergeDistanceX = 16;
-    public float mergeDistanceY = 8;
+    //[HideInInspector]
+    //public float maxView = 20;
+    //[HideInInspector]
+    //public float view;
+    //public float splitDistance = 30;
+    //public float mergeDistanceX = 16;
+    //public float mergeDistanceY = 8;
     [HideInInspector]
     public float distanceX;
     [HideInInspector]
     public float distanceY;
-    [HideInInspector]
-    public float ratio;
+    //[HideInInspector]
+    //public float ratio;
     public float ratioY = 1;
-    public float lineMaxScale = 0.5f;
+    //public float lineMaxScale = 0.5f;
 
-    public GameObject lineInCamera;
+    //public GameObject lineInCamera;
 
-    public bool isSplit;
+    //public bool isSplit;
     //public bool isSplitY;
 
-    public float minDis;
+    //public float minDis;
     private int once;
 
     //[HideInInspector]
@@ -67,9 +67,9 @@ public class CameraController : MonoBehaviour
 
     private void Start()
     {
-        maxView = offsetZ - splitOffsetZ;
-        ratio = maxView / (splitDistance - mergeDistanceX);
-        offsetYDown = totalOffsetYDown;
+        //maxView = offsetZ - splitOffsetZ;
+        //ratio = maxView / (splitDistance - mergeDistanceX);
+        //offsetYDown = totalOffsetYDown;
     }
     private void Update()
     {
@@ -78,152 +78,150 @@ public class CameraController : MonoBehaviour
         //
 
         PlayerController player0 = PlayersInput.instance[0];
-        PlayerController player1 = PlayersInput.instance[1];
+        //PlayerController player1 = PlayersInput.instance[1];
 
 
 
-        if (player0!= null && player0!=player1)
+        //if (player0!= null && player0!=player1)
+        if (player0 != null)
         {
 
             Vector3 player0Pos = player0.transform.position;
-            Vector3 player1Pos = player1.transform.position;
-            distanceX = Mathf.Abs(player0Pos.x - player1Pos.x);
-            distanceY = Mathf.Abs(player0Pos.y - player1Pos.y);
 
-            //玩家距离接近且都不动时回蓝速度加快
-            if (once < 2 && distanceX <= minDis && distanceY <= minDis)
-            {
-                if (once == 0 && player0.state == CharacterState.Idle && player1.state == CharacterState.Idle)
-                {
-                    once = 1;
-                    player0.RapidReplyMp();
-                    player1.RapidReplyMp();
-                }
-                else if (once == 1 && (player0.state != CharacterState.Idle || player1.state != CharacterState.Idle))
-                {
-                    once = 2;
-                    player0.NormalReplyMp();
-                    player1.NormalReplyMp();
-                }
-            }
-            else if (once != 0 && distanceX <= minDis && distanceY <= minDis)
-            {
-                once = 0;
-                player0.NormalReplyMp();
-                player1.NormalReplyMp();
-            }
+            ////玩家距离接近且都不动时回蓝速度加快
+            //if (once < 2 && distanceX <= minDis && distanceY <= minDis)
+            //{
+            //    if (once == 0 && player0.state == CharacterState.Idle && player1.state == CharacterState.Idle)
+            //    {
+            //        once = 1;
+            //        player0.RapidReplyMp();
+            //        player1.RapidReplyMp();
+            //    }
+            //    else if (once == 1 && (player0.state != CharacterState.Idle || player1.state != CharacterState.Idle))
+            //    {
+            //        once = 2;
+            //        player0.NormalReplyMp();
+            //        player1.NormalReplyMp();
+            //    }
+            //}
+            //else if (once != 0 && distanceX <= minDis && distanceY <= minDis)
+            //{
+            //    once = 0;
+            //    player0.NormalReplyMp();
+            //    player1.NormalReplyMp();
+            //}
 
-            //根据玩家距离分屏/合屏
-            if (distanceX < mergeDistanceX)
-            {
-                if (isSplit)
-                {
-                    view = 0;
-                    CameraSplit(true);
-                }
-                else
-                {
-                    if (distanceY > mergeDistanceY)
-                    {
-                        view = (distanceY - mergeDistanceY) * ratioY;
-                        //isSplitY = true;
-                    }
-                    else
-                    {
-                        //if (isSplitY)
-                        //{
-                        //    isSplitY = false;
-                        //}
-                        if(player0.isRevive || player1.isRevive)
-                        {
-                            offsetYDown = 0;
-                        }
-                        else
-                        {
-                            offsetYDown = Mathf.Clamp(totalOffsetYDown / (2 * mergeDistanceY) * distanceY,
-                               totalOffsetYDown, 0);
+            ////根据玩家距离分屏/合屏
+            //if (distanceX < mergeDistanceX)
+            //{
+            //    if (isSplit)
+            //    {
+            //        view = 0;
+            //        CameraSplit(true);
+            //    }
+            //    else
+            //    {
+            //        if (distanceY > mergeDistanceY)
+            //        {
+            //            view = (distanceY - mergeDistanceY) * ratioY;
+            //            //isSplitY = true;
+            //        }
+            //        else
+            //        {
+            //            //if (isSplitY)
+            //            //{
+            //            //    isSplitY = false;
+            //            //}
+            //            if(player0.isRevive || player1.isRevive)
+            //            {
+            //                offsetYDown = 0;
+            //            }
+            //            else
+            //            {
+            //                offsetYDown = Mathf.Clamp(totalOffsetYDown / (2 * mergeDistanceY) * distanceY,
+            //                   totalOffsetYDown, 0);
 
-                        }
+            //            }
                         
-                    }
+            //        }
                     
-                }
+            //    }
 
-            }
-            else if (distanceX > splitDistance)
-            {
-                if (!isSplit)
-                {
-                    if (player0Pos.x < player1Pos.x)
-                    {
-                        player0Camera.rect = new Rect(0, 0, 0.5f, 1);
-                        player1Camera.rect = new Rect(0.5f, 0, 0.5f, 1);
-                    }
-                    else
-                    {
-                        player0Camera.rect = new Rect(0.5f, 0, 0.5f, 1);
-                        player1Camera.rect = new Rect(0, 0, 0.5f, 1);
-                    }
-                    CameraSplit(false);
-                }
+            //}
+            //else if (distanceX > splitDistance)
+            //{
+            //    if (!isSplit)
+            //    {
+            //        if (player0Pos.x < player1Pos.x)
+            //        {
+            //            player0Camera.rect = new Rect(0, 0, 0.5f, 1);
+            //            player1Camera.rect = new Rect(0.5f, 0, 0.5f, 1);
+            //        }
+            //        else
+            //        {
+            //            player0Camera.rect = new Rect(0.5f, 0, 0.5f, 1);
+            //            player1Camera.rect = new Rect(0, 0, 0.5f, 1);
+            //        }
+            //        CameraSplit(false);
+            //    }
                 
-            }
-            else
-            {
-                if (isSplit)
-                {
-                    view = 0;
-                }
-                else
-                {
-                    float viewX = Mathf.Clamp((distanceX - mergeDistanceX) * ratio, 0, maxView);
-                    float viewY = (distanceY - mergeDistanceY) * ratioY;
-                    if(viewX > viewY)
-                    {
-                        view = viewX;
-                        //if (isSplitY)
-                        //{
-                        //    isSplitY = false;
-                        //}
-                    }
-                    else
-                    {
-                        view = viewY;
-                        //isSplitY = true;
+            //}
+            //else
+            //{
+            //    if (isSplit)
+            //    {
+            //        view = 0;
+            //    }
+            //    else
+            //    {
+            //        float viewX = Mathf.Clamp((distanceX - mergeDistanceX) * ratio, 0, maxView);
+            //        float viewY = (distanceY - mergeDistanceY) * ratioY;
+            //        if(viewX > viewY)
+            //        {
+            //            view = viewX;
+            //            //if (isSplitY)
+            //            //{
+            //            //    isSplitY = false;
+            //            //}
+            //        }
+            //        else
+            //        {
+            //            view = viewY;
+            //            //isSplitY = true;
                         
-                    }
-                    if (player0.isRevive || player1.isRevive)
-                    {
-                        offsetYDown = 0;
-                    }
-                    else
-                    {
-                        offsetYDown = Mathf.Clamp(totalOffsetYDown / (2 * mergeDistanceY) * distanceY,
-                            totalOffsetYDown, 0);
-                    }
+            //        }
+            //        if (player0.isRevive || player1.isRevive)
+            //        {
+            //            offsetYDown = 0;
+            //        }
+            //        else
+            //        {
+            //            offsetYDown = Mathf.Clamp(totalOffsetYDown / (2 * mergeDistanceY) * distanceY,
+            //                totalOffsetYDown, 0);
+            //        }
                     
-                }
+            //    }
                 
-            }
+            //}
 
-            if (isSplit)
-            {
-                lineInCamera.transform.localScale = new Vector3(
-                        Mathf.Clamp((distanceX - mergeDistanceX) * 0.01f, 0,
-                            lineMaxScale), 20, 1);
+            //if (isSplit)
+            //{
+            //    lineInCamera.transform.localScale = new Vector3(
+            //            Mathf.Clamp((distanceX - mergeDistanceX) * 0.01f, 0,
+            //                lineMaxScale), 20, 1);
 
-            }
+            //}
         }
     }
     private void FixedUpdate()
     {
         PlayerController player0 = PlayersInput.instance[0];
-        PlayerController player1 = PlayersInput.instance[1];
+        //PlayerController player1 = PlayersInput.instance[1];
         if (player0 == null)
         {
             return;
         }
-        else if (player1 == player0)
+        else
         {
             if (player0.isRevive)
             {
@@ -236,105 +234,127 @@ public class CameraController : MonoBehaviour
             mainCamera.transform.position =
                 Vector3.Lerp(mainCamera.transform.position, targetPos, lerpValue * Time.deltaTime);
         }
-        else
-        {
-            player0TargetPos = CameraTargetMove(player0);
-            player1TargetPos = CameraTargetMove(player1);
-            if (player0.isRevive && player1.isRevive)
-            {
-                player0TargetPos = new Vector3(140, offsetY, offsetZ);
-                player1TargetPos = new Vector3(140, offsetY, offsetZ);
-                view = 0;
-                if (isSplit)
-                {
-                    CameraSplit(true);
-                }
-            }
-            else if (player0.isRevive)
-            {
-                player0TargetPos = CameraTargetMove(player1);
-                view = 0;
-                if (isSplit)
-                {
-                    CameraSplit(true);
-                }
-            }
-            else if (player1.isRevive)
-            {
-                player1TargetPos = CameraTargetMove(player0);
-                view = 0;
-                if (isSplit)
-                {
-                    CameraSplit(true);
-                }
-            }
-            if (player0TargetPos.y > player1TargetPos.y)
-            {
-                player0Camera.transform.position = Vector3.Lerp(player0Camera.transform.position,
-                    player0TargetPos + Vector3.up * offsetYDown, lerpValue * 2 * Time.deltaTime);
-                player1Camera.transform.position = Vector3.Lerp(player1Camera.transform.position,
-                    player1TargetPos, lerpValue * 2 * Time.deltaTime);
-            }
-            else
-            {
-                player0Camera.transform.position = Vector3.Lerp(player0Camera.transform.position,
-                   player0TargetPos, lerpValue * 2 * Time.deltaTime);
-                player1Camera.transform.position = Vector3.Lerp(player1Camera.transform.position,
-                    player1TargetPos + Vector3.up * offsetYDown, lerpValue * 2 * Time.deltaTime);
-            }
+        //else if (player1 == player0)
+        //{
+        //    if (player0.isRevive)
+        //    {
+        //        targetPos = new Vector3(140, offsetY, offsetZ);
+        //    }
+        //    else
+        //    {
+        //        targetPos = CameraTargetMove(player0);
+        //    }
+        //    mainCamera.transform.position =
+        //        Vector3.Lerp(mainCamera.transform.position, targetPos, lerpValue * Time.deltaTime);
+        //}
+        //else
+        //{
+        //    player0TargetPos = CameraTargetMove(player0);
+        //    player1TargetPos = CameraTargetMove(player1);
+        //    if (player0.isRevive && player1.isRevive)
+        //    {
+        //        player0TargetPos = new Vector3(140, offsetY, offsetZ);
+        //        player1TargetPos = new Vector3(140, offsetY, offsetZ);
+        //        view = 0;
+        //        if (isSplit)
+        //        {
+        //            CameraSplit(true);
+        //        }
+        //    }
+        //    else if (player0.isRevive)
+        //    {
+        //        player0TargetPos = CameraTargetMove(player1);
+        //        view = 0;
+        //        if (isSplit)
+        //        {
+        //            CameraSplit(true);
+        //        }
+        //    }
+        //    else if (player1.isRevive)
+        //    {
+        //        player1TargetPos = CameraTargetMove(player0);
+        //        view = 0;
+        //        if (isSplit)
+        //        {
+        //            CameraSplit(true);
+        //        }
+        //    }
+        //    if (player0TargetPos.y > player1TargetPos.y)
+        //    {
+        //        player0Camera.transform.position = Vector3.Lerp(player0Camera.transform.position,
+        //            player0TargetPos + Vector3.up * offsetYDown, lerpValue * 2 * Time.deltaTime);
+        //        player1Camera.transform.position = Vector3.Lerp(player1Camera.transform.position,
+        //            player1TargetPos, lerpValue * 2 * Time.deltaTime);
+        //    }
+        //    else
+        //    {
+        //        player0Camera.transform.position = Vector3.Lerp(player0Camera.transform.position,
+        //           player0TargetPos, lerpValue * 2 * Time.deltaTime);
+        //        player1Camera.transform.position = Vector3.Lerp(player1Camera.transform.position,
+        //            player1TargetPos + Vector3.up * offsetYDown, lerpValue * 2 * Time.deltaTime);
+        //    }
 
 
-            mainCamera.transform.position = Vector3.Lerp(player0Camera.transform.position,
-                    player1Camera.transform.position, 0.5f);
-        }
+        //    mainCamera.transform.position = Vector3.Lerp(player0Camera.transform.position,
+        //            player1Camera.transform.position, 0.5f);
+        //}
 
     }
 
-    public void CameraSplit(bool flag)
-    {
-        if (flag)
-        {
+    //public void CameraSplit(bool flag)
+    //{
+    //    if (flag)
+    //    {
             
-            mainCamera.enabled = true;
-            player0Camera.enabled = false;
-            player1Camera.enabled = false;
-            lineInCamera.SetActive(false);
-            isSplit = false;
-        }
-        else
-        {
-            if(PlayersInput.instance[0].isRevive || PlayersInput.instance[1].isRevive)
-            {
-                return;
-            }
-            offsetYDown = 0;
-            mainCamera.enabled = false;
-            player0Camera.enabled = true;
-            player1Camera.enabled = true;
-            lineInCamera.SetActive(true);
-            isSplit = true;
-        }
-    }
+    //        mainCamera.enabled = true;
+    //        player0Camera.enabled = false;
+    //        player1Camera.enabled = false;
+    //        lineInCamera.SetActive(false);
+    //        isSplit = false;
+    //    }
+    //    else
+    //    {
+    //        if(PlayersInput.instance[0].isRevive || PlayersInput.instance[1].isRevive)
+    //        {
+    //            return;
+    //        }
+    //        offsetYDown = 0;
+    //        mainCamera.enabled = false;
+    //        player0Camera.enabled = true;
+    //        player1Camera.enabled = true;
+    //        lineInCamera.SetActive(true);
+    //        isSplit = true;
+    //    }
+    //}
     Vector3 CameraTargetMove(PlayerController player)
     {
         Vector3 skewPos;
-        if (isSplit)
+        if (player.bodyTrans.localScale.x > 0)
         {
-            if (player.bodyTrans.localScale.x > 0)
-            {
-                skewPos = player.transform.position + new Vector3(-offsetX / 2, offsetY, splitOffsetZ);
-
-            }
-            else
-            {
-                skewPos = player.transform.position + new Vector3(offsetX / 2, offsetY, splitOffsetZ);
-
-            }
+            skewPos = player.transform.position + new Vector3(-offsetX, offsetY, offsetZ);
         }
         else
         {
-            skewPos = player.transform.position + new Vector3(0, offsetY, offsetZ - view);
+            skewPos = player.transform.position + new Vector3(offsetX, offsetY, offsetZ);
         }
+        
+        //if (isSplit)
+        //{
+        //    if (player.bodyTrans.localScale.x > 0)
+        //    {
+        //        skewPos = player.transform.position + new Vector3(-offsetX / 2, offsetY, splitOffsetZ);
+
+        //    }
+        //    else
+        //    {
+        //        skewPos = player.transform.position + new Vector3(offsetX / 2, offsetY, splitOffsetZ);
+
+        //    }
+        //}
+        //else
+        //{
+        //    skewPos = player.transform.position + new Vector3(0, offsetY, offsetZ - view);
+        //}
 
         //skewPos = player.transform.position + new Vector3(0, offsetY, offsetZ);
         return skewPos;

+ 32 - 25
ActionTowerDefense/Assets/Scripts/Portal/PortalsCountDownUI.cs

@@ -23,33 +23,40 @@ public class PortalsCountDownUI : MonoBehaviour
 
     private void Update()
     {
-        if (cameraController.isSplit)
+        refreshPortalUIPos(cameraController.mainCamera, 0,
+            -parentRect + new Vector2(myRect, myRect),
+            parentRect - new Vector2(myRect, myRect));
+        if (countDown[1].activeSelf)
         {
-            Camera camera0 = cameraController.player0Camera;
-            Camera camera1 = cameraController.player1Camera;
-            refreshPortalUIPos(
-                camera0, 0,
-                new Vector2(25 + (camera0.rect.x - 0.5f) * parentRect.x * 2 + myRect,
-                    - parentRect.y + myRect),
-                new Vector2(-25 + camera0.rect.x * parentRect.x * 2 - myRect,
-                    parentRect.y - myRect));
-            refreshPortalUIPos(
-                camera1, 1,
-                new Vector2(25 + (camera1.rect.x - 0.5f) * parentRect.x * 2 + myRect,
-                    - parentRect.y + myRect),
-                new Vector2(-25 + camera1.rect.x * parentRect.x * 2 - myRect,
-                    parentRect.y - myRect));
-        }
-        else
-        {
-            refreshPortalUIPos(cameraController.mainCamera, 0,
-                - parentRect + new Vector2(myRect, myRect),
-                parentRect - new Vector2(myRect, myRect));
-            if (countDown[1].activeSelf)
-            {
-                countDown[1].SetActive(false);
-            }
+            countDown[1].SetActive(false);
         }
+        //if (cameraController.isSplit)
+        //{
+        //    Camera camera0 = cameraController.player0Camera;
+        //    Camera camera1 = cameraController.player1Camera;
+        //    refreshPortalUIPos(
+        //        camera0, 0,
+        //        new Vector2(25 + (camera0.rect.x - 0.5f) * parentRect.x * 2 + myRect,
+        //            - parentRect.y + myRect),
+        //        new Vector2(-25 + camera0.rect.x * parentRect.x * 2 - myRect,
+        //            parentRect.y - myRect));
+        //    refreshPortalUIPos(
+        //        camera1, 1,
+        //        new Vector2(25 + (camera1.rect.x - 0.5f) * parentRect.x * 2 + myRect,
+        //            - parentRect.y + myRect),
+        //        new Vector2(-25 + camera1.rect.x * parentRect.x * 2 - myRect,
+        //            parentRect.y - myRect));
+        //}
+        //else
+        //{
+        //    refreshPortalUIPos(cameraController.mainCamera, 0,
+        //        - parentRect + new Vector2(myRect, myRect),
+        //        parentRect - new Vector2(myRect, myRect));
+        //    if (countDown[1].activeSelf)
+        //    {
+        //        countDown[1].SetActive(false);
+        //    }
+        //}
     }
 
     //Ë¢ÐÂָʾ¼ýÍ·ÏÔʾ

+ 10 - 9
ActionTowerDefense/Assets/Scripts/ScreenShake.cs

@@ -112,15 +112,16 @@ public class ScreenShake : MonoBehaviour
 			if (frameTime > 1.0 / fps)
 			{
 				frameTime = 0;
-				if (cc.isSplit)
-				{
-					player0Cam.rect = new Rect(shakeDelta * (-1.0f + curShakeLevel * Random.value), shakeDelta * (-1.0f + curShakeLevel * Random.value), 1.0f, 1.0f);
-					player1Cam.rect = new Rect(shakeDelta * (-1.0f + curShakeLevel * Random.value), shakeDelta * (-1.0f + curShakeLevel * Random.value), 1.0f, 1.0f);
-				}
-				else
-				{
-					mainCam.rect = new Rect(shakeDelta * (-1.0f + curShakeLevel * Random.value), shakeDelta * (-1.0f + curShakeLevel * Random.value), 1.0f, 1.0f);
-				}
+				mainCam.rect = new Rect(shakeDelta * (-1.0f + curShakeLevel * Random.value), shakeDelta * (-1.0f + curShakeLevel * Random.value), 1.0f, 1.0f);
+				//if (cc.isSplit)
+				//{
+				//	player0Cam.rect = new Rect(shakeDelta * (-1.0f + curShakeLevel * Random.value), shakeDelta * (-1.0f + curShakeLevel * Random.value), 1.0f, 1.0f);
+				//	player1Cam.rect = new Rect(shakeDelta * (-1.0f + curShakeLevel * Random.value), shakeDelta * (-1.0f + curShakeLevel * Random.value), 1.0f, 1.0f);
+				//}
+				//else
+				//{
+				//	mainCam.rect = new Rect(shakeDelta * (-1.0f + curShakeLevel * Random.value), shakeDelta * (-1.0f + curShakeLevel * Random.value), 1.0f, 1.0f);
+				//}
 			}
 		}
 	}