Unity3D实现打砖块游戏

作者:LGX_TvT 时间:2021-11-13 11:29:44 

本文实例为大家分享了Unity3D实现打砖块的具体代码,供大家参考,具体内容如下

基于unity2017

1、 使用Plane创建初始地图

(层级菜单[Hierarcy]-> 3D Object -> Plane)

2、将Plane命名为Gound

3、 更改Scale

x = 2,y = 2,z = 2,将Plane变为原来的两倍

Unity3D实现打砖块游戏

4、在Assest下新建一个文件夹并命名为Material

用于存放材质

5、创建材质

(右键 -> Create -> Mateial),并命名为Gound

6、设置材质的贴图

1).材质的贴图
2).金属度
3).光滑度

Unity3D实现打砖块游戏

7、设置墙壁

1).在Assets中创建一个Prefab目录。
2).在层级目录中创建一个Cube,并将其设为Prefab,设置为Prefab主要是便于整体修改。
3).创建一个空组件,将Cube作为空组件的子组件,并将空组件命名为Bircks
4).为Prefab的Cube组件添加Rigibody属性(物理属性) (点击add Component搜索 Rigibody)
5).使用Ctrl + D 复制方块 与 Ctrl + 左键 按单元格拖动方块

Unity3D实现打砖块游戏

8、创建 *

在prefab下创建Sphere,同时添加Rigibody属性

9、添加 * 飞出脚本

1).在Assets下创建Script文件夹用于存放脚本
2).右键创建C#脚本,命名为Shoot
3).将Shoot脚本赋予给相机(Main Camera)只需要将脚本拖到Main Camera组件上就可以添加脚本了

Unity3D实现打砖块游戏

4).编辑脚本

public GameObject buttle;//用于获得 * 对象
public float speed = 20F;
? ? // Use this for initialization
? ? void Start () {

? ? }

? ? // Update is called once per frame
? ? void Update () {
? ? ? ? //当鼠标按下左键时触发
? ? ? ? if (Input.GetMouseButtonDown(0))
? ? ? ? {
? ? ? ? ? ? //创建 * 对象
? ? ? ? ? ?GameObject gb = GameObject.Instantiate(buttle,transform.position,transform.rotation);
? ? ? ? ? ?//创建刚体对象
? ? ? ? ? ?Rigidbody rg = gb.GetComponent<Rigidbody>();
? ? ? ? ? ?//设置 * 初始速度
? ? ? ? ? ?rg.velocity = transform.forward * speed;
? ? ? ? }
? ? }

5).赋予脚本Public属性值

只要脚本声明为public的字段,就可以从外部直接得到,这时将准备好的Prefab的Shpere * 赋值给Buttle

Unity3D实现打砖块游戏

10、创建镜头移动脚本

方法同上,创建一个Movement的C#脚本,赋予Main Camera

public class Movement : MonoBehaviour {
? ? public float speed = 5F;
? ? // Use this for initialization
? ? void Start () {

? ? }

? ? // Update is called once per frame
? ? void Update () {
? ? ? ? float h = Input.GetAxis("Horizontal"); //控制水平移动
? ? ? ? float v = Input.GetAxis("Vertical");//控制垂直移动

? ? ? ? //设置摄像机位置
? ? ? ? transform.Translate(new Vector3(h, v, 0) * Time.deltaTime * speed);

? ? }
}

11、结束

Unity3D实现打砖块游戏

来源:https://blog.csdn.net/l1336037686/article/details/79689292

标签:Unity3D,打砖块
0
投稿

猜你喜欢

  • JAVA发送HTTP请求的四种方式总结

    2023-08-23 20:27:23
  • C++类的返回值是*this的成员函数问题

    2023-02-01 19:52:50
  • Java实现批量向mysql写入数据的方法

    2023-11-05 20:51:21
  • Java源码解析之可重入锁ReentrantLock

    2021-12-28 22:32:40
  • android中处理各种触摸事件的方法浅谈

    2021-06-25 00:51:57
  • C#截图程序类似腾讯QQ截图实现代码

    2023-05-07 04:01:01
  • Unity3D生成一段隧道网格的方法

    2022-02-22 23:46:27
  • C#实现图书管理系统

    2023-03-24 04:30:35
  • java与JSON数据的转换实例详解

    2022-07-03 22:48:25
  • ReadWriteLock接口及其实现ReentrantReadWriteLock方法

    2023-11-24 01:46:52
  • Android 使用 SharedPreferences 保存少量数据的实现代码

    2023-07-03 01:00:11
  • SQLite在C#中的安装与操作技巧

    2023-04-19 08:31:12
  • Maven setting.xml配置文件详解

    2023-06-28 00:33:41
  • Java JVM中线程状态详解

    2023-01-24 16:06:19
  • C#位运算以及实例计算详解

    2021-06-03 09:03:20
  • C语言关键字union的定义和使用详解

    2021-09-24 02:40:05
  • JAVA如何按字节截取字符串

    2023-11-25 13:31:41
  • java 格式化输出数字的方法

    2022-11-10 05:04:07
  • WinForm窗体间传值的方法

    2023-12-17 08:53:08
  • SpringBoot中的Aop用法示例详解

    2023-03-31 14:12:00
  • asp之家 软件编程 m.aspxhome.com