首先,这里是要用到的素材,里面包含着各个宝石的图片和背景这张坐标图(全是用 画图 三分钟做出来的hhh,听说画图要被删有点伤心)
http://pan.baidu.com/s/1eRC2Wr4 密码:h7l5
然后,我们新建一个2D项目,先把摄像机的z轴位置调整为-15。再往Project里把刚才的全部图片拉进去
然后将00图片,也就是我们的坐标图,拉进Scene(场景视图)中,把背景的z坐标调成-10,再配合摄像机,拉伸放置直到自我感觉良好,这个坐标图就会是到时候宝石们呆着的主界面啦。现在还不用太仔细,待会还要微调。
然后,我们随便把一个宝石拉入场景,调整好它的大小,然后把它放到(0,0)的位置(不用太准,因为我的坐标也不准hhh),然后将它的名字改为Origin 。
接着,我们再新建一个empty object命名为Controller,完成后大概这样
然后我们新建一个C# Script,命名为Scene好了,再新建一个C# Script叫Bricks备用。我们要用对象数组来导入各个砖块,用Spite数组来创建砖块。
我这里的Origin没有缩放过,Scale都是1。
然后我们先在Bricks中加入以下代码。(为_index们那自暴自弃的封装感到抱歉)
然后再在Scene中加入以下代码
接着我们把Bricks添加到Origin上面,把Scene添加到Controller上面。于是我们便可以在Inspector中看到刚才的变量。把各个所需物件拖入空的变量栏中。(Images里是拖入每个砖块)
就这样我们试着运行一下,能看到我们的砖头已经摆出10*10的方阵了,在Scene中点击可以检验一下他们生成出来的Xindex和Yindex是不是正确的,大概会和封面图的右侧差不多。
检查无误后我们来试着和砖头来点互动。
先给Origin加上BoxCollider2D。
再在Bricks里加入这样的代码。
在Bricks的Update中加入这样的代码
像函数名一样,OnMouseEnter函数会在鼠标(大概是从鼠标像屏幕里垂直进入的射线)进入脚本所绑定的物体时触发,OnMouseExit在离开时触发。我们再试试看,现在鼠标移动到砖头上时砖头就会变大一点点,离开后就会变回原状。这里面有些代码要在下次再用,下篇(梦里什么都有)来说砖头交换的问题。
结尾放上OnMouse系列的用途吧(OnMouse系列都需要脚本依附的物体有碰撞器且只对脚本依附的物体有作用,Input.Getkey类对全局有效)
//1、当鼠标点击下去时调用
void OnMouseDown(){
print ("Down");
}
//2、当鼠标取消下去时调用
void OnMouseUp(){
print ("Up");
}
//3、当鼠标持续按下左键不放时调用
void OnMouseDrag(){
print ("Drag");
}
//4、当鼠标进入到内部时调用
void OnMouseEnter(){
print ("Enter");
}
//5、当鼠标离开到内部时调用
void OnMouseExit(){
print ("Exit");
}
//6、当鼠标持续停留在游戏对象身上的时候调用
void OnMouseOver(){
print ("Over");
}
//7、当我们像点击按钮一样点击游戏对象
void OnMouseUpAsButton(){
print ("UpAsButton");
}