Hey, looks great but I'm experiencing an issue. I attached a Screenshake script to my Main Camera, and when there is an explosion ingame I call my gamecontroller, which invokes Camera.current.Shake();
On 2/3 of the explosions it works, but sometimes it doesn't and I get the following error:
NullReferenceException: Object reference not set to an instance of an object ScreenshakeCameraExtentions.Shake (UnityEngine.Camera cam) (at Assets/Clavian/Screenshake/ScreenshakeCameraExtentions.cs:9) GameController.Explosion () (at Assets/Scripts/GameController.cs:51) DestroyByContact.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/DestroyByContact.cs:34)
← Return to tool
Comments
Log in with itch.io to leave a comment.
thanks
Hey,
looks great but I'm experiencing an issue. I attached a Screenshake script to my Main Camera, and when there is an explosion ingame I call my gamecontroller, which invokes Camera.current.Shake();
On 2/3 of the explosions it works, but sometimes it doesn't and I get the following error:
NullReferenceException: Object reference not set to an instance of an object
ScreenshakeCameraExtentions.Shake (UnityEngine.Camera cam) (at Assets/Clavian/Screenshake/ScreenshakeCameraExtentions.cs:9)
GameController.Explosion () (at Assets/Scripts/GameController.cs:51)
DestroyByContact.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/DestroyByContact.cs:34)
Line 9 of ScreenshakeCameraExtentions does this:
Screenshake shake = cam.transform.GetComponent<Screenshake>();
Any idea why it's failing to get the Screenshake component?
Hey!
Looked into it, and the problem seems to be that Camera.current is meant for low-level render control, only: https://docs.unity3d.com/ScriptReference/Camera-cu...
Instead of using Camera.current, try using Camera.main or a public Camera variable!
With Camera.main it works like a charm :D
Thanks for the hint and for the asset!