Dero Geschrieben 4. Januar 2017 Melden Share Geschrieben 4. Januar 2017 Hallo Community. Mein Spiel ist soweit fertig (kein topseller aber fürs erste reicht mir das). Ich arbeite aktuell mit der Unity Version 5.5, habe mein Spiel aber mit Unity 5.0 angefangen, bzw die falsche Unity installation genutzt. Macht aber erstmal nichts, da alles in der neuen Version auch funktioniert. Da leider der WebPlayer fast komplett futsch ist, habe ich bereits meinen Code für WebGL umgebaut. Nun ist auch alles soweit fertig und wartet nur noch darauf Online zu gehen. Läuft auch bei Kongregate. Problem: Jetzt wollte ich nur um den ein oder anderen Euro mehr daran zu verdienen die API von Kongregate nutzen. Der Nutzer soll ein Item kaufen können um besser vorran zu kommen. Dazu benötige ich die KongregateAPI. Diese lade ich über: http://docs.kongregate.com/docs/unity-api und erstelle mir ein neues Script: Kongregate.js und kopiere mir dort folgendes rein: #pragma strict public class KongregateAPIBehaviour extends MonoBehaviour { private static var instance:KongregateApiBehaviour; function Start () { if(instance == null) { instance = this; } else { Destroy(gameObject); return; } DontDestroyOnLoad(gameObject); gameObject.name = "KongregateAPI"; var script = "if(typeof(kongregateUnitySupport) != 'undefined') { " + " kongregateUnitySupport.initAPI('KongregateAPI', 'OnKongregateAPILoaded');" + "};"; Application.ExternalEval(script); } function OnKongregateAPILoaded(userInfoString:String) { OnKongregateUserInfo(userInfoString); var script = "kongregate.services.addEventListener('login', function() {" + " var unityObject = kongregateUnitySupport.getUnityObject();" + " var services = kongregate.services;" + " var params=[services.getUserId(), services.getUsername()," + " services.getGameAuthToken()].join('|');" + " unityObject.SendMessage('KongregateAPI', 'OnKongregateUserInfo', params);" + "});"; Application.ExternalEval(script); } function OnKongregateUserInfo(userInfoString:String) { var info = userInfoString.Split("|"[0]); var userId = parseInt(info[0]); var username = info[1]; var gameAuthToken = info[2]; Debug.Log("Kongregate User Info: " + username + ", userId: " + userId); } } Jetzt gebe ich mir in einer anderen Datei erstmal den Usernamen aus. var kong : Kongregate; kong.username; Läuft (aber nur wenn ich das Game auf Kongregate hochlade) Im Editor wird mir übergeben: External Call: if(typeof(kongregateUnitySupport) != 'undefined') { kongregateUnitySupport.initAPI('KongregateAPI', 'OnKongregateAPILoaded');}; UnityEngine.Application:ExternalEval(String) KongregateAPIBehaviour:Start() (at Assets/KongregateAPIBehaviour.js:33) Meiner Meinung nach...Jup, API läd und funktioniert da mir der Username ausgegeben wird. Nun zu dem was ich einfach nicht verstehe/hinbekomme: http://docs.kongregate.com/v1.0/docs/client-api-mtx-purchaseitems kongregate.mtx.purchaseItems(["sword"], onPurchaseResult); function onPurchaseResult(result) { console.log("Purchase success:" + result.success); } 1. Wo muss ich das jetzt überhaupt einbauen? Würde das gerne mit einem Button aufrufen. Dazu habe ich mir das hier gebastelt: var success : boolean; var guckste : String; function onPurchaseResult(result) { Debug.Log("Purchase success:" + result.succsess); guckste = 'Läuft'; } if(GUI.Button(Rect(100,120,100,100),'Bla'+guckste)) { Application.ExternalEval("kongregate.mtx.purchaseItems(['sword'], onPurchaseResult)"); } 2. Wenn ich Debug.Log("Purchase success:" + result.succsess); schreibe kommt die Fehlermeldung : succsess is not a member of Object. 3. Wenn ich den Button anklicke kommt zwar: External Call: kongregate.mtx.purchaseItems(['sword'], onPurchaseResult); UnityEngine.Application:ExternalEval(String) aber bei Kongregate.com passiert einfach nix. Schonmal jemand damit zutun gehabt? Würde mich freuen wenn sich da jemand mal die Zeit nimmt um sich das mal anzuschauen. MfG Dero Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MarcoMeter Geschrieben 5. Januar 2017 Melden Share Geschrieben 5. Januar 2017 Schildere doch dein Problem im Forum von Kongregate oder kontaktiere die direkt. Ich höre jetzt zum ersten Mal von dieser API und hab die daher noch nie eingesetzt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dero Geschrieben 5. Januar 2017 Autor Melden Share Geschrieben 5. Januar 2017 Hab ich jetzt mal gemacht. Ist ja echt zum verzweifeln. Die Doku von denen ist auch wirklich schlecht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.