An easy to use Unity 3D library for creating illustrated Interactive Fiction games and more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.7 KiB

using UnityEngine;
using System;
using System.Collections;
namespace Fungus
{
[CommandInfo("Camera",
"Start Swipe",
"Activates swipe panning mode where the player can pan the camera within the area between viewA & viewB.")]
[AddComponentMenu("")]
public class StartSwipe : Command
{
[Tooltip("Defines one extreme of the scrollable area that the player can pan around")]
public View viewA;
[Tooltip("Defines one extreme of the scrollable area that the player can pan around")]
public View viewB;
[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;
[Tooltip("Camera to use for the pan. Will use main camera if set to none.")]
public Camera targetCamera;
public virtual void Start()
{
if (targetCamera == null)
{
targetCamera = Camera.main;
}
if (targetCamera == null)
{
targetCamera = GameObject.FindObjectOfType<Camera>();
}
}
public override void OnEnter()
{
if (targetCamera == null ||
viewA == null ||
viewB == null)
{
Continue();
return;
}
CameraController cameraController = CameraController.GetInstance();
cameraController.StartSwipePan(targetCamera, viewA, viewB, duration, speedMultiplier, () => Continue() );
}
public override string GetSummary()
{
if (viewA == null)
{
return "Error: No view selected for View A";
}
if (viewB == null)
{
return "Error: No view selected for View B";
}
return viewA.name + " to " + viewB.name;
}
public override Color GetButtonColor()
{
return new Color32(216, 228, 170, 255);
}
}
}