Example #1
0
 protected override void Awake() {
     base.Awake();
     _operatingEffectRenderer = UnityUtility.ValidateComponentPresence<LineRenderer>(gameObject);
     // No effects should initially show
     _operatingEffectRenderer.enabled = false;
     _initialBeamAnimationOffset = UnityEngine.Random.Range(0F, 5F);
     ValidateEffects();
     _beamEnd = TrackingWidgetFactory.Instance.MakeTrackableLocation(parent: gameObject);
     _beamEndListener = TrackingWidgetFactory.Instance.MakeInvisibleCameraLosChangedListener(_beamEnd, Layers.Cull_15);
 }
Example #2
0
    public void Launch(IElementAttackable target, AWeapon weapon) {
        PrepareForLaunch(target, weapon);
        D.Assert((Layers)gameObject.layer == Layers.TransparentFX, "{0} is not on Layer {1}.".Inject(Name, Layers.TransparentFX.GetValueName()));
        weapon.isOperationalChanged += WeaponIsOperationalChangedEventHandler;
        _operatingEffectRenderer.SetPosition(index: 0, position: Vector3.zero);  // start beam where ordnance located

        _beamEnd = TrackingWidgetFactory.Instance.MakeTrackableLocation(parent: gameObject);
        _beamEndListener = TrackingWidgetFactory.Instance.MakeInvisibleCameraLosChangedListener(_beamEnd, Layers.Cull_15);
        _beamEndListener.inCameraLosChanged += BeamEndInCameraLosChangedEventHandler;

        AssessShowMuzzleEffects();
        AssessShowOperatingEffects();
        enabled = true;
    }