思路
框选难点在与如何知道在世界坐标系的可选择物体与用在屏幕上框选的方框的的位置的对比.
因此,可以选择将所有可选择物体的世界坐标转化为屏幕上的坐标,然后,再与屏幕上的方框的位置进行对比,既可以得出在方框内的所有物体了.
实现
首先,实现这个功能需要有三个步骤
步骤一:确定多选框的位置
确定多选框的位置实现比较简单,就是利用鼠标点下的时候记录矩形的开始坐标,在鼠标抬起的时候记录矩形的结束坐标
在Update()当中可以轻松实现
\
1 |
|
步骤二:框选框的实现
在Unity当中,在屏幕上的绘图可以利用OpenGL的函数来实现.
在OnPostRender()函数当中也可以很轻松的实现框框的绘制(由于只是对屏幕的绘制,因此比放在Update()当中更加适合)
\
1 |
|
步骤三:将可选择的物体与多选框进行位置上的对比
将可选择物体的屏幕坐标与框框的大小进行对比即可
\
1 |
|
从此就可以实现多选的效果了