射线

作者: fooliker | 来源:发表于2017-03-28 20:34 被阅读0次

    public GameObject _player;

    bool isMove = false;

    Vector3 _moveTarget;

    public float _speed = 1f;

    void Update () {

    if (Input.GetMouseButtonDown(0)) {

    // 从摄像机发射一条经过鼠标当前位置的射线 用射线接收

    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

    // 结构体 获取射线返回的信息

    RaycastHit hit;

    // Physics.Raycast 在场景中投下可以与所有碰撞器碰撞的一条光线 参数1 有方向有起点的射线

    // bool值接收 当射线与任何碰撞体碰撞时为真 否则为假 参数2为如果为真的话 就把这个碰撞点的信息给hit

    if (Physics.Raycast(ray,out hit)) {

    // 获取碰撞点

    if (hit.collider.name == "Plane") {

    isMove = true;

    _moveTarget = hit.point;

    _moveTarget = new Vector3(_moveTarget.x, _player.transform.position.y, _moveTarget.z);

    }

    }

    }

    if (isMove) {

    // Lerp 两个向量之间的线性插值 参数1form 参数2to 参数3 速度

    _player.transform.position = Vector3.Lerp(_player.transform.position,_moveTarget,Time.deltaTime*_speed);

    }

    相关文章

      网友评论

          本文标题:射线

          本文链接:https://www.haomeiwen.com/subject/ymlsottx.html