美文网首页程序员系列游戏设计&游戏开发
Unity3D入门:做个第一人称射击游戏

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

作者: 王兵 | 来源:发表于2015-04-01 00:32 被阅读5013次

    今天是我第一次学习 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,破墙。

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

    相关文章

      网友评论

      本文标题:Unity3D入门:做个第一人称射击游戏

      本文链接:https://www.haomeiwen.com/subject/emjoxttx.html