SmoothLookFrame

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
m (Text replace - "<csharp>" to "<syntaxhighlight lang="csharp">")
m (Text replace - "</csharp>" to "</syntaxhighlight>")
Line 34: Line 34:
 
}
 
}
 
 
}</csharp>
+
}</syntaxhighlight>
  
 
== Javascript ==
 
== Javascript ==

Revision as of 20:47, 10 January 2012

Author: David O'Donoghue (a.k.a Trooper from ODD Games)

Description

Looks at a target whilst keeping another target in view.

C# Script

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);
 
	}
 
}

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>

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox