答案 0 :(得分:1)
假设你有两个代表每个对象的GameObjects数组
objects = new GameObject[sizeX][sizeY];
然后你需要得到两个被点击对象的索引(不知道你想如何确定这个,你可以为每个对象制作一堆对撞机然后使用OnMouseDown和光线投射,或者Unity的内置检查是否对象是单击,或者根据鼠标位置和对象所在的硬编码值确定单击哪个对象。
获取两个单击对象的索引后,这两个索引之间的每个对象都是矩形的成员。问题是你不确定循环应该朝哪个方向运行(例如,你点击第一个对象然后第五个对象和该轴的循环变为++,但是如果你点击第5个然后第一个然后循环进入 - )。 / p>
我们确定这样的方向:
int indexX1;
int indexY1;
int indexX2;
int indexY2;
int dirX;
int dirY;
if(indexX1 > indexX2) dirX = 1; else dirX = -1;
if(indexY1 > indexY2) dirY = 1; else dirY = -1;
for(int i = indexX1; i * dirX < indexX2 * dirX; i+=dirX){
for(int j = indexY1; i * dirY < indexY2 * dirY; i+=dirY){
//your code goes here
}
}
dir的这个东西因为数学术语而起作用:
x&gt; ÿ
-x&lt; -y
例如
5&gt; 3 |
-5&lt; -3