我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Unity如何实现射击小游戏

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Unity如何实现射击小游戏

这篇文章主要为大家展示了“Unity如何实现射击小游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Unity如何实现射击小游戏”这篇文章吧。

游戏画面展示

这款小游戏只用了两个UI界面,一个是菜单界面,另一个是战斗界面

菜单界面有三种模式,分别是一般、困难和地狱

战斗界面就是很简单的从两边刷野怪,然后主角开枪打死他们

UI搭建很简单,只有一张背景图使用Image,加上一个Text文本输入框,然后摆放一下位置即可!

菜单界面如下

Unity如何实现射击小游戏

战斗画面演示

Unity如何实现射击小游戏

游戏代码解析

这款横版2D射击小游戏,核心部分只需要 两个脚本 就可以完成,一学就会,一起来看一下代码吧!

一个挂载到玩家身上的脚本PlayerMove,用于控制玩家的左右移动和跳跃

还有两种开枪的方法,分别是穿透和重击!当碰到怪物的时候就会掉血

当玩家血量低于0 的时候就跳出 游戏结束 的画面,非常简单清晰的逻辑!

代码如下,一个没有多少行,代码内容也是Unity最基础的知识点,相信稍微懂一点的人也都能看懂

PlayerMove代码如下

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class PlayerMove : MonoBehaviour {    /// <summary>    /// 生命值    /// </summary>    public int HP;    public Slider hpUI;    /// <summary>    /// 动画组建    /// </summary>    public Animator _animator;    /// <summary>    /// 击杀    /// </summary>    public static int jisha;    public Text jishaUI;    public Text jishaUIEnd;    /// <summary>    /// 是否跳跃    /// </summary>    public bool isJump;    /// <summary>    /// 游戏结束UI    /// </summary>    public GameObject ui;    // Use this for initialization    void Start ()    {        Time.timeScale = 1;        jisha = 0;        hpUI.maxValue = HP;        hpUI.value = HP;    }// Update is called once per framevoid Update ()    {        if (Input.GetKeyDown (KeyCode.Escape))        {            UnityEngine.SceneManagement.SceneManager.LoadScene("Menu");        }        if (HP <= 0)        {            HP = 0;        }        jishaUI.text = "击杀:" + jisha;        jishaUIEnd.text = "击杀:" + jisha;        if (HP == 0)        {            ui.SetActive(true);            Time.timeScale = 0;        }        hpUI.transform.position = Camera.main.WorldToScreenPoint(transform.position + new Vector3(0, 3, 0));        hpUI.value = HP;        if (Input.GetKey (KeyCode.D))        {            transform.localEulerAngles = new Vector3(0, 0, 0);            transform.Translate(Vector3.right * Time.deltaTime * 7);            _animator.SetBool("run", true);        }        else if (Input.GetKey(KeyCode.A))        {            transform.localEulerAngles = new Vector3(0, 180, 0);            transform.Translate(Vector3.right * Time.deltaTime * 7);            _animator.SetBool("run", true);        }        else        {            _animator.SetBool("run", false);        }        if (Input.GetKeyDown (KeyCode.Space) && !isJump)        {            GetComponent<Rigidbody2D>().velocity = new Vector2(0, 30);        }        if (isJump)        {            _animator.SetBool("Jump", true);        }        else        {            _animator.SetBool("Jump", false);        }        if (Input.GetKeyDown (KeyCode.J))        {            GameObject n = Instantiate(Resources.Load("a1"), transform.GetChild(0).position, transform.GetChild(0).rotation) as GameObject;            n.name = "a1";            Destroy(n, 2);        }        if (Input.GetKeyDown(KeyCode.K))        {            GameObject n = Instantiate(Resources.Load("a2"), transform.GetChild(0).position, transform.GetChild(0).rotation) as GameObject;            n.name = "a2";            Destroy(n, 2);        }    }    private void OnTriggerStay2D(Collider2D collision)    {        if (collision.name == "0")        {            isJump = false;        }    }    private void OnTriggerExit2D(Collider2D collision)    {        if (collision.name == "0")        {            isJump = true;        }    }    public void ReturnMenu()    {        UnityEngine.SceneManagement.SceneManager.LoadScene("Menu");    }}

还有一个Monster脚本,用于显示怪物的生命、速度和攻击力等

还有受到玩家打出的子弹就会掉血,很简单的方法就可以实现!

完整代码如下:

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class Monster : MonoBehaviour {    /// <summary>    /// 生命    /// </summary>    public int HP;    /// <summary>    /// 速度    /// </summary>    public float speed;    /// <summary>    /// 攻击力    /// </summary>    public int att;    public Slider hpUI;// Use this for initializationvoid Start ()    {        speed = Random.RandomRange(speed - 2, speed + 2);        Destroy(gameObject, 10);        GameObject n = Instantiate(Resources.Load("HP")) as GameObject;        n.transform.SetParent(GameObject.Find("HPShow").transform);        n.transform.localScale = Vector3.one;        hpUI = n.GetComponent<Slider>();        hpUI.maxValue = HP;        hpUI.value = HP;}// Update is called once per framevoid Update ()    {        if (HP <= 0)        {            HP = 0;            PlayerMove.jisha++;            Destroy(gameObject);        }        hpUI.transform.position = Camera.main.WorldToScreenPoint(transform.position + new Vector3 (0, 6, 0));        hpUI.value = HP;        transform.Translate(Vector3.right * Time.deltaTime * speed);    }    private void OnTriggerEnter2D(Collider2D collision)    {        //撞到玩家生命值        if (collision.name == "Player")        {            collision.GetComponent<PlayerMove>().HP -= Random.RandomRange(att - 2, att + 2);            Destroy(gameObject);        }        //红色子弹伤害低,能够连续穿透射击多个目标        if (collision.name == "a1")        {            HP -= Random.RandomRange(8, 15);        }        //红色子弹伤害高,只能击中一个目标        if (collision.name == "a2")        {            HP -= Random.RandomRange(20, 40);            Destroy(collision.gameObject);        }    }    private void OnDestroy()    {        Destroy(hpUI.gameObject);    }}

游戏打包

这个小游戏只需要上面两个脚本差不多就算是完成了,然后还可以打包出来到电脑上面玩!

打包这个游戏也很简单,只需要在Build下将下面几个场景添加进去直接Build就好啦!

Unity如何实现射击小游戏

打包出来的文件夹是这个样子的,然后点击.exe文件就可以直接在电脑上玩了!

Unity如何实现射击小游戏

以上是“Unity如何实现射击小游戏”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Unity如何实现射击小游戏

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Unity如何实现射击小游戏

这篇文章主要为大家展示了“Unity如何实现射击小游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Unity如何实现射击小游戏”这篇文章吧。游戏画面展示这款小游戏只用了两个UI界面,一个是菜单
2023-06-29

Unity怎么实现3D射箭小游戏

这篇文章主要介绍Unity怎么实现3D射箭小游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Unity 小游戏:3D射箭前两周因为实训太忙,再加上自己对老师所讲的设计模式并不是很理解,所以就没有写博客。这次博客是记
2023-06-14

Python+Pygame如何实现简单的射击小游戏

本文小编为大家详细介绍“Python+Pygame如何实现简单的射击小游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python+Pygame如何实现简单的射击小游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
2023-06-30

Python如何实现射击闯关游戏

本文小编为大家详细介绍“Python如何实现射击闯关游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现射击闯关游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。项目功能地图编辑器:可以实现玩
2023-07-04

怎么使用CocosCreator实现射击小游戏

这篇文章主要介绍怎么使用CocosCreator实现射击小游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!分析下制作步骤:1. 准备好资源,搭建场景资源的话可以自己到网上找,也可以直接用我的也行;创建好相应文件夹,
2023-06-14

基于Python怎么实现射击小游戏

本文小编为大家详细介绍“基于Python怎么实现射击小游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于Python怎么实现射击小游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.游戏画面1.1开始1.
2023-06-29

Unity如何实现炸弹人游戏

这篇文章给大家分享的是有关Unity如何实现炸弹人游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言来看一下炸弹人小游戏的效果吧!制作思路老规矩,做之前我们先来整一下做这个小游戏的思路 让我们动一下脑袋瓜想一
2023-06-29

Unity怎么实现3D迷宫小游戏

这篇文章主要介绍了Unity怎么实现3D迷宫小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Unity怎么实现3D迷宫小游戏文章都会有所收获,下面我们一起来看看吧。一、前言闲来无事,从零开始整个《3D迷宫》
2023-06-29

如何进行Unity中FlyPin见缝插针小游戏的实现

本篇文章为大家展示了如何进行Unity中FlyPin见缝插针小游戏的实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、简单介绍Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发
2023-06-26

使用Python3怎么实现一个射击游戏

今天就跟大家聊聊有关使用Python3怎么实现一个射击游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。from __future__ import divisionimport p
2023-06-14

Python开发之射击闯关游戏的实现

这篇文章主要为大家详细介绍了如何利用Python实现射击闯关游戏,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的小伙伴可以了解一下
2023-01-14

使用canvas怎么实现一个飞机打怪兽射击小游戏

使用canvas怎么实现一个飞机打怪兽射击小游戏?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。游戏规则要求玩家控制飞机发射子弹,消灭会移动的怪兽,如果全部消灭了则游戏成功,如果
2023-06-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录