【Unity】小球吃方砖小游戏

目录

游戏背景

游戏开发

        2.1场景布置

        2.2小球运动

        2.3镜头跟踪

        2.4吃掉方砖

        2.5结束提示

游戏录制


  • 游戏背景

        用wasd(↑←↓→)操控小球进行平面滑动,小球触碰会原地打转的立方体后立方体会消失,消除5个小球后提示游戏结束。

  • 游戏开发

        2.1场景布置

        鼠标单击右上角Layout菜单选Tall。

        右击场景→GameObject→3D Object,创建平面(plane),小球(sphere),围墙(cube),方砖(cube)。

        Assets下创建material,设好颜色后拖拽到指定物体赋予颜色。

【Unity】小球吃方砖小游戏_第1张图片

        2.2小球运动

        先赋予小球刚体(rigidbody)属性,再给小球施加力推动小球运动。

        鼠标单击小球物体→右边inspector窗口点击Add Component→Rigidbody

        需要创建脚本(script),单击球物体→Add Component→New script→Edit script

【Unity】小球吃方砖小游戏_第2张图片

    public Rigidbody rb;
    void Start()
    {
        rb = GetComponent();//获取刚体
    }
    void Update()
    {
        float H = Input.GetAxis("Horizontal");//控制水平方向,对应a和d(←和→)
        float V = Input.GetAxis("Vertical");//控制垂直方向,对应w和s(↑和↓)
        rb.AddForce(new Vector3(H,0,V));//给刚体施加水平方向和垂直方向的力
    }

        2.3镜头跟踪

        给Main Camera加个脚本(script),不废话直接上源码

    public Transform objectTransform;//指定要跟踪的物体
    public Vector3 offset;
    void Start()
    {
        offset = transform.position - objectTransform.position;//初始状态小球和镜头的三维差值
    }
    void Update()
    {
        transform.position = objectTransform.position + offset;//实时更新镜头的位置
    }

        2.4吃掉方砖

        小球碰到方砖后触发器发动,方砖消失。

        勾选方砖Collider里的Is Triiger即可变成触发器

【Unity】小球吃方砖小游戏_第3张图片

        再给方砖加个标签(Tag),我这里的标签是box

        给小球的脚本加上一点代码

private void OnTriggerEnter(Collider other)
    {
        if(other.gameObject.tag == "box")//如果碰到小球
        {
            Destroy(other.gameObject);//小球消失
        }
    }

        2.5结束提示

        在窗口创建UI文本,GameObject→UI→Legacy→Text,简单的调整位置

【Unity】小球吃方砖小游戏_第4张图片

        写一个十分简陋的游戏结束语,先隐藏起来【Unity】小球吃方砖小游戏_第5张图片

这里有6个小球,每吃掉一个小球右上角的分数+1,分数为6时游戏结束语随之出现

给小球脚本再叫上一点代码

    private int count = 0;//默认分数为0
    public Text scoreText;//UI文本
    public GameObject winText;//UI文本
private void OnTriggerEnter(Collider other)
    {
        if(other.gameObject.tag == "box")
        {
            Destroy(other.gameObject);
            count++;//分数+1
            scoreText.text = "分数:"+count;
        }
        if(count == 6)//如果吃掉6个小球
        {
            winText.SetActive(true);//显示“Winner!”
        }
    }

游戏录制

有些细节因为时间不足(懒)没有写,如果你感兴趣可以在评论区留下你的足迹,我看到了也不一定会回

小球吃方砖

你可能感兴趣的:(unity,游戏引擎,c#)