C2:Unity3D制作智能家居设计软件——绘制户型(一)

目标:绘制如图所示户型       C2:Unity3D制作智能家居设计软件——绘制户型(一)_第1张图片

 

2D结果:如图所示绘制2D户型图,包含房间信息和各墙体   C2:Unity3D制作智能家居设计软件——绘制户型(一)_第2张图片

3D结果:一键生成如图所示3D房型,包含烘焙光照信息,场景渲染C2:Unity3D制作智能家居设计软件——绘制户型(一)_第3张图片

 

 

                                          实现过程 

          {由于实现的代码量过大,只提供主要实现思路给大家,有兴趣的小伙伴可以尝试自己动手写一写}

分析绘制户型三要素:墙体、墙与墙交点、由墙体包围成的封闭空间

一、墙体

      首先需要知道绘制墙体的方式,由鼠标点击拖拽绘制一条直线作为创建的墙体。一面墙由mesh动态创建得来(不熟悉unity创建mesh物体的小伙伴可以查询相关资料)包含两个关键点信息:一面墙体各个顶点、墙体方向。

C2:Unity3D制作智能家居设计软件——绘制户型(一)_第4张图片

        Unity的默认Cube为立方体,由6个面组成,顶面为矩形,由4条边、4个顶点组成。而我们创建的墙体则由6个面6个顶点组成。

Unity默认CubeC2:Unity3D制作智能家居设计软件——绘制户型(一)_第5张图片

创建的单面墙体C2:Unity3D制作智能家居设计软件——绘制户型(一)_第6张图片

 

二、墙与墙交点

    墙与墙交点在每一面相交墙的边中心点位置,即一面墙顶面六个顶点的0和3的顶点位置。

每一面墙有两个顶点,作为墙与其它墙的交点,两个顶点可以计算此面墙的方向,而墙体又有内外墙之分,这点我们后文提及。

首尾两点为鼠标点击时创建的起点和终点,为图中所示0和3对应位置。相信有小伙伴此时会有疑问了,长方体每个面都是矩形,为何多此一举顶面要创建6个顶点?答案如下图:

C2:Unity3D制作智能家居设计软件——绘制户型(一)_第7张图片

C2:Unity3D制作智能家居设计软件——绘制户型(一)_第8张图片

  是不是茅塞顿开?现在知道为何要顶面要分为6个顶点了吧。没错,为了墙体相交时能让多面墙“完美融合”到一起。

 

 

 

第一阶段就到这里,下一篇会解释如何绘制户型的封闭空间,欢迎小伙伴们留言讨论。

 

 

 

你可能感兴趣的:(C2:Unity3D制作智能家居设计软件——绘制户型(一))