Unity蛮牛教程噩梦射手----代码讲解(1)
2015-04-10 22:08
176 查看
很久没有写博客了,因为最近开始学习Unity。在蛮牛教育网上有一套讲解Unity官方教程的视频-------噩梦射手游戏实例,网站为http://www.unitytrain.cn/course/40,是Logic3d老师讲解的。游戏本身并不是很复杂,跟着视频来学习的话困难不打。然而作为程序员来学习这一套视频,更加关注的是这个游戏的脚本部分。也看到有评论说对代码部分老师讲解并不是很深入,所以我打算开这样一个新坑--------对该套视频部分的脚本代码进行讲解。好,那废话不多说,我们进入正题。
视频第一课出现的是游戏主角Player的移动脚本,我先上代码
代码开头定义的变量我们先跳开,来关注特殊的函数
FixedUpdate()函数
所以我们在这个函数里面加入我们对键盘移动输入信号的响应事件。 通过GetAxisRaw()来获取到当前用户的输入,在通过Move(),Turning(),Animating()函数来逐个改变Player的位置Position,旋转,动画状态Animation。我们来一一解释。
Move()函数:
直接使用Vector3 movement来记录当前的水平垂直方向的位移值,乘上速度和单位时间,最后赋予Player新的Position实现位置移动。这段代码不难理解。
注意:这里使用刚体RigidBody来实现位置的转变。直接使用transfrom.position也是可以的。
Turning()函数:
这里涉及到通过光线投影来记录当前鼠标方向,来实现player视角的旋转的方法。
首先是
我们将使用它来记录我们鼠标和Floor的碰撞,来获取我们需要的视角,实现旋转。这里我们需要使用到point属性。我们下面会讲到。
其次
这是光线投影碰撞的核心函数。四个参数中,后两个我们在这个脚本的开头定义一个定义好了。包括射线长度我们定位100,还有碰撞的层蒙版设为Floor。而前两个参数则是我们射线的起点和方向。该函数返回值为true则光线投影反生了碰撞,反之没有。
如果有碰撞发生,我们需要计算出新的旋转方向,并且使用这个方向来实现player视角的变化。这里使用Quaternion四元数来实现旋转。
最后Animating()函数
我们检测当前的水平,垂直速度是否为0,否则就是移动,我们就把角色的状态机的参数进行改变,实现动画效果。
------player的运动脚本基本就这些内容了,其他的在蛮牛的课程中也有讲解。如果你是直接看这篇博客可能不知所云,请见谅。
视频第一课出现的是游戏主角Player的移动脚本,我先上代码
代码开头定义的变量我们先跳开,来关注特殊的函数
FixedUpdate()函数
所以我们在这个函数里面加入我们对键盘移动输入信号的响应事件。 通过GetAxisRaw()来获取到当前用户的输入,在通过Move(),Turning(),Animating()函数来逐个改变Player的位置Position,旋转,动画状态Animation。我们来一一解释。
Move()函数:
直接使用Vector3 movement来记录当前的水平垂直方向的位移值,乘上速度和单位时间,最后赋予Player新的Position实现位置移动。这段代码不难理解。
注意:这里使用刚体RigidBody来实现位置的转变。直接使用transfrom.position也是可以的。
Turning()函数:
这里涉及到通过光线投影来记录当前鼠标方向,来实现player视角的旋转的方法。
首先是
我们将使用它来记录我们鼠标和Floor的碰撞,来获取我们需要的视角,实现旋转。这里我们需要使用到point属性。我们下面会讲到。
其次
这是光线投影碰撞的核心函数。四个参数中,后两个我们在这个脚本的开头定义一个定义好了。包括射线长度我们定位100,还有碰撞的层蒙版设为Floor。而前两个参数则是我们射线的起点和方向。该函数返回值为true则光线投影反生了碰撞,反之没有。
如果有碰撞发生,我们需要计算出新的旋转方向,并且使用这个方向来实现player视角的变化。这里使用Quaternion四元数来实现旋转。
最后Animating()函数
我们检测当前的水平,垂直速度是否为0,否则就是移动,我们就把角色的状态机的参数进行改变,实现动画效果。
------player的运动脚本基本就这些内容了,其他的在蛮牛的课程中也有讲解。如果你是直接看这篇博客可能不知所云,请见谅。
相关文章推荐
- WCF 聊天室程序代码详细讲解教程
- 【无限互联】iOS开发视频教程— 2.10 iPhone开发之代码规范讲解
- 噩梦射手(SurvivalShooter)教程(七)
- Rospy的官方教程代码讲解(二)消息头和用户数据
- 阿里云机器学习平台PAI的视频介绍(其中tensorflow高级教程有tf的代码优化讲解)
- WCF 聊天室程序代码详细讲解教程(幽灵湖)
- 噩梦射手(SurvivalShooter)教程(五)
- 噩梦射手(SurvivalShooter)教程(四)
- 【Android LibGDX游戏引擎开发教程】第03期:示例代码详细讲解
- unity的自己制作自己编辑器的教程以及制定框架的讲解(序)
- 游戏蛮牛unity权威指南全实例讲解书籍上线
- 噩梦射手(SurvivalShooter)教程(六)
- unity4.6之UGUI之与代码结合及Text讲解
- WCF 聊天室程序代码详细讲解教程
- 游戏蛮牛unity权威指南全实例讲解书籍上线
- 【unity】代码+资源反编译教程
- 噩梦射手(SurvivalShooter)教程(九)
- 噩梦射手(SurvivalShooter)教程(二)
- 噩梦射手(SurvivalShooter)教程(八)
- SpringMVC入门教程及其原理讲解和实例代码下载