Coder Social home page Coder Social logo

stomt / stomt-unity-sdk Goto Github PK

View Code? Open in Web Editor NEW
19.0 11.0 2.0 2.18 MB

Collect feedback in-game with STOMT for Unity3D.

Home Page: https://www.assetstore.unity3d.com/en/#!/content/64669

License: MIT License

C# 98.97% ShaderLab 1.03%
stomt feedback unity-sdk unity unity3d unity-asset widget feedback-systems feedback-loop feedback-collection

stomt-unity-sdk's People

Contributors

crosire avatar daniel-schukies avatar kelteseth avatar maxklenk avatar philippzentner avatar rosarymala avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stomt-unity-sdk's Issues

Invalid certificate received from server (https://rest.stomt.com)

With the Stomt widget from the Unity Asset store I get the following error when the game starts up.
For context: https://stomt.co/UqO12

TlsException: Invalid certificate received from server. Error code: 0xffffffff800b010a
  at Mono.Security.Protocol.Tls.RecordProtocol.EndReceiveRecord (System.IAsyncResult asyncResult) [0x00040] in <59bcb3a41e31492f91d9513566444e88>:0 
  at Mono.Security.Protocol.Tls.SslClientStream.SafeEndReceiveRecord (System.IAsyncResult ar, System.Boolean ignoreEmpty) [0x00000] in <59bcb3a41e31492f91d9513566444e88>:0 
  at Mono.Security.Protocol.Tls.SslClientStream.NegotiateAsyncWorker (System.IAsyncResult result) [0x00071] in <59bcb3a41e31492f91d9513566444e88>:0 
Rethrow as IOException: The authentication or decryption has failed.
  at Mono.Security.Protocol.Tls.SslClientStream.EndNegotiateHandshake (System.IAsyncResult result) [0x0003b] in <59bcb3a41e31492f91d9513566444e88>:0 
  at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (System.IAsyncResult asyncResult) [0x0000c] in <59bcb3a41e31492f91d9513566444e88>:0 
Rethrow as IOException: The authentication or decryption has failed.
  at Mono.Security.Protocol.Tls.SslStreamBase.EndRead (System.IAsyncResult asyncResult) [0x00057] in <59bcb3a41e31492f91d9513566444e88>:0 
  at Mono.Net.Security.Private.LegacySslStream.EndAuthenticateAsClient (System.IAsyncResult asyncResult) [0x00011] in <f044fe2c9e7e4b8e91984b41f0cf0b04>:0 
  at Mono.Net.Security.Private.LegacySslStream.AuthenticateAsClient (System.String targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, System.Boolean checkCertificateRevocation) [0x0000e] in <f044fe2c9e7e4b8e91984b41f0cf0b04>:0 
  at Mono.Net.Security.MonoTlsStream.CreateStream (System.Byte[] buffer) [0x0006a] in <f044fe2c9e7e4b8e91984b41f0cf0b04>:0 
Rethrow as WebException: Error: TrustFailure (The authentication or decryption has failed.)
  at System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x00064] in <f044fe2c9e7e4b8e91984b41f0cf0b04>:0 
  at Stomt.StomtAPI+<LoadTarget>c__Iterator0.MoveNext () [0x000b1] in G:\Quiz\Repo\Assets\stomt Collect Player-Feedback\Scripts\StomtAPI.cs:246 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
Stomt.<LoadTarget>c__Iterator0:MoveNext() (at G:\Quiz\Repo\Assets\stomt Collect Player-Feedback\Scripts\StomtAPI.cs:252)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (at C:\buildslave\unity\build\Runtime\Export\Coroutines.cs:17)
 
(Filename: <59bcb3a41e31492f91d9513566444e88> Line: 0)

Maybe wrong target id
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Stomt.<LoadTarget>c__Iterator0:MoveNext() (at G:\Quiz\Repo\Assets\stomt Collect Player-Feedback\Scripts\StomtAPI.cs:253)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (at C:\buildslave\unity\build\Runtime\Export\Coroutines.cs:17)
 
(Filename: G:/Quiz/Repo/Assets/stomt Collect Player-Feedback/Scripts/StomtAPI.cs Line: 253)

grafik

"NotSupportedException: The URI prefix is not recognized" on MacOS build with .NET 4.6 backend

Hi, so this is a weird one. On MacOS, and only on MacOS, when I "build and run" a Unity project with STOMT I get the following error:

