Jump to content
Unity Insider Forum

Kojote

Members
  • Content Count

    1,172
  • Joined

  • Last visited

  • Days Won

    5

Kojote last won the day on June 29 2018

Kojote had the most liked content!

Community Reputation

38 Excellent

About Kojote

  • Rank
    Advanced Member

Recent Profile Visitors

1,578 profile views
  1. Ich habs jetzt ganz anders gemacht, im Endeffekt war ich mal wieder einen Gedanken zu weit. Ich hab die Direktion nicht berechnet gehabt, sondern gleich den Vector3 als Ziel eingegeben. Im Endeffekt war es aber auch nicht genau das was ich wollte. Ziel sollte es sein, dass man eine Taste drückt und das Objekt auf das man schaut, dass nächste Angriffsziel wird und dann im UI mit Lebenspunkten und Co angezeigt wird. Ist aber leider auf die Entfernung zu ungenau. Ich habs nun so gemacht, dass das Ziel als UI dann selektiert wird, wenn man den ersten Angriff auf das Objekt startet.
  2. Grüße! Ich bin gerade dabei das Target-System zu machen. Mein erste Idee war ein Box-Raycast vom Spieler zu machen, was ich aber recht schnell verworfen habe, da dieser ja immer in Blockrichtung des Charakters geht. Da die Kamera aber über dem Charakter schwebt, ist das relativ ungünstig. So bin ich auf die Idee gekommen, ein Ziel über die Kamera zu finden, über deren MIttelpunkt. Problem ist, wie schieß ich einen Strahl in entspechender Größe ab? Der Mittelpunkt der Kamera und der schmale Ray machen es recht schwer in der Entfernung genau ein Ziel zu treffen. Gibts da auch eine Art Box-Raycasting für die Camera? Achja das ganze müsste ohne Maus-Input erfolgen, ich will da nur eine Taste drücken, um das Ziel zu selektieren. EDIT: Hab nun Box-RayCasting auf die Kamera angewendet: hitDetect = Physics.BoxCast(Camera.main.transform.gameObject.transform.position, transform.localScale, transform.forward, out hit, Camera.main.transform.gameObject.transform.rotation, maxHitDistanze, layerMask); Problem ist nun, transform.forward, der Stahl geht immer nach vorn, nie in Blickrichtung, wie kann man das denn festlegen? Zum anderen er schießt zwei strähle nah bei einander ab aber keine Box. Grüße Kojote
  3. Kojote

    Fight!

    Also ich habs nun mit der Trigger-Methode probiert, funktioniert. Problem ist, wenn OnTriggerEnter einmal eingetreten ist, kann ich auf den Gegener einprügeln so lange ich will, logischerweise passiert nichts mehr bis ich das nächte mal den Collider Trigger.
  4. Problem gefunden, in meinem Start-Controler wird über die Awake-Methode das Spawnen der Enemys ausgelöst und muss da auf eine Komponente der Enemys zugreifen. Die Komponenten der Enemys werden aber erst in der OnEnable-Methode der Enemys gesucht. EnEnabe wird aber erst nach der Start-Methode aktiv. Also ist der Fehler schon ganz richtig. Ich versuche erst einen Zugriff drauf, danach werden sie gefunden und im Inspector richtig angezeigt. Eigentlich logisch und ein total bescheuerter Fehler. 🤪
  5. Deswegen ja hier das True, dass sagt, dass auch deaktivierte Komponente gefunden werden: actionTriggerCol = GetComponentInChildren<BoxCollider>(true); smr = GetComponentInChildren<SkinnedMeshRenderer>(true); Aber wie gesagt, schau mal auf Bild 2 wars glaub ich, da steht ja im Inspector drin, dass er den SMR gefunden hat. Das wundert mich halt. Er findet ihn, aber drauf zugreifen darf man nicht.
  6. Also der Fehler kommt genau bei der Zeile: material = smr.material; Da ich aber eine Zeile vorher ja den SkinnedMeshRenderer finde, frage ich mich, wo sein Problem ist: smr = GetComponentInChildren<SkinnedMeshRenderer>();
  7. Hi! Sagt mal, könnt ihr mal auf die Grafiken einen Blick werfen: Ich versuche in der OnEnable-Methode einige Komponenten zu finden: private void OnEnable() { actionTriggerCol = GetComponentInChildren<BoxCollider>(true); smr = GetComponentInChildren<SkinnedMeshRenderer>(true); material = smr.material; col = material.GetColor("_Color"); } Laut Inspector wurde alles gefunden, trotzdem bekomme ich ne Fehlermeldung, dass er den SkinnedMeshRenderer nicht findet. Seht ihr da irgendwo nen Fehler? Grüße von Kojote
  8. Hi! Sehr eigenartige Frage, ich weis, aber wo ist im Build mein Mauscursor. In Unity ist mein Mauscursor da und im Start steht, dass der Cursor sichtbar geschalten werden soll. Im Build ist der Cursor weg. Habt ihr ne Idee? EDIT: Korrektur, ich teste gerade im Fenstermodus. Wenn ich ihn außerhalb vom Spiel verschiebe, also im normalen Desktopbereich ist der Cursor zu sehen, hole ich ihn ins Spiel ist er am Rand kurz sichtbar und verschwindet dann. 🤨 EDIT 2: Ich hab jetzt mal in den Player-Settings einen Default-Cursor angegeben. Im Unity-Editor-Play-Mode wird mir der Cursor angezeigt, im Build nicht. EDIT 3: OK, "Fehler" gefunden. Hatte ein Image zum Einblenden deaktiviert. Das hat er im Editor ignoriert, jedoch im Build hat er die Coroutine gestoppt und erst danach war Cursor.Visible = true. Nebenfrage, war nicht mal in der 2017 Version die Debug-Console automatisch ab der ersten Karte an. Ich hab nun nen Dev-Build mit Console erstellt und bekomm die Console erst im Hauptspiel, nicht aber im Main-Menue. Grüße von Kojote
  9. Kojote

    Fight!

    Er kann die gesamte Zeit angreifen mit der linken Maustaste. Mhhh schwer zu fragen was ich da mache. Wie macht man das in Egospielen mit Schwertern.
  10. Kojote

    Fight!

    Um Realismus gehts mir gar nicht, es reicht das ich den Unterschied hab zwischen anrempeln und wirklichan angriff. Meine Idee war ja, weis nicht ob man das so macht, dass der Spieler angreift und der Enemy dies registriert und ich im Angriffsmoment rübergebe, Enemy erhällt 30 Punkte Schaden. Den Rest macht der Enemy selbst. Wichtig ist also der Informationsfluss, wann greift der Spieler an und wie viel Schaden gibt er ab. Ob die Kralle nun 2 mm weiter links oder rechts ist, ist mir egal, so viel Realismus muss nicht sein.^^
  11. Kojote

    Fight!

    Ja aber woher weis ich wann es nur ein rannrennen und wann ein Angriff ist? Wie sollte das sonst gehen? Da ich noch net mal weis wie so ein Kampfsystem sich Triggert bin ich da offen, bisher steht noch keine Codezeile.^^
  12. Kojote

    Fight!

    Grüße! Bei meinem Spielchen gehts weiter, nach Spawn und Tod gehts nun an den Kampf. Wie gesagt ist es ein Tier-Spiel und die kämpfen wie Tiere, anspringen, Pfote hauen und der gleichen. Nun, wenn ich jagen will und das Tier anspringe bzw. mit der Pfote haue, muss etwas ja bei dem anderen Tier passieren, eine Reaktion und der Abzug von Lebenspunkten. Bisher hatte ich zwei Ideen: Collider-Version Version hier wäre denk ich am besten, wenn der Collider des Spielers in einen Trigger Collider des Tieres eindringt, kann ich über OnTriggerEnter ja alles starten und kann auch die Schadenspunkte übermitteln. Frage hier wäre aber zum einen, wie unterscheide ich Angriff von nur mal Anrempeln, nicht das er von einen Schubs gleich Lebenspunkte verliert. Zum anderen, müsste der Spieler immer den Collider verlassen, um das nächste mal über den Trigger Schaden zu verursachen. Ist er zu nahe dran, passiert nichts oder ich muss OnTriggerStay nutzen und hier war im hintergrund irgendwie noch ein Performance-Gespenst. Ray-Version Die Ray-Version würde so ähnlich funktionieren, nur das ich beim Angriff nach vorn noch einen Ray nach vorn schiesse und da das selbe mache mit dem Trigger. Bietet aber den Nachteil, wenn er knapp daneben geht, sieht der Spieler zwar nen Angriff, wird aber nicht gewertet. Was meint ihr dazu? Grüße von Kojote
  13. Problem ist, dass der Schaden doch mit der Zeit immer größer wird. Selbst wenn ich mal die Vitalität wieder auf 100% setze, bleibt doch der demagePerSecound gleich hoch und wird immer größer, es addiert sich doch immer mehr.
  14. Stimmt, dass ist natürlich noch besser!
  15. private float damagePerTick = 0f; private float damageIncreasePerTick = 0.1f; private void FixedUpdate() { damagePerTick += damageIncreasePerTick * Time.deltaTime; ApplyDamage(damagePerTick); } Komm jetzt endlich mal dazu hier weiter zu machen. Problem ist hier gerade der feste Wert von demagePerTick. Der wird im Laufe der Zeit immer größer. Wenn der Spieler etwas ist, wird die Vitalität wieder hoch gesetzt. demagePerTick bleibt aber und wird immer schneller und größer. Möglichkeit wäre ja, jede Sekunde eine feste Größe von der Vitalität abzuziehen, dies wäre dann aber wieder linear und nicht exponentiell. Kann man da was machen? Ich komm leider net drauf.
×
×
  • Create New...