Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

  • »SunGamingStudios« ist der Autor dieses Themas

Beiträge: 9

Wohnort: -

Beruf: -

  • Private Nachricht senden

1

05.08.2016, 11:56

Fehler bei mehrerer Objekten mit dem selbem Script (C#) [Gelöst]

Liebe Spieleprogrammierer Community,
Hier zuerst ein mal ein Paar Informationen:
3D-Engine:Unity3D
Scriptsprache:C#
Ich progammiere seit einem Jahr hobbymäßig.
Bei der Erstellungen eines kleinen Shooters bin ich auf das folgende Problem gestoßen:
Ich habe einen Spieler erstellt der mit zwei Waffen mit unterschiedlichen Schadenswerten schießen kann.
Dann hab ich einen Gegner erstellt der zwei Variablen besitzt erstens ein Schild und zweitens seine Gesundheit.
Ich bin soweit gekommen, dass wenn geschossen wird über einen Raycast an das getoffene Objekt eine Message mit dem jeweiligem Schadenswert gesendet wird und
eine Funktion namens DoDamage ausgeführt wird und zuerst das Schild und danach die Gesundheit mit dem Schadenswert subtrahiert wird.
Den Feid hab ich dann als Prefab gespeichert. Wenn sich nur ein Feid in der Szene befindet funktionert alles perfekt, aber wenn ich mehrere dieser Feide über das Prefab in die Szene setze und auf einen schieße dann bekommen alle anderen auch Schaden.

Ich würde mich sehr über ein Paar Antworten freuen damit ich dieses Problem beheben kann.
Danke schon mal im voraus für eure Hilfe.

LG SunGaming

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »SunGamingStudios« (06.08.2016, 12:19)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

05.08.2016, 12:56

Du hast nicht zufällig irgendwelche Variablen auf static gesetzt?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

3

05.08.2016, 13:00

Ohne Code kann man hier nur raten. Statische Variablen sind sehr naheliegend, es könnten aber auch andere Probleme vorhanden sein.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

05.08.2016, 13:02

Entweder das was BlueCobold sagt oder....
Ich habe da im Kopf dass man in Unity entweder direkt ein Prefab benutzen und verändern konnte oder eben Objekte die davon erzeugt wurden. Mag sein dass du vielleicht irgendwie nicht die Werte der einzelnen Objekte sondern die Werte der Prefabs veränderst. Das würde sich dann vermutlich global auswirken. Ich bin mir grad nicht ganz sicher in wie fern sich das Szenario umsetzen lässt, hab schon lang nix mehr mit Unity gemacht. Check am besten erst BlueCobolds Antwort und wenn das nicht zu trifft guckst du noch mal wie deine Objekte in die Szene kommen und wie du damit arbeitest.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

  • »SunGamingStudios« ist der Autor dieses Themas

Beiträge: 9

Wohnort: -

Beruf: -

  • Private Nachricht senden

5

05.08.2016, 14:05

Die Variablen habe ich schon selber gecheckt, dass sie nicht auf static gesetzt sind.
Ich werde morgen noch mal denn Code zu meinem Thread hinzufügen.

  • »SunGamingStudios« ist der Autor dieses Themas

Beiträge: 9

Wohnort: -

Beruf: -

  • Private Nachricht senden

6

05.08.2016, 15:55

Das mit den prefabs probiere ich morgen auch mal aus

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

7

05.08.2016, 16:55

Wenn du es so beschreibst, wie es da steht, dann könnte es auch an deinem Raycast oder dem Senden der Nachricht liegen. Mach doch mal folgendes:

Gibt jeder Figur in der szene einen eindeutigen namen (nummeriere sie durch z.B. mit Enemy1 usw.). Danach machst du Debug.log ausgaben in deiner DoDamage() mit dem namen deines GameObjects, was am den Script hängt. Zum quervergleich gibst du im Raycast das Objekt per Debug.log aus, was du getroffen hast. Mich würde die Ausgabe interessieren.

  • »SunGamingStudios« ist der Autor dieses Themas

Beiträge: 9

Wohnort: -

Beruf: -

  • Private Nachricht senden

8

05.08.2016, 17:30

Wenn du es so beschreibst, wie es da steht, dann könnte es auch an deinem Raycast oder dem Senden der Nachricht liegen. Mach doch mal folgendes:

Gibt jeder Figur in der szene einen eindeutigen namen (nummeriere sie durch z.B. mit Enemy1 usw.). Danach machst du Debug.log ausgaben in deiner DoDamage() mit dem namen deines GameObjects, was am den Script hängt. Zum quervergleich gibst du im Raycast das Objekt per Debug.log aus, was du getroffen hast. Mich würde die Ausgabe interessieren.

Wenn du es so beschreibst, wie es da steht, dann könnte es auch an deinem Raycast oder dem Senden der Nachricht liegen. Mach doch mal folgendes:

Gibt jeder Figur in der szene einen eindeutigen namen (nummeriere sie durch z.B. mit Enemy1 usw.). Danach machst du Debug.log ausgaben in deiner DoDamage() mit dem namen deines GameObjects, was am den Script hängt. Zum quervergleich gibst du im Raycast das Objekt per Debug.log aus, was du getroffen hast. Mich würde die Ausgabe interessieren.


Das werde ich auch morgen ausprobieren und das Ergebnis hier posten

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

9

05.08.2016, 18:26

@SunGamingStudios:
Ohne Code kann man hier nur raten.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

10

05.08.2016, 18:34

@SunGamingStudios:
Ohne Code kann man hier nur raten.

Zitat von »SunGamingStudios«

Ich werde morgen noch mal denn Code zu meinem Thread hinzufügen.
fka tm

Werbeanzeige