二分类数据集 Linux软件安装 Java包装类 image dynamic linktosql grid Semantic UI Ractivejs 八大员 pmp学习视频 photoshop cs3 教程 jquery获取最后一个子元素 jq获取元素宽度 linux查看mysql进程 matlab停止运行命令 linux撤销 math保留两位小数 java 大文件上传 mysql查询 mysql建表 河南普通话报名入口 python正则提取字符串 python高级教程 python文件读取 python时间戳 python用什么数据库 java访问数据库 java实现队列 linux装机 微信小程序提示框 快打旋风3出招表 办公室复印机使用方法 ps从入门到精通 突袭时间表 0000008e js回调函数 lol游戏环境异常 机械换装 机械键盘怎么关闭灯光
当前位置: 首页 > 学习教程  > 编程语言

用unity制作打砖块游戏

2020/9/19 14:00:52 文章标签:

用unity制作打砖块游戏

运用unity制作打砖块游戏是稍微比较简单的,对于我们这些初学者也是可以进行尝试制作且成功运行

那么制作 打砖块游戏的第一步是
一 先要构思要什么控件
既然要打砖块
那么就应该有砖块和打击砖块的东西
于是乎就可以使用cube游戏物体作为游戏中的砖块
**Cube游戏物体作为砖块**

Sphere球体作为子弹
使用Sphere球型作为子弹来射击
当然,Cube方块是需要有平台的来支撑的,不然设置刚体过后就会直接掉
下去。所以还需要plane组件

plane游戏物体作为地面

plane游戏物体作为地面

二 构建游戏场景
既然知道需要什么游戏物体了就可以进行游戏场景的构建了
打砖块的游戏大家都应该玩过,但是怎么用unity制作3D的打砖块呢?构建这个肯定有很多很多方法,比如说用cube垒出一面墙,然后用Sphere进行射击击打,可以设计成这个样子用一个个cube物体软件做成的墙面
用一个个cube物体软件做成的墙面
也可以加厚呀 加高呀 反正随心的组成你想要的样子。
在这里呢会有一些细节部分
使用ctrl+D进行复制方块,然后按住ctrl可以按照1米为单位的位移
然后复制后会发现有很多很多的cube,这会使得界面看起来很繁杂,为了简洁美观,将复制的cube放入到cube父类里,这样会好一点在这里插入图片描述
然后游戏场景基本上就差一些小细节了,场景上肯定不能让他就这么简简单单,干干净净,可以适当的贴一些贴图,做一些漂亮的材质,让整个游戏看起来稍微好看一些, 适当增加一丢丢的游戏体验。
在这里插入图片描述
三 游戏的脚本和细节部分
场景做好后就是要开始写代码,让游戏的功能得以实现
在写代码前也需要做一些准备工作
创建一个文件夹专门放入游戏物体作为预制体
在这里插入图片描述

同时为Cube和Sphere放上刚体组件
在这里插入图片描述
这样Cube就能实现被击打的物理效果
Sphere也能有击打功能

然后就是子弹部分
子弹部分是需要通过代码进行实列化的
创建一个shoot c#文件
在这里插入图片描述
然后编写代码

public class shouut : MonoBehaviour
{
    public GameObject zidan;
    public float speed = 20;
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Hi gamer!");
       //GameObject.Instantiate(zidan,transform.position,transform.rotation);

    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
            GameObject b= GameObject.Instantiate(zidan,transform.position,transform.rotation);
            Rigidbody rgd = b.GetComponent<Rigidbody>();
            rgd.velocity = transform.forward * speed;
            
        }
    }
}

在这里插入图片描述
这行代码呢就是实列化一个子弹
但是要记得在unity当中把Sphere的预测体添加到
在这里插入图片描述
创建的Zidan里 这样才让Sphere有了子弹的部分功能
但是现在我们并不能在游戏里出现子弹,所以编写了使用鼠标左键来实列化子弹的代码
在这里插入图片描述
这里就是当我们单击鼠标左键就实列化一个球体
单击鼠标后
单击鼠标后会出现一个球

当然光这样是不行的,我们还得设置一个速度让它冲击,所以这行代码就是设置子弹的方向和子弹的速度
void Update()
{
if(Input.GetMouseButtonDown(0))
{
GameObject b= GameObject.Instantiate(zidan,transform.position,transform.rotation);
Rigidbody rgd = b.GetComponent();
rgd.velocity = transform.forward * speed;

    }
}

这下面的代码意思就是实列化后,他的方向,我们要让他有冲击力,所以它的方向是向前的

GameObject b= GameObject.Instantiate(zidan,transform.position,transform.rotation);

这下面一行呢就是设置子弹的刚刚体和他的射击速度
Rigidbody rgd = b.GetComponent();
rgd.velocity = transform.forward * speed;

当我们设置好后,unity里面也是是可以直接设置的。
在这里插入图片描述
然后就是需要操作,用什么操作呢?这里我们使用Main Camera作为我们的游戏视角和发射子弹的物体
所以我们的c#脚本是放到Main Camera里的。
要实现控制Main Camer的移动,又要编写代码
这里可以创造另一个c#文件让脚本稍微清晰一点
在这里插入图片描述

public class movement : MonoBehaviour
{
    public float speed = 3;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        float h = Input.GetAxis("Horizontal");
        // Debug.Log(h);
        float v = Input.GetAxis("Vertical");
        transform.Translate(new Vector3(h, v, 0)*Time.deltaTime*speed);
    }
}

我们要让摄像机Main Camera进行移动,那么摄像机移动也是需要速度的,所以又创建了Speed。
update下面的代码就是对应的操纵按键
左右操作就是
float h = Input.GetAxis(“Horizontal”);
上下操作就是
float v = Input.GetAxis(“Vertical”);
摄像机的移动速度和坐标就是
transform.Translate(new Vector3(h, v, 0)Time.deltaTimespeed);
这样摄像机就可以在x y 轴中进行移动了

这样把shoot的c#代码和movemen的代码都放入Main Camera中、
打砖块游戏就做好了!
在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_200079.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?