unity之人物移动到鼠标点击位置

建立一个cube作为player,建立一个plane作为地面并且Tag设置为Terrain。

将下面脚本NewBehaviourScript绑定到相机上。然后把cube拖到脚本里。

点击鼠标左键在地面上即可看到cube慢慢移动到鼠标点击的位置




脚本NewBehaviourScript源码如下:

using UnityEngine;
using System.Collections;


//该代码实现,在地面上一个位置点击鼠标,player就会慢慢移动到点击的位置
public class NewBehaviourScript : MonoBehaviour
{
    int moveSpeed = 50;//player移动速度  
  public Transform   player;//定义一个人物的Transform  
    private Vector3 endposition,startpos;

    void Start()
    {
        endposition = player.transform.position;
        startpos =new Vector3 (0, 257f, -870);
    }

    void Update()
    {

        if(Input.GetMouseButtonUp(0))
        { //LeftMouse是在inputManager中设置的,左键值为mouse 0  
            PlayerMove();
        }
        Vector3 targetposition = startpos;
        transform.position = targetposition;//相机的目标位置,这两句代码的作用是让人物一直处于相机的视野下  
        if (endposition != player.transform.position)
        {
            player.position = Vector3.MoveTowards(player.position, endposition, Time.deltaTime * moveSpeed);
        }
    }


    void  PlayerMove()
    {
        Vector3 cursorScreenPosition = Input.mousePosition;//鼠标在屏幕上的位置  
        Ray ray = Camera.main.ScreenPointToRay(cursorScreenPosition);//在鼠标所在的屏幕位置发出一条射线(暂名该射线为x射线)  
        RaycastHit hit;
      
        if (Physics.Raycast(ray,out hit,1000))
        {
            if (hit.collider.gameObject.tag == "Terrain")
            {//设置地形Tag为Terrain  
                endposition = hit.point;
            }
        }
    }



}


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值