2016-11-19 6 views
0

Ich bin neu in Unity. Entschuldigung, wenn ich einen Anfänger-Frage-Stil habe.Wie zeichne Marken auf Unity 3D-Ebene?

Ich möchte ein 3D-Schachspiel in Unity implementieren. Ich habe bereits eine freigegebene C++ - Bibliothek implementiert, die die gesamte AI-Sache enthält. Ich habe diese Bibliothek in WPF und Android verwendet und es ist perfekt getestet. Jetzt ist Unity an der Reihe.

Wenn der Benutzer ein Stück auswählt, sollten die nächsten Züge angezeigt werden.

Chessboard image

Diese Markierungen können ein Licht oder ein Bild sein. Kreis oder Rechteck.

Eine Möglichkeit, dies zu tun, ist es, 64 Markierungen pro Quadrat des Schachbretts zu haben und ihre Sichtbarkeit programmgesteuert zu ändern.

Der andere Weg, den ich persönlich bevorzuge, ist, die Markierungen programmatisch zu zeichnen. Aber ich weiß nicht, wie ich auf meinem Schachbrett-Flugzeug zeichnen soll.

Bitte führen Sie mich damit.

+0

Sie sollten die Zeichnung nicht machen, das würde bedeuten, die Schachtextur für jeden Zug neu zu zeichnen. Ziemlich speicherintensiv. Der andere Prozess könnte sein, den Projektor mit einem additiven Shader zu verwenden. – Everts

+0

@Everts Ich habe ein wenig gesucht, aber ich habe keine gute Referenz zum Lesen gefunden. Kannst du mir einen Link geben? –

+1

Was meinst du mit Marken? Kannst du ein Bild davon machen, wie eine einfache Markierung auf dem Schachbrett aussehen soll? – Programmer

Antwort

0

ENDERGEBNIS (Just a sketchup!)

enter image description here

SCHRITT:

(ich nehme an, Sie haben bereits ein Schachbrett hatte)

1. Erstellen Sie ein Material & konfigurieren Sie es wie in der folgenden Abbildung. Beachten Sie, dass die Albedo grün 50% transparent ist:

enter image description here

2. Erstellen Sie ein Quad & ordnen Sie das neu oben erstellten Materials. Dann setzen sie wie in dem Bild unten nach oben:

enter image description here

3. Nun werden wir den Schein-Effekt hinzufügen. Zuerst müssen wir die Anti-Aliasing ausschalten, indem wir auf Good Quality anstelle von Fantastic wechseln.

enter image description here

4. Zweitens müssen wir HDR in der Hauptkamera aktivieren:

enter image description here

5. Drittens müssen wir die Image Effects Paket importieren. Dieses Paket ist Teil der Standard Assets, die mit Unity ausgeliefert wird. Es ist völlig kostenlos. Holen Sie es hier, wenn Sie nicht haben. https://www.assetstore.unity3d.com/en/#!/content/32351
Sie benötigen nur das Paket Image Effect.

enter image description here

6. nun die Bloom Effekt auf Ihre Hauptkamera hinzuzufügen.

enter image description here

7. Das ist es! Wenn Sie es über den Code zu verstecken brauchen erhalten dann den Verweis auf es und diese Codezeile ausführen:

yourQuad.SetActive(false);

mehr Siehe hier: https://docs.unity3d.com/ScriptReference/GameObject.SetActive.html

8. Schließlich duplizieren, dass Quad 64 & zu erstellen, sie richtig zu positionieren . Es gibt zwei Tricks, die Ihr Leben in der Hölle viel leichter helfen können:

schnell, um eine Gruppe von Objekten zu duplizieren: wählen Sie alle aus und drücken Sie: Ctrl + D

Um kantenSchnapp zu ermöglichen: Wählen Sie Ihr Quad und halten Sie V gedrückt, dann bewegen Sie die Maus über den Eckpunkt des Quads. Sie werden ein weißes Quadrat um ihn herum sehen. Ziehe diesen Veteran und sieh die Magie.

9. Von diesem Moment an ist es Ihre Spiellogik zu implementieren. Sie könnten alle Quads in einer 2-dimensionalen array (Matrix) speichern und manipulieren selbst, dass alles, was ich mir vorstellen kann. Viel Glück!

+0

Wie wäre es mit Standard Specular Shader und überspringen Schritt 3 bis 6? – Everts

+0

@Everts: Ich habe es gerade ausprobiert! Eigentlich habe ich keinen Weg gefunden, den Glow-Effekt ohne "Bloom" zu erreichen. 'HDR' ist nur dazu da, das' Bloom' schöner zu machen, aber es erfordert das Ausschalten des 'Anti-Aliasing'. 'Specular' ist nur eine Möglichkeit, den" metallischen "Workflow zu ersetzen. Wenn Sie den Standard-Shader verwenden, erhalten Sie einen 'metallischen' Schieberegler. Wenn Sie 'Standard (Specular setup)' verwenden, wird dieser Schieberegler durch 'Specular' ersetzt. –