private void MoveTo() { if (Input.GetMouseButton(0)) { Vector3 ms = Input.mousePosition; //获取鼠标屏幕位置 Ray ray = Camera.main.ScreenPointToRay(ms); //将屏幕位置转为射线 RaycastHit hitInfo; bool isCast = Physics.Raycast(ray, out hitInfo, 1000, m_inputMask); //m_inputMask为鼠标可碰撞层 if (isCast) { //如果射中目标,记录射线碰撞点 m_targetPos = hitInfo.point; //该碰撞点为物体表面上的碰撞点 } } Vector3 pos = Vector3.MoveTowards(this.m_Transform.position, m_targetPos, speed * Time.deltaTime); this.m_Transform.position = pos; }
获取鼠标位置并在点击时跟随鼠标移动
最新推荐文章于 2022-04-15 11:32:10 发布