您的位置:首页 > 移动开发 > Unity3D

用鼠标控制角色移动

2015-09-13 15:29 639 查看
        第一次写博客,希望大家多多指教!作为一名热爱国产RPG游戏的热血少年,什么仙剑奇侠传,古剑奇谭,轩辕剑等等国产大作通通一览无余,已经伴随我的童年成长到现在。前段时间仙剑新出的6系列再次让我的情感生活和世界观得到了升华,这又让我对游戏开发产生了更大的兴趣和决心。其实这一切的根源追溯到一年前罗大神发布的仙剑同人游戏心愿,体验了这部游戏之后,我对他产生了无限的敬仰,从此踏上了游戏研发之路。玩游戏不如做游戏,真正给人带来快乐的体验才是真正的快乐。一部RPG游戏的精华在于剧情的好坏,可是我们想要完成一部质量好的游戏,需要从基本功抓起。好了废话不多说,我们进入主题吧,用鼠标控制角色的移动。以后我还会持续更新,把我学到的知识更新到博客上,希望给更多新手带来帮助(虽然我也是新手)。。

      1.我们首先创建地形,然后添加一个带有动画的角色模型,博主在这里已经导进unity了并且把角色名称修改为“主角”,当然名称你可以任意修改成自己喜欢的。然后在模型Inspector面板中把Animation
Type修改成Generic,这里不建议选Humanoid。然后就可以在Animation面板中,分割动画帧了。




         2.我们完成了动画分割以后为角色添加一个Animator Controller,打开控制面板,把刚才分割出来的idle(默认)和walk动画拖到控制器面板中,并且如图连好线。这里的意思是角色一开始时候是idle(默认)状态,后面会用代码触发walk的状态。设置好之后,为角色模型添加Animator组件,并且把刚才做好的Animator
Controller(在这里我改成了“角色”)拖到Controller中。






        3.这里用到了自动寻径的组件(Navigation),选中添加的地形,然后在Window中打开Navigation面板,勾选Navigation Static,Navigation Area模式为Walkable,按面板下面的Bake进行烘培,烘培好的地形变成了蓝色。同理选中房子啊物体啊什么的障碍物(不能走的地方),Navigation Area模式为Not Walkable进行烘培。在这里博主要重要说明一下,如果地形较大,可能无法进行烘培,所以这时候我们要在Bake面板中,把Agent
Radius适当调大才可以。(曾经在这里折腾了半天)。






       4.好了一切工作准备完了,我们接下来就可以敲代码了,不多说,自己看注释理解,这里用到了射线碰撞检测。创建一个MouseMove脚本,写好赋予给角色。并且记住为角色添加Character Controller组件和Nav Mesh agent组件。



最终运行效果,想去哪里点哪里,就是那么潇洒。。






      二.还有另一种方法不需要寻路组件,代码如下,写好赋予给角色,可别忘了为地形添加Plane标签哦。(转自秦元培博客)



     好了今天就到这里,以后有空的话还会持续更新,喜欢的话可以关注我的博客。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息