Dieser Beitrag beschäftigt sich mit dem Erschaffen eines Arkanoid bzw. Breakout-Paddles, der größenveränderlich ist.
Das Kreieren eines Arkanoid / Breakout-Schlägers
Kreiere im Hierarchiefenster in mit „Create Empty“ ein leeres GameObject, dass du als DynamicPaddle bezeichnest.
Erschaffe im Projektfenster ein C#-Skript, dass du als Paddle bezeichnest.
Füge es zum Dynamic Paddle hinzu. Öffne das Fenster im Scripteditor. Standardmäßig ist dies Visual Studio.
Die Zielsetzung ist folgendes Script:
public class Paddle : MonoBehaviour sagt aus, dass jeder darauf zugreifen kann.
{ <–Die Anweisung beginnt
float <– Kennzeichnet Zahlen
minSizes und maxSize <– legen Minimumgröße und Maximalgröße des Schlägers fest
resizeSpeed <–Geschwindigkeit, mit welcher der Schläger seine Größe verändert
positionY <– Position des Paddle
SpriteRenderer <–Sorgt dafür, dass du das Paddle siehst. Den Sprite Renderer fügst du über Unity unter AddComponent hinzu. Sprite ist das zugehörige Sprite.
public –> wichtig für Unity – Camera –> Datentyp –>Variablenname über den die Kamera verfügbar ist
myCamera –> steht für eine beliebig ausgewählte Kamera
void Start () –> Unterprogramm, das aufgerufen wird, wenn das Objekt erstellt wird, welches das Script erstellt – Unterprogramm beginnt
void Update() –> Unterprogramm wird in jedem Frame aufgerufen
Cursor.visible = false <– Cursor wird unsichtbar
sprite = GetComponent<SpriteRenderer>(); <– Das Programm holt sich den SpriteRenderer aus dem Inspectorfenster in Unity bzw. vom Objekt heraus, um das Sprite darzustellen, also wird auf die Komponente vom Objekt zurückgegriffen
sprite.size = new Vector2(7.5f, sprite.size.y);
sprite.size <–Größe des Sprite
new Vector2(7.5f, sprite.size.y); <– neuer Vektor, der sich aus dem x- und dem y-Wert zusammensetzt – Der x-Wert ist die Ausgangsgröße und die y-Größe wird beibehalten
positionY = -myCamera.orthographicSize + (sprite.size.y * 0.5f);
positionY = Position des Paddles auf der Y-Achse
-myCamera.orthographicSize <–Verweis auf die Kamera und die Größe der Kamera
Da sich der Ursprung unseres Spiels im Mittelpunkt der Kamera befindet, müssen wir bei der Berechnung der Y-Position die Hälfte der Kameragröße subtrahieren (nun würde sich das Paddle an der unteren Kante des Bildschirms befinden) und addieren die Höhe des Paddles hinzu.
float sizeX = sprite.size.x; <– Die Größe von Paddle und Sprite Size sind identisch
sizeX += Input.GetAxisRaw(„Mouse ScrollWheel“) * resizeSpeed; <–Die Größe X definiert sich aus x = x+1 und wird vom Mausrad in der Größe beeinflusst, welche mit der Geschwindigkeit multipliziert wird, mit der das Paddle die Größe verändert
sizeX = Mathf.Clamp (sizeX, minSize, maxSize);
Die Größe X ist mit der Größe X zwischen dem kleinsten und dem größten Wert festgeschrieben. Der Wert kann niemals kleiner oder größer als der Min. und Max.-Wert sein.
sprite.size = new Vector2 (sizeX, sprite.size.y);
Die Spritegröße definiert sich aus dem neuen Vector2, der sich aus dem x- und den y-Wert vom Sprite zusammensetzt.
Vector 3 mousePosition = myCamera.ScreenToWorldPoint(Input.mousePosition);
Vector 3 ist die Mausposition. Diese entspricht der Kameraposition und wie sie auf die Spielwelt gerichtet ist. Die Kamera orientiert sich an der Mausposition. Mit dem ScreenToWorldPoint wird der Vector von der Screenposition (Bildschirmposition) zur Weltposition (Position in der Spielwelt) transformiert.
transform.position = newVector3(mouseposition.x, positionY);
Die Veränderung der Position vom Paddle entspricht Vector3, der sich aus Mausposition x und Y zusammensetzt.
Zusätzlich benötigst du das passende Sprite, an welches du das Script anheftest. Dann wird das Paddle auf dem Bildschirm angezeigt.
Originally posted 2019-11-23 21:45:00.