《打地鼠游戏》制作

梦想的初衷 提交于 2020-02-18 20:50:26

《打地鼠游戏》制作

一、场景搭建

1、前期准备:

游戏场景图片
A、背景图片素材
B、地洞图片素材
C、老鼠图片素材
这里我分别选用以下图片作为游戏制作素材,利用ps简单处理,已达到方便使用的目的。
在这里插入图片描述
背景图片素材
在这里插入图片描述
地洞图片素材
在这里插入图片描述
地鼠图片素材

2、Unity实操:

1、打开unity,新建项目。如图1.2.1-1所示。在Project name中输入游戏名称,在Template中选择2D。点击蓝色块创建项目。
在这里插入图片描述
图1.2.1-1

2、分别导入游戏背景图片素材和地洞图片素材。如图1.2.2-1所示。分别选中图片库中背景素材图片和地洞素材图片拖至unity-Assets-Scenes中。
在这里插入图片描述
图1.2.2-1
3、分别选中两个图片素材检查TextureType与PixelsPerUnit内容如图1.2.2-2所示。
在这里插入图片描述
图1.2.3-1
4、将背景图片与地洞图片拖至Hierarchy面板。效果如图1.2.4-1
在这里插入图片描述
图1.2.4-1
5、调整图片上下位置,这里我们将背景图片素材Order in Layer设置为0,地洞图片素材Order in Layer设置为1.如图1.2.5-1所示。
在这里插入图片描述
图1.2.5-1

二、点击销毁地鼠

1、添加地鼠素材

1、使用于背景图片素材同样的方法添加地鼠图片素材到场景中。调整图片大小并将其放在合适位置。
2、为地鼠添加碰撞体;点击Inspector面板最下面Add Component中选择physics 2D点击选中Capsule Collider 2D如图2.1.2-1所示。
在这里插入图片描述
图2.1.2-1
3、添加销毁脚本
1、添加脚本实现鼠标点击地鼠,地鼠消失的功能。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Jida : MonoBehaviour{
void Start(){
}
void OnMouseDown()
{
Destroy(gameObject);
}
}

三、随机位置生成地鼠

1、添加地鼠状态变换功能

1、修改脚本添加地鼠被击打后的形态。这里我们分别用地鼠1地鼠2表示地鼠被击打前后的状态。
修改原脚本使被打击后的地鼠原地生成。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Jida : MonoBehaviour{
public GameObject m_yuzhiti2;
void Start(){
}
void OnMouseDown(){
Debug.Log(“you hit me”);
Instantiate(m_yuzhiti2, transform.position, Quaternion.identity);
Destroy(gameObject);
}
}
添加地鼠2

地鼠2图片素材
为地鼠2添加脚本实现地鼠2在0.5秒后销毁。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Xiaotui : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Destroy (gameObject, 0.5f);
}

// Update is called once per frame
void Update()
{
    
}

}
将Hierarch面板心中的地鼠2对象拖至project面板Assets文件作为地鼠1的预制体已被随时调用。再将地鼠1拖至project面板Assets文件作为预制体随时备用。

2、随机位置生成地鼠

这个步骤要实现的目的是在十二个指定位置随机生成地鼠。在Hierarch面板创建空物体。修改名称为“随机生成”。并添加脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Suijishengcheng : MonoBehaviour
{
public GameObject m_Target;
void Start()
{
//Create();
InvokeRepeating (“Create”, 0, 2);
}

// Update is called once per frame
void Create()
{
    Vector3 pos = Vector3.zero;
    int id = 0;
    id=Random.Range (1, 13);

    if(id==1)        
    pos = new Vector3(-4, 2, 0);
    if (id == 2)     
    pos = new Vector3(-1, 2, 0);
    if (id == 3)
    pos = new Vector3(2, 2, 0);
    if (id == 4)
    pos = new Vector3(5, 2, 0);

    if (id == 5)
    pos = new Vector3(-4, 0, 0);
    if (id == 6)
    pos = new Vector3(-1, 0, 0);
    if (id == 7)
    pos = new Vector3(2, 0, 0);
    if (id == 8)
    pos = new Vector3(5, 0, 0);

    if (id == 9)
    pos = new Vector3(-4, -2, 0);
    if (id == 10)
    pos = new Vector3(-1, -2, 0);
    if (id == 11)
    pos = new Vector3(2, -2, 0);
    if (id == 12)
    pos = new Vector3(5, -2, 0);
    Instantiate(m_Target, pos, Quaternion.identity);
}

}
这个操作显现出之前地洞图片素材不够完美,在ps中简单处理使得地鼠出现位置与背景地洞位置相符合。使用地鼠1作为预制体实现随机生成地鼠的目的。

3、添加音效

将事先准备好的音效拖到project面板Assets文件。分别添加到地鼠1和地鼠2.游戏《打地鼠》制作完成。

小结:
制作这个游戏主要利用InvokeRepeating函数实现了随机位置生成地鼠的目的。以及预制体该如何添加使用。
不足
1地鼠不受到击打是不会自动消失的。
2地鼠2音频前奏太长,地鼠2消失以后音效才发出。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!