unity 单场景地图的3drpg游戏的鼠标控制脚本编写

在hierarchy创建一个空物体 挂上以下脚本,在物体组件处的序列框栏 把player拖拽,右侧下划栏选择navmesh。


截屏2021-04-30 下午4.57.00.png
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
        }
    }


}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容