public void LaunchEffect(NodeAddedEvent evt, ShaftAimingWorkActivationReticleEffectNode weapon) { ShaftAimingReticleEffectComponent shaftAimingReticleEffect = weapon.shaftAimingReticleEffect; this.UpdateImageAlpha(0f, shaftAimingReticleEffect); shaftAimingReticleEffect.InstanceReticle.SetActive(true); shaftAimingReticleEffect.ReticleAnimator.SetFloat("Time", weapon.shaftEnergy.UnloadAimingEnergyPerSec); }
public void UpdateEffectAlpha(UpdateEvent evt, ShaftAimingWorkActivationReticleEffectNode weapon) { float a = weapon.shaftAimingWorkActivationState.ActivationTimer / weapon.shaftStateConfig.ActivationToWorkingTransitionTimeSec; this.UpdateImageAlpha(a, weapon.shaftAimingReticleEffect); Vector3 barrelOriginWorld = new MuzzleLogicAccessor(weapon.muzzlePoint, weapon.weaponInstance).GetBarrelOriginWorld(); float z = weapon.muzzlePoint.Current.transform.localPosition.z; Vector2 canvasSize = weapon.shaftAimingReticleEffect.CanvasSize; Vector2 vector5 = Camera.main.WorldToScreenPoint(barrelOriginWorld + (weapon.weaponInstance.WeaponInstance.transform.forward * z)); Vector2 vector6 = new Vector2((vector5.x / ((float)Screen.width)) * canvasSize.x, (vector5.y / ((float)Screen.height)) * canvasSize.y); weapon.shaftAimingReticleEffect.DynamicReticle.localPosition = (Vector3)(vector6 - (canvasSize / 2f)); }