Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

3ncrypt0

Members
  • Content count

    147
  • Joined

  • Last visited

  • Days Won

    2

3ncrypt0 last won the day on September 16 2016

3ncrypt0 had the most liked content!

Community Reputation

7 Neutral

About 3ncrypt0

  • Rank
    Advanced Member

Recent Profile Visitors

1,623 profile views
  1. 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
  2. Hi @hankey94, ChildAlignment der VerticalLayoutGroup sitzt auf TopCenter. Das Problem hier ist ja, dass sich das Parent RectTransform in der Breite anpassen muss. Ich habe nun mal etwas getestet: LayoutGroup weg (sind nur 3 Buttons im Menu). Wir die App gestartet bzw. die MenuScene geladen, so lese ich die gewählte CurrentLanguage aus den PlayerPrefs uns passe dementsprechend den Text in den Textfeldern an. Dann habe ich mir eine MenuWidthFix Class geschrieben. Diese habe ich auf das Parent der Menupunkte gelegt - dort frage ich alle ChildTextComponents ab, lese die Breite aus (die Texte haben ein ContentSizeFitter, damit sich die Breite dem Inhalt anpasst) und die größte Breite setze ich dann auch als Breite auf das Parent. Der Pivot des Parents ist mittig gesetzt, die Menupunkte immer links. Fazit: Das Parent ist immer mittig positioniert in der Breite des breitesten Menupunktes. Die Menupunkte sitzen immer links - also dann auch mittig. Nur gibt es noch ein Problem. Der FixClass: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class MenuWidthFix : MonoBehaviour { public GameObject panel; [SerializeField] private float w = 0; void Start(){ Invoke ("changeMenuWidth", .05f); } public void changeMenuWidth(){ w = 0; Text[] textComponents = panel.GetComponentsInChildren<Text> (); foreach (Text t in textComponents) { if (t.GetComponent<RectTransform> ().sizeDelta.x > w) { w = t.GetComponent<RectTransform> ().sizeDelta.x; } } setWidth (); } void setWidth(){ panel.GetComponent<RectTransform> ().sizeDelta = new Vector2 (w,295); } } Ich muss den changeMenuWidth zeitverzögert aufrufen, da ich sonst immer eine Breite von 0 auf den Text Objekte auslese. Ändere ich die Sprache in der SettingsClass: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Settings : MonoBehaviour { public MenuWidthFix menuFix; public void ChangeLanguage(string key){ PlayerPrefs.SetString ("CurrentLanguage", key); Text[] allTextAssets = FindObjectsOfType (typeof(Text)) as Text[]; Debug.Log ("1"); foreach (Text text in allTextAssets) { if (text.GetComponent<MultiText> () != null) { text.GetComponent<MultiText> ().reloadLanguage (); Debug.Log ("2"); } } Debug.Log ("3"); menuFix.changeMenuWidth (); StartCoroutine (changeWidth()); } IEnumerator changeWidth(){ yield return new WaitForSeconds(.1f); //menuFix.changeMenuWidth (); } } Muss ich den Aufruf der FixClass auch zeitverzögert durchführen - das ist strange. Ich habe mal ein paar Debug.Logs eingesetzt um zu schauen, wann was wann aufgerufen wird und eigentlich sollte es passen. Erst wenn alle Textfelder geändert sind, wird FixClass aufgerufen, trotzdem ließt diese noch die alten Breiten aus... Die Funktion zeitverzögert aufzurufen, sieht total bekloppt aus... jemand eine Idee? Danke und VG EDIT: Hier mal temporär ein Video, was ich meine:
  3. Hi zusammen, ich habe heute in meiner App weitere Sprachen hinzugefügt. Mein Mainmenü in der ersten Scene ist horizontal mittig positioniert. Ändere ich die Sprache, so ändert sich auch die Länge der Navigationspunkte. Gibt es eine Möglichkeit, dass sich die Punkte immer mittig zentrieren? Die Menüpunkte befinden sich in einer Vertical Layout Group. Die Punkte sind Buttons und dort drin ist das jeweilige TextObjekt. Oder muss ich die Ausrichtung via Script manuell mit vordefinierten Werten vornehmen, wenn sich die Sprache ändert? Danke und VG Jochen
  4. 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
  5. 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
  6. Ja, Danke! Ich habe mit dem Animator kaum Erfahrung und tue mich damit noch etwas schwer...aber das war die Lösung!
  7. Ah okay! Super Danke! Gut zu wissen - Verwende nun zwar Animationen, aber ich werde es bestimmt noch einmal benötigen...
  8. Hi zusammen, in einem kleinem Kartenspiel, muss der User Karten, welche vorher verdeckt sind, umdrehen. Dazu habe ich folgende Variante versucht: void OnMouseUp(){ StartCoroutine(RotateMe(Vector3.right * 180, .6f)); } IEnumerator RotateMe(Vector3 byAngles, float inTime) { var fromAngle = transform.rotation; var toAngle = Quaternion.Euler(transform.eulerAngles + byAngles); for (var t = 0f; t < 1; t += Time.deltaTime / inTime) { transform.rotation = Quaternion.Lerp(fromAngle, toAngle, t); yield return null; } StartCoroutine(WaitToSee()); } Das funktioniert auch halbwegs gut, nur leider endet die Rotation nie bei 180° oder 0° sondern weicht immer ein wenig ab, was dazu führt, dass Karten schräg dargestellt werden. Eine weitere Variante welche ich getestet habe und welche ich persönlich auch besser finde, da die Rotationsanimation besser gestaltet werden kann, sind ganz normale Animationen. Die Karten werden bei Spielbeginn instanziiert. Ich habe auf einer Karte eine Animation erstellt und wollte diese auf alle weiteren Karten in den Prefabs übertragen, allerdings habe ich auch eine Positionstransformation auf Y erstellt. X&Z sind dementsprechen auch in der Animation erhalten. Fazit: Alle Karten werden sobald die Animation startet, auf die gleiche Position verschoben Kann ich die X&Z Achsen von der Animation ausnehmen? Danke und VG EDIT: Habe gerade eben festgestellt, dass mein ChildObject mit der Animation nicht auf zero im parent lag - dann kann das mit der Animation natürlich nichts werden. (Jedes mal wenn ich einen Thread erstelle, finde ich meist ein paar Minuten später selber die Lösung...egal wie oft ich vorher nachgeguckt habe...sorry) - Was mich aber noch stört ist, dass die Animation mit rund 1sek Verzögerung startet ich aber keine Angegeben habe.
  9. Boooooahr Ja, genau das war es - Es gibt Tage, da sollte man besser im Bett liegen bleiben... Die Scripte als Requirement anzugeben hatte mich aber auch nicht weiter gebracht, da ich den gleichen Fehler bekommen hatte. Super wäre es, wenn man einen Fehler hat, diesen in der Console anklickt und er dann auf das Object springt.
  10. Hi, beide Klassen hängen ja am selben Gameobject. Genau das ist es ja, was mich wundert. Auch dass die Log Ausgabe aus Test() in der Console ausgegeben wird. Ich habe die Klassen nun mal als Requirement gesetzt, was mich aber nicht weiter bringt. Hier mal ein Screenshot:
  11. Hi zusammen, ich arbeite gerade an meiner AI und und habe nun folgendes Problem: Ich arbeite mit relativ vielen Klassen, die meisten sind jedoch einem Objekt zugeordnet. Ich habe eine Klasse AIBrain in der ich mehr oder weniger für die jeweilige AI alles lokal steuer. Dann habe ich z.B. noch eine Klasse AISight in der ich prüfe, ob der Player sich in der Nähe befindet und ob ich freie Sicht auf diesen habe. Teilausschnitt AIBrain.cs: public class AIBrain : MonoBehaviour { public GameObject parent; private GameObject Player; private GameObject centerOfMap; private AIManager AIManager; private AI AI; private AIWaypoint AIWaypoint; private AITransition AITransition; private AISight AISight; private AeroplaneAiControl AeroplaneAiControl; private AISensitivity AISensitivity; public GameObject DefendObject; public AIFunctions.AIStates currentState; private bool playerDetected = false; void Start() { AIManager = GameObject.FindGameObjectWithTag("EnemyManager").GetComponent<AIManager>(); AI = parent.GetComponent<AI>(); AIWaypoint = parent.GetComponent<AIWaypoint>(); AITransition = GetComponent<AITransition>(); AISight = GetComponent<AISight>(); AeroplaneAiControl = parent.GetComponent<AeroplaneAiControl>(); AISensitivity = GetComponent<AISensitivity>(); centerOfMap = GameObject.FindGameObjectWithTag("CenterOfMap"); currentState = AI.AIState; Player = GameObject.FindGameObjectWithTag("Player"); } void Update(){ { if (AISight.Test()) //FEHLER - NullReferenceException { AI.AIState = AIFunctions.AIStates.ATTACKING; } else if (!AISight.Test() && playerDetected) { AI.AIState = AIFunctions.AIStates.IDLE; } } Bei AISight.Test() wirft er mir die Exception. AISight selber ist aber da. Hier die AISight.cs: public class AISight : MonoBehaviour { [SerializeField] private float distance = 300f; // how far they can see the target [SerializeField] private float arc = 60f; // their field of view public bool Test() { Debug.Log("Detect"); return true; } Das Komische ist, dass er "Detect" in der Console ausgibt. Die Test() wird aber nur aus der AIBrain aufgerufen. Ich sehe den Fehler einfach nicht. Kann mir da mal jemand auf die Sprünge helfen? Danke und VG
  12. SmoothFollow mit Rotation für Flugzeuge

    Hi, das Fadenkreuz ist immer in der Mitte vom Bildschirm - Das Flugzeug kann sich aber komplett frei bewegen. Also nicht so wie in dem Video. Ich konnte es nun so lösen, dass ich ein ChildObject in meinem Flugzeug erstelle, dieses etwas über und hinter das Flugzeug positioniere und dann die Kamera dann dieses als Target bekommt. In dem Fall dann die Offsets entfernen.
  13. Hi, ich suche seit gestern nach einer Lösung für ein SmoothFollow Script mit Rotation - Die Kamera soll ein Flugzeug verfolgen. Das Flugzeug kann sich natürlich auch auf den Kopf drehen, und die Kamera sollte die Drehung verfolgen. Ich habe anfangs mit LookAt() rumprobiert, konnte aber das Problem mit der Verfolgung der Rotation nicht lösen. Bei folgender Lösung bin ich nun: public Transform aircraft; public float speed = 5f; public float offsetY; public float offsetX; public float offsetZ; private void LateUpdate() { transform.rotation = transform.rotation = Quaternion.Lerp(transform.rotation, aircraft.rotation, speed * Time.deltaTime); transform.position = Vector3.Lerp(transform.position, new Vector3(aircraft.position.x+offsetX, aircraft.position.y+offsetY, aircraft.position.z+offsetZ), Time.deltaTime * speed); } Da es 3rdPerson ist und ich auch ein Fadenkreuz habe, sollte das Flugzeug immer unter dem Fadenkreuz sein - hier ist es aber so, dass wenn ich das Flugzeug um z.B. 180° um Z drehe (also eine Rolle auf den Kopf), dieses sich dann oberhalb meines Fadenkreuzes befinden. Drehe ich es um 90°, ist es links oder rechts neben dem Fadenkreuz. Mit offsetX und offsetY würde ich die Position nun gerne anpassen, weiß aber nicht wie ich das berechnen soll. Wenn initial offsetY auf 8 steht, ich dann eine 180° Rolle mache, müsste offsetY ja -8 sein. Kann mir da mal jemand helfen? Oder kennt jemand vllt. eine bessere Lösung für ein SmoothFollow Script für Flugzeuge? Danke! EDIT: Das gleiche Problem habe ich natürlich bei eine Drehung um die X Achse, also Pitch.
  14. Enemy detection mit Raycast in FOV inkl. Kopfbewegung

    Hi, Danke! Das hatte funktioniert - allerdings schien das nicht die beste Lösung zu sein - also grundlegend einer EnemyDetection. Ich hab es nun ein wenig anders gelöst: void EnemyDetection(Transform player) { if (Vector3.Distance(transform.position, player.position) < distance) { var playerDir = (player.position - transform.position).normalized; if (Vector3.Dot(transform.forward, playerDir) > 0 && Vector3.Angle(transform.forward, playerDir) < arc) { Debug.DrawLine(transform.position, transform.position + playerDir * distance, Color.red); RaycastHit hitInfo; if (Physics.Raycast(transform.position, player.transform.position - transform.position, out hitInfo) == true) { if (hitInfo.collider.gameObject.tag == "PlayerCollider" && !this.detected && player != null) { this.parent.GetComponent<AeroplaneAiControl>().SetTarget(hitInfo.collider.gameObject.transform); this.detected = true; } } } } else if(Vector3.Distance(transform.position, player.position) > distance && this.detected) { this.parent.GetComponent<AeroplaneAiControl>().SetTarget(this.currentWaypoint.transform); } } Ich prüfe erst den Abstand zwischen meinem Player und der AI, kommen sich beide relativ nah, prüfe ich ob der Player sich in einem bestimmten Winkel vor der AI befindet, dann feuer ich einen Raycast und prüfe ob es wirklich mein Player ist und ob ich diesen erreiche oder ob andere Gegenstände dazwischen sind.
  15. Enemy detection mit Raycast in FOV inkl. Kopfbewegung

    Ja - Ich habe ja auch das selbe Problem, wenn wir den Kopf mal ignorieren. Lege ich das Script direkt auf das MainObject (ohne Kopfnicken), so darf ich das MainObject auch nur um Y drehen. Der Raycast ist also nicht starr nach vorne vom MainObject aus gesehen.
×