在hierarchy创建一个空物体 挂上以下脚本,在物体组件处的序列框栏 把player拖拽,右侧下划栏选择navmesh。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
[System.Serializable]//将组建序列化(加了一个功能窗口)
public class eventvector3 : UnityEvent<Vector3> { };
public class mousecontrol : MonoBehaviour
{
RaycastHit hitinfo;
public eventvector3 onmouseclicked;
void Update()
{
SetCursorTexture();
mousecontrl();
}
void SetCursorTexture()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray, out hitinfo))//得到一条射线
{
//实时切换鼠标贴图
}
}
void mousecontrl()
{
if (Input.GetMouseButtonDown(0)&& hitinfo.collider != null)
{
if (hitinfo.collider.gameObject.CompareTag("Ground"))//判断是否为地面
onmouseclicked?.Invoke(hitinfo.point);//判断鼠标是否为空?不为空的话获得点击处坐标,然后传给player
}
}
}