01【功能项目】之【主角射线点击导航】

首先创建一个Unity3D的项目

打开资源商店添加一个人物模型

选择一个免费资源主角添加至项目中

在unity中打开后点击下载包

点击导入包

导入成功后会出现在资源包Assets下

右键创建地面

设置地面尺寸

创建一个材料方便给地面调配颜色

选择材料的颜色

将材质拖拽给地面组为组件

将主角包的预制体Prefab放置场景当中并且 双击主角Prefab让摄像机近距离视觉

点击摄像机后键盘按键CTRL + SHIFT + F让游戏运行视角与编辑视角一致

创建一个脚本

命名为PlayerRayClickNavigation.cs

打开脚本编写代码逻辑

using UnityEngine;
using UnityEngine.AI;
public class PlayerRayClickNavigation : MonoBehaviour{
    NavMeshAgent meshAgent;
    Vector3 targetPos;
    private void Awake(){
        meshAgent = GetComponent<NavMeshAgent>();
    }
    private void Start(){
        targetPos = transform.position;
        meshAgent.speed = 4f;
        meshAgent.enabled = true;
        Invoke("EnableNavMesh", 0.2f);
    }
    void EnableNavMesh(){
        targetPos = transform.position;
        meshAgent.enabled = true;
    }
    private void Update(){
        if (!meshAgent.enabled)
            return;
        if (Input.GetMouseButtonDown(0)){
            ClickMouse();
        }
    }
    void ClickMouse(){
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit, Mathf.Infinity, LayerMask.GetMask("Land"))){
            targetPos = hit.point;
            meshAgent.SetDestination(targetPos);
        }
    }
}

编写好代码逻辑后处理Unity编辑器下的操作

首先为Plane添加一个父物体,方便日后更换地面或者布置场景

接下来我们添加导航包

成功导入之后

为Land父物体添加一个组件NavMeshSurface导航网格面

并设置为静态变量(改变所有子物体即可)

并为Land添加一个Layer层级

起名为Land

ranh对人物完全解压缩 

为主角添加组件NavMeshAgent导航网格代理

取消组件勾选即可我们会在脚本中开启导航

点击Bake让编辑场景的地面变蓝

将代码挂载至场景中的主角身上

运行即可实现射线点击地面使人物移动

当然简单的点击移动实现了还并不完善,我们在接下来可以添加以下功能:

1.主角移动的动画

2.鼠标双击后主角进入跟随鼠标移动状态

3.鼠标单击地面的光标实现

4.让主角打开背包或者其他UI时点击UI功能时不会使人物进行移动(禁止射线穿透行为)

5.新输入系统的人物转向功能

6.摄像机跟随主角移动

7.人物释放技能等小功能

以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。

具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》

【【Unity回合2.5D】破碎纪元】 https://www.bilibili.com/video/BV1Z9vYeBEH6/?share_source=copy_web&vd_source=b7b18220b3643ac4a72a537747acaa30

下一篇文章制作任务点击移动后的动画及双击跟随功能

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值