Jump to content
Unity Insider Forum

Elharter

Members
  • Content count

    200
  • Joined

  • Last visited

  • Days Won

    3

Elharter last won the day on February 15

Elharter had the most liked content!

Community Reputation

19 Gut

About Elharter

  • Rank
    Advanced Member
  • Birthday 07/17/1981

Profile Information

  • Gender
    Male
  • Location
    Vienna

Recent Profile Visitors

1,133 profile views
  1. Elharter

    Editor Lags analysieren

    Hey, hat jemand eine Ahnung wie ich einen Ingame-Lag analyisieren oder herausfinden könnte? Wenn ich einen Build erstelle läuft alles flüssig.... konkret geht es um ein gewöhnliches ScrollRect das ich per instanzierte Listenelemente befülle. Starte ich den Build im Editor ist es mir fast niht möglich zu scrollen. danke & lg
  2. Hallo, bitte um Hilfe, ich stehe an... wenn ich ein mehrdimensionales Array in einer Klasse anlege, wie kann ich dann darauf zugreifen? Ich steh gerade komplett an tracks wird gefüllt per JSON Script (TrackInfo tracks = JsonUtility.FromJson<TrackInfo>(www.text);) danke [System.Serializable] public class RootObject { public TrackInfo[] tracks; } [System.Serializable] public class TrackInfo { public int id; public int userid; public int steamuserid; public string filename; public int filesize; public string filehash; }
  3. Elharter

    Problem mit C#/PHP File Upload

    Okay....ich hab mich nun nochmal 3h hingesetzt und den Fehler gefunden. Es war ein einfacher Logikfehler im Skript, sonst nichts. Ich habe in der Funktion die CoRoute (UploadFileCo) in einer Schleife in wenigen Millisekunden hunderte male aufgerufen.....das führte (natürlich) zu einem "429 too many requests" Fehler. Habe die Schleife zum auslesen der Files nun in die UploadFileCo Iterator eingebaut und jetzt zieht auch das WaitforSeconds....und somit funktioniert es. lg
  4. Elharter

    Problem mit C#/PHP File Upload

    Ja... das habe ich bereits. Mit normalen http requests passiert auf dem Server absolut nichts ... das Verhalten ist so strange.
  5. Elharter

    Problem mit C#/PHP File Upload

    Ich habe es umgeschrieben weil ich dachte dass es unter Umständen die Ursache für mein Problem ist und eine 2te Coroutine verwendet. Ich habe es natürlich auch mit yield return new WaitForSeconds(6.0f); probiert.....hat sich in keinster Weise verändert. Danke vorerst für deinen verlinkten Post, den werd ich mir ansehen! @429 Fehler: Es verhält sich jedesmal anders. 1x lädt er alle Dateien hoch, beim 2ten Versuch nur die letzten 20.....beim 3ten Versuch macht er überhaupt nur 3. Ich lese das Verzeichnis aus (dort liegen ca. 55 Files) und die lade ich der Reihe nach auf den Server hoch in einem zug (mit dem WaitForSeconds als Pause dazwischen). lg
  6. Hallo liebe Freunde, ich habe ein seltsames Phänomen das ich nicht eingrenzen kann. Auf C# Seite ein einfaches Skript zum hochladen von Binärdateien: IEnumerator UploadFileCo(string uploadURL, string trackname) { //Debug.Log("uploadurl:"+uploadURL); //Debug.Log("trackname:"+trackname); //wait for 2 seconds to avoid error 429 to many requests on php side yield return StartCoroutine(Wait(6.0f)); WWW localFile = new WWW(trackname); yield return localFile; WWWForm postForm = new WWWForm(); postForm.AddBinaryData("file", localFile.bytes, trackname); WWW upload = new WWW(uploadURL, postForm); yield return upload; if (upload.error == null) { Debug.Log(upload.text); //Debug.Log("upload error null"); } else { Debug.Log(upload.text); Debug.Log("Error during upload: " + upload.error +" at " + trackname + " and url was:" + uploadURL); } } IEnumerator Wait(float seconds) { yield return new WaitForSeconds(seconds); } Auf der PHP Seite genauso einfach: <?php require_once ("mysqlconnect.php"); $thefile = $_FILES['file']; if(!empty($thefile)) { $uploadfile = '/blabla/tracks/' . $_FILES['file']['name']; $filename = $_FILES["file"]["name"]; $filetype = $_FILES["file"]["type"]; $filesize = $_FILES["file"]["size"]; $tempfile = $_FILES["file"]["tmp_name"]; //once all safety checks are done, you can safely move the file from the temporary location to a public accessible location move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile); $query = "insert into files values (DEFAULT,1,1, '$filename', '$filesize','123abc');"; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); echo "ok"; } else { echo "failed"; } ?> So....jetzt hol ich mir aus einem String-Array die Dateileiste und will ca. 55 Dateien hochladen. Zu Beginn hat das anstandlos funktioniert.....umso länger ich gecoded habe umso stranger wurde das Verhalten. Primäres Problem dabei ist: Es tritt ständig verschieden auf.....manchmal gehen alle Files durch, manchmal kaum welche. Bevor diese Meldungen auftraten, gingen die "größeren" Files nicht durch. Ich wollte es mit WaitforSeconds abfangen....aber das ändert irgendwie 0,0. Was mache ich falsch? danke
  7. Elharter

    Rotate & Movement

    Du drehst das monster SELBST nirgendwo..... du bewegst es in alle möglichen Richtungen. Du musst das monster per Rotate in sich noch drehen damit es sich auch dorthin schaut wo du es willst Mir ist noch ein wenig unklar was und wie du drehen willst. Welche Perspektive? Was soll sich mit welcher Eingabe drehen? Es hängt ja auch alles immer von der Perspektive ab. Aber grundsätzlich: du willst das sich das Objekt (monster) selbst auch dreht .....dH dh wenn du nach rechts gehst, soll sich das Gesicht von dem Monster auch nach rechts drehen.
  8. Ok .... gelöst und erledigt. Ich setze einfach für alle Trackobjekte > trackObject.layer = 2; // set Ignore Raycast Layer Somit stehen sich alle Objekte nicht mehr gegenseitig im Weg herum. Auch wenn noch ein paar alte (nicht zerstörte Objekte) beim Ladevorgang vorhanden sind. Yeah - danke Zer0
  9. Okay noch besser eingegrenzt mit: if (Physics.Raycast(trackObject.transform.position, Vector3.down, out hit)) { distanceToGround = hit.distance; Vector3 incomingVec = hit.point - trackObject.transform.position; Vector3 reflectVec = Vector3.Reflect(incomingVec, hit.normal); Debug.DrawLine(trackObject.transform.position, hit.point, Color.red, 30, false); //show-spawn line Debug.DrawRay(hit.point, reflectVec, Color.green, 30, false); //show reflection-line if (!hit.transform.gameObject.name.Contains("Terrain")) { Debug.DrawLine(trackObject.transform.position, hit.point, Color.yellow, 60, false); //show line if the object didnt hit terrain Debug.Log("Object " + prefab + "/ hitted:" + hit.transform.gameObject); } trackObject.transform.position = hit.point; if (TerrainRotation == true) { trackObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal); } } dH ich sehe wenn ein Objekt NICHT auf dem Terrain hitted.... ich krieg ne gelbe Linie und einen Debug.Log raus... Ergebnis1: Object StandNew (UnityEngine.GameObject)/ hitted:StandNew(Clone) (UnityEngine.GameObject) Die Tribüne hitted sich selbst..... toll. Ergebnis2 eine Barriere hittet ein Objekt das gar nicht auf der Map existiert...... meine Vermutung also: beim reload des Tracks sind "alte" Objekte noch kurz vorhanden. Vor jedem Track-Load cleare ich alle vorhergehenden Trackobjekte mit: //clear existing Trackobjects foreach (Transform child in trackobjectsParent.transform) { GameObject.Destroy(child.gameObject); } Offensichtlich dauert das zu lange...
  10. Elharter

    umfangreiche Daten abspeichern

    Hier auch etwas zu lesen: http://previewlabs.com/writing-playerprefs-fast/
  11. okay....das bringt erleuchtung...aber ich bin noch verwirrter als vorher: Wirft: Object Booth_Prefab (UnityEngine.GameObject)/ hitted:StandNew(Clone) (UnityEngine.GameObject) .... Booth = sind diese Hütten StandNew sind die Tribünen... wtf die sind nicht mal irgendwie in der Nähe !?!?!?!
  12. Elharter

    Terrain heigths setzen

    Richtig... in meinem Fall ist es halt 64x64 groß und immer gleich - deshalb so fixiert.
  13. Hallo, irgendwas hats in meinem Code und ich finde den Fehler nicht... ich instanziere diverse Objekte per Script. Davor erstelle ich ein Terrain. void CreateTrackObject(GameObject prefab, float x_clamped, float y_clamped, float rotation, bool TerrainRotation, float worldSize, string tagdecl) { GameObject trackObject = Instantiate(prefab, new Vector3(x_clamped, 50, y_clamped), Quaternion.identity); trackObject.transform.parent = trackobjectsParent.transform; trackObject.tag = tagdecl; RaycastHit hit; float distanceToGround = 0; if (Physics.Raycast(trackObject.transform.position, Vector3.down, out hit)) { distanceToGround = hit.distance; Vector3 incomingVec = hit.point - trackObject.transform.position; Vector3 reflectVec = Vector3.Reflect(incomingVec, hit.normal); Debug.DrawLine(trackObject.transform.position, hit.point, Color.red, 30, false); //show-spawn line Debug.DrawRay(hit.point, reflectVec, Color.green, 30, false); //show reflection-line trackObject.transform.position = hit.point; if (TerrainRotation == true) { trackObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal); } } //maybe this line should be moved to a higher line-position after rayhasthit hit trackObject.transform.localEulerAngles = new Vector3(0, rotation, 0); } An sich funktioniert das soweit ganz gut....aber in manchen Fällen fliegen die Objekte in der Luft obwohl NICHTS in der Nähe ist was kollidieren kann. Siehe Foto. Woran kann das liegen? Ich habe auch schon versucht Objekten den Layer "IgnoreRaycast" zu geben um zu verhindern das sich die gegenseitig im Weg sind -> hilft nix. lg
  14. Ja, tust du glaube ich. Ahhh okay. Dictionary lautet das Stichwort. Ich lese mich mal ein. danke
×