Удаление объектов при нажатии
Добавлено: 24 май 2018, 14:30
На сцене имеется 3 объекта(1 родительский и два клона). Есть скрипт, который реализует удаление ближайшего объекта к заданной точке...ну, в идеале он должен удалять ближайший объект, но удаляет все три одновременно. Как исправить ? Функция, возвращающая ближайший объект работает исправно(проверял ).
Ниже функция возвращающая ближайший объект
Синтаксис:
Используется csharp
if (bBox._bClick) {
boxTarget = bBox.transform.position;
NearestFruit.transform.position += (boxTarget - NearestFruit.transform.position).normalized * fSpeed * Time.deltaTime;
}
else if (aBox._aClick) {
boxTarget = aBox.transform.position;
NearestFruit.transform.position += (boxTarget - NearestFruit.transform.position).normalized * fSpeed * Time.deltaTime;
}
else if (paBox._paClick) {
boxTarget = paBox.transform.position;
NearestFruit.transform.position += (boxTarget - NearestFruit.transform.position).normalized * fSpeed * Time.deltaTime;
}
if ((boxTarget - NearestFruit.transform.position).sqrMagnitude < 0.18f)
{
Destroy(gameObject);
}
}
boxTarget = bBox.transform.position;
NearestFruit.transform.position += (boxTarget - NearestFruit.transform.position).normalized * fSpeed * Time.deltaTime;
}
else if (aBox._aClick) {
boxTarget = aBox.transform.position;
NearestFruit.transform.position += (boxTarget - NearestFruit.transform.position).normalized * fSpeed * Time.deltaTime;
}
else if (paBox._paClick) {
boxTarget = paBox.transform.position;
NearestFruit.transform.position += (boxTarget - NearestFruit.transform.position).normalized * fSpeed * Time.deltaTime;
}
if ((boxTarget - NearestFruit.transform.position).sqrMagnitude < 0.18f)
{
Destroy(gameObject);
}
}
Ниже функция возвращающая ближайший объект
Синтаксис:
Используется csharp
GameObject GetNearestFruit(GameObject Source, GameObject[] DestObjects)
{
GameObject Nearest = DestObjects [0];
float ShorterDistance = Vector3.Distance (Source.transform.position, DestObjects[0].transform.position);
for (int i = 0; i < 3; i++) {
float Distance = Vector3.Distance (Source.transform.position, DestObjects[i].transform.position);
if (Distance < ShorterDistance) {
Nearest = DestObjects[i];
ShorterDistance = Distance;
}
}
return Nearest;
}
{
GameObject Nearest = DestObjects [0];
float ShorterDistance = Vector3.Distance (Source.transform.position, DestObjects[0].transform.position);
for (int i = 0; i < 3; i++) {
float Distance = Vector3.Distance (Source.transform.position, DestObjects[i].transform.position);
if (Distance < ShorterDistance) {
Nearest = DestObjects[i];
ShorterDistance = Distance;
}
}
return Nearest;
}