Unity-实现鼠标点击型人物移动

2023-01-20  本文已影响0人  ssttIsme

创建一个Plane


创建一个Capsule放在地面上,模拟为人

勾上地面的Navgiation Static

打开Navigation窗口,修改一下Agent Radius为0.2,点击Bake,点击时会提示保存场景,保存为需要的名字,比如说Main即可

新建一个名字为Human的脚本

编写代码如下
using UnityEngine;
using System.Collections;

public class Human : MonoBehaviour {
    public NavMeshAgent agent;

    // Update is called once per frame
    void Update () {
        //鼠标左键按下
        if(Input.GetMouseButtonDown(0)){
            Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
            RaycastHit hit;
            if(Physics.Raycast(ray,out hit)){
                agent.SetDestination(hit.point);
            }
        }
    }
}

为Capsule添加Nav Mesh Agent

Capsule挂载Human脚本


Nav Mesh Agent拖入Agent位置进行赋值


运行可发现功能已实现

如果需要摄像机跟随,先调整好摄像机Main Camera的位置,比如像作者这样

新建一个名字为FollowTarget的脚本

编写代码如下
using UnityEngine;
using System.Collections;

public class FollowTarget : MonoBehaviour {
    //跟随目标
    public Transform target;
    //偏移
    public Vector3 offset;
    // Use this for initialization
    void Start () {
        offset = transform.position - target.position;
    }
    
    // Update is called once per frame
    void Update () {
        transform.position = offset + target.position;
    }
}

Camera挂载FollowTarget脚本


拖入CapsuleTarget位置进行赋值

运行即可


上一篇 下一篇

猜你喜欢

热点阅读