版权声明:本文为Aries原创文章,转载请标明出处。如有不足之处欢迎提出意见或建议,联系QQ531193915

继续上一讲的内容,首先呢,
为了接下来要做的小游戏,在这里我要小小的修改一下移动的代码。

public class PlayerMove : MonoBehaviour {

    //定义移动的速度
public float MoveSpeed = 8f; void Start () { }
void Update ()
{
//如果按下W或上方向键
if(Input.GetKey(KeyCode.W)||Input.GetKey(KeyCode.UpArrow))
{
MoveForward();
}
if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
{
MoveBack();
}
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
{
MoveLeft();
}
if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
{
MoveRight();
}
} void MoveForward()
{
this.transform.Translate(Vector3.forward * MoveSpeed * Time.deltaTime);
}
void MoveBack()
{
this.transform.Translate(Vector3.back * MoveSpeed * Time.deltaTime);
}
void MoveLeft()
{
this.transform.Translate(Vector3.left * MoveSpeed * Time.deltaTime);
}
void MoveRight()
{
this.transform.Translate(Vector3.right * MoveSpeed * Time.deltaTime);
}
}

这样写是为了便于以后可以自由的扩展功能,而且便于管理。

那么,现在我们要为下面要做的游戏做一个小小的策划。

  • 首先。我们要做一个3D版的是男人就下一百层。
  • 第二。我们需要三个可以跳跃的方块:向左移动的、向右移动的、不动的。
  • 第三。为了增加游戏难度,我们要设置方块只能停留数秒就消失。
  • 第四。可移动的方块踩到后就要停止运动。
  • 第五。人物没有跳跃能力,只能前后左右。

OK,策划暂时就是这样,那么,我们就从方块开始入手。
三个方块,不动的方块我们就用现在的地板为模型,Ctrl+D复制出来一个,然后改名为StaticCube。然后接着复制出两个,分别命名为LeftCube、RightCube。

将这些方块按阶梯式布局,以便测试,然后运行游戏,可以看到,Player下去以后就再也上不来了。2333333

现在,我们开始让木块动起来。

那么,木块的代码我们要怎么写?总不会写两个吧?向左一个单独的代码,向右一个单独的代码?
在我们没有更好的思路之前,先按着这个思路我们继续进行。。。

新建两个C#脚本,分别命为LeftCubeMove与RightCubeMove。在这里写Cube的移动代码。以Left为例:

public class LeftCubeMove : MonoBehaviour {
//定义Cube的初始移动速度
public float CubeSpeed = 1f; void Start () { } void Update () {
//使Cube的移动速度每一帧都增加
CubeSpeed += 0.1f;
//使Cube以CubeSpeed为速度向左移动
this.transform.Translate(Vector3.left * CubeSpeed * Time.deltaTime); }
}
然后将这两个脚本分别托给相应的Cube,运行游戏,可以看到Cube自己开始移动了。

那么我们怎样才能做到Player落在Cube上,Cube就停止移动呢?

所以问题来了,我们怎样判断Player是否落在Cube上了呢?

在这里我为大家做个解释:这就好比我在背后打你一拳,你并没看到,但是你知道有人打你,你为什么知道有人打你呢?因为你能感觉到,你是一个具有感觉能力的人。

所以,我们要让Cube也有具有感觉,那就是为Cube添加碰撞器。
在我们新建Cube的时候,Unity会自动为Cube添加一个Box Collider,
那么我们需要做的就是将Is Trigger选上,这个是触发器。

至于如何检测碰撞,我会在下一讲继续为大家讲解。

在这一讲结束前,我来教大家一个高大上的投影调法。

首先点击我们的光源:Directional light,然后右边有一个Light的选项面板,可以看到有Shadow Type的选项,这个的意思是阴影类型。
将他设置为:Soft Shadows

然后将下面联动出来的Resolution(分辨率)设置为Very Hight Resolution(非常高的分辨率)。

然后大家就可以看到非常清晰的影子了。

大家也可以在设计师图中找到光源,去调整光的投射角度,可以更好的找到游戏的体验效果。

好了,这一讲到此结束,谢谢大家的关注。

第一讲链接:Unity3D新手教学,让你十二小时,从入门到掌握!(一)

