Browse Source

Added property to control swipe pan speed

https://trello.com/c/TmG9SiIa
master
chrisgregan 10 years ago
parent
commit
1142d06ce8
  1. 16
      Assets/Fungus/Camera/Scripts/CameraController.cs
  2. 7
      Assets/Fungus/Camera/Scripts/Commands/StartSwipe.cs

16
Assets/Fungus/Camera/Scripts/CameraController.cs

@ -32,16 +32,17 @@ namespace Fungus
* Fixed Z coordinate of main camera.
*/
public float cameraZ = -10f;
[HideInInspector]
public bool swipePanActive;
[HideInInspector]
public bool waiting;
protected float fadeAlpha = 0f;
// Swipe panning control
[HideInInspector]
public bool swipePanActive;
[HideInInspector]
public float swipeSpeedMultiplier = 1f;
protected View swipePanViewA;
protected View swipePanViewB;
protected Vector3 previousMousePos;
@ -426,7 +427,7 @@ namespace Fungus
* Activates swipe panning mode.
* The player can pan the camera within the area between viewA & viewB.
*/
public virtual void StartSwipePan(View viewA, View viewB, float duration, Action arriveAction)
public virtual void StartSwipePan(View viewA, View viewB, float duration, float speedMultiplier, Action arriveAction)
{
Camera camera = GetCamera();
if (camera == null)
@ -436,6 +437,7 @@ namespace Fungus
swipePanViewA = viewA;
swipePanViewB = viewB;
swipeSpeedMultiplier = speedMultiplier;
Vector3 cameraPos = camera.transform.position;
@ -503,8 +505,8 @@ namespace Fungus
if (camera != null)
{
Vector3 cameraDelta = camera.ScreenToViewportPoint(delta);
cameraDelta.x *= -2f;
cameraDelta.y *= -2f;
cameraDelta.x *= -2f * swipeSpeedMultiplier;
cameraDelta.y *= -2f * swipeSpeedMultiplier;
cameraDelta.z = 0f;
Vector3 cameraPos = camera.transform.position;

7
Assets/Fungus/Camera/Scripts/Commands/StartSwipe.cs

@ -18,12 +18,15 @@ namespace Fungus
[Tooltip("Time to move the camera to a valid starting position between the two views")]
public float duration = 0.5f;
[Tooltip("Multiplier factor for speed of swipe pan")]
public float speedMultiplier = 1f;
public override void OnEnter()
{
CameraController cameraController = CameraController.GetInstance();
cameraController.StartSwipePan(viewA, viewB, duration, () => Continue() );
cameraController.StartSwipePan(viewA, viewB, duration, speedMultiplier, () => Continue() );
}
public override string GetSummary()

Loading…
Cancel
Save