stomt-unity-sdk
stomt-unity-sdk copied to clipboard
Collect feedback in-game with STOMT for Unity3D.
Collect Feedback In-Game | STOMT-SDK for Unity 3D
Implementation Time: ~20 Minutes (incl. Triggers)
We have created a custom feedback solution at www.stomt.com, which easily allows you to collect feedback from your users. This Unity plug-in allows you to integrate our solution in your app or game. You can download and install or download from the Unity Asset Store. Our web platform helps you to manage all incoming feedback and build a community uppon it.
Examples / Use-Cases / Demo
Example Games that use our integrations:
Installation
-
Download this repository and or get it from the AssetStore and copy the assets into your project.
-
Add the
StomtPopup
prefab to your main UI canvas.
Configuration
-
Create a page for your game on www.stomt.com.
-
Create an App Id for Unity.
-
Enter all necessary data into the
StomtAPI
component on the prefab.
- Enter the
App Id
you obtained in the second step
- Finished!
Scaling: You can scale the widget by using the StomtPopup's Rect Transform Scale property in the inspector.
Optional Configuration
Stomt API (Script)
Property | Type | Description |
---|---|---|
App Id (required) | String | The App Id of your game on STOMT |
Language File | File | A JSON-File containing the translations (Learn more). |
Default Language | String | Show the UI in this language if the users language is not available. |
Force Default Language | Bool | Show every user the UI in the Default Language. |
Send Default Labels | Bool | Automatically attach platform and resolution to stomts. |
Debug Mode | Bool | Only used in development to access all layers. |
Labels | List | Enter Labels that will be attached to every stomt (See also Section "In-Game Labeling"). |
Stomt Popup (Script)
Property | Type | Description |
---|---|---|
Toggle Key | Key | Keyboard Key to toggle the creation form. |
Display Game Name | String | Force to show this name instead of loading it from the server. |
Profile Image Texture | Texture | Force to use this image instead of loading it from the server. |
Upload Log File | Bool | Upload the log file with every stomt. |
Prefetch Target | Bool | Load the target (name, image, stats) from the server when initializing StomtApi. |
Show Close Button | Bool | Show the close button in the top right of the widget. |
Show Default Text | Bool | Enter "would" / "because" (or the translation) in the textarea, so users understand that they have to finish the sentence. |
Show Widget On Start | Bool | Automatically show the widget on startup. |
Form Triggers
The widget can be opened and closed whenever you want by using our trigger functions.
That allows you to:
- Put a button into the main menu (Example)
- Put a button into the HUD (Example)
- Only show the button to certain players (e.g. power users)
- Trigger the form after certain events
StomtPopup Class
- Enable:
ShowWidget()
- Disable:
HideWidget()
In-Game Labeling
Labels will help you track down user issues. Append labels, as for example your game-version or the player position/level. You can either hardcode them in the Unity Inspector or use a script to add them in a flexible way based on the information you have.
If you want different labels for every stomt then you have to clear the label array and set new labels.
Hardcoded via Unity Inspector:
Flexible via Script:
using UnityEngine;
using System.Collections;
using Stomt;
public class StomtLabelExample : MonoBehaviour
{
private StomtAPI StomtAPI;
// Use this for initialization
void Start ()
{
// Find StomtPopup
StomtAPI = GameObject.Find("StomtPopup").GetComponent<StomtAPI>();
// Add your labels
StomtAPI.Labels = new string[] { "label1", "label2" };
}
}
Append Additional Data
If you need more data but you do not want to flood the labels, you can add additional data to a stomt by adding custom key value pairs.
using UnityEngine;
using System.Collections;
using Stomt;
public class StomtAdditionalDataExample : MonoBehaviour
{
// Use this for initialization
void Start ()
{
StomtAPI api = GameObject.Find("StomtPopup").GetComponent<StomtAPI>();
api.AddCustomKeyValuePair("CustomKey", "Value/Data");
}
}
Event Callbacks
The STOMT Widget supports a variety of callback events.
This shows how you can access them.
using UnityEngine;
using System.Collections;
using Stomt;
public class StomtEventCallbackExample : MonoBehaviour
{
// Use this for initialization
void Start ()
{
StomtPopup.OnStomtSend += YourFunction;
StomtPopup.OnWidgetClosed += YourFunction;
StomtPopup.OnWidgetOpen += YourFunction;
}
// Your Function
void YourFunction()
{
// React
}
}
Translations
The UI of the SDK supports multiple languages. At the moment we provide support for English and German (but you can add more languages). We automatically search for translations for the users Application.SystemLanguage
. If you use another way to let the user configure his language you can pass this language to the STOMT SDK as well. Please pass the ISO 639-1 Code of the language to StomtAPI.SetUserLanguage
.
using UnityEngine;
using System.Collections;
using Stomt;
public class StomtLanguageExample : MonoBehaviour
{
private StomtAPI StomtAPI;
// Use this for initialization
void Start()
{
StomtAPI = GameObject.Find("StomtPopup").GetComponent<StomtAPI>();
StomtAPI.SetUserLanguage("ru");
}
}
Extend the Translations
To extend the translation simply add your languages in the Language/languages.json
file. Use the ISO 639-1 Code of the language as new key and copy the translations object from one of the other languages as value. Then replace the strings with your translated ones. You should review the translations in the UI to ensure that everything fits in the available space.
If you have added a languages, please share them with us.
Common Issues
- Error (401) Unauthorized: Is your application ID right?
test.stomt.com
andstomt.com
use different ID's. - Error (500) Internal Server Error: Report us the problem.
- Stomts are not sent out on Android: change the API Compatibility Level from
.NET 2.0 Subset
to.NET 2.0
in the Player Settings.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Contribution
We would love to see you contributing to this project. Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Visit the project on STOMT to support with your ideas, wishes and feedback.
Authors
Daniel Schukies | Follow Daniel Schukies on STOMT
See also the list of contributors who participated in this project.
More about STOMT
Regularly communicate your page on social channels and checkout our Website-Widget for your websites to collect feedback from anywhere.