![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
3D RPG Course
文章平均质量分 54
Bright00Clear
这个作者很懒,什么都没留下…
展开
-
3D RPG Course (七)实现敌人发现并追击玩家
要实现该功能,我们可使用以下方法(也可以通过Distance判断距离)实现逻辑:设计一个方法,通过物理检测获取到球体范围内的碰撞体,如果其中有Tag为“Player"的物体,则返回true,并将当前状态设置为CHASE(追击)先创建以下变量方法设计如下在状态切换的SwitchState()方法中调用该检测即可注意:上述创建的sightRadius变量需要在Inspector窗口设置大小。记得要为Player添加Tag和collider,否则检测不了Tag。原创 2023-06-24 12:47:49 · 90 阅读 · 1 评论 -
3D RPG Course (六)实现Player的攻击动画
如图,为PlayerAnim添加攻击动画,设置一个名为Attack的Trigger参数用于触发攻击动画注意:Locomotion => BaseAttack的过程不需要设置动画退出时间,并且要添加Attack参数以触发动画但是,Base Attack => Locomotion的过程需要设置1秒的动画退出时间以保证攻击动画完全播放,并且此处不需要设置Attack参数(Trigger就像一个按钮,按下去就会弹起来)原创 2023-06-10 01:34:12 · 88 阅读 · 0 评论 -
3D RPG Course (五)敌人基本属性和状态设置
本课将使用枚举类型为敌人设置一个简单的状态机实现状态切换的框架,并学习自动创建依赖项的RequireComponent语句(该语句需放在类名前)原创 2023-06-10 00:15:48 · 69 阅读 · 0 评论 -
3D RPG Course (四)实现鼠标控制移动及鼠标贴图的切换
原理:每次鼠标点击地面时获取该点的坐标,通过Camera.main.ScreenPointToRay()方法从摄像机发射一条射线到该点,再通过Physics.Raycast()方法获取到该点的信息,将其坐标设置为Player的导航代理的终点(destination)该方法需要传入一个坐标值作为射线终点,此处传入的应为鼠标点击的位置(Input.mousePosition): 传入一条射线到此方法,同时设置一个变量用于接收out出来的射线碰撞信息:由于需要在PlayerController中跨脚本调用Mou原创 2023-06-09 14:12:27 · 167 阅读 · 0 评论 -
3D RPG Course (三)Navigation 智能导航地图烘焙
选中需要烘焙的地图,将其设置为Navigation static(重要),在Navigation Area选择地图类型(walkable或not walkable等,可自行在Areas添加更多区域)如图创建了一个网格外链接,用于连接出地面和平台上的路径,连接后导航代理可通过该路径上下平台。使用该component的物体会实时在导航网格中雕刻(crave)一块not walkable的区域,一般用于可移动的障碍物。如图,地上标白色区域即为not walkable,若移动该方块,白色区域会跟着移动(实时雕刻)原创 2023-06-09 00:15:37 · 142 阅读 · 0 评论 -
3D RPG Course(一)将项目升级至URP
Edit => Render Pipeline => urp,可以将选中物体或整个场景升级为urp。二、将导入素材升级为urp。一、将场景设置为urp。原创 2023-06-08 17:09:02 · 77 阅读 · 0 评论 -
3D RPG Course (二)Poly Brush等场景工具的使用
因为ProBuilder创建的物体默认是正方形顶点,可以在ProBuilder菜单中找到那个长得像折纸的图标,将对应物体的顶点改为三角形连接。默认创建出的物体,锚点是在边角,在ProBuilder的菜单中选择中心点按钮可以将锚点设置为中心。需要先用之前导入的shader创建对应的Material,拖拽至地面,刷的颜色才能生效。安装完成后场景左上角便会多一个图标,点击启动,可以增加参考线,以及移动吸附功能。有齿轮的则可以按住Alt或者Option点击出菜单。地形高矮,地形柔化,地形颜色,刷预制体,刷图片。原创 2023-06-08 17:42:34 · 165 阅读 · 0 评论