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变为原来的两倍
4、在Assest下新建一个文件夹并命名为Material
用于存放材质
5、创建材质
(右键 -> Create -> Mateial),并命名为Gound
6、设置材质的贴图
1).材质的贴图
2).金属度
3).光滑度
7、设置墙壁
1).在Assets中创建一个Prefab目录。
2).在层级目录中创建一个Cube,并将其设为Prefab,设置为Prefab主要是便于整体修改。
3).创建一个空组件,将Cube作为空组件的子组件,并将空组件命名为Bircks
4).为Prefab的Cube组件添加Rigibody属性(物理属性) (点击add Component搜索 Rigibody)
5).使用Ctrl + D 复制方块 与 Ctrl + 左键 按单元格拖动方块
8、创建 *
在prefab下创建Sphere,同时添加Rigibody属性
9、添加 * 飞出脚本
1).在Assets下创建Script文件夹用于存放脚本
2).右键创建C#脚本,命名为Shoot
3).将Shoot脚本赋予给相机(Main Camera)只需要将脚本拖到Main Camera组件上就可以添加脚本了
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
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、结束
来源:https://blog.csdn.net/l1336037686/article/details/79689292


猜你喜欢
- 前言app启动后的白屏问题,默认都是在splash页面加主题配置,主题配置一个背景来达到用户点击app图标就立马启动app的假象,大多情况下
- C#定义多行字符串的方式在定义的前面加上@符号: string aa = @"asdfsdfsd &n
- 之前没有接触过购物车的东东,也不知道购物车应该怎么做,所以在查询了很多资料,总结一下购物车的功能实现。查询的资料,找到三种方法:1.用coo
- 无障碍服务可以模拟一些用户操作,无障碍可以处理的对象,通过类 AccessibilityNodeInfo 表示,通过无障碍服务,可以通过它的
- 本文实例讲述了C#邮件定时群发工具Atilia用法。分享给大家供大家参考。具体如下:一、Atilia可以做什么Atilia是一个基于命令行的
- 出现此问题的原因一般都是jar包没有被扫描到;解决办法:1、在idea的设置里面如图:如果有多个jar包文件夹就都给加进来2、一般jdk版本
- spring boot版本和spring cloud版本框架版本SpringBoot2.3.12.RELEASESpringCloudHox
- 前言镜像配置都是常规操作,必要时也可以上代理.自己搭的nexus本质也是一种镜像,可以代理maven中央仓库.各个仓库的测速,可以使用这个脚
- 发送邮件的主程序 import java.util.Properties; import common.util.Ema
- 身为程序员我们对线程是再熟悉不过了,多线程并发算是Java进阶的知识,用好多线程不容易有太多的坑。创建线程也算是一个"重"
- 内存对齐的基本原则:结构(struct/class)的内置类型数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的起始位置
- spring的自动装配功能的定义:无须在Spring配置文件中描述javaBean之间的依赖关系(如配置<property>、&
- 常用的对数组进行的操作1、求数组中最大值,最小值思路:假设下标为0的元素是最大值,遍历数组,依次跟max进行比较,如果有元素比这个max还大
- 一、概述xml整合第三方框架有两种整合方案:不需要自定义名空间,不需要使用Spring的配置文件配置第三方框架本身内容,例如:MyBatis
- mq是实现代码扩展的有利手段,个人喜欢用概念来学习新知识,介绍堵塞问题的之前,先来段概念的学习。ConnectionFactory:创建co
- 记得在2013年12月的时候,有系列文章是介绍怎么开发一个智能手表的App,让用户可以在足球比赛中记录停表时间。随着Android Wear
- 1.类的属性 filed1)在kotlin中定义属性,必须赋初始值,要不编译器检查不通过。这个和java不同2)kotlin会针对于定义的每
- 有时候我们从数据库中查询出来数据之后,需要按照DataTable的某列进行分组,可以使用下面的方法实现,代码如下:using System;
- 一、简介在Flutter应用开发过程中,多个页面的跳转需要使用路由,除了官方提供的Navigator外,我们还可以使用一些第三方路由框架来实
- public static string Replace(string source, string match, string repla