视角跟随与鼠标点击控制移动代码

   “` public CharacterController c;//角色控制器的获得

   “` public Vector3 hitp;//保存碰撞点的向量

    “`public bool isMove = false;//判断可否移动

    “`void Start()

    {

        “`c = GetComponent<CharacterController>();//拿到CharacterController控件

    }

    “`void Update()

    {

        “`if (Input.GetMouseButtonDown(0))//判断鼠标左键点击

        {

            “`Ray r = Camera . main. ScreenPointToRay (Input. mousePosition ); 

 //从相机发出射线到鼠标点击的位置

            “`RaycastHit Hit;//碰撞信息

            “`if (Physics.Raycast(r, out Hit))//通过物理检测,如果碰撞到物体

            {

               “`if (Hit.collider.name ==”Terrain”)//判断碰撞物体的名字是否为地面

                {

                   “` hitp = Hit.point;//保存碰撞点

                    “`isMove = true;//检测到地面并保存碰撞点的信息才可以移动

                }

            }

        }

        “`float disf = Vector3.Distance(hitp, transform.position);//获取两点之间的位置距离

        “`if (disf>1f&&isMove==true)//判断移动的距离是否大于1f,并且是否可以移动

        {

            “`Vector3 MoveP = Vector3.ClampMagnitude(hitp – transform.position, 5f);//限制差值

            “`transform.LookAt(new Vector3(hitp.x, transform.position.y – 6f, hitp.z));//查看鼠标点击的位置

            “`c.SimpleMove(MoveP);//匀速移动到目标位置

        }

    }

视角跟随与鼠标点击控制移动代码

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容