playMaker

Author Topic: One from my actiondump.  (Read 2081 times)

FRickReich

  • Playmaker Newbie
  • *
  • Posts: 21
One from my actiondump.
« on: July 15, 2014, 03:50:34 PM »
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 :)

Code: [Select]
// 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);
}
}
}
}