用鼠标控制角色移动
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标签哦。(转自秦元培博客)
好了今天就到这里,以后有空的话还会持续更新,喜欢的话可以关注我的博客。
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标签哦。(转自秦元培博客)
好了今天就到这里,以后有空的话还会持续更新,喜欢的话可以关注我的博客。
相关文章推荐
- Kinect结合Unity3D引擎开发体感游戏(一)
- 在免费 RPG 日试玩一下新游戏
- 随鼠标移动的图片或文字特效代码
- 一个鼠标移动滑出层效果的实现代码
- PHP游戏编程25个脚本代码
- JQuery实现鼠标移动到图片上显示边框效果
- Unity3D中脚本的执行顺序和编译顺序
- Unity3D动态对象优化代码分享
- 随鼠标移动的时钟非常漂亮遗憾的是只支持IE
- js 鼠标移动显示图片的简单实例
- unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android apk)
- Unity3D游戏引擎实现在Android中打开WebView的实例
- unity3d调用手机或电脑摄像头
- 分享一个开源的网络游戏服务器架构—HouHai
- Unity3D插件详细评测及教学下载
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