Jump to content
Unity Insider Forum

Seyshiro

Members
  • Content Count

    44
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Seyshiro

  • Rank
    Advanced Member

Recent Profile Visitors

1,216 profile views
  1. Nun du könntest die Objekte relativ zur Entfernung der Kamera skalieren, aber wie Sascha schon sagte, gehen dann die Proportionen flöten. Als Alternative würde ich eine Markierung vorschlagen (z.B.: ein Sprite, das einen Pfeil enthält), der ab einer gewissen Entfernung des Objekts zur Kamera aufploppt und auf die Position des Objekts deutet.
  2. Hi@all, ich habe mir grade eine kleine "Zeichen"-Funktion erstellt. Im Prinzip erstelle ich einfach nur einen LineRenderer und erstelle neue Punkte an der aktuellen Mausposition, wenn sie sich vom letzten gezeichneten Punkt eine gewisse Distanz entfernt hat. Dem LineRenderer habe ich eine "Corner Verticies"-Anzahl von 8 gegeben, um die Ecken etwas abzurunden. Das Problem ist nur, dass die gezeichneten Linien an den Ecken diese merkwürdigen hervorstehenden Kanten haben. Hat irgendjemand eine Idee woran das liegen könnte und wie ich das Problem beheben kann?
  3. Hi@all, hatte neulich eine kleine Idee für ein Online-RPG für Mibile-Geräte. Das Grundkonzept steht alles auch schon soweit. Dadurch dass dieses Spiel Online seien soll und Spieler in gewissem Maße auch miteinander interagieren können sollen habe ich mir nun auch einige Gedanken darüber gemacht, wie ich dieses Spiel möglichst gegen Cheater / Hacker absichern kann und bin zu folgender Lösung gekommen: Da das Spiel Online ist müssen selbstverständlich die Spieler Identifiziert werden. Daher müssen sie sich bei der Erstnutzung logischerweise registrieren und danach einloggen. Der Server sendet dann dem Game eine Session-ID mit der die Identifikation stattfindet. Nun ist es wichtig, dass alle Berechnungen, welche die Serverdaten beeinflussen (direkt oder indirekt) nicht im Game sondern auf dem Server selbst ablaufen. D.h. wenn ich z.B. in dem Spiel einen "Add Exp"-Button hätte, der dem Spieler jedes mal beim draufklicken 50 Erfahrungspunkte gibt, dann sende ich dem Server nicht die Anzahl der Erfahrungspunkte, sondern nur die Info, dass der Spieler den Button geklickt hat. Alles weitere (das hinzufügen der Exp und evtl. der Level-Up) passiert dann auf dem Server und der sendet dann die neuen Daten (Exp, Level, etc.) wieder zurück an das Game. Für den Datenaustausch wollte ich auf dem Server eine REST-API mit PHP ( +Framework) und MySQL erstellen. Die Daten würden selbstverständlich verschlüsselt übertragen werden. So... nach dieser etwas langatmigen Erklärung ist meine Frage eigentlich nur, ob das so gemacht werden kann oder ob Unity (oder vielleicht auch ein 3.-Anbieter) für so einen Fall schon selbst eine gute Lösung parat hält?
  4. OK, sowas habe ich schon befürchtet. Dann muss ich mir mal Gedanken machen, wie ich da am besten den Überblick behalte. Danke für eure antworten.
  5. Hi@all, ich bin z.Z. dabei mir für ein kleines Projekt in Unity einen Game Charcter mit mehreren Animationen in Blender zu erstellen. Nun bin ich allerdings auf ein kleines Problem gestoßen, das mich ein wenig Wurmt. Wenn ich z.B. eine Animation habe, bei der nur die Joints für die Wirbelsäule manipuliert werden müssen und bei einer weiteren Animation, nur die Joints für die Arme und Beine, dann besteht das Problem, dass nach dem Abspielen, der Arm-und-Bein-Animation die Wirbelsäulen-Animation nicht mehr in ihrer üblichen Ausgangspose ist, da die Joints für Arme und Beine ja von der anderen Animation manipuliert wurden. Jetzt wäre der simpelste Gedanke einfach der, dass ich am Anfang der Wirbelsäulen-Animation auch Keyframes für die Joints der Arme und Beine und bei der Arm-und-Bein-Animation am Anfang Keyframes für die Joints der Wirbelsäule setze damit die jeweiligen Ausgangspositionen der Joints in den einzelnen Animationen auch beibehalten werden aber ist das auch die richtige Vorgehensweise? Oder gibt es da möglicherweise eine einfachere Methode? Denn das stelle ich mir ziemlich umständlich vor, wenn man mehrere Animationen für ein Objekt hat, man dann später eine weitere Animation hinzufügen will, z.B. einen Follow-Path-Modifier für bestimmte Joints, und dann in allen anderen Animationen diese Modifier deaktivieren muss. Phu... ich hoffe ihr versteht was ich meine.
  6. Versuchs mal hiermit. using UnityEngine; public class TriggerChecker : MonoBehaviour { private bool isInTrigger = false; private void OnTriggerEnter(Collider other) { isInTrigger = true; } private void OnTriggerExit(Collider other) { isInTrigger = false; } private void Update() { if (!isInTrigger) { // do something } } } Ich hab den Code zwar nicht getestet aber er sollte eigentlich funktionieren. Im if-Block innerhalb der Update Methode kannst du jetzt deinen Code ausführen.
  7. @malzbie Danke für die schöne Erklärung. Ist das Erstellen so eines Fake-Lichtbrechungs-Shaders für glatte Oberflächen auch mit dem Shader Graph möglich? Und wenn ja, wie kann ich das am besten umsetzen? Mir fehlt da irgendwie der Ansatz.
  8. Hi@all, Ich hoffe, dass sich der ein oder andere schon ein wenig mit Shader Graph auseinandergesetzt hat und mir sagen kann, ob es schon möglich ist, damit einen transparenten Shader mit Lichtbrechung umzusetzen.
  9. Ich verstehe leider nicht so wirklich was du meinst. Könntest du das bitte noch etwas näher erläutern. Was für Datenstrukturen und was genau meinst du mit Felder?
  10. Da ich mich selbst auch sehr für die neuen Render Pipelines interessiere habe ich mich mal ein bisschen damit auseinander gesetzt und mich ein bisschen darüber belesen. Es kann sein das ich mich irre ( was mich sehr freuen würde ) aber wie es aussieht, funktionieren die meisten Post Processing Effects noch nicht mit den neuen Pipelines. Ist halt alles noch in der Preview-Phase aber da das Unity-Team sich damt z.Z. stark auseinandersetzt denke ich mal , dass das in den nächsten paar Releases funktionieren wird.
  11. Bin mir jetzt nicht 100%ig sicher ob es das ist was du suchst, aber probier mal folgendes: #if UNITY_EDITOR // Editor-Only-Code #endif Alles was innerhalb dieser Directive steht, wird nur im Editor ausgeführt, nicht aber im fertigen Build.
  12. Er meint, dass du ein Empty Object erstellst und diesem dann die Camera als Child unterordnest. Dann gibst du dem Empty Object noch einen Collider, einen RigidBody und das Script, das für die Bewegung zuständig ist. (Welches du vorher sicherlich der Camera selbst zugeordnet hast)
  13. Die Anzahl der sichtbaren Polygone die man ohne große Leistungseinbußen auf dem Bildschirm darstellen kann hängt nicht nur ein bisschen sondern sehr stark vom System ab. Ich habe das Wort "sichtbar" deswegen unterstrichen, weil Unity (so wie so ziemlich jede andere moderne Gameengine) hauptsächlich die Polygone berechnet, die auch auf dem Bildschirm sichtbar sind, d.h. wenn wenn sich ein Objekt hinter einem anderen befindet oder außerhalb des Sichtbereiches der Camera, und somit auf dem Bildschirm nicht angezeigt wird, dann wird auch keine Rechenleistung für die Darstellung dieser Polygone verschwendet. (Bei Dingen wie physikalischen Berechnungen sieht die Sache wieder etwas anders aus). Zudem gibt es auch noch so schöne Systeme wie LOD (Level of Detail), mit denen man nochmal einiges an Grafikleistung einsparen kann. Desweiteren denke ich nicht, das es sich so sehr auf deine FPS Rate auswirkt, ob du nun 30 oder 300 Texturen verwendest. (Korrigiert mich bitte jemand wenn ich da falsch liege) Alles in allem denke ich nicht, dass man bei der Anzahl der maximal sichtbaren Polygone einen pauschalen Wert veranschlagen kann, da es von mehreren Faktoren abhängig ist. Ich würde sagen, hier gilt wie bei so vielen Dingen: So viel wie nötig so wenig wie möglich.
  14. Ich hab das Script mal so übernommen wie es ist und bei mir gibt es keine Probleme. Du könntest mal versuchen das hier: if (xEingabe != 0 || yEingabe != 0) { Debug.Log("x: " + xEingabe + " | y: " + yEingabe); } ans Ende deiner Update-Methode einzufügen und gucken, ob in der Console was ausgegeben wird, wenn sich deine Figur wieder von allein bewegt. Wenn ja, dann ist das Problem möglicherweise ein Hardwareproblem. Ansonsten gibt es noch die Möglichkeit, dass irgend ein anderes Script auf deine Figur zugreift und die Position verändert. Eine weitere Möglichkeit wäre (sofern deine Figur eine Rigidbody2D-Componente besitzt) das deine Figur aufgrund irgendwelcher Physics-Einstellung Bewegt wird.
  15. OK, wie dein Name und der Quellcode schon vermuten lassen bist du noch ganz am Anfang aber gib nicht auf, das war jeder mal. =) Also als erstes setzt du deine "isDead" Variable 2 mal auf "true" das ist zwar nicht schlimm aber unnötig. Daher würde ich dir erstmal empfehlen, innerhalb deines if-Blocks in der Methode "ApplyDamage()" diese Zeile zu entfernen: isDead = true; da du genau das gleiche sowieso nochmal in der Death()-Methode machst. Dann möchtest du ja, dass die Variable "health" auf 2 steigt, nach dem sie kleiner oder gleich 0 ist. In deiner Death()-Methode machst du mit deiner health-Variable aber folgendes: health = health - 1; Das heißt, du verringerst ihren Wert um eins. Da du aber ihren wert auf 2 gesetzt haben möchtest (nicht um 2 erhöht, sondern auf 2 gesetzt) müsste die Zeile so aussehen: health = 2; Wenn das dann immer noch nicht funktioniert, dann hast du noch irgendwo anders fehlerhaften Code.
×
×
  • Create New...