Ich erlaube mir noch einmal einzuwerfen:
ich bin NOOB, und habe folgendes Script (was ich entgegen 1. Antwort 100% verstehen kann, nicht wie die 1. Antwort, und die Direktion : lies ein buch )
|
C#-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
// Aufheben von Objekten und Klärung der Munition von Feinden
void OnTriggerEnter (Collider otherCollider) {
if (otherCollider.GetComponent<Kugel> () != null) {
Hit ((transform.position - otherCollider.transform.position).normalized);
Destroy (otherCollider.gameObject);
} else if (otherCollider.GetComponent<HealthPack> () != null) {
if (health <= 4) {
health++;
Destroy (otherCollider.gameObject);
}
} else if (otherCollider.GetComponent<BigHealth> () != null) {
|
Kurzum: Ja, ich gehe über "getComponent" und definiere dann *welchen*
d.h. z.B. Kugel.
ich sehe da im Moment für *Mich* in meinem Projekt kein Problem.
Das Hauptproblem war für mich, das der Collider an einer ganz anderen Ecke war, als das Game Object (d.h. der Würfel den ich testweise hatte )
Die Empty mit dem Collider, war an einer ganz anderen Ecke, so konnte das nicht gehen )
Danach habe ich zuerst Belehrungen darüber erhalten, das ich ein Buch lesen soll.
dann, gab es hier einen echt fruchtbaren Austausch, den find ich total genial.
d.h. bitte: auch wenn es kein OffTopic gibt: meine Frage war nicht dazu gedacht, sich gegenseitig zu zerfleischen. Okay ?
Jeder arbeitet, wie er mag.
Ich komme mit dem GetComponent, sehr gut zurecht.
Vielleicht hat meine Art von Spiel, einfach zu wenig Anspruch an Unity ?
Andere, mögen es eher schneller bzw. anders.
Wiederum andere, sind mir unzählige Schritte voraus, empfehlen mir Bücher, oder debattieren hier Systeme, deren Ansatz ich
noch nicht einmal verstehe.
Leute:
Es ist mein erstes Gaming Project, und es funktioniert fantastisch.
und ich dachte immer:
das etwas funktioniert, ist der Sinn der Sache.
Und wenn Du 10 Programmierer, über eine Situation fragst, wirst Du stets 10 000 Antworten haben,
die sich alle unterscheiden.
ich denke: das Ziel ist der Weg, d.h. : wenn das Ziel erreicht ist - egal wie - und das fehlerfrei,
war nur der Weg dahin interessant.
den muß man lernen.
Beim nächstem Ziel, lernt man den nächsten Weg - so beginnt man.
hm.
also bitte:
Zerfleischt Euch nun nicht, das war nie Sinn der Sache.
ok ?
Aber vielleicht kann mir einer etwas beantworten (bevor sich das doch ganz OT verliert )
|
C#-Quelltext
|
1
|
health++; <- definiert, das meine Lebensleiste +1 bekommt.
|
dafür gibt es keinen Amount, sondern nur:
|
C#-Quelltext
|
1
|
public int health = 5;
|
aber daran dürfte eigentlich das System nicht scheitern.
Wenn ich nun "health" nicht nur +1 sondern +xxx hinzufügen will, habe ich 2 Möglichkeiten:
Möglichkeit A kenne ich , das wäre :
|
C#-Quelltext
|
1
|
health++;
|
Wie weise ich da einen tatsächlichen Wert zu ?
z.B. health+5 funktioniert nicht.
auch kein Healt+ = 5 oder ähnliches.
d.h. wenn ich nun 5 Herzen zuadden möchte, ohne 5x health++;health++;health++;health++;health++; zu tippen / zu hinterlegen
wie bekomme ich von health++;
ein Statement dazu, das statt health++; eben health+5; ( als Beispiel ) wäre ?
normal so würde ich mal "denken" wäre das health = +5
geht aber nich.
gesucht, nix gefunden.
einer eine Idee ?