Was just browsing my dropbox and stumbled accross my little smoothfollow cam action that also works vertically i.e. for space shooters...thought i'd share
// Copyright (c) 2014 F. Rick Reich.
using UnityEngine;
using System.Collections;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("Advanced Actions")]
[Tooltip("Smoothfollow vertical.")]
public class VerticalSmoothCam : FsmStateAction
{
public FsmOwnerDefault gameObject;
public FsmGameObject target;
public float distance;
public float height ;
public float rotationDamping;
public bool everyFrame;
public override void Reset()
{
gameObject = null;
target = null;
distance = 10.0f;
height = 3.0f;
rotationDamping = 3.0f;
everyFrame = false;
}
public override void OnUpdate()
{
VerticalSmooth();
}
void VerticalSmooth()
{
var go = Fsm.GetOwnerDefaultTarget(gameObject);
if (go == null)
{
return;
}
if (gameObject!=null)
{
Vector3 wantedPosition = target.Value.transform.TransformPoint(0, height, -distance);
go.transform.position = wantedPosition;
Quaternion wantedRotation = Quaternion.LookRotation(target.Value.transform.position - go.transform.position, target.Value.transform.up);
go.transform.rotation = Quaternion.Lerp(go.transform.rotation, wantedRotation, Time.deltaTime * rotationDamping);
}
}
}
}