Search Unity

Question Audio cracking/popping (regardless of everything..)

Discussion in 'Audio & Video' started by valentin56610, Mar 10, 2023.

  1. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    Hello there

    Can anyone explain the popping/cracking sounds we can here every 2 gunshots?
    I recorded the issue and uploaded it on youtube:


    I managed to find something that influences those cracks: testing audio clips separately.
    I can say with 100% certainty the issue is coming from some of the audioclips I'm using.

    Not all my audio clips have the same sample rate, I have some 44,100Hz up to 96,000Hz

    However, sample rate alone isn't the reason why this is happening since one of the working audioclips has the same sample rate as another audioclip that creates a crack...

    OK, now I think I'm onto something, some of my audio clips have a single channel, others have 2. Audioclips with a single channel do not create any cracking/popping, ones with 2 do.

    So, I guess my question is, why is this happening? What is the actual underlying issue?
     

    Attached Files:

    consoni likes this.
  2. SeventhString

    SeventhString

    Unity Technologies

    Joined:
    Jan 12, 2023
    Posts:
    410
    What is the audio profiler telling you? Maybe it could help highlighting a commonality between all the crackling sounds. Also what is the format of these sounds (wav, ogg, mp3, etc..)?
    Lastly, and this is just a sanity check here, are you sure the clips on their own do not include the crackling sound?
     
  3. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    I have not checked the audio profiler yet, however, I know for a fact that if I disable the low pass filters that are on all of my audiosource objects, the cracking disappears...

    All files are in .WAV

    Yes, I am sure they do not include any cracking
    Cracking (as shown in the video) really sounds like a distortion/artefact of some sort and isn't part of the base file

    Would you be interested in seeing screenshots of the audio profiler?
     
  4. adamgolden

    adamgolden

    Joined:
    Jun 17, 2019
    Posts:
    1,555
    I was having issues like this recently when clicking Play in the inspector preview of audio clips. The solution in my case turned out to be changing Project Settings->Audio->DSP Buffer Size from Best Latency (which I had previously set it to myself - I don't believe it's the default) to Good Latency.
     
  5. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    I tried tweaking this but none of the settings I could choose from made those sounds go away, unfortunately :(

    I did a fair bit of reading before posting but none of the fixes worked for me and I couldn't be sure it was the same issue since they didn't post a video of the issue
     
  6. adamgolden

    adamgolden

    Joined:
    Jun 17, 2019
    Posts:
    1,555
    Another thing you could try is regenerating/re-exporting the audio clips (particularly if you're importing audio from various formats and sources), either through a batch process if you have one or for example open one in an audio editor like Audacity, create a new clip, copy/paste from the old into the new, then export fresh clip in whatever consistent format/rate/etc you want to use. Of course, doing one by one isn't ideal, but you could do just the ones you're using for testing to see if that helps and confirm there's no issue with data corruption or bad info in file headers.
     
  7. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    I'll test re exporting them first (just a couple to start with)
     
  8. halley

    halley

    Joined:
    Aug 26, 2013
    Posts:
    2,433
    Definitely zoom in with Audacity and look at the beginning and end samples, they should be right at 0. Whenever I have had popping in non-Unity projects, I have found that whatever sampling/resampling algorithms I was using had big issues with sounds starting away from 0 phase.
     
  9. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    Ok, will look at that

    I have (after reading other posts) tried to first set the volume to 0, disable the low pass filter, then destroy the object
    Also do that in a coroutine and waiting for 1s before playing the sound and another second before destroying the object, didn't help
     
  10. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    That would be one of the file I use that has the issue:
    I'm pretty sure it's on 0 at the end and beginning
     

    Attached Files:

  11. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    Here's my sound object setup:

    I basically spawn this at the position of where the player is shooting (end of the gun's barrel)

    Then when the sound finished playing (based on clip.length) I delete the object altogether

    As I said, I tried waiting some time AFTER it finished playing, I tried setting the volume to 0 after it played, I tried disabling the high pass and low pass after it played but it didn't have any impact

    Weirdest part is it isn't even happening every time, it's really like 1 out of 2 times...

    When the sound pops my camera is usually around 1000meters from the audio source
     

    Attached Files:

  12. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    I have just tried to re export to different formats (ogg, wav...)
    I have tried to merged the channels (stereo -> mono)
    Nothing helped at all, still getting the audio glitch :(

    I just disabled the LowPassFilter component and it works just fine without it... No popping... Anyone can explain why the low pass filter creates some noise that isn't part of the base clip..?
     
  13. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    If I am adjusting my low pass filter curve on the audio source, I am not getting any popping anymore
    It seems to happen only when the value on the low pass filter is very low ( < 0.1 or around that value)
     

    Attached Files:

  14. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    Alright, so if I manually set the cutOff value it's all good... When using the Curve function that's when things start to get weird

    So, I guess I'll just manually create my curves using the AnimationCurve, and do curve.Evaluate() and get the value from there then manually set it for the low pass filter...
     
  15. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    Alright well I was wrong, even doing that doesn't make the glitch go away, popping still here and strong

    So, how do you guys get realistic sound without using any of the filters since they're clearly broken... ?
    How do you actually muffle sound over distance?
     
  16. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    As incredible as this might be, as long as I am above 5000Hz for the cutoff frequency, all is fine, but if I go under this value, it starts popping all around

    This is not because of my clips. There is something fundamentally wrong about how the Low Pass Filter works...
     
  17. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    With what info should the audio profiler provide me with?
    I already know it's the low pass filter that is causing the issue
     

    Attached Files:

    consoni likes this.
  18. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    Alright well I've tried to adjust the lowpass filter across 5 frames and that's still producing a crack sound

    Snippet of the code I used, part of a Coroutine on the object that has the audiosource:
    Code (CSharp):
    1.          
    2. _audioSource.Play();
    3.  
    4. if (_lowPassFilter.enabled)
    5. {
    6.      float startCutOff = 22000f;
    7.      float targetCutOff = _lowPassCurve.Evaluate(_distanceToCamera) * 22000f;
    8.  
    9.      for (float i = 0; i < 5; i++)
    10.      {
    11.           _lowPassFilter.cutoffFrequency = Mathf.Lerp(startCutOff, targetCutOff, i / 5f);
    12.  
    13.           yield return new WaitForEndOfFrame();
    14.      }
    15. }
    16.  
    I'm done with this, Low Pass Filter is broken beyond reason
     
    Last edited: Mar 11, 2023
  19. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    HUGE UPDATE AND SOLVED

    Please, someone give this post some attention, this is a very VERY weird case

    I FINALLY found out why the popping was happening

    The reason why this is happening is.... RIGID BODIES.
    I know right?? How WEIRD

    I have created a dummy soldier where I spawn my audiosource and run my code where the LowPassFilter gets assigned its curve and the volume gets its custom curve set up as well and then finally, plays the sound

    Now, this dummy doesn't have any rigidbody, and all sounds are clear, without a single cracking/popping
    I can play hundreds of sounds without a single audio glitch

    Now hear me out, I add a rigidbody to my dummy.... Now I try again to play the sound... HAHA! Cracking and popping all over the place!

    Know what's even funnier? The rigidbody isn't even MOVING, it's velocity is literally ZERO

    Video as proof:


    Now, I demand an EXPLANATION
     
    patricktew likes this.
  20. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    Full code (with dependencies on other classes, sorry):

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class SoundEmitterGO : MonoBehaviour
    5. {
    6.     [Header("Setup")]
    7.     [SerializeField] AudioSource _audioSource;
    8.  
    9.     [SerializeField] AnimationCurve _highPassCurve;
    10.     [SerializeField] AnimationCurve _pitchCurve;
    11.  
    12.     [SerializeField] AudioLowPassFilter _lowPassFilter;
    13.     [SerializeField] AudioHighPassFilter _highPassFilter;
    14.  
    15.     [Header("DEBUG / INFOS")]
    16.     [SerializeField] float _distanceToCamera;
    17.     [SerializeField] bool _destroyComponentAfterSoundPlays;
    18.     [SerializeField] bool _usePitchCurve;
    19.     [SerializeField] float _pitch = 1f;
    20.  
    21.     /// <summary>
    22.     /// Starts the coroutine to play the sound delayed by distance to camera. Make sure you run the Setup() function before playing any sound.
    23.     /// </summary>
    24.     public void Play()
    25.     {
    26.         StartCoroutine(CR_PlaySound());
    27.     }
    28.  
    29.     /// <summary>
    30.     /// Will remove / set to null the outputAudioMixerGroup of this audiosource component
    31.     /// </summary>
    32.     public void DisableAudioMixer()
    33.     {
    34.         _audioSource.outputAudioMixerGroup = null;
    35.     }
    36.  
    37.     /// <summary>
    38.     /// Sets the audiosource min and max heard distance
    39.     /// </summary>
    40.     /// <param name="p_minDistance"></param>
    41.     /// <param name="p_maxDistance"></param>
    42.     public void Setup(AudioClip p_audioClip, SoundTypes p_soundType, Weapon p_weapon, bool p_destroyAfterSoundPlays)
    43.     {
    44.         _destroyComponentAfterSoundPlays = p_destroyAfterSoundPlays;
    45.  
    46.         _audioSource.clip = p_audioClip;
    47.  
    48.         CustomAudioSourceCurve customAudioSourceCurve = CustomAudioSourceCurve.NONE;
    49.  
    50.         switch (p_soundType)
    51.         {
    52.             case SoundTypes.GEAR_RATTLE:
    53.                 _audioSource.minDistance = 1.5f;
    54.                 _audioSource.maxDistance = 50f;
    55.                 _lowPassFilter.enabled = false;
    56.                 break;
    57.  
    58.             case SoundTypes.PARACHUTE_INTERACTION:
    59.                 _audioSource.minDistance = 3f;
    60.                 _audioSource.maxDistance = 50f;
    61.                 _lowPassFilter.enabled = false;
    62.                 break;
    63.  
    64.             case SoundTypes.WEAPON_RELOAD:
    65.                 _audioSource.minDistance = 1.5f;
    66.                 _audioSource.maxDistance = 50f;
    67.                 _lowPassFilter.enabled = false;
    68.                 break;
    69.  
    70.             case SoundTypes.DRY_FIRE:
    71.                 _audioSource.minDistance = 1.5f;
    72.                 _audioSource.maxDistance = 50f;
    73.                 _lowPassFilter.enabled = false;
    74.                 break;
    75.  
    76.             case SoundTypes.MELEE:
    77.                 _audioSource.minDistance = 3f;
    78.                 _audioSource.maxDistance = 15f;
    79.                 _lowPassFilter.enabled = false;
    80.                 break;
    81.  
    82.             case SoundTypes.HIT:
    83.                 _audioSource.minDistance = 1f;
    84.                 _audioSource.maxDistance = 75f;
    85.                 _lowPassFilter.enabled = false;
    86.                 break;
    87.  
    88.             case SoundTypes.BARBED_WIRE:
    89.                 _audioSource.minDistance = 1.5f;
    90.                 _audioSource.maxDistance = 50f;
    91.                 _lowPassFilter.enabled = false;
    92.                 break;
    93.  
    94.             case SoundTypes.GRENADE_COLLISION:
    95.                 _audioSource.minDistance = 1.5f;
    96.                 _audioSource.maxDistance = 75f;
    97.                 _lowPassFilter.enabled = false;
    98.                 break;
    99.  
    100.             case SoundTypes.HIT_FLESH:
    101.                 customAudioSourceCurve = CustomAudioSourceCurve.HIT_FLESH;
    102.                 _audioSource.minDistance = 1f;
    103.                 _audioSource.maxDistance = 75f;
    104.                 _lowPassFilter.enabled = false;
    105.                 break;
    106.  
    107.             case SoundTypes.MORTAR_WHISTLE:
    108.                 _audioSource.minDistance = 10f;
    109.                 _audioSource.maxDistance = 650f;
    110.                 break;
    111.  
    112.             case SoundTypes.VEHICLE_EXPLOSION:
    113.                 _audioSource.minDistance = 5f;
    114.                 _audioSource.maxDistance = 300f;
    115.                 break;
    116.  
    117.             case SoundTypes.EXPLOSION:
    118.                 if (p_weapon.Type == WeaponType.GRENADE)
    119.                 {
    120.                     _audioSource.minDistance = 1.5f;
    121.                     _audioSource.maxDistance = 400f;
    122.                 }
    123.                 else if (p_weapon.Type == WeaponType.MORTAR)
    124.                 {
    125.                     _audioSource.minDistance = 3f;
    126.                     _audioSource.maxDistance = 850f;
    127.                 }
    128.                 else
    129.                 {
    130.                     _usePitchCurve = true;
    131.                     customAudioSourceCurve = CustomAudioSourceCurve.EXPLOSION;
    132.                     _audioSource.minDistance = 10f;
    133.                     _audioSource.maxDistance = 2000f;
    134.                 }
    135.                 break;
    136.  
    137.             case SoundTypes.SHOOT:
    138.                 if (p_weapon.Type == WeaponType.GUN)
    139.                 {
    140.                     customAudioSourceCurve = CustomAudioSourceCurve.GUN;
    141.                     _audioSource.minDistance = 3f;
    142.                     _audioSource.maxDistance = 1500f;
    143.                 }
    144.                 else if (p_weapon.Type == WeaponType.HIGH_CALIBER_MG)
    145.                 {
    146.                     _usePitchCurve = true;
    147.                     customAudioSourceCurve = CustomAudioSourceCurve.HIGH_CALIBER;
    148.                     _audioSource.minDistance = 1.3f;
    149.                     _audioSource.maxDistance = 1500f;
    150.                 }
    151.                 else if (p_weapon.Type == WeaponType.SMALL_ARM)
    152.                 {
    153.                     _usePitchCurve = true;
    154.                     _highPassFilter.enabled = true;
    155.                     customAudioSourceCurve = CustomAudioSourceCurve.SMALL_ARM;
    156.                     _audioSource.minDistance = 1.3f;
    157.                     _audioSource.maxDistance = 1500f;
    158.                 }
    159.                 else if (p_weapon.Type == WeaponType.ROCKET)
    160.                 {
    161.                     customAudioSourceCurve = CustomAudioSourceCurve.ROCKET;
    162.                     _audioSource.minDistance = 5f;
    163.                     _audioSource.maxDistance = 2000f;
    164.                 }
    165.                 else if (p_weapon.Type == WeaponType.ROCKET_LAUNCHER)
    166.                 {
    167.                     _lowPassFilter.enabled = false;
    168.                     customAudioSourceCurve = CustomAudioSourceCurve.ROCKET_LAUNCHER;
    169.                     _audioSource.minDistance = 1f;
    170.                     _audioSource.maxDistance = 100f;
    171.                 }
    172.                 break;
    173.         }
    174.  
    175.         SetCurves(customAudioSourceCurve);
    176.     }
    177.  
    178.     void SetCurves(CustomAudioSourceCurve p_shotWeaponType)
    179.     {
    180.         _audioSource.rolloffMode = AudioRolloffMode.Custom;
    181.  
    182.         // Setting up High Pass filter
    183.         if (_highPassFilter.enabled)
    184.         {
    185.             _highPassCurve.keys = null;
    186.             _highPassCurve.AddKey(300f, 10f);
    187.             _highPassCurve.AddKey(_audioSource.maxDistance, 2000f);
    188.         }
    189.  
    190.         if (_lowPassFilter.enabled)
    191.         {
    192.             AnimationCurve curve = new AnimationCurve();
    193.             curve.AddKey(_audioSource.minDistance, 1f);
    194.  
    195.             if (p_shotWeaponType == CustomAudioSourceCurve.SMALL_ARM || p_shotWeaponType == CustomAudioSourceCurve.HIGH_CALIBER)
    196.             {
    197.                 curve.AddKey(_audioSource.maxDistance / 10.7f, 0.35f);
    198.                 curve.AddKey(_audioSource.maxDistance / 7.3f, 0.2f);
    199.                 curve.AddKey(_audioSource.maxDistance / 5.15f, 0.11f);
    200.                 curve.AddKey(_audioSource.maxDistance / 3.7f, 0.08f);
    201.                 curve.AddKey(_audioSource.maxDistance / 1.5f, 0.04f);
    202.                 curve.AddKey(_audioSource.maxDistance, 0.02f);
    203.             }
    204.             else
    205.             {
    206.                 curve.AddKey(_audioSource.maxDistance / 10f, 0.35f);
    207.                 curve.AddKey(_audioSource.maxDistance / 4.5f, 0.16f);
    208.                 curve.AddKey(_audioSource.maxDistance / 2f, 0.04f);
    209.                 curve.AddKey(_audioSource.maxDistance / 1.5f, 0.02f);
    210.                 curve.AddKey(_audioSource.maxDistance, 0f);
    211.             }
    212.  
    213.             _lowPassFilter.customCutoffCurve = curve;
    214.         }
    215.  
    216.         AnimationCurve audioSourceCurve = new AnimationCurve();
    217.         audioSourceCurve.AddKey(_audioSource.minDistance, 1f);
    218.  
    219.         switch (p_shotWeaponType)
    220.         {
    221.             case CustomAudioSourceCurve.HIT_FLESH:
    222.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 10f, 0.5f);
    223.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 3, 0.1f);
    224.                 break;
    225.  
    226.             case CustomAudioSourceCurve.SMALL_ARM:
    227.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 100f, 0.5f);
    228.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 50f, 0.35f);
    229.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 19f, 0.19245f);
    230.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 8.5f, 0.1f);
    231.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 3f, 0.05f);
    232.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 2f, 0.04f);
    233.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 1.5f, 0.03f);
    234.                 audioSourceCurve.AddKey(_audioSource.maxDistance, 0);
    235.                 break;
    236.  
    237.             case CustomAudioSourceCurve.HIGH_CALIBER:
    238.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 100f, 0.5f);
    239.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 50f, 0.35f);
    240.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 19f, 0.19245f);
    241.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 8.5f, 0.1f);
    242.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 3f, 0.05f);
    243.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 2f, 0.04f);
    244.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 1.5f, 0.03f);
    245.                 break;
    246.  
    247.             case CustomAudioSourceCurve.GUN:
    248.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 40f, 0.6f);
    249.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 20f, 0.3f);
    250.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 6.3f, 0.1f);
    251.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 3f, 0.045f);
    252.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 1.33f, 0.025f);
    253.                 break;
    254.  
    255.             case CustomAudioSourceCurve.ROCKET:
    256.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 40f, 0.6f);
    257.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 20f, 0.3f);
    258.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 6.3f, 0.1f);
    259.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 3f, 0.045f);
    260.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 1.33f, 0.025f);
    261.                 break;
    262.  
    263.             case CustomAudioSourceCurve.ROCKET_LAUNCHER:
    264.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 10f, 0.35f);
    265.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 4f, 0.1f);
    266.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 3f, 0.05f);
    267.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 1.5f, 0.015f);
    268.                 break;
    269.  
    270.             case CustomAudioSourceCurve.EXPLOSION:
    271.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 16f, 0.5f);
    272.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 5f, 0.15f);
    273.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 2.85f, 0.05f);
    274.                 break;
    275.  
    276.             default:
    277.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 30f, 0.5f);
    278.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 10f, 0.15f);
    279.                 audioSourceCurve.AddKey(_audioSource.maxDistance / 5f, 0.1f);
    280.                 break;
    281.         }
    282.  
    283.         audioSourceCurve.AddKey(_audioSource.maxDistance, 0f);
    284.  
    285.         _audioSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, audioSourceCurve);
    286.     }
    287.  
    288.     /// <summary>
    289.     /// Delays the play of the sound by the time it would take the sound to reach the camera
    290.     /// </summary>
    291.     /// <param name="p_audioClip"></param>
    292.     /// <returns></returns>
    293.     IEnumerator CR_PlaySound()
    294.     {
    295.         _distanceToCamera = Vector3.Distance(this.transform.position, CameraGO.instance.transform.position);
    296.  
    297.         yield return new WaitForSeconds(_distanceToCamera / StaticClass.SPEED_OF_SOUND);
    298.  
    299.         if (_distanceToCamera <= _audioSource.maxDistance)
    300.         {
    301.             if (_distanceToCamera <= _audioSource.minDistance) _lowPassFilter.enabled = false; // Unity bug, even if within minimum distance and max low pass value, sound gets cropped somehow...
    302.             if (_highPassFilter.enabled) _highPassFilter.cutoffFrequency = _highPassCurve.Evaluate(_distanceToCamera);
    303.             if (_usePitchCurve) _pitch = _pitchCurve.Evaluate(_distanceToCamera / _audioSource.maxDistance);
    304.  
    305.             _audioSource.pitch = _pitch;
    306.  
    307.             _audioSource.Play();
    308.         }
    309.  
    310.         if (_destroyComponentAfterSoundPlays) Destroy(this.gameObject, _audioSource.clip.length);
    311.     }
    312. }
     
    patricktew and consoni like this.
  21. patricktew

    patricktew

    Joined:
    Jul 20, 2022
    Posts:
    2
    Very interesting! Hate bugs like this, I hope they sort it out
     
    valentin56610 likes this.
  22. SeventhString

    SeventhString

    Unity Technologies

    Joined:
    Jan 12, 2023
    Posts:
    410
    Please submit a bug report for this! I couldn't reproduce here on my end.
    Thanks!
     
  23. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    Could honestly have been fixed somehow since I opened this thread, I am now running Unity 2022.3.5f1
    The bug was happening in 2021.3.X
     
  24. SeventhString

    SeventhString

    Unity Technologies

    Joined:
    Jan 12, 2023
    Posts:
    410
    Forum threads are not triggering any issue creation. To work on an problem (and raise its priority!) the best is to have a user bug report. Then it will make it's way through the grinder and eventually, officially get to our desk where we make a fix on the latest version and then backport the fix on LTS versions.

    I wish we could just fix everything on good will, but we have so many bugs to investigate that we need a strict process... and bug reports with repro projects are soooo helpful to accelerate resolution!!
     
    valentin56610 likes this.
  25. valentin56610

    valentin56610

    Joined:
    Jan 22, 2019
    Posts:
    156
    I totally understand! That's what I ask my players as well when they find bugs :)
    So, don't worry, I know what it is ;)

    My previous reply meant something more in the lines of: I did not have time to test this again, could have been fixed, or could not, I don't know (since I have since then updated Unity)
    I'd need to test this again, but I've moved on to other things now...
     
    mcroswell and SeventhString like this.