Skip to content

Commit 8cdc3b1

Browse files
authored
feat: User Feedback (#2220)
1 parent f770e6c commit 8cdc3b1

20 files changed

+3649
-170
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
## Unreleased
44

5+
### Features
6+
7+
- The SDK now comes with a `SentryUserFeedback` prefab ready to be used. You can drag and drop it into your scene or
8+
customize it by creating your own variant. The user feedback feature allows your users to provide feedback in form
9+
of a written message that can optionally have a screenshot attached. Read more about it ([here](https://docs.sentry.io/product/user-feedback/)). ([#2220](https://github.com/getsentry/sentry-unity/pull/2220))
10+
511
### Dependencies
612

713
- Bump Java SDK from v8.14.0 to v8.16.0 ([#2218](https://github.com/getsentry/sentry-unity/pull/2218), [#2223](https://github.com/getsentry/sentry-unity/pull/2223))
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using UnityEngine;
2+
using UnityEditor;
3+
4+
namespace Sentry.Unity
5+
{
6+
[CustomEditor(typeof(SentryUserFeedback))]
7+
public class SentryUserFeedbackEditor : UnityEditor.Editor
8+
{
9+
private SerializedProperty _openFeedbackButton;
10+
private SerializedProperty _feedbackForm;
11+
private SerializedProperty _sendFeedbackButton;
12+
private SerializedProperty _name;
13+
private SerializedProperty _email;
14+
private SerializedProperty _description;
15+
private SerializedProperty _addScreenshot;
16+
17+
private void OnEnable()
18+
{
19+
_feedbackForm = serializedObject.FindProperty("_feedbackForm");
20+
21+
_openFeedbackButton = serializedObject.FindProperty("_openFeedbackButton");
22+
_sendFeedbackButton = serializedObject.FindProperty("_sendFeedbackButton");
23+
24+
_name = serializedObject.FindProperty("_name");
25+
_email = serializedObject.FindProperty("_email");
26+
_description = serializedObject.FindProperty("_description");
27+
_addScreenshot = serializedObject.FindProperty("_addScreenshot");
28+
}
29+
30+
public override void OnInspectorGUI()
31+
{
32+
serializedObject.Update();
33+
34+
EditorGUILayout.LabelField("Form", EditorStyles.boldLabel);
35+
36+
DrawPropertyField(_feedbackForm, "Feedback Form", true);
37+
38+
EditorGUILayout.Space();
39+
40+
EditorGUILayout.LabelField("Buttons", EditorStyles.boldLabel);
41+
42+
DrawPropertyField(_openFeedbackButton, "Open Feedback Form Button", true);
43+
DrawPropertyField(_sendFeedbackButton, "Send Feedback Button", true);
44+
45+
EditorGUILayout.Space();
46+
47+
EditorGUILayout.LabelField("Input Fields", EditorStyles.boldLabel);
48+
49+
DrawPropertyField(_name, "Name Input Field", false);
50+
DrawPropertyField(_email, "Email Input Field", false);
51+
DrawPropertyField(_description, "Description Input Field", true);
52+
DrawPropertyField(_addScreenshot, "Add Screenshot Toggle", false);
53+
54+
serializedObject.ApplyModifiedProperties();
55+
}
56+
57+
private static void DrawPropertyField(SerializedProperty property, string displayName, bool isRequired)
58+
{
59+
if (property.objectReferenceValue)
60+
{
61+
EditorGUILayout.PropertyField(property, new GUIContent(displayName));
62+
}
63+
else
64+
{
65+
GUI.backgroundColor = isRequired ? Color.red : Color.yellow;
66+
EditorGUILayout.PropertyField(property, new GUIContent(displayName));
67+
GUI.backgroundColor = Color.white;
68+
}
69+
}
70+
}
71+
}

package-dev/Editor/SentryUserFeedbackEditor.cs.meta

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)