/// <summary> /// Sets the trigger effector max distance /// </summary> /// <param name="radius">Radius that should be set to the effector</param> public void SetRadius(float radius) { ScenarioManager.Instance.IsScenarioDirty = true; editedEffector.PointRadius = radius; var zoneGameObject = editedTrigger.GetEffectorObject(editedEffector, zoneVisualization.name); zoneGameObject.transform.localScale = Vector3.one * editedEffector.PointRadius; var zone = zoneGameObject.GetComponent <WaitingPointZone>(); if (zone != null) { zone.Refresh(); } }
/// <inheritdoc/> public override void EffectorAddedToTrigger(ScenarioTrigger trigger, TriggerEffector effector) { if (!(effector is WaitingPointEffector waitingPointEffector)) { throw new ArgumentException( $"{GetType().Name} received effector of invalid type {effector.GetType().Name}."); } var zone = trigger.GetEffectorObject(effector, zoneVisualization.name); if (zone != null) { return; } zone = trigger.AddEffectorObject(effector, zoneVisualization.name, zoneVisualization); zone.transform.position = waitingPointEffector.ActivatorPoint; zone.transform.localScale = Vector3.one * waitingPointEffector.PointRadius; zone.gameObject.SetActive(true); var zoneComponent = zone.GetComponent <WaitingPointZone>(); zoneComponent.Refresh(); }