setDistanceTrigger static method
dynamic
setDistanceTrigger(
- dynamic object, {
- dynamic dist,
- dynamic ndist,
- dynamic edist,
- dynamic wdist,
- dynamic sdist,
Set a distance trigger of object.
If camera goes within the square specified by dist or the rectangle specified by ndist, sdist, edist and wdist
then sets off trigger. If camera was also in the trigger distance and moves out also triggers
ignoreifhidden means even if the object is invisible the trigger still operates
Implementation
static setDistanceTrigger(object,
{dist, ndist, edist, wdist, sdist, ignoreifhidden: true}) {
if (_triggers.contains(object)) {
// If already have distance trigger than just change it
if (dist != null) {
object.extra['trigger'].ndist = dist.toDouble();
object.extra['trigger'].sdist = dist.toDouble();
object.extra['trigger'].edist = dist.toDouble();
object.extra['trigger'].wdist = dist.toDouble();
} else {
object.extra['trigger'].ndist = ndist.toDouble();
object.extra['trigger'].sdist = sdist.toDouble();
object.extra['trigger'].edist = edist.toDouble();
object.extra['trigger'].wdist = wdist.toDouble();
}
object.extra['trigger'].ignoreifhidden=ignoreifhidden;
} else {
// disableDistanceTrigger(object);
if (dist != null)
object.extra['trigger'] = DistanceTrigger(
dist.toDouble(), dist.toDouble(), dist.toDouble(), dist.toDouble(),
ignoreifhidden: ignoreifhidden);
else {
print(
"ndist" + ndist.toString() + " edist" + edist.toString() +
" sdist" +
sdist.toString() + " wdist" + wdist.toString());
object.extra['trigger'] = DistanceTrigger(
ndist, edist, sdist, wdist, ignoreifhidden: ignoreifhidden);
}
_triggers.add(object);
}
}