Unity3D制作智能家居设计软件——绘制户型

目标:绘制如图所示户型       

2D结果:如图所示绘制2D户型图,包含房间信息和各墙体   

3D结果:一键生成如图所示3D房型,包含烘焙光照信息,场景渲染

                                          实现过程 

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

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

一、墙体

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

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

Unity默认Cube

创建的单面墙体

二、墙与墙交点

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

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

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

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

三、封闭空间

   何为封闭空间?为何要形成封闭空间?如何形成封闭空间呢?我们带着问题来看实现过程。

此软件里所指的封闭空间为多面墙体围诚的闭合区域,此闭合区域可用于计算地板、天花板、室内面积、建筑面积等信息。

猜你喜欢

转载自blog.csdn.net/qq_25325511/article/details/83007184