SmoothLookFrame
(→Javascript) |
(→Description) |
||
Line 1: | Line 1: | ||
+ | Authored by David O'Donoghue | ||
+ | |||
== Description == | == Description == | ||
Looks at a target whilst keeping another target in view. | Looks at a target whilst keeping another target in view. |
Revision as of 02:38, 22 December 2010
Authored by David O'Donoghue
Description
Looks at a target whilst keeping another target in view.
C# Script
<csharp>using UnityEngine;
public class SmoothLookFrame : MonoBehaviour {
public Transform lookAtTarget; public Transform frameTarget; public float distance = 10.0f; public float height = 5.0f; public float damping = 2.0f;
private Vector3 direction; private Vector3 wantedPosition;
void FixedUpdate () {
if (!lookAtTarget || !frameTarget) return;
direction = (frameTarget.position - lookAtTarget.position);
wantedPosition = frameTarget.position + (direction.normalized * distance); wantedPosition.y = wantedPosition.y + height;
transform.position = Vector3.Lerp(transform.position, wantedPosition, damping * Time.deltaTime);
transform.LookAt (lookAtTarget);
}
}</csharp>
Javascript
<javascript>var lookAtTarget : Transform; var frameTarget : Transform; var distance : float = 10.0; var height : float = 10.0; var damping : float = 2.0;
private var direction : Vector3; private var wantedPosition : Vector3;
function FixedUpdate () {
if (!lookAtTarget || !frameTarget) return;
direction = (frameTarget.position - lookAtTarget.position);
wantedPosition = frameTarget.position + (direction.normalized * distance); wantedPosition.y = wantedPosition.y + height;
transform.position = Vector3.Lerp(transform.position, wantedPosition, damping * Time.deltaTime);
transform.LookAt (lookAtTarget); }</javascript>