|
|
@@ -10,15 +10,15 @@ public class CameraController : MonoBehaviour
|
|
|
[HideInInspector]
|
|
|
public Vector3 targetPos;
|
|
|
[HideInInspector]
|
|
|
- public Vector3 leftTargetPos;
|
|
|
+ public Vector3 player0TargetPos;
|
|
|
[HideInInspector]
|
|
|
- public Vector3 rightTargetPos;
|
|
|
+ public Vector3 player1TargetPos;
|
|
|
[HideInInspector]
|
|
|
public Vector3 cameraPos;
|
|
|
|
|
|
public Camera mainCamera;
|
|
|
- public Camera leftCamera;
|
|
|
- public Camera rightCamera;
|
|
|
+ public Camera player0Camera;
|
|
|
+ public Camera player1Camera;
|
|
|
|
|
|
public float maxView = 20;
|
|
|
[HideInInspector]
|
|
|
@@ -35,20 +35,18 @@ public class CameraController : MonoBehaviour
|
|
|
|
|
|
public GameObject lineInCamera;
|
|
|
|
|
|
- public int leftID;
|
|
|
- public int rightID;
|
|
|
public bool isSplit;
|
|
|
|
|
|
public float rapidMpReplySpeed;
|
|
|
|
|
|
private void Start()
|
|
|
{
|
|
|
- //ratio = maxView / (splitDistance - minDistance);
|
|
|
+ ratio = maxView / (splitDistance - minDistance);
|
|
|
}
|
|
|
private void Update()
|
|
|
{
|
|
|
//µ÷²ÎÓÃ
|
|
|
- ratio = maxView / (splitDistance - minDistance);
|
|
|
+ //ratio = maxView / (splitDistance - minDistance);
|
|
|
//
|
|
|
|
|
|
PlayerController player0 = PlayersInput.instance[0];
|
|
|
@@ -56,7 +54,7 @@ public class CameraController : MonoBehaviour
|
|
|
|
|
|
if (player0 == null)
|
|
|
{
|
|
|
- targetPos = Vector3.zero + new Vector3(0, offsetY, offsetZ);
|
|
|
+ targetPos = new Vector3(0, offsetY, offsetZ);
|
|
|
}
|
|
|
else if (player1 == player0)
|
|
|
{
|
|
|
@@ -90,7 +88,7 @@ public class CameraController : MonoBehaviour
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
- if (player1.isRevive)
|
|
|
+ else if (player1.isRevive)
|
|
|
{
|
|
|
targetPos = CameraTargetMove(player0);
|
|
|
if (isSplit)
|
|
|
@@ -105,17 +103,17 @@ public class CameraController : MonoBehaviour
|
|
|
|
|
|
if (player0Pos.x < player1Pos.x)
|
|
|
{
|
|
|
- leftTargetPos = CameraTargetMove(player0);
|
|
|
- leftID = 0;
|
|
|
- rightTargetPos = CameraTargetMove(player1);
|
|
|
- rightID = 1;
|
|
|
+ player0TargetPos = CameraTargetMove(player0);
|
|
|
+ //leftID = 0;
|
|
|
+ player1TargetPos = CameraTargetMove(player1);
|
|
|
+ //rightID = 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- leftTargetPos = CameraTargetMove(player1);
|
|
|
- leftID = 1;
|
|
|
- rightTargetPos = CameraTargetMove(player0);
|
|
|
- rightID = 0;
|
|
|
+ player0TargetPos = CameraTargetMove(player1);
|
|
|
+ //leftID = 1;
|
|
|
+ player1TargetPos = CameraTargetMove(player0);
|
|
|
+ //rightID = 0;
|
|
|
}
|
|
|
|
|
|
view = Mathf.Clamp((distance - minDistance) * ratio, 0, maxView);
|
|
|
@@ -131,7 +129,7 @@ public class CameraController : MonoBehaviour
|
|
|
lineInCamera.transform.localScale = new Vector3(Mathf.Clamp(
|
|
|
(distance - mergeDistance) * 0.01f, 0, lineMaxScale), 10, 1);
|
|
|
targetPos =
|
|
|
- Vector3.Lerp(leftCamera.transform.position, rightCamera.transform.position, 0.5f);
|
|
|
+ Vector3.Lerp(player0Camera.transform.position, player1Camera.transform.position, 0.5f);
|
|
|
}
|
|
|
if (distance > splitDistance)
|
|
|
{
|
|
|
@@ -168,10 +166,10 @@ public class CameraController : MonoBehaviour
|
|
|
}
|
|
|
|
|
|
mainCamera.transform.position = new Vector3(cameraPos.x, cameraPos.y,offsetZ - view);
|
|
|
- leftCamera.transform.position = Vector3.Lerp(leftCamera.transform.position,
|
|
|
- leftTargetPos, lerpValue * Time.deltaTime);
|
|
|
- rightCamera.transform.position = Vector3.Lerp(rightCamera.transform.position,
|
|
|
- rightTargetPos, lerpValue * Time.deltaTime);
|
|
|
+ player0Camera.transform.position = Vector3.Lerp(player0Camera.transform.position,
|
|
|
+ player0TargetPos, lerpValue * 2 * Time.deltaTime);
|
|
|
+ player1Camera.transform.position = Vector3.Lerp(player1Camera.transform.position,
|
|
|
+ player1TargetPos, lerpValue * 2 * Time.deltaTime);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -181,8 +179,8 @@ public class CameraController : MonoBehaviour
|
|
|
if (flag)
|
|
|
{
|
|
|
mainCamera.enabled = true;
|
|
|
- leftCamera.enabled = false;
|
|
|
- rightCamera.enabled = false;
|
|
|
+ player0Camera.enabled = false;
|
|
|
+ player1Camera.enabled = false;
|
|
|
lineInCamera.SetActive(false);
|
|
|
isSplit = false;
|
|
|
PlayersInput.instance[0].RapidReplyMp(rapidMpReplySpeed);
|
|
|
@@ -191,8 +189,8 @@ public class CameraController : MonoBehaviour
|
|
|
else
|
|
|
{
|
|
|
mainCamera.enabled = false;
|
|
|
- leftCamera.enabled = true;
|
|
|
- rightCamera.enabled = true;
|
|
|
+ player0Camera.enabled = true;
|
|
|
+ player1Camera.enabled = true;
|
|
|
lineInCamera.SetActive(true);
|
|
|
isSplit = true;
|
|
|
PlayersInput.instance[0].NormalReplyMp();
|
|
|
@@ -204,12 +202,29 @@ public class CameraController : MonoBehaviour
|
|
|
Vector3 skewPos;
|
|
|
if (player.bodyTrans.localScale.x > 0)
|
|
|
{
|
|
|
- skewPos = player.transform.position + new Vector3(-offsetX, offsetY, offsetZ);
|
|
|
+ if (isSplit)
|
|
|
+ {
|
|
|
+ skewPos = player.transform.position + new Vector3(-offsetX/2, offsetY, offsetZ);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ skewPos = player.transform.position + new Vector3(-offsetX, offsetY, offsetZ);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- skewPos = player.transform.position + new Vector3(offsetX, offsetY, offsetZ);
|
|
|
+ if (isSplit)
|
|
|
+ {
|
|
|
+ skewPos = player.transform.position + new Vector3(offsetX / 2, offsetY, offsetZ);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ skewPos = player.transform.position + new Vector3(offsetX, offsetY, offsetZ);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+ //skewPos = player.transform.position + new Vector3(0, offsetY, offsetZ);
|
|
|
return skewPos;
|
|
|
}
|
|
|
}
|