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

来源:互联网 发布:淘宝店铺介绍范文 编辑:程序博客网 时间:2024/05/16 05:32

初学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 initializationvoid Start () {}// Update is called once per framevoid 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;}}}


原创粉丝点击