角色控制-点击移动以及自动寻路

角色控制-点击移动以及自动寻路

ID:34497412

大小:71.16 KB

页数:6页

时间:2019-03-07

角色控制-点击移动以及自动寻路_第1页
角色控制-点击移动以及自动寻路_第2页
角色控制-点击移动以及自动寻路_第3页
角色控制-点击移动以及自动寻路_第4页
角色控制-点击移动以及自动寻路_第5页
资源描述:

《角色控制-点击移动以及自动寻路》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、角色控制-点击移动以及自动寻路角色控制-点击移动以及自动寻路(一)之前在D3D中做的人物控制里,在空间中两点之间行走是一个比较复杂的制作过程。跟大家分享一下我的制作过程,可以一起研究改进改进。这里面需要解决几个问题:1.如何取得目标地点需要通过鼠标当前位置的屏幕二维坐标,逆矩阵变换到世界空间下,做从摄像机到这个点的射线。射线与地面mesh进行碰撞检测,获得一个交点,就是目标点。2.如何移动角色实时得出角色的移动方向向量,在两点之间做线性插值计算,移动的同时也要播放动画。3.两点之间有障碍怎么办这个过程是

2、一个比较复杂的过程,可以通过两种办法,一种是做一种转向机制,先移动监测点(我自己起的,意思是一个前进向量和一个向下的碰撞向量的假象交点),监测到碰撞了,就将角色转向,再次监测,直到碰撞不到,向当前挪一步,再重复刚才的操作,直到绕过这个障碍物;另一种是俗称的A*算法,需要预先准备好一个二维图来标记哪里可以走,哪里不可以走,并设置权值,以便于计算最短路径。4.Unity3D里的碰撞需要注意什么射线的碰撞检测是比较耗费CPU资源的,推荐的是尽量少用,比如当做场景内物体的鼠标拾取时,对备选对象队列进行筛选后,再

3、去逐一做检测。unity3d中也是一样,只不过没有提供像DX中提供的那种API,无法用自定义的结构去决定对哪些对象进行射线碰撞。所以要引入Layer的概念,具体的操作下节说。角色控制-点击移动以及自动寻路(二)针对上一节中第四点--筛选待测物体来说一下U3D中Layer的用法。U3D中的Layer可以简单地理解为一个集合,所有的GameObject都可以设置Layer,且只能设置一个Layer。设置方法:1.Edit->rojectSetting->Tags(tag和layer在同一个设置面板上)2.前

4、几个BuiltinLayer是系统默认的,不能修改,可以在后面几个Layer中,设置Layer的名称,比如"layers"3.在Hierarchy面板中选择GameObject,在Inspector面板上面的Layer下拉框中选择刚才设置好的Layer从此,该GameObject就属于这个Layer集合中的一员了。Layer的应用:LayerMaskLayerMask可以在射线碰撞过程中屏蔽掉一些GameObject。LayerMask的方法:LayerMask.NameToLayer("layers"

5、)返回该Layer的编号LayerMask.LayerToName(8)返回该Layer的名称varlayerMaskPlayersayerMask=1<

6、layerMaskTerrains.value);varhi

7、tt:RaycastHit;varray:Ray=mainCamera.ScreenPointToRay(Input.mousePosition);if(Physics.Raycast(ray,  hitt,600,FinalMask.value)){...}上面代码描述一个鼠标拾取规则,射线仅与Layer属于Players和Terrains的GameObject做碰撞。LayerMask的使用是按位操作的,在设置新的Layer时可以看到一共只有32个,应该是因为记录Layer的变量是四个字节。Laye

8、rMask.NameToLayer方法返回的LayerId是所要移位的位数,比如在设置Layer时,Players这个Layer的ID是8,则varlayerMaskPlayers:LayerMask=1<

9、askPlayers=1<<8;则layerMaskPlayers=100000000;在双字长的情况下,~layerMaskPlayers.value=-257二进制表示:11111111111111111111111011111111角色控制-点击移动以及自动寻路(三)为鼠标点击的位置增加一个光圈。需求如下:鼠标右键点击地面,射线与地面的交点处出现一个光圈(纹理动画)。该纹理动画会旋转,跟游戏中一样。玩家移动到该光圈处,或者进入了其他状

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。