粉丝33获赞182

今天给大家分享鲁班锁六片锁的教程。首先我们需要找到他的钥匙,他的钥匙在这里我们旋转一下这块钥匙就可以将它拆散了, 解开后我们可以看到它是有三种不同形状的木块组成的,其中四块小木块结构是完全相同的,这一块我们对比一下,我们可以看到这个木块,这个木块的话它两端的长度是不一样的, 这一块小木块就是我们刚刚找到的钥匙,现在我们开始组装,首先我们先从四块相同的里面取出两块,搭建一个基本框架, 现在我们取出这一款,将短的放在下面, 我们在他的上下两侧分别放上一个小木块, 现在我们把这颗弹珠丢进去, 现在我们将这一块钥匙从这个角度给它按上去,这样我们的六片锁就已经主动完成了,聪明的你学会了吗?


六片拼,如何解开找开锁的钥匙?这片转不动,他也不行,五片都湿了,只剩下他了,轻轻一旋转, 全部都散架了。先分类再组装,他俩比较特殊,先放一遍,这四片排好队,他们完全一样,组装不分先后,另外两个有些特殊,他上下长短不一样。 再看另外一个是开锁的钥匙,注意这个卡槽是开锁组装的关键,卡槽要卡住这里在后的这一头拼装最后一步会用到这片小头朝下横着放一片, 他对面竖着再放一片,放的时候要小心,很容易全部散架,前后再各放一片。经常玩鲁班锁,可以锻炼孩子的推理能力、空间想象能力,也 也能磨练耐心,增强孩子的专注力。里面放点自己喜欢的小玩具,拿起最后一块,注意小卡槽的方向,组装成功了,喜欢的帮忙点赞、收藏、关注!


大家好,今天和大家玩的这个鲁班锁叫做六片,顾名思义啊,嗯,他就是六片组成的, 总共有六片啊,他这个六个六片吗?有三个不同的形状,这是一种有四块,这是一种旁边有个缺口 一块,这还是一种啊,跟他是比较像,但他的区别大家看到了吗?他有一端啊,是一样长,还有一端啊,比这一端要长一点 啊,我们先将它拼起来啊,首先这里面四块相同, 取取两块, 呃,将它这样搭,然后这个一块是上面长下面短吗?将短的搭下面, 将这个还有两块一样的搭一块在他的前面 再搭一块,在他的后面 还送了一个这个小球,我们把小球放在中间,然后最快哦,最后封顶 啊,大家看到吗?刚刚这个是一块长一块短的吗?一边现在有凹槽,一边没有凹槽,我们将这个有缺口的啊,对应到没 凹槽的地方,将这个这样放进去, 这样就拼好了, 然后拆开也很简单,只要从这里啊,刚刚我们最后的起的那一块吗?就是这边有有高高矮的积分的地方,将它这样一开就可以打开了。 呃,这个就是鲁班锁的。呃,六片,大家会的吧,哈哈,实在太简单了,我都有点不好意思。


据说这是曹操送给张飞的玩具,叫六片屏。张飞接过手,细细端详其手下,则顿感不妙,借故如厕,直接取酒去了。 我们看到它是由六片木片加里面的一个弹珠组合而成。每一款鲁班索塔都是有机关的, 所以我们第一步就要把他的机关给找到看。就是这里,我们把它掰动一下,这样整套锁就可以拆开了。注意里面的龙珠你可千万别给整丢了,他可是这套锁的灵魂所在。拆开后我们发现 木片分为三种类型,其中瓷片是一样的,另外一片操控稍小,还有一片是钥匙。那么你知道要如何 可将它装回去呢?鲁班锁起源于中国古代建筑中首创的榫卯结构。它既不用胶水,也不用绳子,完全依靠自身结构的连接和支撑,从而形成一个稳固的整体,是古人智慧的结晶。经后人改造, 出现了更多高难度的鲁班所。经常玩鲁班所的孩子,能够锻炼他的逻辑思维能力、空间想象力以及耐心和专注力。 成人和老人玩能趣味皆发,消遣时间,更能感受古人的智慧。更多高难度解锁,期待你来挑战。

