unity吃豆人小游戏,迷宫实现

简介: unity吃豆人小游戏,迷宫实现

今天写一个unity的小教程,就以刚刚写的第一人称的射击小游戏作为案例。

先上效果图:\
在这里插入图片描述\

image.png

首先游戏物品也没有多少东西,就是地板,平行光,主摄像机。然后我们需要做一个子弹,这个子弹里面添加刚体。然后把它作为预设体保存。

生成fire.cs文件。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class fire : MonoBehaviour
{
    public int speed =5;
    public GameObject newObject; 
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        float z= Input.GetAxis("Vertical") * speed*Time.deltaTime;
        float x= Input.GetAxis("Horizontal") * speed *Time.deltaTime;

        transform.Translate(x, 0, z);

        if(Input.GetButtonDown("Fire1"))
        {
            GameObject n = Instantiate(newObject,transform.position,transform.rotation);
            Vector3 fwd;
            fwd = transform.TransformDirection(Vector3.forward);
            n.GetComponent<Rigidbody>().AddForce(fwd*6000);
            Destroy(n, 5);
        }

        if (Input.GetKey(KeyCode.Q))
        {
            transform.Rotate(0, -50 * Time.deltaTime, 0);
            
        }
        if (Input.GetKey(KeyCode.E))
        {
            transform.Rotate(0, 50 * Time.deltaTime, 0);
        }

        if (Input.GetKey(KeyCode.Z))
        {
            transform.Rotate(-50 * Time.deltaTime, 0, 0);

        }
        if (Input.GetKey(KeyCode.C))
        {
            transform.Rotate(50 * Time.deltaTime, 0, 0);
        }
    }
}

这份代码直接挂在摄像机上面。newObject就是放入刚刚保存的预设体子弹就行了。

代码解析:

  float z= Input.GetAxis("Vertical") * speed*Time.deltaTime;
    float x= Input.GetAxis("Horizontal") * speed *Time.deltaTime;

这里是管摄像头,也就是第一人称上下左右移动的。

if(Input.GetButtonDown("Fire1"))
        {
            GameObject n = Instantiate(newObject,transform.position,transform.rotation);
            Vector3 fwd;
            fwd = transform.TransformDirection(Vector3.forward);
            n.GetComponent<Rigidbody>().AddForce(fwd*6000);
            Destroy(n, 5);
        }

这里管开火键,也就是鼠标左键。\
仔细看这里的代码。这是预设体生成,也就是你们想要用代码动态生成物品,就要学习这部分代码。并且生成的子弹添加了一个向前的力,让它飞出去。

 if (Input.GetKey(KeyCode.Q))
        {
            transform.Rotate(0, -50 * Time.deltaTime, 0);
            
        }

剩下这部分代码也就是管键盘事件。键盘按键输入,然后控制摄像机旋转,达到镜头左右上下转动的效果。

这个是一个比较基础简单的游戏实例,有兴趣学unity的话,可以关注公众号:诗一样的代码,留言给我,我教你系统地学。

相关文章
|
5月前
|
图形学
Unity小游戏——迷你拼图
Unity小游戏——迷你拼图
110 1
|
5月前
|
图形学
Unity小游戏——使被砍中的怪物四处飞散
Unity小游戏——使被砍中的怪物四处飞散
|
5月前
|
图形学
unity小游戏——得分高低的判定
unity小游戏——得分高低的判定
|
5月前
|
图形学
Unity小游戏——武士和怪物的碰撞检测
Unity小游戏——武士和怪物的碰撞检测
|
5月前
|
图形学
Unity小游戏——怪物出现模式的管理
Unity小游戏——怪物出现模式的管理
|
5月前
|
机器学习/深度学习 算法 图形学
Unity小游戏——无限滚动的背景的改良
Unity小游戏——无限滚动的背景的改良
|
5月前
|
算法 图形学
Unity小游戏——武士击杀小怪兽(无限滚动的背景)
Unity小游戏——武士击杀小怪兽(无限滚动的背景)
|
图形学
Unity实现2D小游戏
Unity实现2D小游戏FirstGame2D(Sunny Land) 一、游戏说明 本游戏为作者的第一个实验的2D小游戏 实现效果: (1)简单的UI界面以及触发按钮、滑动按钮事件 (2)通过按钮与按键实现场景的切换 (3)通过代码实现动画效果的切换(跳跃、蹲下等) (4)碰撞体以及触发器实现消灭敌人、收集物品、地面检测 (5)相机场景与背景运动差,实现场景与人物的立体效果,达到较好的视觉效果 (6)SoundMananger实现场景音乐的管理
190 0
Unity实现2D小游戏
|
图形学
unity吃豆人小游戏,迷宫实现
unity吃豆人小游戏,迷宫实现
|
5月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
50 0