Sprites Leaves trace on screen!

Hi, I Have this weird problem with Android Build of my game on low spec phones,
Settings :

Feels like maybe your camera (or one of your cameras) isn’t set to clear fully to either background color or skybox?

What is in the scene if you press pause while playing and go look around? How about it if while paused you drag a cube in place and wiggle it in front of the Camera? Does that leave streaks?

1 Like

It’s only happening on android build and low spec phones, There is no problem in unity and windows build or mid/high spec phones, So I can’t do the test that you mention above. the camera clear flag set to Solid Color and I tested background color with full alpha also but no difference! Sorry I’m not good at English.

I Also tried it with default sprite lit shader and no post processing and problem still exists.

I found the Solution and the problem is the Noise (Basic Multi Channel Perlin) that I used for Simulating Shake feedback, without this feedback there is no problem and everything is run so smooth. I really appreciate if someone from cinemachine development team consider this bug ( if it’s a bug!) and help me with this. maybe I want to use this feedback in another game.

Shake script:

public class ShakeCinemachineFeedback : Feedback
    {
        [SerializeField]
        private CinemachineVirtualCamera cinemachineCamera;
        [SerializeField]
        [Range(0,5)]
        private float amplitude = 1, intensity = 1;
        [SerializeField]
        [Range(0,1)]
        private float duration = 0.1f;

        private CinemachineBasicMultiChannelPerlin noise;
     
        private void Awake()
        {
            if (cinemachineCamera == null)
                cinemachineCamera = FindObjectOfType<CinemachineVirtualCamera>();
            noise = cinemachineCamera.GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
        }
        public override void CompletePreviousFeedback()
        {
            StopAllCoroutines();
            noise.m_AmplitudeGain = 0;
        }

        public override void CreateFeedback()
        {
            noise.m_AmplitudeGain = amplitude;
            noise.m_FrequencyGain = intensity;
            StartCoroutine(ShakeCoroutine());
        }

        IEnumerator ShakeCoroutine()
        {
            for (float i = duration; i > 0; i-=Time.deltaTime)
            {
                noise.m_AmplitudeGain = Mathf.Lerp(0, amplitude, i / duration);
                yield return null;
            }
            noise.m_AmplitudeGain = 0;
        }
    }