边长七点五厘米的正方形纸,对边对齐折成长方形,打开,两边对齐,中间折痕折叠, 对齐边折叠 另一边相同折法折叠翻,两边对齐,中间折痕折叠, 对齐边折叠角压出折痕,打开另一边相同折法折叠, 对面相同折法折叠。 正面向上打开。仔细看,折好的折痕有四条山折线,三条骨折线。捏住第一条山折线,注意看两条折痕。山折中间折痕骨折 另一端相同折法折叠 沿折痕折叠角让花色露在外边。 一个零件完成了。用同样方法折叠,六个零件组合拼叉 调整一下鲁班锁完成了。

我们用同样的方法搭建一个鲁班锁,六通,六通的鲁班锁也是有各个部件,我们同样去添加了瑞思堡底,添加了鲁班 part 这个代码组建。 今天我们用 unity 来做一个鲁班锁的交互教程。那首先我们来搭建一个三通的使用鲁班锁的模型,在这里我们用 unity 来打,不用建模软件,它用 unity 也比较快。 好,这里的话,我们把这个图放到旁边,我们在场景里面创建一个 cuba, 在 一个空场里面创建一个 cuba, 然后把这 cuba 挪动到零零点。 我们先做中间这一根,按住 ctrl 按一下, ctrl d 复制一个,挪动一下位置,那这里的挪动的话,可以使用这个增量键把它调成一米,一次挪动一米,按住 ctrl 挪动好,再挪挪动,当然也可以调整这个数值,我们再去挪动一下,大概五个,我们挪动五个 cube 的 这样的一个五个 cube, 然后横向移动复制一个,然后直接再这样手中再挪一下。 好,这样子我们中间的这一根就相当于做好了,然后我们再做旁边的几根,我们把这几个 cube 把右键打住,创建一个负对象,创建一个负对象之后,然后 game object 居中一下,让它居中到这个模型的中间, 我们再复制一个这是第一根,然后再复制一个 c control, 一, 复制一个,把它挪动到旁边,挪动到旁边之后,我们把中间的这个地方给它抠出来, 啊,这个地方删掉好,然后再复制一个 c control 移出来一个。好,这样子我们的三通鲁班锁的几个锁部件就已经做好了,我们给它拼装一下,它最终应该是锁成这个样子的, 我们把这个锁,我们把这个各个部件给它调整一下,让它锁在一起,我们把这个第一个部件归零, 然后第二个部件也归零,归零之后旋转一下九十度,再旋转一下九十度, 我们看一下。好,这样子,这个地方是锁上的,然后拿另一根也给它归零,归零之后在自己手上旋转九十度,然后再旋转九十度。 好,我们的这个锁看一下它有没有重合的位置。好,这样子,大概这样的锁是 ok 的。 好,那我们的这个三通鲁班锁的锁型是已经做好了,接下来去做交互部分是重点, 那我们现在在吸引场景里面这样子去挪动,你看这个模型是相互会穿帮的啊,是会直接穿模会透过去啊,是因为它不是用的物理引擎,那我们直接使用 uni 体内置的物理引擎就可以实现我们鲁班锁 a, 如果说这里有东西卡住的情况下,它会动不了。 好,接下来我们开始,我们在呃,我们选择这三个模型,然后添加 wrist body, 添加一个组建叫 wrist body content, 展开这个主键啊,那这里的是否使用重力去掉,然后这里有个 constance 锁住这些限制,打开把这些全部锁上 啊,不要去移动,不要移动 x, 不要移动 y, 不要移动 c, 也不要移动。旋转啊,如果这不勾上了旋转的话,它直接会翻来覆去,会翻来翻去。好,接下来我们写代码, 我们都把它锁上,锁上之后,现在的这几个物体都是动不了的,我们只有选择,比如说我们在选择这个物体啊,选中了这个物体之后才让它进行移动啊,其他物体都要让它锁住。好,那我们开始写简单的代码,叫鲁班 part tender, 然后我们把这个代码,我们把这个代码挂载到这三个 read body 上,打开代码编辑器, 我们需要实现的是啊,去点击它,让它进行一个移动。那这里我们直接用键盘的 w s, a d, 然后再加一个 q e 啊, w s 实现这个物体的前后移动,然后 a d 实现这个物体的左右移动。 q e 实现这个物体的上下啊,前后上下对,上下移动。 好,那这里开始写简单代码,我们调整一下摄像头的位置。 ok, 我 们挂载了这个模型之后啊,这些模型就可以,现在是有缸体,然后有碰撞体,它可以去用物理,用立体的物理引擎,那我们会打开这个代码。好, 我们定一个 private wrist body, my wrist body 啊,在 start 的 时候获取到啊,获取到这个物体身上的这个 wrist body, 主键 get component wrist body。 好,然后这里的话,我们要在 fix update, 不要在 update 里面去写,因为我们的物理引擎的话,在 fix update 里面的效果是比较好的。 void fix the update, 这里是增设键,这里是物理的增设键, 然后我们开始写减 w, s, a, d 这些键,因为这里的话,因为我们再加了 q e, 所以 我们直接就写 key code 就 好了啊。 if input 点 get key, keycode 点 w。 好, 如果是按 w 键就让这个物体往前移动,那我们就给这个物体添加力。 at force reach body at force 啊,然后方向是 vector 三点 forward 就是世界坐标轴的前啊,就是 w forward 就是 前,这个力往前,然后直接用 for small 的 点 velocity change, 直接就改变它的一个速度就好了。好,然后这里的有一个力的大小,我们定一个 public force 好 了,我们去默认一下一吧,等下如果数字不够再去调整啊,这个的话,因为如果力太大,移动的速度过快,我们的这个模型会穿出去,会快速的就卡能卡出去啊,就类似于我们的有一点点穿模的意思。那我们这里先定义一个力为一啊,呈上这个力。好,然后我们再写其他的几杆键,我们多复制几个, 我们这里比如说按 s 键,我们就往它的反方向,按 a 键啊,我们就用 right 的 反方向,那就是往左,然后我们还有一个 d 键 啊,就用 right, 就 限量的 right, 然后还有 q 键上下啊,还有 e 键啊, 好,这样子我们的简单代码就已经写好了,那这里的代码因为我们已经挂载到了这三个物体上。 好,那我们运行的时候,这三个物体只要我们按下对应的键,这三个物体会同一动,那接下来我们要实现的是我选择的物体才去动。好,比如说点的这个部件,点了这个部件我们才去动这个部件,其他部件不要去动它。好,我们接下来我们创建一个, 我们直接在这个代码里面去写吧,直接在鲁班 part。 好, 这边。好,我们定一个 private static, private static 静态的 restore current selected pocket part current selected part 啊,就是当前选中的物件。好,我们一开始因为这是静态的,所以全局就只存在这一份, 然后我们在这里再去添加一个,用简单的选择,用 icon click handler uni unity ui 的 一个点击事件, ui 点击,然后实现一下它的一个接口啊,它下面实现了这个接口,然后在点击这个部件的时候,我们把这个当前选择的部件等于 my rich body, 啊,不对啊,等于当前选择的对,等于 my rich body。 ok, 也就是点它的时候,它会把这个对象复制过来,复制过来之后我们需要更改它。刚才说了啊,那我们需要更改它身上的这个,身上的这个啊 constraint 更改它这个,那我们现在默认。哎,这些都锁上的,那我们选择它之后,我们把这个 position 这些给它关掉,让它可以移动。 好,选上了之后,我们就把当前的这个 part 点 constant, 让它等于 res body, constant 的, 我们只锁住它的旋转 rotation。 好, 那,呃,那我们点了这个之后,它已经改掉了,那我们点旁边的这个啊,点另外一个的时候,要把之前的这个啊,它的这个锁给它重新还原,那我们就需要判断一下,如果之前的这个不等于空, 我们就让之前的这个 constant 等于啊全部锁住 reso, 好, 这样子,哎,前面的锁住之后,然后设置到一个新的变量,自自己自己,然后把自己的旋转给它锁住。好,这样子我们简单代码就写好了, 我们运行开回到我们的 unity, 我 们在场景里面右键创建一个 event system, 然后在摄像头上面添加一个 recast physics。 recast 好, 添加完成之后啊,我们运行一下程序, 我们当前按 w, s, a, d 键是没有任何效果的,那我们现在点一下这个 q 板点,点完之后我们再去按 w, s, a, d 键,这个物体是已经是有被控制了。好,你看它已经被我们控制了。 好,然后我们我们去解锁一下,我们再点旁边这个。好,然后我们再去 w, s, a, d 键去移动它。 哎,这怎么解锁呢? 好,这样就结束了。 好,我们这样的基础解锁有了之后,我们先做一个简单的。好,我们把这些材质,我们先把这些 cube 都给上一个材质球,我们右键创建一个 material 材质球,把这个材质球给到我们场景里面所有的 cube, 搜索一下 cube 全选好,放上材质球,我们出示的颜色是红色。 好,我们假设选择,我们当前选择,我们回到我们的代码,点了这个物体之后,我们循环它底下的这个模型。 for each mesh render 啊,获取到它底下所有的 get components in children 所有的 mesh render, 把它身上的这个材质球的颜色 改成红色。好,然后之前的这个之前如果说取消选择之后,我们便利一下把它之前的这个颜色给它改成白色。我们回到我们的 unity, 我 们再次运行, 我们现在没有选择它这个部件都是白色,我们选择一个部件变成了红色,再选另一个,之前的变回白色,现在变回红色,我们再去解锁一下。 好,这样就都解锁了。 然后我们刚才这个移动,啊,会,我们看一下啊, 然后我们刚才的这个移动,我们按了之后,哎,它会滑动,对不对?那我们需要在它松手的时候让它停下来,我们回到我们的代码,这些所有的按键按下之后都会产生一个力,那只需要我们在这里加一个判断啊,如果 input 点 any key 等,等于 four, 等等于 force 啊,然后就给这个力点 velocity 等于零。好,只要没有任何的按键按下,我们就当前的速度让它等于零, 等 vector 三点 zero。 好, 我们看一下我们全部的代码,给大家看一下。一开始我们定义了一个 res body, 找到身上的 res body, 然后我们在 fix update 物理帧事件里面添加 w, s, a, d, q, e 的 这些键,让它产生各个方向六轴上的一个移动, 然后我们再添加我们的 i point click handler unit 的 event system 这个事件,点击 u i 啊,然后我们呃, 设置啊,这个先不看,我们设置当前选择的对象,让它的锁只锁它的 rotation, 不要让锁它的 position, 不要锁它的位置,然后把它的颜色改成红色。那如果说之前有选择的对象,我们就把它之前的这个锁给它全部锁住,让它不要动之前的锁,让它不要动,然后把它的颜色改回白色。 我们再回到 unity, 我 们看一下, 我们点击一个部件,我们上下移动。好,我们这样子就比较正常的移动,我们先按住这个键,它会移动,那我们松手,哎,它就会停。 好,这样就是正常的。我们把这几个对象打个组,创建一个副对象叫三通锁,把这个锁拖成预字体, 我们下次想用的时候直接拖出来用就可以了。好,我们用同样的方法搭建一个鲁班锁,六通啊,六通的鲁班锁也是有各个部件啊,六个部件组成,同样挂载了,我们同样去呃,添加了 resource body, 添加了鲁班 part 的 这个代码组建,我们运行看一下效果 好,直接就有六颗块的这个部件,我们去解锁一下。 好,这是一个、 两个、三个、四个、五个、六个,好,都全部结束 好,然后这个解锁的判断的话,大家可以自己去添加每个部件,比如说一定移出了一定的距离,移出了它原本的可能超过了几米的距离,也就代表这个部件已经被成功解除了,再去添加这个分数的判断就行了,这里后面呢,就不再做了。