一、Assets文件夹下创建Script文件夹用于脚本代码文件的存放
1、右键创建一个C# Script文件(MouseManger)
2、Hierarchy窗口创建一个空物体MouseManger
3、把MouseManger脚本文件拖给该物体当组件,双击脚本文件在VS中打开。
二、编写脚本代码
写完记得保存!!!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
/// <summary>
/// EventVector3事件类
/// [System.Serializable]进行序列化才能显示出来
/// </summary>
[System.Serializable]
public class EventVector3 : UnityEvent<Vector3> { }
public class MouseManger : MonoBehaviour
{
RaycastHit hitInfo;//保存射线碰撞到的点的信息
public EventVector3 OnMouseClicked;//实例化一个事件
void Update()
{
SetCursorTexture();
MouseCnotrol();
}
/// <summary>
/// 该函数用于射线触碰到不同东西时,鼠标指针样式进行变化
/// Camera.ScreenPointToRay()函数:将屏幕的点转化为射线
/// Physics.Raycast()函数:返回一个RaycastHit类型的数值
/// </summary>
void SetCursorTexture()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray,out hitInfo))
{
//切换鼠标贴图
}
}
/// <summary>
/// MouseControl鼠标控制函数
/// </summary>
void MouseCnotrol()
{
if (Input.GetMouseButtonDown(0) && hitInfo.collider != null)
{
if (hitInfo.collider.gameObject.CompareTag("Ground"))
{
OnMouseClicked?.Invoke(hitInfo.point);
}
}
}
}
三、回到Unity界面
可以看到OnMouseClicked出现在面板上了,点击加号
将人物拖动到显眼的小框框,然后点击右上角那个,选择NavMeshAgent->destination
支线:
1、调整人物移动的各个参数
点击人物,在Nav Mesh Agent组件下调整(根据个人喜好)