Jump to content
Unity Insider Forum

dosenbiiir

Members
  • Gesamte Inhalte

    199
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    2

Alle erstellten Inhalte von dosenbiiir

  1. Also zum Controller, ich kann dir den FirstPersonController aus den Standart Assets sehr ans Herz legen, der funktioniert bei mir supper Zu den Rucklern, ja die Perfomance ist auf jedenfall besser. Die von mir in dem anderen Thread beschriebenen immer wieder auftretenden Laggs sind immer noch da. Da solltest du am besten noch was dran tun. hab in dem anderen Thread ja mehr dazu geschrieben wie man das minimieren kann. Ich werde ggf. mal einen Feature Request an Unity senden den ich hier eventuell noch zum Upvoten verlinken werde. Vielleicht könnten die das Gras in mehreren Frames laden. Objekte lassen sich durch das Terrain plazieren und so wie @Helishcoffe geschrieben hat, solltest du das Objekte plazieren noch einmal überarbeiten. Eine mögliche Lösung habe ich dir in dem anderen Thread geschrieben. Des weiteren kann man nun in andere Objekte rein schauen, du hattest in dem anderen Thread geschrieben, du hat den "Fear" Parameter der 'Camera' geändert, bin mir nicht sicher ob du damit "Far" oder "Near" meinst, auf jedenfall sollte dein "Near" Parameter nicht größer als 0.3 sein´, da du sonst in die Objekte reinschauen kannst. 0.2 - 0.3 sind gute Werte. Also entweder dein "Near" Wert ist zu groß oder du hast deine BaumCollider zu klein gemacht
  2. Also generell kann ich dir nur zustimmen, und ja "realistisch" war vllt. das falsche Worte. Ich meinte weniger, dass die Steuerung realistisch sein sollte, sie wirkt nur im Vergleich zu anderen First Person Shooter Games merkwürdig. Wenn man einfach ein wenig durch die Gegend läuft, fällt das gar nicht so auf, sobald ich dann versuche auf einen Baum zu zusteuern hab ich das Gefühl das der Spieler trotzdem weiter in den Baum läuft. Also irgendwie fehlt mir die Präzision. Ich kanns auch nicht wirklich anders Beschreiben, ich finde es in anderen Spielen einfach angenehmer. Kann sein das ich mich nach einigen Spielstunden daran gewöhnen würde ich weiß nicht Ich hab auch das Gefühl, dass der Spieler unterschiedlich stark beschleunigt. Ich persönlich mag auch "In Air Controll" lieber
  3. Also ich habe dir ja schon in deinem anderen Post einiges geschrieben, ich möchte dir trotzdem ein kleines Feedback zum Spiel geben. Also erstmal finde ich das Spiel ganz gut von den bissherigen Funktionen her. Du solltest auf jedenfall an dem Character arbeiten, wie du ja geschrieben hast bleibt der ganz gerne mal irgenwo stecken. Des weiteren finde ich die Lauf-Bewegung irgendwie unnatürlich. Fühlt sich irgendwie komisch an. Ich finde der Character sollte z.B. schneller stehen bleiben wenn man die W taste aufhört zu drücken. Wenn man Objekte plaziert, drehen die sich schräg mit wenn man nach unten oder oben guckt. Ich denke die sollten immer gerade bleiben. Außerdem kann man Objekte in der Luft plazieren Und ich würde an deiner Stelle die Taste für das BaumStamm fallen lassen auch auf z.B. E setzen, sonst ist das zu kompliziert mit den ganzen Tasten. Und du könntest auch schon in den Test-Versionen die Anzeigen wie z.B. Hunger, Ausdauer etc. beschriften damit diejenigen die dein Spiel testen auch bescheid wissen was das ist Würdest du vllt. eine Test Version mit dem Dinos hochladen? Bin gespannt auf weitere Updates. Viel Erfolg, Dosenbiiir
  4. Also ob der NavMeshAgent eine bestimme Reichweite hat, kannst du ja ganz einfach ausprobieren Wenn der NavMeshAgent auf einer Stelle nicht weiter kommt, versuchst du einfach eine weiter entfernte Stelle, schafft er es jetzt, hast du das Problem ausgeschlossen. (Natürlich musst du in dem Versuch auschließen, das die vermeindlich weiter entfernte Position nicht einen kürzeren Weg auf dem NavMesh hat^^) Wie setzt du dein NavMeshAgent denn auf dem Boden? Einfach nur Spawnen reicht wahrscheinlich nicht aus. Am besten setzt du den NavMeshAgent mithilfe von "NavMesh.SamplePosition" so ermittelst du die nächste Position auf dem NavMesh. https://docs.unity3d...lePosition.html und aktiviere den NavMeshAgent erst, wenn du den Agent auf die richtige Position mithilfe von SamplePosition gebracht hast. Falls du die Agents nicht inGame spawnst sondern schon vor Spielbeginn im Editor plaziert hast, kannst du ja auch mal Versuchen, bei den Objekten wo es nicht geklappt hat, den Agent wie eben genannt im Editor zu deaktivieren (vor SpielBeginn), dann die Position mithilfe von SamplePosition ermitteln und die position des Agents ändern und dann den Agent aktivieren. Wenns jetzt klappt, weißt du woran es lag. Ich spawne prinzipiell alle Objekte mithilfe von SamplePosition, damit sie auch wirklich auf dem NavMeshSpawnen. Ist glaube etwas rechenintensiv, dehalb sollte man auch einen kleinen such Radius verwenden. Ich spawne meine Agents so, dass ich zunächst einmal einen Ray von oben auf meine Map schieße und sobald er dann ein haus oder Terrain getroffen hat sucht er mithilfe von SamplePosition eine position auf dem NavMesh. So reicht ein kleiner Suchradius aus. Du kannst natürlich auch feste Spawnpoints verwenden, dann brauchst du den Ray Kram gar nicht. (Kam bei mir nicht in Frage mit festen Spawnpoints) Ebenfalls soltlest du auschließen, dass einige Wege zu eng für den Agent sind (er muss ja auch einen gewissen Abstand zum Rand lassen usw. kann man ja alles einstellen (Radius etc.)) Ich hoffe ich konnte dir helfen Viele Grüße, Dosenbiiir
  5. Hey ich bins mal wieder, Die Spieler in meinem Projekt haben die Möglichkeit in Autos "einzusteigen" und damit zu fahren. Der Fahrer des Autos erhält die "ClientAuthority" (AssignClientAuthority) um das Auto zu steuern. (Das PlayerObjekt wird einfach deaktiviert, bis es wieder gebraucht wird (austeigen). Funktioniert auch so wie ich es mir gedacht habe, jedoch wird das Auto direkt gelöscht, sobald der Spieler disconnected... bei einem gewollten Disconnect per "Disconnect-Button" könnte ich den Spieler wieder aussteigen lassen und die clientAuthority wieder löschen bevor er disconnected. Das funktioniert jedoch nicht,wenn der Spieler die Verbindung verliert, das Spiel Crasht oder der Spieler das Spiel bewusst beendet (TaskManager...). Das Auto soll aber weiter in der Welt vorhanden sein, und ein löschen des Objektes würde auch Probleme mit anderen Spielern im Fahrzeug erzeugen usw.... hat jemand eine Idee, wie ich das verhindern könnte? EDIT: Neuerdings werden Spieler Objekte, also nicht ClientAuthority sondern "LocalPlayerAuthority" nicht mehr automatisch gelöscht. Ich könnte also notfalls das SpielerObjekt übertragen mithilfe von ReplacePlayerForConnection, wogegen ich mich bissher jedoch entschieden habe, da dies wahrscheinlich Probleme mit meinem PlayerObjekt gibt. Desweiteren entferne ich die PlayerObjekte wieder mithilfe von "DestroyPlayersForConnection". Wird in der Methode "OnServerDisconnect" im NetworkManager aufgerufe (immer wenn ein Spieler disconnected). Somit müsste ich eine Möglichkeit finden, dass das Auto erkennt, dass der Spieler fehlt, bevor das Objekt dann ebenfalls gelöscht wird aufgrund der eben genannten Methode. Hab jetzt auch noch keine Idee, wie das klappen sollte, aber selbst wenn ich das irgendwie hinkriegen sollte, eine gute Lösung finde ich dies nicht... Ich bin also dankbar für jede Idee die ihr habt Dankeschön! Viele Grüße Dosenbiiir
  6. PROBLEM gelöst: Ich habe vergessen die Camera von dem deadPlayer-Objekt auf dem 2.Client zu deaktivieren. Hey Leute, ich habe ein Problem mit dem Respawnen des Spielers. Zunächst starte ich auf Client 1 ein Host. Dann connecte ich mit einem anderen Spieler Client 2, welcher auf dem selben PC gestartet wird. Wenn der Spieler1 stirbt wird folgender Code aufgerufen: [Command] void CmdRespawnPlayer () { GameObject go = Instantiate (playerDeadPrefab, Vector3.zero, Quaternion.identity) as GameObject; NetworkServer.Spawn (go); NetworkServer.ReplacePlayerForConnection (connectionToClient, go, 0); NetworkServer.Destroy (gameObject); } Das Spieler-Objekt wird also gelöscht und es wird ein Menu-Objekt gespawnt, indem der Benutzer seinen Character neu spawnen kann. Das neue Player-Objekt wird mithilfe von NetworkServer.ReplacePlayerForConnection(...); auf den Client übertragen. Nun das Problem: Der Client2 bekommt auch als Player-Objekt das neue Menu-Objekt. Das alte Player 2 Objekt bleibt erhalten. Was habe ich falsch gemacht? Gibt es ein Problem mit "connectionToClient" Ich danke für eure Antworen Liebe Grüße Dosenbiiir
  7. Hey Leute, EIDT: Ich hab meine Frage umgeändert, weil sich das schon erledigt hat, jetzt ist nur noch folgende geblieben: Wenn man das Netzwerk nur mit einem Dedicated Server laufen lässt, ist dieser ja nur Server, das heißt ein ClientRpc dürfte da ja sowieso nicht aufgerufen werden (richtig?). Gibt es eine möglichkeit dies trotzdem zu tun, denn es wäre ja unnötig jedes mal eine extra Funktion zu machen, die genau das selbe tut? Liebe Grüße Dosenbiiir
  8. Hallo und Wilkommen bei uns ich komme auch aus Hamburg
  9. Hey Leute Ich wollte mal fragen ob euch irgendwas an dem script Aufällt was man so nicht machen sollte. Der Hintergrund ist, dass mein Spieler (ein Ball, der sich nach vorne bewegt) manchmal leicht hackt am handy. (Samsung Galaxy S4). using UnityEngine; using System.Collections; public class Controller: MonoBehaviour { public float forwardSpeed = 1; public float rotationSpeed = 1; public Vector2 touchPosition; public float xPixel; public float yPixel; Vector3 moveDirection = Vector3.zero; CharacterController controller; void Awake () { controller = GetComponent<CharacterController>(); xPixel = Screen.width; yPixel = Screen.height; } void Update () { if (Input.touchCount == 1) { touchPosition = Input.GetTouch (0).position; if (touchPosition.x <= xPixel / 2) { transform.Rotate(0,0,rotationSpeed); } else if (touchPosition.x > xPixel / 2) { transform.Rotate(0,0,-rotationSpeed); } } moveDirection = new Vector3(forwardSpeed,0,0); moveDirection = transform.TransformDirection(moveDirection); //rotation += 90; //transform.rotation = Quaternion.Euler(0, rotation, 0); transform.position += moveDirection * Time.deltaTime; } } Sonst habe ich nur noch das Camera Script in der Scene. using UnityEngine; using System.Collections; public class CameraFollow : MonoBehaviour { public GameObject player; Vector3 pos = Vector3.zero; // Update is called once per frame void Update () { pos = player.transform.position; pos.z -= 10; transform.position = pos; } }
  10. Die Links funktionieren nicht mehr schön erklärt
  11. Guten Abend Die frage hat sich gerade geklärt. Ich musste einfach nur ein Skript was ein Objekt bewegt meinem Prefab zuweisen, und sobald die Plattform spawnt bewegt sie sich Ich habe folgendes vor: Ich möchte ein Objekt per skript spawnen lassen und dieses nach unten bewegen. Es soll ca alle 2 Sekunden ein neues Objekt spawnen, was sich ebenfalls nach unten bewegt. Das ganze soll aktiviert werden, nachdem ein Box Collider betreten wurde. Das ist mit der OnTriggerEnter ja kein problem. Das objekt spawnt auch alle 2sekunden, aber wie bewege ich das neu gespawnte objekt? using UnityEngine; using System.Collections; public class Spawner : MonoBehaviour { public Transform spawnPoint; public GameObject spawnable; public float nextSpawn = 2; float currentTime = 0; bool onTrigger = false; void OnTriggerEnter () { onTrigger = true; //Collider wurde betreten } void Update () { currentTime += Time.deltaTime; if(onTrigger && currentTime > nextSpawn) { Instantiate(spawnable, spawnPoint.position, spawnPoint.rotation); currentTime = 0; } } } Was das bringen soll: Für mein 2D Sidescroll Spiel, wo man über einer der Plattformen rüber springen soll. -------------------------------------------------------------------------------------------------------------------------- Die frage hat sich gerade geklärt. Ich musste einfach nur ein Skript was ein Objekt bewegt meinem Prefab zuweisen, und sobald die Plattform spawnt bewegt sie sich Gruß Dosenbiiir
  12. Ja hallo leute Unzwar habe ich mir ein Directional light erstellet um meine Map zu beleuchten. Jetz wollte ich ein Tag nacht Rythmus erstellen. Dazu habe ich 2 Fragen. 1. Ich habe mir ein neues Game Objekt erstellet und einen Halo erstellt. Dann habe ich folgendes geschreiben: (kleiner ausschnitt ums kurz zu halten) if(day) { sun.position.y+=Time.deltaTime*0.1; sun.position.z-=Time.deltaTime*0.1; } if(night) { sun.position.y-=Time.deltaTime*0.1; sun.position.z-=Time.deltaTime*0.1; } } Jetz wird die Sonne nur schräg hoch und schräg wieder runter gehen. Giebt es eine möglichkeit dass die Sonne rund läuft? Und meine 2. Frage ist: Ich möchte nun auch Schatten haben also habe ich im Inspector Schatten aktiviert, und wollte mit folgendem Skrippt das Directional light um ihre x-Achse rotieren lassen, damit die schatten sich auch bewegen. var sun:Transform; ......... if(day) { licht.rotation.x-=Time.deltaTime*lichtRotation; } Wenn ich jetz das spiel starte sprignen die Zahlen von den Achsen alle einmal auf was anderes und danach verändern sich langsam alle, obwohl sich doch nur die x-achse verändern sollte. Ich hoffe ihr könnt mir helfen. und bedanke mich im Voraus MFG Dosenbiiir
  13. könntest du bitte das ganze Skript einmal einstellen. Weil bei mir hat das immer noch Net geklappt. habe alles abgeschrieben ..... BITTE :-) Mit freundlichen Grüßen dosenbiiir
×
×
  • Neu erstellen...