コード例 #1
0
        /// <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();
            }
        }
コード例 #2
0
        /// <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();
        }