Jump to content
Unity Insider Forum

3ncrypt0

Members
  • Gesamte Inhalte

    167
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    2

Alle erstellten Inhalte von 3ncrypt0

  1. Guten Morgen, ich konnte den Fehler gestern noch finden und beheben. Durch den Import von irgendeinem Asset (vermutlich Gaia), wurden meine Quality Settings komplett verstellt und Default auf Low gestellt. LightCount stand dort auf 0. Interessant ist allerdings, dass alle auf Low gestellt wurden und die Quality Settings nach Good fehlen (was nun nicht so tragisch ist). Beim Import gab es leider keinen Hinweis darauf...
  2. Hey zusammen, ich benötige einmal eure Hilfe. Ich bin gerade dabei nach einiger Zeit ein Update für eine meiner Apps zu erstellen. Darunter zählt auch, die Lightningbox2 zu verwenden um einen anderen Look in den Maps zu erhalten. Bis gestern war es immer so, dass im Unity Editor alles nach dem Baken relativ dunkel aussah, auf dem Android Gerät aber super. Gestern habe dann Gaia importiert, da ich mit dem Gedanken gespielt habe, eine neue Map zu erstellen. Die Maps lade ich als AssetBundles von meinem Server in die App. Als ich die neue Map testen wollte, fehlte dort das Terrain, bzw. es war mehr oder weniger alles schwarz, bis auf das UI. Auch in den anderen Maps war auf einmal alles schwarz. Es gab wohl irgendein Problem mit Gaia, welches ich dann wieder aus dem Projekt entfernt habe (es spielte schon im Editor ab und zu verrückt). Das Problem nun aber ist, dass auch nach dem Entfernen, die alten Maps viel zu dunkel sind. Ich hab dann versucht, die Maps neu zu baken, allerdings bringt das nicht den gewünschten Erfolg. Hier mal zwei kleine Videos, die ich gestern oder vorgestern auf die Schnelle erstellt hatte und parallel dazu jeweils einen Screenshot, wie es nun aussieht: Ich war am Anfang erstaunt, was die Lightningbox2 so aus einer Scene rausholen kann und wie flüssig es dennoch auf dem mobilen Geräten läuft. Color Space ist Linear. Auto Graphics habe ich aus und in der Liste: Vulkan OpenGLS3.0 -> OpenGLS2.0 habe ich entfernt, da mir ein Fehler ausgeworfen wurde, nur weiß ich nun nicht mehr, wann das war, also ob vor oder nach dem Gaia Import. In den Scenen hatte ich vorher keine Light Probe Groups - Habe nun zum testen mal eine hinzugefügt, allerdings ohne Erfolg. Wieso ist die Scene in den Video relativ gut ausgeleuchtet und nun, in den Screenshots nicht mehr?!?! Hier noch ein Screenshot aus Unity, wie es dort aussieht: Was könnte es sein, dass es aufeinmal so dunkel ist? Zumindest auf der Seite, wo die Sonne nicht scheint? EDIT: Ich habe noch ein wenig rumprobiert, den GI Cache einfach mal gelöscht und neu gebaked, Ambient Light höher gestellt etc. Hier mal ein Screenshot aus dem Editor, in der die MainCamera aktiv ist, wie auch nachher auf dem Android gerät: Hier die gleiche Scene vom Android: Ich dreh noch am Kabel....
  3. Servus alle zusammen, ich sitze derzeit an einem neuen Spiel, in dem auch Inventory Pro zum Einsatz kommt. Da es in erster Linie um einen Single Player dreht, benötige ich natürlich auch eine AI. Und wie es numal so ist, schaue ich um Zeit und Ressourcen zu sparen erst einmal im Asset Store nach. Dort habe ich einige, sehenswerte AssetPacks bzgl. AI gefunden. Nun möchte ich aber auch, dass die Enemies auch mit Inventory Pro arbeiten. Die AI sollte dazu also kompatibel sein - kennt jemand rein zufällig ein solches AssetPack? Es ist ein FPS/Survival Spiel. Ich finde die Lösung von manchen Assets cool, wo ein visueller Editor zur Verfügung steht. Es sollen vor allem verschiedene Enemies erstellt werden - Einfach Bauern, Wachen, Tiere etc. AI's sollen natürlich auch untereinander agieren(z.B. kämpfen) können. Hier mal ein paar Bsp.(sollten Links nicht erwünscht sein, bitte Bescheid geben oder löschen): https://assetstore.unity.com/packages/tools/ai/fsm-ai-template-beta-123618 Leider Beta - Sieht aber sehr interessant aus. Bin mir aber nicht sicher, ob es sich so einfach implementieren lässt und mit Inventory Pro zusammen arbeitet. https://assetstore.unity.com/packages/tools/ai/eliot-ai-framework-128119 Cooles Beispiel Video - scheinbar sehr mächtig. Verwendet eigenes Inventory -> nicht so cool. https://assetstore.unity.com/packages/tools/ai/intense-shooter-ai-63221 Ziemlich beeindruckendes Video - Scheint aber eine reine Shooter AI zu sein. Kenn jemand vielleicht noch passende? Oder seid ihr der Meinung, dass man lieber eine eigene AI State Machine schreiben sollte - nimmt natürlich eine Menge Zeit in Anspruch. VG, Jochen
  4. 3ncrypt0

    Robot Kyle Footprints

    Servus, ich möchte, dass mein Player Fußspuren hinterlässt, allerdings habe ich dabei Probleme bzgl. Triggern und Animation. Vorab mein Script: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Footstep : MonoBehaviour { public GameObject footstep; public Transform leftFootstepLocation; public bool active = true; private void Start() { this.leftFootstepLocation = this.transform; } void LeftFootstep() { RaycastHit hit; Debug.Log(this.leftFootstepLocation.position); Instantiate(this.footstep, new Vector3(this.leftFootstepLocation.position.x, 0.02f, this.leftFootstepLocation.position.z), Quaternion.Euler(90, this.leftFootstepLocation.eulerAngles.y, 0)); } private void OnTriggerExit(Collider other) { if(other.gameObject.tag == "Ground") { if (this.active) { LeftFootstep(); this.active = false; } } } private void OnTriggerEnter(Collider other) { if(other.gameObject.tag == "Ground") { this.active = true; } } } Und ein Screenshot: Wie man dem Script und dem Screenshot entnehmen kann, war mein Plan ein empty GameObject mit einem BoxCollider zu verwenden, bei dem IsTrigger aktiviert ist. Verlässt der Fuss den Boden, soll an der Position ein Fußabdruck erstellt werden. Ich verwende eine Animation von Mixamo. Das Problem ist nun, dass manchmal das Triggern des Fußes doppelt ausgelöst wird und manchmal überhaupt nicht. Wenn ich renne, passiert z.B. nichts. In diesem Tutorial z.B. verwendet er zum Auslösen der Funktionen die Animationen. Also wenn der Fuß laut Animation den Boden verlässt, setzt er ein Sprite. Gibt es dort keine einfachere Lösung? Ich wüsste gerade nicht, wie ich das über meine Animation steuern sollte. VG Jochen
  5. Hi zusammen, ich habe heute ein WebGL Build von meiner App gemacht da ich diese auch auf FB veröffentlichen wollte. Jedoch habe ich das Problem, dass die Menü Scene mir einen Fehler schmeißt, mit dem ich absolut nichts anfangen kann: Invoking error handler due to Uncaught abort(135) at Error at jsStackTrace (WebGL.asm.framework.unityweb:1154:12) at stackTrace (WebGL.asm.framework.unityweb:1168:11) at abort (WebGL.asm.framework.unityweb:19122:43) at nullFunc_iiii (WebGL.asm.framework.unityweb:15079:2) at b135 (WebGL.asm.code.unityweb:2885259:2) at __ZN13MemoryManager8AllocateEjjRK10MemLabelId15AllocateOptionsPKci (WebGL.asm.code.unityweb:1519618:76) at __ZnwjRK10MemLabelIdjPKci (WebGL.asm.code.unityweb:2772311:9) at __ZN17MessageIdentifierC2EPKcNS_7OptionsEPKN5Unity4TypeES1_ (WebGL.asm.code.unityweb:2136674:8) at __GLOBAL__sub_I_runtime_animation_lump_cpp (WebGL.asm.code.unityweb:1561230:2) at __GLOBAL__sub_I_runtime_animation_lump_cpp [UnityLoader.2040a30ff2a57bb99860471556a0799e.asm.__GLOBAL__sub_I_runtime_animation_lump_cpp] (WebGL.asm.framework.unityweb:18116:57) at func (WebGL.asm.framework.unityweb:1546:3) at callRuntimeCallbacks (WebGL.asm.framework.unityweb:1272:4) at ensureInitRuntime (WebGL.asm.framework.unityweb:1296:2) at doRun (WebGL.asm.framework.unityweb:19065:3) at run (WebGL.asm.framework.unityweb:19083:3) at runCaller (WebGL.asm.framework.unityweb:19011:28) at removeRunDependency [Object.removeRunDependency] (WebGL.asm.framework.unityweb:1490:4) at blob:http://webgl.dev/71b9a29e-ffd1-4e80-9819-2239429594db:11:11 at doCallback (WebGL.asm.framework.unityweb:6175:11) at done (WebGL.asm.framework.unityweb:6186:5) at done (WebGL.asm.framework.unityweb:5308:12) at storeLocalEntry [Object.storeLocalEntry] (WebGL.asm.framework.unityweb:5226:3) at blob:http://webgl.dev/71b9a29e-ffd1-4e80-9819-2239429594db:5319:12 at onsuccess [IDBRequest.UnityLoader.2040a30ff2a57bb99860471556a0799e.IDBFS.loadRemoteEntry.req.onsuccess] (WebGL.asm.framework.unityweb:5245:4) Ich habe in der Scene schon alles deaktiviert, aber ich bekomme weiterhin diese Meldung. Deaktiviere ich das Menü in den BuildSettings und lade nur die Game Scene mit, klappt es. In dem Menü sind nur 3 Buttons, eine Rankliste die ich aus den PlayPrefs auslese und die Schwierigkeitsstufen und eine LadeOberfläche, wenn ich die Game Scene lade. Jemand eine Idee, woran es liegen könnte? Danke und VG Jochen
  6. Danke skee, ich gebe Dir Recht, wenn viele Karten vorhanden sind, wirkt es schon etwas klein/viel auf einem Handy. Mir war es wichtig, dass es auf das Nötigste reduziert wird da sich die App ja auch an Kinder richtet. Ich werde noch Mehrsprachigkeit einrichten, damit die App auch auf deutsch vorhanden ist und hier und da ein paar kleine Verbesserungen um die Usability zu verbessern. Bzgl. des Fehler auf dem Galaxy S5 mini: Graphics API habe ich in den PlayerSettings auf manuell gestellt in der Reihenfolge: Vulkan, OpenGLES3, OpenGLES2 Ich habe in der Scene aber auch RealtimeGI aktiviert. Vllt. hängt es auch damit zusammen. VG
  7. Hi zusammen, ich habe gestern meine neue App veröffentlicht. Sven's Memory ist ein Kartenspiel für Kinder. Ich habe die App eigentlich für meine Kinder entwickelt...mir dann aber gedacht, hau sie in den Store. Es gibt nicht viel in der App, nur 4 Schwierigkeitsstufen, Highscore, ein paar Sound und Lichteffekte, aber meine Kinder und Neffen/Nichten haben wirklich Spass daran. https://www.androidpit.de/forum/759825/sven-s-memory-memory-fuer-kinder-3d#3103325 Ich würde mich über Feedback freuen - Vor allem interessiert mich die Performance und ob ihr Probleme habt mit der Grafik (meine Schwester auf einem Galaxy S5 mini, da ist alles total hinüber...sieht aus, als ob es viiiel zu hell ist und alles verkratzt und überall Artefakte). Die App ist kostenlos und enthält derzeit noch keine InApp Käufe - soll aber kommen um Werbung zu deaktivieren. Weitere Modis kommen auch die Woche, wie Mehrspieler usw. Allerdings stört mich die Werbung momentan noch - nicht dass ich welche schalte, sondern was für eine ausgespielt wird. Ich habe angegeben bei Unity, dass sich die App an Kinder unter 13 richtet und als Werbung erhalte ich leider Ritter gemetzel... Naja, ich würde mich über Feedback wirklich freuen. Danke und Viele Grüße, Jochen
  8. Guten Morgen, bei Multiplayer Spielen solltest Du dich erst einmal über die Kosten von Server und Service informieren - auch womit du den MP Service umsetzen willst, denn da stehen ja mehrere zur Auswahl (Unity, Smartfox usw.). Hast Du erst einmal ein Spiel veröffentlicht, muss der Service auch laufen. Vg
  9. Hi, kannst Du Logging genauer Beschreiben, was genau Du meinst? Für eine Consolen Ausgabe, Performance und paar andere Kleinigkeiten habe ich mir das Asset SRDebugger gekauft. VG
  10. Moin moin! Bestimmt kennt das jeder von euch - diese extrem nervigen Sounds von Motoren, die nur über Pitch geregelt werden und sich einfach schrecklich anhören. Bei der Suche nach Tipps bin ich auf eine Android App gestoßen, die einen mega Sound ausgibt von Motoren und diese sich auch noch steuern lassen (Die APP). So etwas in der Art wollte ich natürlich auch haben. Also habe ich mir mal ein paar Sound Engines angesehen. Wwise hatte ich mir damals schon angesehen, fand das Tool aber zu mächtig für meine Anforderungen. Nun bin ich also auf fmod gestoßen und total begeistert, denn: Die haben einen Engine Designer. Hier mal ein kleines Beispiel:Man hat natürlich eine direkte Integration in Unity. Allerdings muss man den Engine Designer in Unity selber erstellen - also die Delay Steuerung. Hat das hier schon einmal jemand gemacht? Hier mal mein gescheiterter Versuch: public class MotorSoundController : MonoBehaviour { public float rpmFactor = 175f; private float _rpmFactor; private bool active = false; private FMODUnity.StudioEventEmitter e1_emitter; private float e1_rpm = 1000f; private float e1_currentRpm = 1000f; // Use this for initialization void Start () { e1_emitter = this.GetComponent<FMODUnity.StudioEventEmitter>(); startSound(); } // Update is called once per frame void Update () { e1_rpm = 10000 * PlayerControllerInput.Instance.getThrottle; if (e1_currentRpm < e1_rpm) { e1_currentRpm += _rpmFactor; } else { e1_currentRpm -= _rpmFactor; } updateRPM(e1_emitter, e1_currentRpm); } public void startSound() { this.GetComponent<FMODUnity.StudioEventEmitter>().Play(); } public void stopSound() { this.GetComponent<FMODUnity.StudioEventEmitter>().Stop(); } public void updateRPM(FMODUnity.StudioEventEmitter emitter, float rpm) { emitter.SetParameter("RPM", rpm); } Im Grunde genommen, fehlt mir ja nur der RPM Smooth - Ich habe aber keinen Plan, wie ich den am besten umsetzen kann. So wie in meinem Code ist das natürlich Mist... Jemand eine Idee oder Vorschläge? Denn er Sound, den man damit umsetzen kann, ist echt mega. VG
  11. SORRY! Verdammt - immer wenn ich einen Forethread erstelle, kommt mir 5min danach die Erleuchtung! Stylesheet Asset erstellen -> Inspector auf Debug umstellen und dann das stylesheet Script gegen das eigene ThemeScript austauschen. Sorry nochmal für den nun sinnlosen Thread... VG
  12. Hi zusammen, ich verwende als Input Rewired - Dieses Plugin bietet ein Menu UI an, welches ich aber gerne ändern würde. Normalerweise steht mir hierzu ein Theme zur Verfügung. Allerdings setzt sich dieses nach jedem Update auf die Default Werte zurück, was total dumm ist... Ich habe das Theme dupliziert, und könnte nun theoretisch auch Anpassungen machen, allerdings muss ich einiges erweitern an dem Script (ThemeSettings.cs). Also habe ich das Script kopiert, umbenannt, Klassenname angepasst. Frage mich nun aber, wie ich aus einem c# Script eine Theme Datei erstellen kann?! Ich hatte gesehen, dass es auch die Stylesheet Assets gibt. Hier kann ich aber nicht auf das Script verweisen. Jemand eine Idee? Als Anhang mal wie eine Theme Datei aussieht und einmal das c#. VG Jochen
  13. Hi zusammen, habe gestern das Unity 5.5 Update geladen - Was mir sofort aufgefallen ist, ist dass der Fog nicht über dem Terrain sichtbar ist. Alle anderen Objekte werden in Nebel eingehüllt. Erst wieder mit dem Global Fog Script auf meiner Camera funktioniert es. Kann da jemand was zu sagen? Denn der Nebel legt sich auch über Bäume welche über das Terrain hinzugefügt wurden. Danke und VG
  14. Hi zusammen, mein Ziel ist es, Scenen aus AssetBundles zu laden. Funktioniert auch alles - allerdings ist es im Moment so, dass ich jedes Mal die Daten vom Server runterladen muss. Ist eine Scene jetzt mal 400MB groß oder größer, wird es natürlich schwierig. Jetzt meine Frage: Kann man nicht die Daten runterladen und danach immer wieder lokal laden? Ich bin zwar auf LoadFromCacheOrDownload gestoßen - frage mich aber wie das mit dem neuen AssetBundle System funktionieren soll. Bei der Variante lädt man ja die *.unity3d files herunter. Diese gibt es aber wohl nicht mehr. Oder werden die Daten im neuen System bereits automatisch gecached und nur wenn sich die Versionsnummer in der Manifest ändert, werden die Daten noch einmal herunter geladen? Denn in meinem Test Build wo ich die Scenen runterlade, könnte ich keine Cache Daten oder ähnliches finden. Habe dieses Tutorial verfolgt: https://unity3d.com/...tbundle-manager Finde aber keine Antwort auf meine Frage. Danke und VG Ich habe natürlich noch ein wenig getestet. Objekte kann ich mit der Cache Variante nun problemlos laden, jedoch komme ich bei den Scenen nicht weiter. Hier mal mein Testscript: using System; using UnityEngine; using System.Collections; using AssetBundles; public class CachingLoadExample : MonoBehaviour { [Header("Bundle")] public string URL; public string BundleName; public string AssetName; public int version; [Header("Type")] public bool isScene = false; void Start() { StartCoroutine(DownloadAndCache()); } IEnumerator DownloadAndCache() { // Wait for the Caching system to be ready while (!Caching.ready) yield return null; // Load the AssetBundle file from Cache if it exists with the same version or download and store it in the cache using (WWW www = WWW.LoadFromCacheOrDownload(URL+BundleName, version)) { yield return www; if (www.error != null) { throw new Exception("WWW download had an error:" + www.error); } AssetBundle bundle = www.assetBundle; bundle.LoadAllAssets(); if (!isScene) { if (AssetName == "") { Instantiate(bundle.mainAsset); } else { Instantiate(bundle.LoadAsset(AssetName)); } } else { Debug.Log(bundle.GetAllScenePaths()[0]); //AssetBundleManager.SetSourceAssetBundleURL(Application.dataPath + "/"); Application.LoadLevel(bundle.GetAllScenePaths()[0]); } bundle.Unload(false); } // memory is freed from the web stream (www.Dispose() gets called implicitly) } } In der Demo, wo die Daten nicht gecached werden, arbeiten die aber mit dem AssetBundleManager: AssetBundleManager.SetSourceAssetBundleURL("http://meineurl/filesystem/MyAssets/"); und laden dann so die Scene: protected IEnumerator InitializeLevelAsync (string levelName, bool isAdditive) { // This is simply to get the elapsed time for this phase of AssetLoading. float startTime = Time.realtimeSinceStartup; // Load level from assetBundle. AssetBundleLoadOperation request = AssetBundleManager.LoadLevelAsync(sceneAssetBundle, levelName, isAdditive); if (request == null) yield break; yield return StartCoroutine(request); // Calculate and display the elapsed time. float elapsedTime = Time.realtimeSinceStartup - startTime; Debug.Log("Finished loading scene " + levelName + " in " + elapsedTime + " seconds" ); } LAST EDIT: Hab es zwar nun geschafft, dass ich auch endlich Scenen laden kann - allerdings funktioniert dies nicht immer. Erhalte dann immer nur: Keine Kamera verfügbar. Hier mal mein jetziger Code: using System; using UnityEngine; using System.Collections; using AssetBundles; public class CachingLoadExample : MonoBehaviour { [Header("Bundle")] public string URL; public string BundleName; public string AssetName; public int version; [Header("Type")] public bool isScene = false; public bool active = false; void Start() { if (active) { StartCoroutine(DownloadAndCache()); } } void OnGUI() { if (GUILayout.Button("Uninstall Game")) { Caching.CleanCache(); } } IEnumerator DownloadAndCache() { // Wait for the Caching system to be ready while (!Caching.ready) yield return null; // Load the AssetBundle file from Cache if it exists with the same version or download and store it in the cache using (WWW www = WWW.LoadFromCacheOrDownload(URL+BundleName, version)) { yield return www; if (www.error != null) { throw new Exception("WWW download had an error:" + www.error); } AssetBundle bundle = www.assetBundle; //bundle.LoadAllAssets(); if (!isScene) { if (AssetName == "") { Instantiate(bundle.mainAsset); } else { Instantiate(bundle.LoadAsset(AssetName)); } } else { string[] scenePath = bundle.GetAllScenePaths(); string mySceneName = scenePath[0]; Debug.Log(mySceneName); mySceneName = mySceneName.Substring(0, mySceneName.Length - 6); mySceneName = mySceneName.Substring(mySceneName.LastIndexOf("/") + 1); Application.LoadLevel(mySceneName); } bundle.Unload(false); } // memory is freed from the web stream (www.Dispose() gets called implicitly) } } Damit klappt, verwende ich nun diesen AssetBundleCreator: using UnityEngine; using System.Collections; using UnityEditor; public class BuidlAsset : MonoBehaviour { [MenuItem("Assets/Build AssetBundles - Editor")] static void BuildAssetBundles_Editor() { BuildPipeline.BuildAssetBundles("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows); } }
  15. Guten Morgen! Ich habe gestern eine Baked GI Berechnung durchgeführt und auf einmal sind alle meine Objekte, welche auf dem Terrain positioniert sind, grün. Super grün! Ich hatte das Problem schon einmal, kann mir aber nicht erklären woran es liegt. Ich habe zwei Scenen - Eine wo ich getestet habe, ob ich mit bestimmten Assets etwas umsetzen kann. Da war alles ok - in der richtigen Scenen nun, sind alle Objekte grün. Aber erst seit der letzten Berechnung und ich habe KEIN grünes Licht oder ähnliches. Ich dachte erst, es liegt vllt. an den Terrain Texturen bzw der Reflection. Habe diese aber ausgeschaltet. Hänge mal ein paar Bilder an. Einmal wie sein sollte ca. und einmal wie es ist. Ich verwende Relief Terrain Pack 3.3. Die Texturen habe ich mit Megascans erstellt. Danke und VG EDIT: Konnte es nun wieder beheben. Indirect Resolution ist dafür verantwortlich. Frage mich jedoch, wieso das manchmal passiert und manchmal nicht?! Bei den vorherigen Berechnungen hatte ich das Problem ja auch nicht...Nun ist auch alles zu "flat"
  16. Guten Morgen, ich stehe vor einem kleinem Problem und sehe vermutlich den Wald vor lauter Bäumen nicht. Ich habe eine REST Klasse. In dieser rufe ich eine REST API auf und erhalte ein JSONString den ich später in ein List<Obj> parse. Nun rufe ich die REST Klasse aber von einer zweiten Klasse aus auf (Singleton). Hier ein Auszug aus meiner REST.cs //REST public MyClass init() { WWWForm form = new WWWForm(); WWW www = new WWW("http://192.168.10.10/unity/v2"); StartCoroutine(WaitForRequest(www)); return data; } public IEnumerator WaitForRequest(WWW www) { yield return www; if (www.error == null) { String a = www.data.Substring(0, www.data.Length - 1); data = JsonUtility.FromJson<MyClass>(a.Substring(1)); } else { Debug.Log("WWW Error: " + www.error); } } [system.Serializable] public struct MyClassObj { public string images; } [system.Serializable] public class MyClass { public List<MyClassObj> list; } //Klasse mit Aufruf void Start() { REST.MyClass imgList = REST.Instance.init(); foreach (REST.MyClassObj ob in imgList.list) { Debug.Log("w"); url.Add(ob.images); } //for (int i = 0; i < url.Count; i++) { //StartCoroutine(Download(i)); //} } Der Zugriff auf die REST API funktioniert auch ganz gut. Problem ist, dass ich die init() extern aufrufe und immer ein Null Object erhalte - kann ich auch irgendwie in der externen Klasse abwarten, bis data nicht mehr null ist? Danke und VG Jochen
  17. Guten Morgen! Ich bin auf der Suche nach einer Möglichkeit, Scenen/Maps von Usern in ein Spiel zu importieren. Dabei geht es nicht um den Import über den Editor, sondern in das Build. Also User können Maps erstellen mit der Unity Personal Edition - Diese auf meinen Server hochladen. Andere User können diese dann herunterladen und in das Spiel importieren. Ich wollte zwar zuerst auf einen internen Map Editor zurückgreifen (was ich parallel wohl auch machen werde), aber viele User wünschen sich auch, Maps in Unity selbst zu erstellen, da die Möglichkeiten einfach größer sind. Ähnlich wie früher bei Counter Strike und dem Hammer Editor. Besteht die Möglichkeit? Über Shared Assets ggf? VG
  18. Guten Morgen zusammen, nach langer Zeit komme ich endlich wieder dazu, mich mit einem neuen Projekt in Unity zu beschäftigen. Ich habe ein fliegendes Objekt. Dabei ist es mir sehr wichtig, dass ich möglichst reale physikalische Bedingungen schaffe, was die Fallgeschwindigkeit, Luftwiderstand etc. angeht. Die max. Fallgeschwindigkeit sowie max. Luftwiderstand habe ich bereits umgesetzt. max. Fallgeschwindigkeit: v = Mathf.Sqrt((2.0f*m*g)/(A*p*cw)); v = m/s m = Masse in kg g = 9,81 A = Querschnittsfläche des Objektes p = Luftdichte (1,2929kg/m³) cw = Widerstandsbeiwert max. Luftwiderstand: fl1 = 0.5*cw*p*A*Mathf.Pow(v,2); fl1 = Newton und mittels: rigidbody.drag = g/v; erhalte ich nun den korrekten Drag Wert. fl1 wäre dann der Wert den ich z.B. verwenden muss um mein Objekt schweben zu lassen. Nun ist es aber so, dass ich mein Objekt noch eine zusätzliche Kraft bekommt. Somit kann ich natürlich die Geschwindigkeit erhöhen, um das Objekt noch schneller zum Boden zu bewegen. Oder ggf. es horizontal zu bewegen. Wenn ich durch meinen zusätzlichen Antrieb die Widerstandskraft fl1 überbiete, fliegt mein Objekt ja schneller, aber müsste der fl1 dann nicht steigen? Bzw. Drag? Ich habe gerade ein Brett vorm Kopf. Ich dachte, ich kann in der FixedUpdate drag neu setzen zur aktuellen Geschwindigkeit. Allerdings sitzt hinter Drag ja schon von Unity eine Berechnung, da geht meine Lösung nicht auf. Mehr Geschwindkeit = mehr Widerstand = mehr benötigte Kraft um noch schneller zu werden. Und ab einem gewissen Punkt ist Widerstand - Kraft = 0 und man hat seine max. Geschwindigkeit erreicht. Aber wie ändere ich den Widerstand des Objektes zur Lauftzeit der aktuellen Geschwindigkeit mit Drag? Oder ist drag nur der Wert, der tatsächlich zur max. Fallgeschwindigkeit errechnet wird? Danke und Grüße
  19. Nabend zusammen! Nach langer Zeit habe ich mich mal wieder an Unity gesetzt. Ziel ist es, ein Fahrzeug zu bauen, bei dem AUCH die Lenkung animiert wird, also dass die Räder sich beim Lenken mitdrehen. Ich hatte das Ganze gestern schon umgesetzt, habe aber heute auf Unity 3.5 geupdatet und auf einmal war mein Model weg. Da es sich aber um ein Testmodel handelte habe ich schnell ein neues genommen. Es funktioniert alles ansich sehr gut, bis auf die Vorderräder. Sobald ich gas gebe, fangen die Räder an sich zu spiegeln. Ich habe die Räder bereits in ein neues GameObject gelegt um die Achsen einfach mal durchzutauschen. Der Code, den ich verwende für die Lenkung ist folgender: steer = Input.GetAxis("Horizontal"); if ( steer == 0 && WheelL.steerAngle != 0) { if (Mathf.Abs(WheelL.steerAngle) <= (steerAngleValue * Time.deltaTime)) { WheelL.steerAngle = 0; } else if (WheelL.steerAngle > 0) { WheelL.steerAngle = WheelL.steerAngle - (steerAngleValue * Time.deltaTime); } else { WheelL.steerAngle = WheelL.steerAngle + (steerAngleValue * Time.deltaTime); } } else { WheelL.steerAngle = WheelL.steerAngle + (steer * steerAngleValue * Time.deltaTime); if (WheelL.steerAngle > steer_max) { WheelL.steerAngle = steer_max; } if (WheelL.steerAngle < -1 * steer_max) { WheelL.steerAngle = -1 * steer_max; } } WheelR.steerAngle = WheelL.steerAngle; WheelFL.localEulerAngles.y = WheelL.steerAngle; WheelFR.localEulerAngles.y = WheelR.steerAngle; Das hat wie schon gesagt, gestern auch geklappt. Wie das Ganze nun aussieht, habe ich mal auf YouTube gepostet: http://www.youtube.com/watch?v=gzRhuUpo_bo Ich habe den linken WheelCollider mal weiter nach aussen gesetzt, damit es auch erkennen kann. Anfangs dachte ich, dass die Räder einfach nur immer auf einer Achse hin und her springen. Aber sie drehen sich wirklich um 180 Grad. Und dazu brauche ich nicht zu lenken. Wenn ich stehe und nur die Lenkung betätige funktioniert es. Weiss jemand woran es liegen könnte? Grüße EDIT: Ich habe gerade nochmal ein kleines Void auf YouTube hochgeladen. Da ich die Räder ja auch drehe wenn ich beschleunige, dreht sich tatsächlich das Rad immer wieder um die Y Achse um 180° Ich habe keine Ahnung woran das liegen könnte, da es dass vorher nicht gemacht hat.... Hier nochmal ein kleiner Auszug auf meinem Script: forward = Mathf.Clamp(Input.GetAxis('Vertical'), 0, 1); back = -1 * Mathf.Clamp(Input.GetAxis('Vertical'), -1, 0); if(speed == 0) { if(back > 0) { reverse = true; } if(forward > 0) { reverse = false; } } if(reverse) { motor = -1 * back; brake = forward; } else { motor = forward; brake = back; } WheelL.motorTorque = motor_max * motor; WheelR.motorTorque = motor_max * motor; WheelL.brakeTorque = brake_max * brake; WheelR.brakeTorque = brake_max * brake; // Lenkung var hit : WheelHit; var travelL = 1.0; var travelR = 1.0; steer = Input.GetAxis("Horizontal"); if ( steer == 0 && WheelL.steerAngle != 0) { if (Mathf.Abs(WheelL.steerAngle) <= (steerAngleValue * Time.deltaTime)) { WheelL.steerAngle = 0; } else if (WheelL.steerAngle > 0) { WheelL.steerAngle = WheelL.steerAngle - (steerAngleValue * Time.deltaTime); } else { WheelL.steerAngle = WheelL.steerAngle + (steerAngleValue * Time.deltaTime); } } else { WheelL.steerAngle = WheelL.steerAngle + (steer * steerAngleValue * Time.deltaTime); if (WheelL.steerAngle > steer_max) { WheelL.steerAngle = steer_max; } if (WheelL.steerAngle < -1 * steer_max) { WheelL.steerAngle = -1 * steer_max; } } WheelR.steerAngle = WheelL.steerAngle; WheelFL.localEulerAngles.y = WheelL.steerAngle; WheelFR.localEulerAngles.y = WheelR.steerAngle; WheelFR.Rotate(WheelR.rpm * 6 * Time.deltaTime, 0,0); WheelFL.Rotate(WheelL.rpm * 6 * Time.deltaTime, 0,0); WheelRR.Rotate(WheelL.rpm * 6 * Time.deltaTime,0, 0); WheelRL.Rotate(WheelR.rpm * 6 * Time.deltaTime,0, 0); und hier das zweite Video: http://www.youtube.com/watch?v=eA4ZAjnpCXY
  20. Nabend zusammen! Gerade habe ich ein Model in meine Szene gezogen und auf einmal erstellt sich direkt daneben eine Dublette. Die Dublette kann ich aber nicht ansprechen geschweige denn entfernen. Das Merkwürdige dabei ist, dass sie auch im GamePlay vorkommt. Ich hab bereits Unity neu gestartet und auch schonmal zwischen den Szenes hin und her gewechselt sowie den Graphic Sim umgestellt....keine chance. Hatte das schon einmal jemand hier und kann mir vllt. sagen wie ich das beheben kann? Mit Cmd+Z hatte ich Anfangs gedacht, dass ich wegbekomme aber auch da Fehleranzeige. Und ich muss sagen, DAS DING NERVT!!! Greezy und Danke
  21. Moins zusammen! Nach langer Zeit komme ich gerade wieder dazu, mich an mein kleines Game zu setzen und wollte es auch heute abschließen. Ich habe gerade folgendes Problem: Ich habe z.B. 30 Level. Jedes dieser Level bekommt eine ID zugewiesen. Des Weiteren soll jedes Level eine max. Punktzahl von 3 bekommen. Die Anzahl der PT Zahl muss ich nun irgendwie der ID zuweisen, damit ich sie sauber auslesen kann. Ich denke die ganze Zeit an eine Art mehrdimensionales Array. Kann ich das mit den PlayerPrefs auch umsetzen? Ich arbeite derzeit parallel mit Sencha Touch. Dort baue ich mir ja auch ein Model auf und nutze dieses dann in einem Storage. Wäre super, wenn sowas hier auch klappt. PlayerPrefs sind ja super simple, daher will auch darauf aufbauen... Geht das oder geht das nicht? Also das verschachteln? Oder hat jemand eine Idee, wie ich das lösen könnte? Greezy EDIT: Vergessen! Die ID soll jedes Level als Zahl bekommen. Also Level1 = ID 1, Level2 = ID 2 usw. Will dass die ID als Levelselektor agiert. ähnlich wie in einer Datenbank.... In ungefähr so: <level> <id>1</id> <pt>2</pt> </level> <level> <id>2</id> <pt>1</pt> </level> <level> <id>3</id> <pt>3</pt> </level> EDIT2: Ok, ich habe gerade erstmal was gefunden, was auf den ersten Blick auch erstmal funktioniert. http://www.unifycomm...itle=ArrayPrefs bzw. http://www.unifycomm...tle=ArrayPrefs2 Mal schauen, ob es auch auf iOS läuft... EDIT3: Das Ganze hat bisher leider nichts gebracht - Ist vllt. interessant, aber liefert mir nicht mein gewünschtes Ergebnis! Ein Bekannter hat mich aber auf die Idee gebracht, einen JSON String in den Prefs abzulegen(Wieso ich da nicht selber drauf gekommen bin...). Hat das hier schonmal jemand gemacht? Und wenn ja, wie am besten?
  22. Nabend! Zu später Stunde wieder ein Problem, an dem ich nun schon seit um 10 Uhr hänge. Ich verwende das TankControllerPackage von hier: http://activeden.net/item/tank-controller-pack/859889 Nun wollte ich den TestPanzer durch einen eignen austauschen. Das ganze sollte ja kein Thema sein. Nur bekomme ich nun Probleme mit dem "Fahrgestell". Ich habe extra das aus dem Testpanzer verwendendet. Anfangs war es so, dass der Panzer mit seinen Ketten im Boden versunken ist. Durch das anpassen des Radius in dem Wheel Collider konnte ich es einigermaßen beheben. Das Problem ist kaum zu beschreiben, daher hier ein Video dazu: http://www.youtube.com/watch?v=rAyfwBOUxdA Was könnte das sein und was könnte die Lösung sein? Der Panzer ist sehr komplex aufgebaut, was die fortbewegung angeht. Dabei wird scheinbar wirklich jedes Rad mit einbezogen und die Ketten Kraft auf den Boden (Was ich sehr cool finde)... Jat jemand eine Idee? MfG
  23. Nabend zusammen! Ich hoffe meine Frage ist hier richtig, da es sich um Mac dreht. Ich möchte gerade das Road and Path Tool verwenden. Um ein neus Path Node anzulegen, muss man ja Rechtsklick + P oder Mausrad + P drücken...wenn ich das aber ca. 3 mal mache, dann springt bei mir in Unity oben bei den Transformations Werkzeugen, das Hand Symbol auf ein Auge. Danach geht nichts mehr. Um da wieder rauszukommen, muss ich einmal Play drücken...damit hat sich das Ganze dann mit dem Path anlegen erledigt..... Gibt es dagegen abhilfe??? Danke und Grüße Jochen
×
×
  • Neu erstellen...