Сообщение от Mr_F_
в 3д в юнити:
// Init
const float outOfLevelDist = 10;
const float tooCloseDist = 2;
float outOfLevelSqrDist = outOfLevelDist * outOfLevelDist;
float tooCloseSqrDist = tooCloseDist * tooCloseDist;
-----
// Update
float sqrDist = (birdPos - circlePos).sqrMagnitude;
if (sqrDist > outOfLevelSqrDist) улетели за пределы
if (sqrDist < tooCloseSqrDist) заехали в круг
Если круг находится в нуле, и считаем в 2д, то можно упростить до:
float sqrDist = birdPos.x*birdPos.x + birdPos.y*birdPos.y;
-----
по-твоему триггер будет работать быстрее 2х умножений и одного сложения в кадр?
|
Большое спасибо за толковый пример! Реально здорово узнать что-то новое... хотя и так все подносом - я просто не подумал о таком варианте решения задачи.
---
Я не утверждаю, что триггер будет работать быстрее - я просто спрашиваю)
На мой взгляд триггер более оптимален, тк он, в отличии от вычислений, не используется постоянно. Или я чего-то не понимаю? Поправьте пожалуйста...
Спасибо!