Unity Bug Reporter
Asset Store link: https://www.assetstore.unity3d.com/#/content/9481
The Bug Reporter helps your game testers submit bug reports with valuable information for your developers.
Just drop the prefab into a scene and configure it through the Inspector. When the hotkey is pressed (F12 by default), the Bug Reporter will capture a screen shot, freeze time (using Time.timeScale) and pop up a dialog where the player/tester can enter a message.
The reporter also captures a full snapshot all game objects in the scene hierarchy, including their components and property values. For example: if your tester reports their gun shots no longer made a sound, you'll be able to tell whether the camera's audio listener had been muted, the gun's audio source volume was set to zero, the wrong audio clip was assigned, or the audio source was in the wrong place.
The report is then saved to disk, sent by e-mail and/or posted to a URL of your choice, and the player can continue from where they left off. We provide a free web service so even the Web Player can e-mail bug reports.
The Bug Reporter helps your game testers submit bug reports with valuable information for your developers.
Just drop the prefab into a scene and configure it through the Inspector. When the hotkey is pressed (F12 by default), the Bug Reporter will capture a screen shot, freeze time (using Time.timeScale) and pop up a dialog where the player/tester can enter a message.
The reporter also captures a full snapshot all game objects in the scene hierarchy, including their components and property values. For example: if your tester reports their gun shots no longer made a sound, you'll be able to tell whether the camera's audio listener had been muted, the gun's audio source volume was set to zero, the wrong audio clip was assigned, or the audio source was in the wrong place.
The report is then saved to disk, sent by e-mail and/or posted to a URL of your choice, and the player can continue from where they left off. We provide a free web service so even the Web Player can e-mail bug reports.
Options
Don't Destroy On Load: if checked, the Bug Reporter will persist between scenes, so you may only need to add it to your main menu scene to have it available everywhere.
Hotkey and modifiers: select any key the Input Manager defines, plus modifiers (ctrl, alt and/or shift), to trigger the bug reporter.
Freeze time: the bug reporter can freeze time by setting Time.timeScale to zero, and restoring it after the report is submitted.
Input fields: what information to request from the player. By default, it's just a name field, but you can specify separate fields for whatever information you would like, such as first/last name, e-mail address, phone number, bug severity, etc. Fields can be required, and can be free text or multiple choice.
Save To File: whether to save files locally. The player will be able to choose where to store the output files.
Post To Server/Output URL: whether and where to POST the reports. The request includes the following fields:
- report: the message entered by the player, plus all the extra input fields
- scene: the scene dump as a zipped text file
- screenshot: the screenshot as a PNG image
Sending e-mail: see below.
Dump null values: by default, the scene dump will leave out fields with null values. Should you want to include those as well, check this box.
Skin: a GUI skin used to draw the bug reporter window, so you can match it to the look and feel of your game.
Hotkey and modifiers: select any key the Input Manager defines, plus modifiers (ctrl, alt and/or shift), to trigger the bug reporter.
Freeze time: the bug reporter can freeze time by setting Time.timeScale to zero, and restoring it after the report is submitted.
Input fields: what information to request from the player. By default, it's just a name field, but you can specify separate fields for whatever information you would like, such as first/last name, e-mail address, phone number, bug severity, etc. Fields can be required, and can be free text or multiple choice.
Save To File: whether to save files locally. The player will be able to choose where to store the output files.
Post To Server/Output URL: whether and where to POST the reports. The request includes the following fields:
- report: the message entered by the player, plus all the extra input fields
- scene: the scene dump as a zipped text file
- screenshot: the screenshot as a PNG image
Sending e-mail: see below.
Dump null values: by default, the scene dump will leave out fields with null values. Should you want to include those as well, check this box.
Skin: a GUI skin used to draw the bug reporter window, so you can match it to the look and feel of your game.
Sending e-mail
You have several options for having bug reports mailed to you.
The web player can't send e-mail itself (System.Net.Mail isn't available in the runtime), so Wee Free Studio provides a free web based mailer service which works with all Unity builds. To use it, select the "Use hosted mailer" option, enter the e-mail address to send to, and leave the key set to the default. Should the service ever be abused to turn us into a spam relay, we'll have to generate a new key. Send us an e-mail if you'd like a dedicated key.
If you are using a standalone build, the bug reporter can send mail directly using SMTP. As a convenience, the default settings will use Wee Free Studio's SMTP server and a preconfigured account. You are welcome to use this account as much as you like, but should the account be compromised and used to send spam, we may have to shut it down. Contact us by e-mail if you'd like a dedicated account. Alternatively, you can just configure the reporter to use your own SMTP server.
The web player can't send e-mail itself (System.Net.Mail isn't available in the runtime), so Wee Free Studio provides a free web based mailer service which works with all Unity builds. To use it, select the "Use hosted mailer" option, enter the e-mail address to send to, and leave the key set to the default. Should the service ever be abused to turn us into a spam relay, we'll have to generate a new key. Send us an e-mail if you'd like a dedicated key.
If you are using a standalone build, the bug reporter can send mail directly using SMTP. As a convenience, the default settings will use Wee Free Studio's SMTP server and a preconfigured account. You are welcome to use this account as much as you like, but should the account be compromised and used to send spam, we may have to shut it down. Contact us by e-mail if you'd like a dedicated account. Alternatively, you can just configure the reporter to use your own SMTP server.
Scene dump
The scene dump traverses your scene's hierarchy and outputs, in text form, a tree of game objects, their components, and their component values, snapshotting the state of your scene at the moment the report was made. For example: if your tester reports their gun shots no longer made a sound, you'll be able to tell wether the camera's audio listener had been muted, the gun's volume was set to zero, or the audio source was in the wrong place.
For example, here's a piece of the dump for a test scene:
For example, here's a piece of the dump for a test scene:
Hierarchy ========= |--Ball |--Bug Reporter |--Directional light |--Plane | |--Cube |--Main Camera Detailed dump ============= |--Ball | |-- Ball (UnityEngine.Transform) | | position=(0.0, 2.8, 0.0) | | localPosition=(0.0, 2.8, 0.0) | | eulerAngles=(0.0, 0.0, 0.0) | | localEulerAngles=(0.0, 0.0, 0.0) | | right=(1.0, 0.0, 0.0) | | up=(0.0, 1.0, 0.0) | | forward=(0.0, 0.0, 1.0) | | rotation=(0.0, 0.0, 0.0, 1.0) | | localRotation=(0.0, 0.0, 0.0, 1.0) | | localScale=(1.0, 1.0, 1.0) | | worldToLocalMatrix=1.00000 0.00000 0.00000 0.00000 | | 0.00000 1.00000 0.00000 -2.79864 | | 0.00000 0.00000 1.00000 0.00000 | | 0.00000 0.00000 0.00000 1.00000 | | | | localToWorldMatrix=1.00000 0.00000 0.00000 0.00000 | | 0.00000 1.00000 0.00000 2.79864 | | 0.00000 0.00000 1.00000 0.00000 | | 0.00000 0.00000 0.00000 1.00000 | | | | root=Ball (UnityEngine.Transform) | | childCount=0 | | lossyScale=(1.0, 1.0, 1.0) | | hasChanged=True | | transform=Ball (UnityEngine.Transform) | | rigidbody=Ball (UnityEngine.Rigidbody) | | renderer=Ball (UnityEngine.MeshRenderer) | | collider=Ball (UnityEngine.SphereCollider) | | gameObject=Ball (UnityEngine.GameObject) | | active=True | | tag=Untagged | | name=Ball | | hideFlags=0 | |-- Ball (UnityEngine.Rigidbody) | | velocity=(0.0, -6.5, 0.0) | | angularVelocity=(0.0, 0.0, 0.0) | | drag=0 | | angularDrag=0.05 | | mass=1 | | useGravity=True | | isKinematic=False | | freezeRotation=False | | constraints=None | | ... . . . . . .
Meta bug reports and improvements
If you have any issues using the Bug Reporter, or if you have an idea of how it could be improved, let us know! You can contact us at [email protected].