Unity3D新手教学,让你十二小时,从入门到掌握!(二) [转]的更多相关文章

  1. Unity3D新手教学,让你十二小时,从入门到掌握!(三 ) [转]

    版权声明:本文为Aries原创文章,转载请标明出处.如有不足之处欢迎提出意见或建议,联系QQ531193915 这一讲,我会教大家如何写碰撞检测的代码,然后还会教大家如何使用我介绍给大家的第一个Uni ...

  2. Unity3D新手教学,让你十二小时,从入门到掌握!(一) [转]

    http://blog.csdn.net/aries_h/article/details/47307799 版权声明:本文为Aries原创文章,转载请标明出处.如有不足之处欢迎提出意见或建议,联系QQ ...

  3. 转 猫都能学会的Unity3D Shader入门指南(二)

    猫都能学会的Unity3D Shader入门指南(二) 关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己 ...

  4. Unity3D脚本中文系列教程(十六)

    Unity3D脚本中文系列教程(十五) ◆ function OnPostprocessAudio (clip:AudioClip):void 描述:◆  function OnPostprocess ...

  5. Unity3D脚本中文系列教程(十五)

    http://dong2008hong.blog.163.com/blog/static/4696882720140322449780/ Unity3D脚本中文系列教程(十四) ◆ LightRend ...

  6. 单元测试系列之十:Sonar 常用代码规则整理(二)

    摘要:帮助公司部署了一套sonar平台,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分析,避免再次出现类似问题. 作者原创技术文章,转载请注明出处 ======== ...

  7. Linux 命令详解(十二)Systemd 入门教程:使用定时器发送邮件(mail)

    Systemd 定时器教程:http://www.ruanyifeng.com/blog/2018/03/systemd-timer.html 一.定时任务 Systemd 定时任务:每小时发送一封电 ...

  8. 第三百二十节,Django框架,生成二维码

    第三百二十节,Django框架,生成二维码 用Python来生成二维码,需要qrcode模块,qrcode模块依赖Image 模块,所以首先安装这两个模块 生成二维码保存图片在本地 import qr ...

  9. 2017.2.13 开涛shiro教程-第十二章-与Spring集成(二)shiro权限注解

    原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 第十二章-与Spring集成(二)shiro权限注解 shiro注 ...

随机推荐

  1. opencv c++实用操作

    像素遍历 对单通道图像的遍历处理 For( int i =0 ; i < grayim.rows; i++) For(int j = 0; j<grayim.cols; j++) Gray ...

  2. AC日记——[SDOI2009]HH的项链 洛谷 P1972

    [SDOI2009]HH的项链 思路: 莫队: 代码: #include <bits/stdc++.h> #define maxn 100005 #define maxm 400005 # ...

  3. 前端读者 | 前端开发者调试面板vConsole

    来着微信团队开源的一个调试工具,[GitHub地址]https://github.com/Tencent/vConsole 一个轻量.可拓展.针对手机网页的前端开发者调试面板. 特性 查看 conso ...

  4. LoadRunner Agent Runtime Settings Configuration启动报错

    解决方法: 关闭负载机器上的防火墙功能即可解决

  5. asp.net mvc 中使用NPOI导出excel

    版本信息:NPOI1.2.5(2.0以上的版本很多方法不清楚) 明确三点: path: mvc 部署网站的时候,我们肯定要拷贝的一个文件夹就mvc的UI层,有点可以肯定的是,你部署网站的路径不一定都是 ...

  6. 常用的phpstorm快捷键总结(带截屏版)

    常用的phpstorm快捷键总结(带截屏版) 目 录 PhpStorm的快捷键有10类 1.编辑相关 2.搜索/替换 3.被使用搜索 4.项目运行 5.debug相关 6.导航相关 7.重构相关 8. ...

  7. Poj2182 Lost Cows(玄学算法)

    题面 Poj 题解 不难发现最后一位就是\(pre[n]+1\),然后消除这个位置对其他位置的贡献,从左到右扫一遍,必定有至少一个位置可以得出,循环这个过程,\(O(n^2)\)出解. #includ ...

  8. Nginx日志统一格式

    统一格式如下:nginx.conf 纯文本: log_format main '$remote_addr - $remote_user [$time_local] "$request&quo ...

  9. leetcode136 Single Number

    题意:数组中每个数字都出现了两次,只有一个出现一次,找出这个数 思路:很明显不能从头到位遍历来找,首先是超时的原因,再次就是这样很没意思·····但是却没想到什么好办法,因为不了解按位异或(XOR). ...

  10. IN 运算符

    在前面已经介绍了IN运算符的简单使用,使用IN运算符可以用来匹配一个固定集合中的某一项.比如下面的SQL语句检索在2001.2003和2005年出版的所有图书: SELECT * FROM T_Boo ...