#pragma strict
var cam01:GameObject;
var cam01Pos:GameObject;
var cam02Pos:GameObject;
// 用于判断摄像机是否在移动
var isMoving:boolean = false;
var dx:float = 0;
var dy:float = 0;
var dz:float = 0;
function Start ()
{
// 初始化摄像机
cam01 = GameObject.Find("Camera01");
// 初始化两个摄像机位置
cam01Pos = GameObject.Find("Cam01Pos");
cam02Pos = GameObject.Find("Cam02Pos");
// 默认情况下摄像机处于位置一
cam01.transform.position = cam01Pos.transform.position;
}
function Update ()
{
if(Input.GetKeyUp(KeyCode.Alpha1))
{
// 从位置二过渡到位置一
dx = cam01Pos.transform.position.x - cam01.transform.position.x;
dy = cam01Pos.transform.position.y - cam01.transform.position.y;
dz = cam01Pos.transform.position.z - cam01.transform.position.z;
dx /= 100.0f;
dy /= 100.0f;
dz /= 100.0f;
isMoving = true;
}
else if(Input.GetKeyUp(KeyCode.Alpha2))
{
// 从位置一过渡到位置二
dx = cam02Pos.transform.position.x - cam01.transform.position.x;
dy = cam02Pos.transform.position.y - cam01.transform.position.y;
dz = cam02Pos.transform.position.z - cam01.transform.position.z;
dx /= 100.0f;
dy /= 100.0f;
dz /= 100.0f;
isMoving = true;
}
// 摄像机过渡动画
if(isMoving == true)
{
cam01.transform.position.x += dx;
cam01.transform.position.y += dy;
cam01.transform.position.z += dz;
// 判断摄像机是否到达指定位置
if(cam01Pos.transform.position == cam01.transform.position)
{
isMoving = false;
}
else if(cam02Pos.transform.position == cam01.transform.position)
{
isMoving = false;
}
}
}
http://bbs.9ria.com/thread-123106-1-1.html