NotSupportedException: The URI prefix is not recognized.
  at System.Net.WebRequest.Create (System.Uri requestUri, System.Boolean useUriBase) [0x000db] in <f044fe2c9e7e4b8e91984b41f0cf0b04>:0 
  at System.Net.WebRequest.Create (System.String requestUriString) [0x00017] in <f044fe2c9e7e4b8e91984b41f0cf0b04>:0 
  at Stomt.StomtAPI.WebRequest (System.String method, System.String url) [0x00002] in G:\Quiz\Repo\Assets\stomt Collect Player-Feedback\Scripts\StomtAPI.cs:218 
  at Stomt.StomtAPI+<LoadTarget>c__Iterator0.MoveNext () [0x00049] in G:\Quiz\Repo\Assets\stomt Collect Player-Feedback\Scripts\StomtAPI.cs:234 
  at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00028] in /Users/builduser/buildslave/unity/build/Runtime/Export/Coroutines.cs:17 
UnityEngine.MonoBehaviour:StartCoroutine_Auto_Internal(MonoBehaviour, IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) (at /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/MonoBehaviourBindings.gen.cs:62)
Stomt.StomtAPI:Start() (at G:\Quiz\Repo\Assets\stomt Collect Player-Feedback\Scripts\StomtAPI.cs:213)

I looked at the code and my first guess was that somehow restServerUrl wasn't set properly. However, I added some log statements immediately before the WebRequest call in StomtAPI.cs:234 and the value was "https://rest.stomt.com" as expected.

Also the error only started showing up after upgrading to the newest version from the Asset store. On Windows and Linux the error does not appear in builds or editor. The error does also not appear on MacOS when the code is run in the editor.

The error only appears with the new .NET 4.6 backend, not with the old .NET 2.0 one.

I attached an example project that includes nothing but the STOMT plugin on a Canvas which reproduces the error for me:
Stomt MacOS Test.zip

System Info
MacOS Sierra 10.12.6
screen shot 2017-10-06 at 02 23 03

Consider a more API-like implementation

So this one is from someone else:

OK so I'm trying to integrate it with my android game in Unity.
The problem I'm facing is the StomtPopup class doesn't seem to have a publicly accessible way of toggling the popup without the use of a Toggle Key - for example toggling it with an Event or with a Button.
Extending the StomtPopup class doesn't work either due to a number of key fields and methods (_ui, Show()) being private.
What I'm left with is hacking the supplied StomtPopup class itself, which is less than ideal. It would be great if your devs could consider a more API-like implementation. Maybe it's just me, but I don't like editing third party source, I much prefer extending it with my own implementation classes.
Additionally I try to actively avoid anything that checks once per frame in Update() unless I absolutely need it. I feel the implementation would be much better with an Event rather than if (Input.GetKeyDown(_toggleKey)) { on every frame. Mobile devs are paranoid about CPU cycles :slight_smile:
Otherwise the service seems solid and it's a useful way of integrating feedback. I'm yet to investigate how public the feedback is, and whether I have any way of moderating it.

There is no public API for showing the Stomt popup

Inspite of what the documentation says, there are no (public) methods to show the popup. I'd like to automatically display the popup in my pause menu.

I just added a new public method that does the same thing as the toggle button, i.e.:

public void ShowPopup()
{
  StartCoroutine(Show());
}

Is there a reason this isn't provided by default?

tweak the texture import settings on Sprites and Icons

I would recommend tweaking the texture import settings on your Sprites.

  1. They are all set to "generate mip maps" (you probably do not want that)
  2. Format is Compressed. For 2d things, you generally want to use either 16 bits, truecolor, or alpha-8 (have to change to Advanced to see this). Your sprites seem to all be grayscale, so I would recommend alpha-8. You might have to tweak your shaders if you use alpha-8 though, since the color and alpha channels are handled differently.
  3. sprites like the sprite128, sprite150 and sprite150-border are way too big. they are 512x512, and are setup as 9-sliced, so you could easily make these 64x64 with no loss of quality. you only need 1 pixel in the middle sections, so your sprite would basically only contain the rounded corners, and then 1 pixel in the middle (that gets stretched). Instead of 1 pixel though, I usually use 4 just because sometimes you have problems with only 1 pixel.
  4. spriteMagicWhite is 512x512 - way too big
  5. close and closeWhite are 128x128 - too big
  6. you might want to use a packing tag for all these sprites, so they get bundled into the same atlas (helps with reducing draw calls). all your sprites are square powers of 2 so this won't save any memory in the GPU, but it would reduce draw calls since it can draw every sprite in 1 call.

Mobile app developers really care about sprite sizes. It impacts build size and memory consumption, both of which generally need to be as small as possible. You should try to have all your sprites the as small as possible, and using the most optimum image format.

I would not use Compressed format because it usually ends up looking like shit. And, on Android, there isn't even a standard for Compressed so a lot of devices will end up converting it back to uncompressed at runtime. If you do want to use Compressed though, go into the iOS overrides and you can set the Compressed quality to High.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.