Hi everyone,
I am new here, thank you for this great forum! I am here because I have a question. I am new to coding and implemeting 3d models in realtime visual software. 
I want to presentate a 3D Model Scan for university:
http://www.key-factory.de/anderes/moosburg/02_web/portal.html
1.)
Now, I need a smooth movement of the camera, as you can find in the “smooth follow” script (in the camera scripts folder). sadly, i don´t have any experience of combinating of these two scripts.
2.)
Is it possible of having three keyboard shortcuts, which allow me to zoom in (smoothly) to 3 coordinates?
thank you for any hint!
best,
Tobias
here is my modified “mouse orbit” script:
var target : Transform;
var distance = 10.0;
var xSpeed = 250.0;
var ySpeed = 120.0;
var yMinLimit = -20;
var yMaxLimit = 50;
var xMinLimit = -20;
var xMaxLimit = 80;
private var x = 0.0;
private var y = 0.0;
@script AddComponentMenu("Camera-Control/Mouse Orbit")
function Start () {
var angles = transform.eulerAngles;
x = angles.y;
y = angles.x;
// Make the rigid body not change rotation
if (rigidbody)
rigidbody.freezeRotation = true;
}
function LateUpdate () {
if (target) {
x += Input.GetAxis("Mouse X") * xSpeed * 0.02;
y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;
y = ClampAngle(y, yMinLimit, yMaxLimit);
x = ClampAngle(x, xMinLimit, xMaxLimit);
var rotation = Quaternion.Euler(y, x, 0);
var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
transform.rotation = rotation;
transform.position = position;
}
}
static function ClampAngle (angle : float, min : float, max : float) {
if (angle < -360)
angle += 360;
if (angle > 360)
angle -= 360;
return Mathf.Clamp (angle, min, max);
}
A convenient way to define target viewing points in the scene is to place empty GameObjects at those positions and link them to variables in your script (it’s actually easier if you define the variables as Transform). You can use a coroutine to move the camera between the points when a key is pressed:-
var viewedObject: Transform;
var target1: Transform;
var target2: Transform;
var target3: Transform;
var camSpeed: float;
function Update () {
if (Input.GetKeyDown("a")) {
MoveTo(target1.position);
} else if (Input.GetKeyDown("b")) {
MoveTo(target2.position);
} else if (Input.GetKeyDown("c")) {
MoveTo(target3.position);
}
}
function MoveTo(newPos: Vector3) {
var startPos = transform.position;
var startTime = Time.time;
var journeyTime = Vector3.Distance(startPos, newPos) / camSpeed;
while ((Time.time - startTime) < journeyTime) {
transform.position = Vector3.Lerp(startPos, newPos, (Time.time - startTime) / journeyTime);
transform.LookAt(viewedObject);
yield;
}
transform.position = newPos;
}
You may need to modify this depending on exactly how you want the camera to behave.
dear andeeee,
thank you very much. I´ll try your code tomorow. 
best,
Tobias
thank you, it worked fine. but is it possible to give each cameratarget also a position object (so for every view a extra target?)?
i tried this script:
var viewedObjectT1: Transform;
var viewedObjectT2: Transform;
var viewedObjectT3: Transform;
var target1: Transform;
var target2: Transform;
var target3: Transform;
var camSpeed: float;
function Update () {
if (Input.GetKeyDown("a")) {
MoveTo(target1.position);
MoveToView(viewedObjectT1.position);
} else if (Input.GetKeyDown("s")) {
MoveTo(target2.position);
} else if (Input.GetKeyDown("d")) {
MoveTo(target3.position);
}
}
function MoveTo(newPos: Vector3) {
var startPos = transform.position;
var startPosView = transform.position;
var startTime = Time.time;
var journeyTime = Vector3.Distance(startPos, newPos) / camSpeed;
while ((Time.time - startTime) < journeyTime) {
transform.position = Vector3.Lerp(startPos, newPos, (Time.time - startTime) / journeyTime);
yield;
}
transform.position = newPos;
}
function MoveToView(newPos: Vector3) {
var startPosView = transform.position;
var startTime = Time.time;
var journeyTime = Vector3.Distance(startPosView, newPos) / camSpeed;
while ((Time.time - startTime) < journeyTime) {
transform.LookAt = Vector3.Lerp(startPosView, newPos, (Time.time - startTime) / journeyTime);
yield;
}
transform.position = newPos;
}
but I don´t get the oportunity to def. objects in the camera-rollout?
thank you for help!!!
Toby