【U3D学习】跑酷游戏

1.制作场景Cube预制件

新建Cube 制作材质球 改变其颜色等

将改变好的Cube放入Assets中成为预制件用于制作远景

以相同方法制作近景

Select 选定物体所使用的预制件
Revert 重置到预制件样式
Apply 应用当前样式到预制件

创建Empty Gameobject命名Managers

在Managers下创建Empty Gameobject命名SkylineNearManager用于挂载生成远处天际线的脚本

在Managers下创建Empty Gameobject命名SkylineFarawayManager用于挂载生成近处天际线的脚本

在Assets中添加create folder命名Skyline用于管理天际线部分的预制件、材质球和脚本

创建一个Cube 用于搭建远处天际线 改变其颜色 并为其创建Material材质球 调整好大小与颜色后放入Skyline文件夹内

生成预制件 以备后面使用

重复操作 创建一个用于搭建近处天际线的Cube 并生成预制件

2.创建生成背景的脚本

Queue队列

通过for循环生成Cube预制件 将其堆积成背景 并将Cube加入到队列中

GameObject.CreatePrimitive(物体类型) 创造原始物体

GameObject.Instantiate(预制件) 创造使用预制件的物体

GameObject g=GameObject.Instantiate(prefab);

g.transform.localPosition=new Vestor3(); 创造使用预制件的物体

g.transform.localScale=new Vestor3(); 改变物体大小

编写方法Recycle用于背景的循环重用

Recycle中通过Transform.scale设置Cube的大小随机(Random.range(min,max)随机min到max之间的数)

通过Transform.position设置Cube的位置

并且通过nextPosition记录和设置下一个Cube的位置

将nextPosition设置为每一个Cube横向紧挨 纵向增加其高度的一半(将每一个Cube底部对齐)

3.创建运动物

创建一个Cube用于运动并将Camera绑到Cube中

使视角跟随Cube移动

创建RunningScript运动脚本

Update()中改变Cube position.x的值使得Cube横向移动

通过Distance变量记录Cube position.x的值(用于判断场景移动)

4.场景改变

在场景创建脚本中写Update方法

通过RunningScript中Distance值与Queue中第一个元素的position.x值的差判断何时让Queue Dequeue并将第一个元素Enqueue到Queue队尾 实现场景循环使用




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值