我正在创建一个编辑器扩展,以轻松创建2D和3D级别。我可以使用箭头键移动发电机箱,并在num键上放置一个预制件。 问题是我想检查一下,如果预制件已经在那个位置,那么它将不允许另一个预制件在那里产生或删除新的预制件。
任何帮助都将不胜感激。
答案 0 :(得分:1)
我可以考虑两种可能的解决方案。 第一个是使用Physics.OverlapSphere。我在文档中报告了这个例子:
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void ExplosionDamage(Vector3 center, float radius) {
Collider[] hitColliders = Physics.OverlapSphere(center, radius);
int i = 0;
while (i < hitColliders.Length) {
hitColliders[i].SendMessage("AddDamage");
i++;
}
}
}
基本上,使用此方法,您检查占用给定区域的碰撞器数量(区域本身由中心和半径确定)。
另一个,更多&#34;基本&#34;解决方案是保持包含产生的数据结构(如地图)。信息(比如已经实例化的预制件的坐标):这样,如果预制件已在此处实例化,您可以直接从地图检查。
希望这有帮助!