Unity3D入门:做个第一人称射击游戏

今天是我第一次学习 Unity3D,做了个第一人称射击游戏!!!没有 C# 基础,没有 javascript 基础,除了一本「Unity 3.x Game Development Essentials」之外没有用到任何其他资源。你也可以,第一人称射击游戏?十几分钟的事。

听起来很高大上吗?无图无真相:

游戏开始,有一堵墙:

g

一轮射击之后,墙倒了:

开始吧:

第一步,生成一个 Project,不需要勾选任何package

第二步,要有地板,要有光

  1. Game Object -> Create Other -> Cube
  2. 在 Hierarchy 里选择 Cube,改名为 Floor,在对应 Inspector 里设置 Position (0, 0, 0);Rotation (0, 0, 0);Scale (100, 1, 100)。
  3. Game Object -> Create Other -> Point Light
  4. 在对应的 Inspector 里设置 Position (0, 20, 0),Range 设置为40。

第三步,一堵红色的墙

  1. Game Object -> Create Other -> Cube
  2. 在 Cube 对应的 Inspector 里设置 Position (0, 1, 0),Add Component -> Physics -> Rigidbody
  3. 在 Project 面板里 Create -> Material,重命名为 Red,Main Color 选择为红色。
  4. 拖动 Red 到 Cube 上。看到 Cube 变成红色。
  5. 使用(cmd+D)复制 Cube 并用 SNAP 技能(cmd+鼠标左键)沿着 Z 轴拖动。(Windows 下 cmd 换成 ctrl)
  6. 重复步骤5,9次,可以看到10个并排的红色方块。
  7. Game Object -> Create Empty,在 Hierarchy 里可以看到有一个新的 Game Object,重命名为 Cube Holder。把10个 Cube 都拖到 Cube Holder 里作为它的子节点。
  8. 重复步骤5,7次,这次对 Cube Holder 使用,向 Y 轴方向向上移动。

第四步,射击吧,子弹

  1. Game Object -> Create Other -> Sphere
  2. 在 Sphere 对应的 Inspector 里 Add Component -> Physics -> Rigidbody
  3. 在 Project 面板里 Create -> Material,重命名为 Bullet,Main Color 选择为蓝色。
  4. 移动 Main Camera 到正面对着墙,我们希望由 Main Camera 来射击。
  5. 把 Hierarchy 里面的 Sphere 拖动到 Project 里,让其成为一个 Prefab,然后在 Hierarchy 里删除它。
  6. 在 Project 里新建一个 Shooter 的 C# 脚本,双击打开,加入三个公共变量:
```

public Rigidbody bullet; public float power = 1500f; public float moveSpeed = 2f;

  + 在 Update() 方法里加入以下代码:
    
    ```
float h = Input.GetAxis ("Horizontal") * Time.deltaTime * moveSpeed;
float v = Input.GetAxis ("Vertical") * Time.deltaTime * moveSpeed;
transform.Translate (h, v, 0);
//根据用户输入更改水平和垂直视角/射击点
if (Input.GetButtonUp ("Fire1")) { 
Rigidbody instance = Instantiate(bullet, transform.position, transform.rotation) as Rigidbody;
Vector3 fwd = transform.TransformDirection(Vector3.forward);
instance.AddForce(fwd * power);
}
//如果“Fire1”被触发,即玩家鼠标左键 或 左 ctrl 按下,生成一个 bullet 实体 instance,并给这个实体一个向前的力。
  • 注意在代码里 public class 的名字是否改成了 Shooter。
  • 把代码从 Project 里拖到 Hierarchy 里的 Main Camera。Main Camera 的 Inspector 会出现一个 Shooter 的Component。把 Project 里的 Sphere Prefab 拖到这个 Shooter 里 bullet 边的小方块里。看到出现 Sphere(Rigidbody)。

保存,运行 Game,破墙。

都看到这了,留个言,点亮那个 ♡ 让我开心一下吧~~_

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python疯子

3D立体相册,一个可旋转的立体相册

当然里面的很多元素都是可以改动的,根据自己需要自己改动即可 这里用的是Button,你也可改为其他的,数量也可改动

641
来自专栏Golang语言社区

【图解】Web前端实现类似Excel的电子表格

本文将通过图解的方式,使用纯前端表格控件 SpreadJS 来一步一步实现在线的电子表格产品(例如可构建Office 365 Excel产品、Google的在...

3529
来自专栏偏前端工程师的驿站

让BASH,VIM美美的Powerline

前言  鉴于BASH及其周边强大的工具以及VIM高效快捷,加上现在我工作重心转移到前端开发上,因此我华丽地转向Linux阵营(当然从最傻瓜式的Ubuntu开始啦...

1966
来自专栏转载gongluck的CSDN博客

MFC中的CListCtrl的最左边一列必须左对齐吗?

好久不写MFC的程序了,很多细节问题都记不清了,今晚无意中要用到CListCtrl控件,希望能够表头采用自己绘制的方式显示,于是自己编写了OnPaint方法进行...

2596
来自专栏生信宝典

network3D: 交互式桑基图

桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源、...

43013
来自专栏GIS讲堂

当我们遇到问题的时候改如何解决

问题 在Openlayer3中直接加载PNG图片,在API中提供了ImageStatic可以将图片展示出来,但是如何设置图片的imageExtent让图片能...

892
来自专栏葡萄城控件技术团队

【图解】Web前端实现类似Excel的电子表格

本文将通过图解的方式,使用纯前端表格控件 SpreadJS 来一步一步实现在线的电子表格产品(例如可构建Office 365 Excel产品、Google的在线...

4876
来自专栏Windows Community

Windows Developer Day - Adaptive Cards

概述 Windows Developer Day 在 Modern Application Experience 环节展示了一种可以让开发者以更通用和统一的方式...

2839
来自专栏逸鹏说道

样式问题-如何一次性设置网站英文字体样式,中文字体等样式

异常处理汇总-前端系列 http://www.cnblogs.com/dunitian/p/4523015.html 今天才发现,CSS 的 font-fami...

2636
来自专栏我有一个梦想

UE4新手编程之创建C++项目

 虚幻4中常用的按键和快捷键 虚幻4中有一些按键和快捷键很常用,牢记它们并运动到实际的项目开发中,将会大大地提高你的工作效率和使得工作更简便快捷。下面将列举它们...

2016

扫码关注云+社区