还记得上周四上午给大家扯得淡嘛。为了不烂尾,所以把后续的操作慢慢搬运上来,当然这是一个很繁杂的过程。
上回说到,
1,我们已经成功的为小球添加了刚体,并且使用input和addForce使得小球能够移动。
2,添加了两个平行光使得小球看起来更加美观。
3,使用FixedUpdate来实时的更新摄像机的位置。
然后它长成了这个样子
好的,那么这节课,将涉及到如下内容
1,创建一个游戏场景(变漂亮的Plane)
2,创建若干可以发生碰撞事件的道具
3,使得这些可碰撞物体自己动起来。
OK,follow me now。
回想一下上节课我们知道了添加对象的方式,对的,选择或者直接在Hierarchy列表中点选create
这一次呢,我们要做的事情是给平板增加四周的挡板,所以,我们选择新建Cube物体对象。
创建完成之后我们选中Cube按下F(让摄像机给他特写),惊奇地发现,那个蛋蛋把我们的方块给挡住了=-=那怎么办。
没关系QAO,没有用的东西我们就让他消失!选中小球,将他名字旁边的勾选给消除!然后就会看见!小 球 不 见 了!
耶嘿,这样我们就能自由自在地编rou辑ling了
现在我们来修改一下名为w1的Cube的各项属性。
我的数据为position(0,0,5) Scale(10,1.5,0.5),效果如下
好的,我们的第一面墙就制作完成了。接下来就是制作第2,3,4面。但是我比较懒,所以选择了复制w1的方法,经过反复的修改参数我们终于得到了围城!!!
当然也可以选择手工拖拽的方法QAQ这样比较直观=3=
辣么到现在为止,我们的第一步已经完成了。为了庆祝=-=大家把城墙的颜色换成自己喜欢的吧。
★★★★★★★★★★我是华丽的分割线——————
接下来做什么呢!没错,就是增加一些小道具。来,我们再建一个Cube.....(不是我偷懒!!!正方形多好看!!)
把它扔到场景里之后你会发现和我们最初的小球一样,它一半在底下,还记得上节课是怎么解决的嘛?好的,你们自己解决吧(如果不在中央的话记得Reset一下transform)
(就是把posY变成0.5)=3=你看不到我嘿嘿嘿
好的=-=他拉上来之后还是不怎么好看,不如让他立起来?
达到这个效果只需998(Rot中修改xyz即可)
好的,那么只有一个显的太过单调了,大家还记得雷哥课上叨叨的预制件嘛。我们就要用上它= =其实就一个模板,扯那么大犊子。
我们在Assert下新建一个PreFab文件夹,然后把新生成的cube拖进去,看到它名字变蓝之后就说明他已经是个预制件了。
预制件的好处就在于,你修改模板,所有的实例都会跟着一起变化。好了,那我们复制完预制件之后切换到Y轴视角把他们排列好吧
PS,如果你不能顺利的让这些cube平行于地板移动,那请你注意是否将视图切换成了全局Global模式= 3=。
耶,现在这些小方块douban已经摆好,现在就又要让他们动起来了,给预制件新加一个C#脚本。
考虑到会涉及旋转那我们需要使用到transform类,如之前所说,选中transform,按下Ctrl+‘,呼出帮助 文档
我们看到有两种结构,形参分别为xyz和V3.我们使用第一个函数。
using UnityEngine;
using System.Collections;
public class Rolling : MonoBehaviour {
//因为没有涉及到力,所以直接使用update
// Update is called once per frame
void Update () {
transform.Rotate (new Vector3 (15, 30, 45) * Time.deltaTime);
//为了确保平滑和帧独立所以x上deltaTime
}
}
将该脚本保存完毕之后,按下播放键,就能看到我们的小方块在旋转~\(≧▽≦)/~啦啦啦,不转你来打我!!
代码托管在https://github.com/zhe13/GameTest,可以下载到本地哟。