首页 > 作文

Unity游戏开发之射击小游戏的实现

更新时间:2023-04-06 04:43:26 阅读: 评论:0

前言

人们一直都说学习和玩游戏不能兼顾,那我们就来边学习怎样制作游戏,边玩游戏 不就兼得了嘛~ 我可真是一个小天才呢~

所以本篇文章为大家带来一个 横版2d射击小游戏,游戏制作超级简单,玩法一学就会, 一起来看看吧!

游戏画面展示

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

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

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

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

菜单界面如下

战斗画面演示

游戏代码解析

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

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

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

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

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

playermove代码如下

using system.collections;using system.collections.generic;using unityengi高铁的英文ne;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;    // u 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.tactive(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.tbool("run", true);        }        el if (input.getkey(keycode.a))        {            transform.localeulerangles = new vector3(0, 180, 0);            transform.translate(vector3.right * time.deltatime * 7);            _animator.tbool("run", true);        }        el        {            _animator.tbool("run", fal);        }        if (input.getkeydown (keycode.space) && !isjump)       白芷白茯苓 {            getcomponent<rigidbody2d>().velocity = new vector2(0, 30);        }        if (isjump)        {            _animator.tbool("jump", true);        }        el        {            _animator.tbool("jump", fal);        }        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 = fal;        }    }    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;// u this for initializationvoid start ()    {        speed = random.randomrange(speed - 2, speed + 2);        destroy(gameobject, 10);        gameobject n = instantiate(resources.load("hp")) as gameobject;        n.transform.tparent(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就好啦!

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

总结

本篇文章分享了一个超级简单的横版2d射击小游戏,非常适合新手学习体验

所见即所得,可以很快的体验边做游戏边玩游戏 的感觉!

以上就是unity游戏开发之射击小游戏的实现的详细内容,更多关于unity射击小游戏的资料请关注www.887551.com其它相关文章!

本文发布于:2023-04-06 04:43:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/8816342059ea8274f52eaa582f4fc805.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Unity游戏开发之射击小游戏的实现.doc

本文 PDF 下载地址:Unity游戏开发之射击小游戏的实现.pdf

标签:小游戏   就会   游戏   界面
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图