您的位置:首页 > 移动开发 > Unity3D

Unity3D里实现物体移动到目标点,并且摄像机跟着移动的简单方案

2013-04-23 16:43 591 查看
初学Unity3D,老大给出个这样的题:当鼠标点击某个位置时,物体将会平滑的移动到此点,并且摄像机会跟随物体运动,自己的实现:。C#代码如下:

其中public Camera cam指定为Main Camera

float speed = 1.0f;
RaycastHit hit = new RaycastHit();
Vector3 velocity;
Vector3 startPos;
bool canMove = false;
public Camera cam;
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

if(Input.GetMouseButtonUp(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

if(Physics.Raycast(ray,out hit,100))
{
if(null != hit.transform)
{
print("can move");
canMove = true;
startPos = transform.position;
velocity = hit.point - startPos;
}

}

}
if(canMove && null != hit.transform)
{
print("ready for move");
print(transform.position.ToString() + hit.point.ToString());
if((transform.position.x - hit.point.x >0.01 || (transform.position.x - hit.point.x < -0.01)) ||
(transform.position.y - hit.point.y > 0.01 || (transform.position.y - hit.point.y < -0.01)))
{
print("moving");
transform.Translate(velocity/velocity.magnitude * speed * Time.deltaTime);
cam.transform.Translate(velocity/velocity.magnitude * speed * Time.deltaTime);
cam.transform.LookAt(transform.position);
}else
{
print("can not move");
canMove = false;
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: