setDistanceTrigger static method

dynamic setDistanceTrigger(
  1. dynamic object, {
  2. dynamic dist,
  3. dynamic ndist,
  4. dynamic edist,
  5. dynamic wdist,
  6. dynamic sdist,
  7. dynamic ignoreifhidden = true,
})

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);
  }
}