C2:Unity3D制作智能家居设计软件——绘制户型(一)
·
目标:绘制如图所示户型 
2D结果:如图所示绘制2D户型图,包含房间信息和各墙体 
3D结果:一键生成如图所示3D房型,包含烘焙光照信息,场景渲染
实现过程
{由于实现的代码量过大,只提供主要实现思路给大家,有兴趣的小伙伴可以尝试自己动手写一写}
分析绘制户型三要素:墙体、墙与墙交点、由墙体包围成的封闭空间
一、墙体
首先需要知道绘制墙体的方式,由鼠标点击拖拽绘制一条直线作为创建的墙体。一面墙由mesh动态创建得来(不熟悉unity创建mesh物体的小伙伴可以查询相关资料)包含两个关键点信息:一面墙体各个顶点、墙体方向。

Unity的默认Cube为立方体,由6个面组成,顶面为矩形,由4条边、4个顶点组成。而我们创建的墙体则由6个面6个顶点组成。
Unity默认Cube
创建的单面墙体
二、墙与墙交点
墙与墙交点在每一面相交墙的边中心点位置,即一面墙顶面六个顶点的0和3的顶点位置。
每一面墙有两个顶点,作为墙与其它墙的交点,两个顶点可以计算此面墙的方向,而墙体又有内外墙之分,这点我们后文提及。
首尾两点为鼠标点击时创建的起点和终点,为图中所示0和3对应位置。相信有小伙伴此时会有疑问了,长方体每个面都是矩形,为何多此一举顶面要创建6个顶点?答案如下图:


是不是茅塞顿开?现在知道为何要顶面要分为6个顶点了吧。没错,为了墙体相交时能让多面墙“完美融合”到一起。
第一阶段就到这里,下一篇会解释如何绘制户型的封闭空间,欢迎小伙伴们留言讨论。
更多推荐
所有评论(0)